【计算机网络】 拥塞控制

文章目录

背景

网络中的链路容量和交换节点中的缓存和处理机都有着工作的极限,当网络的需求超过他们的工作极限时,就出现了拥塞。在网络中出现拥堵时,如果继续发送大量数据包,可能会导致数据包时延、丢失等,这是TCP就会重传数据,但是 一重传就会导致网络的负担更重,于是会 导致更大的时延以及更多的丢包,这个情况就会进入恶性循环被不断地放大...

TCP的四种拥塞控制算法

  1. 慢开始
  2. 拥塞避免
  3. 快重传
  4. 快恢复

慢开始与拥塞避免:

发送方维持一个叫拥塞窗口cwnd(congestion window)的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口,另外考虑到接受方的接收能力,发送窗口可能小于拥塞窗口。

慢开始算法的思路就是,不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到逐渐增加拥塞窗口的大小,是成倍增长。

为了 防止cwnd增长过大引起网络拥塞,还需 设置一个慢开始门限ssthresh状态变量。ssthresh的用法如下:

  1. cwnd < ssthresh,使用慢开始算法
  2. cwnd > ssthresh,使用拥塞避免算法
  3. cwnd = ssthresh,慢开始与拥塞避免算法任意

拥塞避免算法让拥塞窗口缓慢增长,即没经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍。这样拥塞窗口按线性规律缓慢增长。

发生超时重传就判断网络可能出现拥塞,那么就将ssthresh的值更新为发生拥塞时的cwnd的一半,然后将cwnd的值减少为1,重新开始执行慢开始算法。

快重传:

当接收方发现有数据包丢失时,立刻发送三个对应的ack,当发送方收到三个连续的ack时,立即重传。

快恢复:

当收到三个重复的ACK时,触发快重传机制,那么cwnd会变为原来的一半,然后ssthresh等于当前的cwnd,然后使用快恢复的算法,cwnd=ssthresh+3,然后继续使用拥塞避免算法。

流量控制和拥塞控制本质上的 区别

答:流量控制是端到端的控制,由接收方控制发送方;拥塞控制是对整个网络的控制,所有接入这个网络的设备都受其影响。

相关推荐
头疼的程序员11 小时前
计算机网络:自顶向下方法(第七版)第二章 学习分享(二)
学习·计算机网络
九成宫15 小时前
计算机网络期末复习——第5章:链路层 Part One
网络·笔记·计算机网络·软件工程
明洞日记18 小时前
【软考每日一练015】计算机网络:DNS 递归查询与迭代查询解析
git·计算机网络·github
爱浦路 IPLOOK18 小时前
轻量化5G实验室搭建方案:中小高校的低成本路径
计算机网络·5g·信息与通信
Qiuner18 小时前
软件工程计算机网络WindowService2008 DNS DHCP网络策略和访问策略IIS 相关配置 期末考试实操题操作题windows运维
运维·网络·windows·计算机网络
小李独爱秋18 小时前
计算机网络经典问题透视:试述资源预留协议RSVP的工作原理?
运维·服务器·网络·网络协议·计算机网络·rsvp
梁辰兴1 天前
计算机网络基础:虚拟专用网
服务器·网络·计算机网络·vpn·虚拟专用网·计算机网络基础·梁辰兴
小李独爱秋2 天前
计算机网络经典问题透视:数据流的平均速率,峰值速率和突发长度各表达什么意思?
网络·网络协议·计算机网络·安全·信息与通信
蜂蜜黄油呀土豆2 天前
深入理解计算机网络中的应用层知识
计算机网络·http·tcp·网络通信·dns
YYYing.2 天前
【计算机网络 | 第九篇】计网之传输层(三)—— TCP的拥塞控制与连接管理
网络·网络协议·tcp/ip·计算机网络