企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
## 3.7 TCP拥塞控制 TCP必须使用端到端的拥塞控制,因为IP层不向端显式提供网络拥塞反馈。 TCP拥塞控制方法:发送方感知网络状态,无拥塞则增加速率,有拥塞则减少速率。 拥塞窗口(Congestion Window,cwnd):发送方速率受到此变量限制,v=cwnd/RTT * 一个丢失的报文段意味着拥塞,发送方需要降低发送速率。 * 一个确认的报文段意味着网络正常,发送方可以增加发送速率。 * 发送方实行带宽探测。 ### 3.7.1 TCP拥塞控制算法 TCP拥塞控制算法(TCP Congestion Control Algorithm) **慢启动状态(Slow-start)**:初始 cwnd 值较小,为一个 MSS * 每接收到一个确认报文,cwnd 增加一个 MSS,即无拥塞状态下指数增长; * 出现丢包事件,ssthresh=cwnd/2,cwnd=MSS,重新进入慢启动状态; * 当 cwnd 大于等于 ssthresh 时,慢启动模式停止,进入拥塞避免模式; * 检测到3个冗余ACK,TCP执行快速重传,并进入快速恢复状态; **拥塞避免状态**:每个 RTT 只将 cwnd 增加一个 MSS,线性增加。 * 出现丢包,ssthresh=cwnd/2,cwnd=MSS,重新进入慢启动状态; * 检测到3个冗余ACK,TCP执行快速重传,之后快速恢复状态; **快速重传状态**:对每个冗余的 ACK,cwnd 增加一个MSS,当丢失报文段的一个ACK到达,则进入拥塞避免状态。 **TCP拥塞回顾**:加性增,乘性减。 **对吞吐量宏观描述**:一条连接的平均吞吐量 = 0.75 \* W / RTT(W为窗口长度)。 **经高带宽路径的TCP**:一条连接的平均吞吐量 = 1.22 \* MSS / RTT / sqrt\(L\)(L为丢包率)。