tcpdump报告的tcp数据包“大小”如何与发送的实际IP数据包相关联?

时间:2011-10-13 16:07:56

标签: linux sockets ip tcpdump mtu

当我运行tcpdump时 - 在最低和最高序列号之后的()之间报告的数字究竟是什么意思?

  1. 如果它与发送的IP数据包相关,它怎么能大于 1500的mtu?
  2. 始终在此流tcpdump的接收端 看到1448或更小的数据包 - 这些数据包在哪里 碎片整理并重新组装?我能用tcpdump看到吗?
  3. 此数字与tcp套接字的大小之间是否存在任何关系 缓冲器?
  4. 即:发件人的典型tcpdump:

    11:47:18.278352 IP 1.1.1.36.41034> 1.1.1.37.60960 :. 3263771:3272459(8688)获胜1胜54 11:47:18.278371 IP 1.1.1.36.41034> 1.1.1.37.60960 :. 3272459:3282595(10136)ack 1 win 54 11:47:18.278620 IP 1.1.1.36.41034> 1.1.1.37.60960 :. 3282595:3298523(15928)ack 1 win 54 11:47:18.278727 IP 1.1.1.36.41034> 1.1.1.37.60960 :. 3298523:3301419(2896)ack 1 win 54 11:47:18.278731 IP 1.1.1.36.41034> 1.1.1.37.60960:P 3301419:3301719(300)ack 1 win 54 11:47:18.777160 IP 1.1.1.36.41034> 1.1.1.37.60960:P 3301719:3301723(4)ack 1 win 54 11:47:18.777175 IP 1.1.1.36.41034> 1.1.1.37.60960 :. 3301723:3303171(1448)ack 1 win 54

    接收者:

    11:47:18.277895 IP 1.1.1.36.41034> 1.1.1.37.60960:P 990413:990417(4)ack 1 win 54 11:47:18.277948 IP 1.1.1.36.41034> 1.1.1.37.60960 :. 990417:991865(1448)ack 1 win 54 11:47:18.277953 IP 1.1.1.36.41034> 1.1.1.37.60960 :. 991865:993313(1448)ack 1 win 54 11:47:18.277958 IP 1.1.1.36.41034> 1.1.1.37.60960 :. 993313:994761(1448)ack 1 win 54 11:47:18.278028 IP 1.1.1.36.41034> 1.1.1.37.60960 :. 994761:996209(1448)ack 1 win 54

1 个答案:

答案 0 :(得分:1)

这是数据的长度,正如您可以看到的那样,如果您减去两个序列号(在SYN和FIN标志的会计+1之后,如果它们存在于数据包中)。

至于为什么它比MTU大,你的netword卡可以发送巨型帧(在1Gbps卡上非常正常),或者你的卡可以接受大段并在硬件上划分它们(称为LSO / GSO或类似的首字母缩略词)我似乎无法回想起来。)

修改:请参阅Large Segment Offload on Wikipedia