最大限度。段大小与 TCP 段大小

网络工程 通讯协议
2021-07-12 10:50:12

我正在通过分析将大文件上传到 Web 服务器来学习 TCP 网络。

在syn、syn/ack、ack期间,服务端和客户端达成一致Maximum Segment Size = 1460这与我在网上看到的一致。

但是从我的 Wireshark 捕获中我可以看到每个 TCP 段实际上包含 2776 字节的数据。

显然,这是两件不同的事情,我误解了一些东西。

我的问题是:

TCP 段的数据长度是如何/何时/在哪里决定的?

1个回答

如果您指的是 Wireshark“数据长度”列,则它是一个 TCP 段的所有 IP 片段的总和。

这样做的原因是您的操作系统实际上正在向网卡发送大 TCP 段,而网卡对(较小的)MTU 进行分段,这就是为什么您看到您正在发送 2776 字节长的帧(相同我认为可能发生在接收方)。如果您直接嗅探线路(例如交换机),您只会看到 1518/1522 字节的帧。

这称为大段卸载,是网卡的功能。可以关闭它,然后操作系统将不得不向网卡发送低于 MTU 限制的帧。