TCP MSS 未强制执行

问题描述

我正在两个虚拟机虚拟机之间做一些与 TCP 相关的实验。在客户端,我发送了一个带有 1400 字节 MSS 选项的 TCP 同步数据包。然而,服务器(发送方)似乎忽略了这个选项,并发送了一个负载非常大的数据包,比如 10000+ 字节。为什么服务器不支持 MSS 选项?顺便说一句,服务器是一个 Nginx 服务器。

在此下方显示问题的一些 PCAP。首先是 MSS = 1400 的 SYN 数据包。

enter image description here

其次是服务器发送的payload:

enter image description here

可以看出payload大小为11200。

顺便说一句,接口上的 MTU 是 1500 字节。

谢谢。

解决方法

通过与 Jim 的讨论。这个 LRO/GRO 的问题。如果我们想看到数据包出现在线路上,请关闭它。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...