拥塞控制机制

面试官提问:
请简要介绍一下 TCP 中的拥塞控制机制,特别是拥塞窗口(cwnd)的含义以及慢启动过程。

应聘者参考回答:
TCP 拥塞控制的核心目的是防止发送方因发送速率过快而造成网络拥塞。为此,TCP 在发送方引入了一个**拥塞窗口(Congestion Window,简称 cwnd)**的概念。

拥塞窗口的定义与作用:

  • 拥塞窗口 cwnd 是发送方根据网络拥塞状况动态调整的窗口大小,用于限制发送速率;
  • 与接收方通告的接收窗口不同,cwnd 反映的是发送方对网络当前可承受能力的估计;
  • 实际发送窗口 = min(cwnd, rcv_wnd),即取拥塞窗口和接收窗口中的较小值作为可发送数据上限。

拥塞控制的主要算法:慢启动(Slow Start)

  1. 初始阶段:
    • cwnd 初始化为 1 个 MSS(最大报文段长度);
    • 每收到一个 ACK,cwnd 增加 1 个 MSS,即指数增长。
  2. 示例流程:
    • 第 1 次发送:发送 1 个数据段,收到 ACK 后 cwnd = 2;
    • 第 2 次发送:发送 2 个数据段,收到 2 个 ACK 后 cwnd = 4;
    • 第 3 次发送:发送 4 个数据段,cwnd = 8;
    • 以此类推,指数级增长直到到达慢启动阈值(ssthresh)
  3. 之后进入拥塞避免阶段(Congestion Avoidance),cwnd 增长转为线性,以防过度增加导致拥塞。

特点与总结:

  • 拥塞窗口是发送方使用的控制手段,与接收方的通告窗口互补;
  • 拥塞控制适应网络实际带宽状况,避免链路过载;
  • 通过“慢启动”实现快速探测可用带宽,后续通过线性增长稳步扩大发送能力。

该机制是 TCP 协议实现可靠性与公平性的关键之一,确保网络稳定运行。

😀 关注 @公众号 程序员陈子青,获取更多 C++ 技术支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员陈子青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值