tcp.len
和data.len
过滤器有什么区别?我认为这两者都意味着在该段中传输的数据大小(不包括TCP header
)。我有一个与问题相关的MTU
问题,我正在尝试确定应用层的数据大小是否大于MSS
服务器宣布的数据大小。
捕获显示一些封装了 1434 字节的 TCP 数据包:
但是 TCP 层分析显示相同的 TCP 数据包与 len = 1448
我认为这个 TCP 段封装了 1448 字节。1448B 加上 32B 的 TCP 标头(启用了一些 TCP 选项)加上 20B 的 IP 标头 = 1500 字节,因为它在 IP 层的分析中显示。
所以我有一个与此相关的问题MSS clamping
。LAN 客户端使用Ethernet
MTU = 1500 字节连接到路由器,路由器使用PPPoE
MTU = 1492 字节连接到 Internet 。路由器MSS
在每个 TCP 数据包中操作字段,并SYN flag
在两个方向上启用,这称为MSS clamping
。这样 LAN 客户端从 Internet 上的服务器接收 MSS = 1452,服务器从 LAN 客户端接收 MSS = 1452。
但是如果服务器宣布 MSS < 1452 会发生什么?LAN 客户端会从服务器收到 MSS = 1452 所以只能PMTUD
在这里工作吗?