为什么 Linux 服务器响应的 TCP 数据包多于客户端请求的 MSS

Rak*_*aks 5 networking tcp linux-kernel

嗯,我看到了一件奇怪的事情,这不是我所期望的 TCP 理论。客户端在握手时将 MSS(最大段大小)设置为 1360,窗口大小为 64K,但 Linux 服务器发送的 TCP 数据包包含 4KB、7KB、一些 8KB 的数据包(超过 1360),我预计它会小于 1360 字节

我通过执行 tcpdump 然后在 WireShark 中看到它来观察到这一点

我没想到服务器每个 TCP 数据包发送超过 1360 字节,我对 TCP 工作原理的理论理解是否有误?

dim*_*mba 2

首先,正如 @fernacolo 所说,不要混淆 MSS 和 MTU。

也许您的界面的通用分段卸载已开启 - 请阅读此处以获取更多信息。