运输层

1.运输层提供的功能

运输层为相互通信的应用进程提供逻辑通信,使用协议端口号(软件端口)

2.运输层协议

2.1UDP用户数据报协议

UDP在IP数据报服务之上添加了复用分用和差错检测的功能,UDP主要特点:

无连接:发送数据之前不用建立连接

尽最大努力交付:不保证可靠交付

面向报文:发送方的UDP对于应用层交付的报文,既不合并也不拆分,保留这些报文的边界,添加首部之后就向下交付给IP层

UDP没有拥塞控制:网络上出现的拥塞不会使源主机的发送速率降低

UDP用户数据报格式

源端口:16位

目的端口:16位

长度:整个UDP用户数据报长度(单位:字节)

校验和:计算校验和的时候会在首部之前添加伪首部再进行计算

2.2TCP传输控制协议

TCP提供了可靠传输,流量控制和拥塞控制,TCP主要特点:

面向连接:传输数据之前先要建立TCP连接,传输数据结束要断开TCP连接

TCP连接是一对一的,只能有两个端点

提供可靠交付的服务:通过TCP连接传输的数据,无差错,不丢失,不重复并且按顺序到达

提供全双工通信:TCP连接的两端都设有发送缓存和接收缓存

面向字节流:TCP中的流指的是流入进程或者从进程中流出的字节序列

2.2.1TCP连接

一条TCP连接有两个端点,端点既不是主机的IP地址,也不是应用进程,而是一个抽象概念套接字(socket),套接字等于IP地址:端口号。

2.2.2可靠传输的原理

使用一些可靠传输的协议,当出现差错的时候让发送方重传出现差错的数据;并且在接收方来不及处理接收到的数据时,及时告知发送方降低发送数据的速度。

ARQ(自动重传请求):发送方在发送完一个分组之后就停止发送,等待接收方收到该分组的确认,收到确认后再发送下一个分组(停止等待);超过一定的时间没有收到确认,发送方就会自动重传这个分组(超时重传)。

2.2.3TCP报文段首部格式

TCP报文段首部格式

源端口:16位

目的端口:16位

序号:TCP对于向上层交付的字节流中的每一个字节按顺序编号,该字段指的是本报文段数据部分中第一个字节的序号

确认号:ACK为1时有效,期望收到对方的下一个报文段数据部分第一个字节的序号(若确认号为N,则表示序号N以前的数据都已经正确接收到了)

数据偏移:指明了TCP报文段首部的长度(单位:4字节)

保留:暂时不使用

6个控制位指明该报文段的性质:

紧急URG:配合紧急指针使用

确认ACK:规定建立连接后传送的报文段该字段都置为1

推送PSH:

复位RST:RST为1时表示先断开连接,再重新建立连接

同步SYN:在建立连接时用来同步序号

终止FIN:用来断开一个连接

窗口:指明了发送该报文段的一方接收窗口的大小,指明了现在允许对方发送的数据量,窗口值是在动态变化的

校验和:校验首部和数据部分,计算校验和的时候会在首部之前添加伪首部再进行计算

紧急指针:URG为1时有效,指明该报文段数据中紧急数据所占的字节数(紧急数据后面的数据为普通数据)

2.2.4可靠传输的实现

1.以字节为单位的滑动窗口

2.超时重传时间的选择(使用一种自适应算法)

2.2.5流量控制

流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收,通过滑动窗口实现

2.2.6拥塞控制

拥塞控制就是防止过多的数据注入到网络中,使得网络中的路由器和链路不至于过载,这是一个全局性的过程

几种拥塞控制的方法:

1.慢开始和拥塞避免

慢开始就是由小到大逐渐增大发送窗口,并不是指拥塞窗口的增长速率慢(指数级增长)

2.快重传和快恢复

2.2.7TCP连接的建立和释放

1.TCP三次握手

三次握手图示

2.TCP四次挥手

四次挥手图示
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容