【计算机网络】传输层协议TCP与UDP

传输层

        传输层位于OSI七层网络模型的第四层,主要负责端到端通信,可靠性保障(TCP),流量控制(TCP),拥塞控制(TCP),数据分段与分组,多路复用与解复用等,通过TCP与UDP协议实现。

端到端通信

        传输层通过端口号(Port)来区分不同进程。端口号为16位数字(0-65535),用于标识主机上具体的应用程序,比如HTTP服务通常使用80端口,HTTPS通常使用443端口。

可靠性保障(TCP)

        传输层可以提供可靠的数据传输服务,确保数据能够完整、有序地到达接收端。这主要通过TCP协议实现,它使用确认应答(ACK)超时重传滑动窗口等机制来保证数据的可靠性。

流量控制(TCP)

        传输层可以调节发送端和接收端之间的数据流量,避免发送端发送过多数据导致接收端无法处理。TCP通过滑动窗口机制实现流量控制。

拥塞控制(TCP)

        传输层可以感知网络的拥塞情况,并根据网络状态动态调整发送速率,避免网络拥塞加剧。TCP协议提供了拥塞控制机制,如慢启动拥塞避免快速重传等。

数据分段与重组

        传输层可以将应用层的大型数据分割成较小的数据段(TCP)或数据报(UDP),在网络层传输后再进行重组。

多路复用与解复用

        传输层允许多个应用进程同时使用网络资源。它通过端口号将不同应用的数据复用到同一个传输连接中,并在接收端将数据正确地分发到对应的应用进程。

TCP

        TCP(传输控制协议)是一种面向连接的可靠的基于字节流的传输层协议,主要用于需要高可靠性和完整性的应用场景。

TCP的特点

面向连接:发送数据前后,分别通过“三次握手”和“四次挥手”进行建立连接和关闭连接

可靠性:

     确认和重传:接收方收到数据后会发送ACK给发送方,若发送方未收到ACK则会重传数据

     流量控制:接收方通过滑动窗口(循环数组)机制告诉发送方可接受数据大小

     拥塞控制:发送方通过慢启动拥塞避免快速重传和恢复等机制动态调整发送速率

     有序性:接收方根据序列号重新组装数据,保证数据顺序正确

     超时重传:发送端若未在超时时间内收到ACK,就会重传数据

头部开销大:报文头部包含确认号(ACK)序列号窗口大小

全双工通信:允许通信双方同时进行数据的发送和接收

TCP的三次握手

TCP的四次挥手

TCP应用场景

文件传输:FTP

网页浏览:HTTP/HTTPS

电子邮件:SMTP/POP3

数据库通信

UDP

        UDP是一种无连接的、不可靠的传输层协议,主要用于对速度和实时性要求较高的场景。

UDP的特点

无连接性:无连接,数据包互相独立

简单和轻量:头部开销小,适合网络通信受限情景

高性能:无复杂机制,延迟低,适用于实时性高应用:视频通话,网络游戏

不可靠性:

     丢包风险

     不保证数据顺序

     无确认和重传

     无流量控制和拥塞控制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/957019.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基础入门-传输加密数据格式编码算法密文存储代码混淆逆向保护安全影响

知识点: 1、传输格式&传输数据-类型&编码&算法 2、密码存储&代码混淆-不可逆&非对称性 一、演示案例-传输格式&传输数据-类型&编码&算法 传输格式 JSON XML WebSockets HTML 二进制 自定义 WebSockets:聊天交互较常…

DenseNet-密集连接卷积网络

DenseNet(Densely Connected Convolutional Network)是近年来图像识别领域中一种创新且高效的深度卷积神经网络架构。它通过引入密集连接的设计,极大地提高了特征传递效率,减缓了梯度消失问题,促进了特征重用&#xff…

记一次数据库连接 bug

整个的报错如下: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Metho…

Docker:基于自制openjdk8镜像 or 官方openjdk8镜像,制作tomcat镜像

一、制作openjdk8基础镜像【基于自定义alpine-3.18.0:v1 】 docker pull maven:3.5.0-jdk-8-alpine 78.56 MB https://hub.docker.com/_/maven/tagspage8&namealpine openjdk二进制下载地址 https://blog.csdn.net/fenglllle/article/details/124786948 https://adoptope…

vue 入门到实战 一

目录 第1章 初始Vue.js 1.1 网站交互方式 1.2 MVVM模式 1.3 Vue.js是什么 1.4 安装Vue.js 1.5 第一个Vue.js程序 1.6 插值与表达式 第1章 初始Vue.js 1.1 网站交互方式 Web网站有单页应用程序(SPA,Single-page Application)和多页应用…

【2024 年度总结】从小白慢慢成长

【2024 年度总结】从小白慢慢成长 1. 加入 CSDN 的契机2. 学习过程2.1 万事开头难2.2 下定决心开始学习2.3 融入技术圈2.4 完成万粉的目标 3. 经验分享3.1 工具的选择3.2 如何提升文章质量3.3 学会善用 AI 工具 4. 保持初心,继续前行 1. 加入 CSDN 的契机 首次接触…

Apache SeaTunnel 2.3.9 正式发布:多项新特性与优化全面提升数据集成能力

近日,Apache SeaTunnel 社区正式发布了最新版本 2.3.9。本次更新新增了Helm 集群部署、Transform 支持多表、Zeta新API、表结构转换、任务提交队列、分库分表合并、列转多行 等多个功能更新! 作为一款开源、分布式的数据集成平台,本次版本通过…

mybatis的多对一、一对多的用法

目录 1、使用VO聚合对象(可以解决这两种情况) 多对一: 一对多: 2、非聚合的多对一做法: 3、非聚合的一对多做法: 1、使用VO聚合对象(可以解决这两种情况) 当我需要多对一、一对…

SpringCloud系列教程:微服务的未来(十四)网关登录校验、自定义过滤器GlobalFilter、GatawayFilter

前言 在微服务架构中,API 网关扮演着至关重要的角色,负责路由请求、执行安全验证、流量控制等任务。Spring Cloud Gateway 作为一个强大的网关解决方案,提供了灵活的方式来实现这些功能。 本篇博客将重点介绍如何在 Spring Cloud Gateway 中…

服务化架构 IM 系统之应用 MQ

在微服务化系统中,存在三个最核心的组件,分别是 RPC、注册中心和MQ。 在前面的两篇文章(见《服务化架构 IM 系统之应用 RPC》和《服务化架构 IM 系统之应用注册中心》)中,我们站在应用的视角分析了普适性的 RPC 和 注…

Linux-C/C++--深入探究文件 I/O (上)(文件的管理、函数返回错误、exit()、_Exit()、_exit())

经过上一章内容的学习,相信各位读者对 Linux 系统应用编程中的基础文件 I/O 操作有了一定的认识和理解了,能够独立完成一些简单地文件 I/O 编程问题,如果你的工作中仅仅只是涉及到一些简单文件读写操作相关的问题,其实上一章的知识…

内网渗透测试工具及渗透测试安全审计方法总结

1. 内网安全检查/渗透介绍 1.1 攻击思路 有2种思路: 攻击外网服务器,获取外网服务器的权限,接着利用入侵成功的外网服务器作为跳板,攻击内网其他服务器,最后获得敏感数据,并将数据传递到攻击者&#xff0…

豆包MarsCode:小C点菜问题

问题描述 思路分析 这道题的核心任务是找出所有不超过给定价格 m 的菜肴中,最常见的菜肴价格,最后返回该价格的出现次数。 1. 题意理解: 给定一个最大价格 m,小C只会选择价格不超过 m 的菜。菜单上有 n 道菜,每道菜…

从Windows通过XRDP远程访问和控制银河麒麟ukey v10服务器,以及多次连接后黑屏的问题

从Windows通过XRDP远程访问和控制银河麒麟ukey v10服务器,以及多次连接后黑屏的问题。 安装 rdp 服务: yum install -y epel-release yum install -y xrdp或者如下: 可以通过下载rpm软件包,然后rpm方式安装。访问xrdp官网https…

【PowerQuery专栏】实现JSON数据的导入

Json 格式数据是在互联网数据格式传输使用的非常频繁的一类数据,图7.44为Json数据格式中比较典型的数据格式。 PowerQuery进行Json数据解析使用的是Json.Document进行数据解析,Json.Document目前有2个参数。 参数1为内容数据,数据类型为二进制类型,值为需要解析的Json数据参…

Java基础(3)

Java 数据类型详解 九、运算符 1. 基本运算符 Java 提供了多种运算符来执行不同的操作: 算术运算符:(加)、-(减)、*(乘)、/(除)、%(取模&…

PostgreSQL学习笔记:PostgreSQL vs MySQL

PostgreSQL 和 MySQL 都是广泛使用的关系型数据库管理系统,它们有以下一些对比: 一、功能特性 1. 数据类型支持 PostgreSQL:支持丰富的数据类型,包括数组、JSON、JSONB、范围类型、几何类型等。对于复杂数据结构的存储和处理非…

Linux下PostgreSQL-12.0安装部署详细步骤

一、安装环境 postgresql-12.0 CentOS-7.6 注意:确认linux系统可以正常连接网络,因为在后面需要添加依赖包。 二、pg数据库安装包下载 下载地址:PostgreSQL: File Browser 选择要安装的版本进行下载: 三、安装依赖包 在要安…

C语言内存之旅:从静态到动态的跨越

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文一 动态内存管理的必要性二 动态…

[STM32 HAL库]串口中断编程思路

一、前言 最近在准备蓝桥杯比赛(嵌入式赛道),研究了以下串口空闲中断DMA接收不定长的数据,感觉这个方法的接收效率很高,十分好用。方法配置都成功了,但是有一个点需要进行考虑,就是一般我们需要…