我对某些 TCP 段中的窗口大小值有点困惑。我想我了解窗口大小字段背后的理论,以及在连接建立期间提供窗口比例选项时如何修改它。但我正在检查以下 TCP 流
并意识到有些事情我不清楚。我将向您展示:
[SYN] Win=65535 WS=32
即实际窗口大小为 65535*32 = 2097120。但是,设备收到 SYN+ACK 段后,响应
[ACK] Win=131744
这实际上是计算值,通过将窗口大小字段 (4117) 的值乘以在 SYN 段内宣布的 WScale(即 2^5 = 32)获得。
而对方公布的窗口大小字段也有类似的情况:
[SYN,ACK] 赢=28960,WS=128
这导致计算出的窗口大小为 3706880。但是,流程的第 5 段宣布计算出的窗口大小仅为 30080。
由于在 SYN 段中宣布的窗口值比在后续段中的值大得多,我想相信 SYN 段以某种方式宣布了总缓冲区大小(即它可以宣布的最大窗口),而 ACK 段正在宣布它现在愿意接受多少。因此,从某种意义上说,该设备是在告诉它的对手,在未来的某个时候它可能会增加广告窗口。
谁能告诉我这个推理我是否正确?
提前致谢!
