tcp.len和data.len过滤器有什么区别?我认为这两种方法都意味着在段中移动的数据大小(不包括TCP header)。我有一个与MTU问题相关的问题,我正在试图计算来自应用层的数据大小是否大于服务器宣布的MSS。
捕获显示了一些封装1434字节的TCP数据包:

但是TCP层分析使用len = 1448显示相同的TCP数据包。

我认为这个TCP段封装了1448位字节。1448 B+ 32B TCP报头(启用了一些TCP选项)加上20B IP报头= 1500字节,因为它显示在对IP层的分析中。
所以我有一个关于MSS clamping的问题。局域网客户端使用Ethernet连接到路由器,MTU =1500Bytes,路由器使用PPPoE连接,MTU =1492Bytes。路由器正在操作每个TCP数据包中的MSS字段,同时在两个方向上启用SYN flag,这称为MSS clamping。这样,LAN客户端从Internet上的服务器接收MSS = 1452,服务器从LAN客户端接收MSS = 1452。
但是,如果服务器宣布MSS < 1452会发生什么呢?局域网客户端将从服务器接收MSS = 1452,所以只有PMTUD才能在这里工作?
发布于 2014-05-12 10:13:00
当服务器的MSS小于1452时,路由器不应触及MSS。客户端将看到服务器发送的正确值。
如果Wireshark不解释TCP流中的数据,tcp.len和data.len将匹配。如果wireshark能够理解数据,它就可以更新data.len。他们不一定要匹配。
例如,在HTTP的情况下,data.len可以包含重新组装的HTTP请求的总长度,该请求被分散在多个TCP段上。
https://networkengineering.stackexchange.com/questions/7851
复制相似问题