拥塞窗口cwnd
- 发送方维持一个叫做拥塞窗口cwnd (congestion window)的状态变量。
- 拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。(如果再考虑到接收方的接收能力,那么发送窗口还可能小于拥塞窗口。)
- 发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。
- 只要发送方没有按时收到应当到达的确认报文,就可以猜想网络可能出现了拥塞
拥塞窗口cwnd的大小相关算法
慢启动
- 慢启动应用于连接刚刚建立,开始传输数据时。
以一个很小的报文段数量开始发送数据,每收到一个报文段的确认,则cwnd数量翻倍++。(乘2方式增加) - 为了防止拥塞窗口cwnd增长过大引起网络拥塞,还需要设置一个慢开始门限 ssthresh状态变量。慢开始门限ssthresh的用法如下:
当cwnd < ssthresh时,使用上述的慢开始算法。
当cwnd>ssthresh时,停止使用慢开始算法而改用拥塞避免算法。
当cwnd=ssthresh时,既可使用慢开始算法,也可使用拥塞避免算法。 - 慢启动门限,如果慢启动过程发送的报文段数量大小达到了慢启动门限,则进入拥塞避免。
拥塞避免
- 当CWND值达到慢启动阈值,开始使用拥塞避免,每收到一组报文段的确认,则对CWND+1(加法增大)
- 如何设置新

本文详细介绍了TCP的拥塞控制算法,包括拥塞窗口cwnd的概念、慢启动算法、拥塞避免策略、快速重传和快速恢复机制。通过慢启动门限ssthresh的设定,动态调整cwnd大小,旨在在网络未拥塞时增加数据发送,出现拥塞时快速减少数据注入,以保持网络稳定。
最低0.47元/天 解锁文章
1870

被折叠的 条评论
为什么被折叠?



