首页/网络/协议速查/慢启动与初始拥塞窗口
本包目录(405 条)
HTTP 方法与状态码91 条HTTP 头与缓存70 条DNS 与域名解析60 条
TCP 与 UDP54 条
TLS 与加密50 条IP 与 ICMP37 条邮件与文件传输43 条

慢启动与初始拥塞窗口

连接刚建立时不知道网络容量,cwnd 从初始窗口(Linux/RFC 6928 为 10 MSS)出发每 RTT 翻倍,呈指数增长直到丢包或达到 ssthresh。

协议速查网络更新于 2026-10-12

观察 cwnd 增长

观察 cwnd 增长
ss -ti '( dport = :443 )' | head -20
# 输出中的 cwnd:10 即 10 个 MSS
sysctl net.ipv4.tcp_slow_start_after_idle   # 空闲后是否重新慢启动
初始窗口10 MSS ≈ 14.6KB(RFC 6928),历史值为 3
增长每收到一个 ACK +1 MSS(指数)
退出cwnd ≥ ssthresh 或检测到丢包
短连接为主的业务几乎全程处在慢启动:连接复用、增大初始窗口、TFO 都能降低感知延迟。

易错点

  • tcp_slow_start_after_idle 默认 1:长连接空闲后再发数据会重新慢启动,交互型长连接可考虑关闭

数据来源与参考

  • RFC 6928(初始窗口 10)
  • RFC 5681 §3.1

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌