计算机网络怎么实现拥塞控制?

Posted 知识浅谈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络怎么实现拥塞控制?相关的知识,希望对你有一定的参考价值。


拥塞控制四大特点

TCP慢启动、拥塞避免、快重传、快恢复

含义解释

慢启动

拥塞窗口(cwnd)每次增加以二倍的方式增加。

Eg:​​如果cwnd当前为2,下次cwnd就会变为4.​

拥塞避免

拥塞窗口(cwnd)每次增加以加1的方式增加。

Eg:​​如果cwnd当前为2,下次cwnd就会变为3​

快重传

当接收方收到的失序的报文段后,就立刻发出3次重复确认。而不要等待自己发送数据时才进行捎带确认,捎带确认是发送数据帧的同时携带确认报文。

快恢复

当发送方接收到连续的三个重复确认时,执行乘法减小方法,sshd(拥塞窗口阈值)减少为当前sshd(拥塞窗口阈值)的一半,然后cwnd变为当前的sshd(拥塞窗口阈值)的一半,并使用拥塞避免的方法进行报文传递,使拥塞窗口缓慢增大。

合并解析

初始启动

cwnd的初始值为1,为了防止数据窗口突然增大造成拥塞,刚开始的时候采用慢启动的方法,当第一次发送接收到确认之后,cwnd加倍变为2,以此类推,知道cwnd的数值大于拥塞窗口阈值sshd的时候,采用拥塞避免的方法,按照每次加1的方式进行拥塞窗口的扩大.

网络超时

无论在慢启动阶段还是在拥塞控制阶段,只要网络出现超时,sthresh置为cwnd的一半,将cwnd置为1,并开始使用慢启动的算法进行拥塞窗口扩大。

报文段失序

当出现一个失序的报文段的时候,就进行快重传,接收方连续发送3哥确认,当发送方接收到快重传的三个确认的时候,进行快恢复,发送方接收到连续的三个重复确认时,执行乘法减小方法,sshd(拥塞窗口阈值)减少为当前sshd(拥塞窗口阈值)的一半,然后cwnd变为当前的sshd(拥塞窗口阈值)的一半,并使用拥塞避免的方法进行报文传递,使拥塞窗口缓慢增大。


以上是关于计算机网络怎么实现拥塞控制?的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络 | 谈谈TCP的流量控制与拥塞控制

TCP拥塞控制及BBR原理分析

linux内核工程导论-网络:tcp拥塞控制

tcp 拥塞控制引擎&状态机

tcp 拥塞控制引擎&状态机

计算机网络湖科大微课堂笔记 p60-63 TCP的流量控制拥塞控制超时重传时间的选择可靠传输的实现