TCP的流量控制和拥塞控制

host
host
host
33
文章
0
评论
2021年7月23日17:40:36TCP的流量控制和拥塞控制已关闭评论44

TCP如何实现流量控制

TCP的流量控制和拥塞控制

使用滑动窗口协议实现流量控制。防止发送方发送速率太快,接收方缓存缓存区不够导致溢出。接收方会维护一个接收窗口receiver window(窗口大小单位是字节),接收窗口的大小是根据自己的资源情况动态调整的,在返回ACK时将接受窗口大小放在TCP报文中的窗口字段告知发送方。发送窗口的大小不能超过接受窗口的大小,只有当发送方发送并收到确认之后,才能将发送窗口右移。

发送窗口的上限为接受窗口和拥塞窗口中的较小值。接收窗口表明了接收方的接收能力,拥塞窗口表明了网络的传送能力。

TCP的流量控制和拥塞控制

TCP的拥塞控制是怎么实现的

TCP的流量控制和拥塞控制

拥塞控制主要由四个算法组成:慢启动,拥塞避免、快重传、快恢复

  1. 慢启动:刚开始发送数据时,先把拥塞窗口设置为一个最大报文段MSS的数值,每收到一个新的确认报文后,就把拥塞窗口+1个MSS。这样每经过一个传输轮次(或者说是每经过一个往返时间RTT),拥塞窗口的大小就会加倍TCP的流量控制和拥塞控制
  2. 拥塞避免:当拥塞窗口的大小达到慢开始门限时,开始执行拥塞避免算法,拥塞窗口大小不再指数增加,而是线性增加,即每经过一个传输轮次只增加1MSS。
    1. 无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有收到确认),就要把慢开始门限ssthresh设置为出现拥塞时的发送方窗口值的一半(但不能小于2)。然后把拥塞窗口cwnd重新设置为1,执行慢开始算法。(这是不使用快重传的情况)

  3. 快重传:快重传要求接收方在收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方)而不要等到自己发送数据时捎带确认。快重传算法规定,发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待设置的重传计时器时间到期。TCP的流量控制和拥塞控制
  4. 快恢复:当发送方连续收到三个重复确认时,就会把慢开始门限减半,然后执行拥塞避免算法。不执行慢开始算法的原因:因为如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方认为现在网络可能没有出现拥塞。也有的快重传是把开始时的拥塞窗口cwnd值再增大一点,即等于 ssthresh + 3*MSS 。这样做的理由是:既然发送方收到三个重复的确认,就表明有三个分组已经离开了网络。这三个分组不再消耗网络的资源而是停留在接收方的缓存中。可见现在网络中减少了三个分组。因此可以适当把拥塞窗口扩大些。
host
  • 本文由 发表于 2021年7月23日17:40:36
  • 转载请务必保留本文链接:https://www.zenook.cn/net/protocol/tcp-flow-congestion.html
ARP协议与NAT协议 通信协议

ARP协议与NAT协议

什么是ARP协议(Address Resolution Protocol) ARP协议完成了IP地址与物理地址的映射。每一个主机都设有一个ARP高速缓存,里面有所在的局域网上的各主机和路由器的IP地址...
Session与Cookie的区别 通信协议

Session与Cookie的区别

session是服务器端保持状态的方案,cookie是客户端保持状态的方案 cookie保存在客户端本地,客户端请求服务器时会将cookie一起提交;session保存在服务端,通过检索session...
GET与POST的区别 通信协议

GET与POST的区别

GET是幂等的,即读取同一个资源,总是得到相同的数据,POST不是幂等的 GET一般用于从服务器获取资源,而POST有可能改变服务器上的资源 请求形式上:GET请求的数据附在URL之后,在HTTP请求...
TCP和UDP的区别 通信协议

TCP和UDP的区别

TCP与UDP的区别? TCP是面向连接的,UDP是无连接的; 什么是无连接? TCP是可靠的,UDP是不可靠的 什么是不可靠 TCP只支持点对点通信,UDP支持一对一、一对多、多对一、多对多; TC...