计算机网络运输层
1.概述
2. 用户数据报协议UDP
2.1 UDP概述
2.2 UDP的首部格式
3. 传输控制协议TCP
3.1 TCP最主要的特点
3.2 TCP的连接
3.3 可靠传输的工作原理
3.3.1 停止等待协议(ARQ协议)
3.3.2 滑动窗口协议(连续ARQ协议)
3.3.3 流量控制
3.3.4 拥塞控制
4 TCP报文段首部
5 TCP三次握手和四次挥手过程
5.1 TCP三次握手过程
5.2 三次握手常见问题
5.3 TCP四次挥手过程
5.3.4 四次挥手常见问题
1.概述
作用:运输层为它上面的应用层提供通信服务。
在OSI七层参考模型中,运输层是面向通信的最高层,也是用户功能的最底层。
传输层两大重要的功能:复用 和 分用。 1.复用:在发送端,多个应用进程公用一个传输层; 2.分用:在接收端,传输层会根据端口号将数据分派给不同的应用进程。
和网络层的区别: 1.网络层为不同主机提供通信服务,而传输层为不同主机的不同应用提供通信服务。 2.网络层只对报文头部进行差错检测,而传输层对整个报文进行差错检测。
当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道。但当运输层采用无连接的UDP协议时,这种逻辑信道任然是一条不可靠信道。
2. 用户数据报协议UDP
2.1 UDP概述
UDP只在IP数据报服务的基础上增加了少量的功能:复用与分用、对整个报文的差错检测。
UDP是无连接的 通信前不需要建立连接,通信结束也无需释放连接。
UDP是不可靠的 它是尽最大努力交付,不能确保每一个数据报都送达。
UDP是面向报文的 所谓 面向报文 就是指:UDP数据传输的单位是报文,且不会对数据作任何 拆分 和 拼接 操作。 在发送端,应用程序给传输层的UDP什么样的数据,UDP不会对数据进行切分,只增加一个UDP头并交给网络层。 在接收端,UDP收到网络层的数据报后,去除IP数据报头部后遍交给应用层,不会作任何拼接操作。
UDP没有拥塞控制 UDP始终以恒定的速率发送数据,并不会根据网络拥塞情况对发送速率作调整。这种方式有利有弊。 弊端:网络拥塞时有些报文可能会丢失,因此UDP不可靠。 优点:有些使用场景允许报文丢失,如:直播、语音通话,但对实时性要求很高,此时UDP还是很有用武之地的。
UDP支持一对一、一对多、多对多、多对一通信 而TCP只支持一对一通信。
UDP首部开销小,只有8字节。 而TCP头部至少由20字节,相比于TCP要高效很多。
2.2 UDP的首部格式
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190530164755613.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ppbmppbmlhbzE=,size_16,color_FFFFFF,t_70)
源端口:源端口号。在需要对方回信时选用。不需要时可用全0。
目的端口:目的端口号。这在终点交付报文时必须要使用到。
长度: UDP用户数据报的长度,其最小值是8(仅有首部)。
校验和:检测UDP用户数据报在传输中是否有错。有错就丢弃。 伪首部 在 TCP 的分段或 UDP 的数据报格式中,在数据报首部前面增加源 IP 地址、目的 IP 地址、IP 分组的协议字段、TCP 或 UDP 数据报的总长度等共12字节,所构成的扩展首部结构。此伪首部是一个临时的结构,它既不向上也不向下传递,仅仅只是为了保证可以校验套接字的正确性。
3. 传输控制协议TCP
3.1 TCP最主要的特点
TCP是面向连接的
|