拥塞控制可以分为开环控制和闭环控制。

开环控制是在设计网络时事先将发生拥塞的有关因素考虑到,力求网络在工作时不产生拥塞。

闭环控制是基于反馈环路的概念,措施

(1)检测网络系统以便检测到拥塞在何时、何处发生

(2)把拥塞发生的信息传送到可采取行动的地方

(3)调整网络系统的运行以解决出现的问题。

拥塞控制的四种算法:慢开始,拥塞避免,快重传,快恢复

拥塞控制基于窗口,发送方维持一个拥塞窗口(cwnd,拥塞窗口的大小取决于网络的拥塞程度,动态变化。

发送方的发送窗口的值等于 min(接收方通知的接受窗口值,拥塞窗口值)

慢开始算法:

一开始设置cwnd为1(1个报文段长度),每收到一个确认,cwnd加1,呈指数增长。

为了cwnd增长过大引起网络拥塞,设置慢开始门限ssthresh。

当cwnd<=ssthresh时,使用慢开始算法。

当cwnd>ssthresh时,使用拥塞避免算法。

拥塞避免算法:

每经过一个往返时间RTT,发送方拥塞窗口cwnd加1,所以拥塞避免阶段称为加法增大。

快重传算法:

接受方即使收到失序的报文段也要立即发出对已收到报文段的重复确认。

发送法只要一连收到3个重复确认,就说明并未出现网络拥塞,只是接受方少收到一个报文段M3,发送方立即重传收到的报文

不是因为网络拥塞引起的分组丢失:

一:IP数据报在分片时,但其中的一个数据报片未能及时到达终点,组装IP数据报时已超时。

二:IP数据报到达终点,但终点的缓存没有足够的空间存放此数据报

三:数据报在转发过程中经过一个局域网的网桥,但网桥在转发此数据报的帧时没有足够的存储空间只好丢弃。

快恢复:

当收到3个重复确认后,发送方把门限值设置为当前拥塞窗口值的一半,这个阶段又叫乘法减小。

出现超时,cnwd设为1,ssthresh为当前cnwd的一半

出现3ACK,cnwd和ssthresh均设置为当前cnwd的一半

 

 拥塞窗口是发送端根据网络拥塞情况确定的窗口值。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐