在网络中资源需求大于资源供给,便会产生网络的拥塞。
目的:拥塞控制是防止过多的数据注入到网络中,使网络中的路由器或链路不过载,这是一个全局性的。
流量控制是点对点的通信量的控制,是端到端问题。
拥塞的标志:
-
数据的丢失,产生重传
-
接收方对某一数据连续三次的确认都是拥塞的标志。
辅助拥塞:路由器提供拥塞的标志。
图
片
来
自
于
网
络
\color{purple}{ 图片来自于网络}
图片来自于网络
四种拥塞控制方法:
1.
慢
开
始
\color{green}{ 1. 慢开始}
1.慢开始
2.
拥
塞
控
制
\color{green}{ 2. 拥塞控制}
2.拥塞控制
3.
快
重
传
\color{green}{ 3. 快重传}
3.快重传
4.
快
恢
复
\color{green}{ 4. 快恢复}
4.快恢复
图
片
来
自
于
网
络
\color{purple}{ 图片来自于网络}
图片来自于网络
至于为什么是三次重复确认然后立即重传:车小胖的回答 - 知乎
涉及到一个概率问题。
图
片
来
自
于
网
络
\color{purple}{ 图片来自于网络}
图片来自于网络
cwnd开始发包的时候是执行慢开始过程的,从1开始,每次是2^n增加,到达慢启动阈值ssthresh的时候,启用拥塞控制方法,每次cwnd只增加1.
常
规
:
\color{red}{ 常规:}
常规:当出现拥塞的时候,慢启动阈值会变成此时cwnd的一半,即cwnd/2=ssthresh。并且cwnd重新执行慢开始过程。
快
恢
复
:
\color{red}{ 快恢复:}
快恢复:慢启动阈值同样会降为cwnd的一半,但是直接在阈值处执行拥塞控制方法,没有了慢开始的过程。
只要出现了拥塞标志,那么便会重复上一过程,即使在慢启动的时候出现,依然会这样。
引用文献:https://blog.youkuaiyun.com/qq_41431406/article/details/97926927