跳到正文

TCP

共 2 篇 · 全部标签

滑动窗口与拥塞控制

实测:本机接收窗口自动调谐把通告窗口从 65280 抬到 261888 字节;8 MB 回环传输的 61 条纯 ACK 里有 41 条各确认整 65536 字节(=两次应用写切出的 2 个段),与 netsh 读回的"延迟 ACK 频率 2"对齐;零窗后发送端按 315.0/605.5/1211.4 毫秒翻倍探测;整场传输 cwnd 恒为 654950 字节 = 10×MSS,与 netsh 的"初始拥塞窗口 10 MSS"对上,而 SndLimTransCwnd=0 说明它一次都没限制过发送;TCP_NODELAY 开关在回环上对 8 次单字节写毫无差别(都是 8 段、每条自带一个 ACK)。

TCP 连接管理

实测:本机 TIME_WAIT 只停留 119–120 秒(不是资料里常见的 240 秒);backlog=5 时 40 条 SYN 里只有 5 条拿到 SYN/ACK,另外 35 条被 RST,而应用要等 2.03–2.07 秒才收到 10061;服务端带着未读数据 close 会让对端拿到 10054 而不是 EOF,且两侧都不产生 TIME_WAIT;每请求新建连接的成本是复用的 5.9 倍;保活探测实测周期 3.01 秒、对端 19 微秒内用 SACK 确认那 1 个字节。