目的
提高 TCP 协议可靠的机制
也是控制 滑动窗口 大小的机制。
示例
- 场景一
女朋友:我重要还是游戏重要?
我:游戏重要。
女朋友:我漂亮还是你前女友漂亮?
我:都还行,不过前女友更高。
女朋友:给你三分钟重新组织语言的机会。
我:我说得没错啊!
女朋友:分手吧,我们不合适!
我:?????
以上对话纯属YY,这就是在作死的边缘疯狂试探。
拥塞控制 是一个逐渐试探的过程,发送方 在初始他条件下设置一个比较小的 滑动窗口(慢开始),发一下数据试试,如果没有 丢包,说明网络畅通,就开始尝试一个更大的 滑动窗口。如果还没有 丢包,继续扩大 滑动窗口 大小,一直出现丢包了,缩小窗口大小。
- 拥塞控制图
- 刚开始慢开始启动 拥塞窗口大小增长是非常快的,为了不增长的那么快, 因此不能使 拥塞窗口 单纯的加倍;
- 此处引入一个叫做慢启动的阈值;
- 当拥塞窗口超过这个阈值的时候, 不再按照指数方式增长,而是按照线性方式增长
- 当TCP开始启动的时候,慢启动阈值等于窗口最大值;
- 在每次超时重发的时候, 慢启动阈值会变成原来的一半,同时拥塞窗口置回1。