【问题标题】:why does libpcap/tcpdump add/pad '0x00' bytes at the end of IP/TCP packets?为什么 libpcap/tcpdump 在 IP/TCP 数据包末尾添加/填充 '0x00' 字节?
【发布时间】:2016-01-27 20:15:40
【问题描述】:

我同时使用 Tcpdump 和 libpcap(一个使用 libpcap 的程序)来捕获 TCP 数据包。而且我注意到有一些数据包在最后填充/添加了额外的 0x00 字节。例如,虽然 IP 标头中指示的 IP 长度表示长度为 40 字节,但 tcpdump 捕获 46 字节。我注意到 TCP 数据包末尾有 6 个0x00 字节。

【问题讨论】:

    标签: libpcap tcpdump


    【解决方案1】:

    他们不添加那些字节。

    发送数据包的机器发送,因为这是以太网所必需的。

    一个 40 字节的 IP 数据包在以太网上发送时,长度为 54 字节,因为在 IP 标头和有效负载之前有一个 14 字节的以太网标头。

    但是,以太网上的最小数据包长度是 60 字节(不包括末尾的 4 字节 FCS)。这意味着必须将数据包填充到 60 字节,这意味着在末尾添加 6 字节的填充。

    (这就是 IP 标头具有长度字段的原因之一 - 以便数据包的接收者知道多少是 IP,多少是填充。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-21
      • 2012-04-24
      • 2013-06-12
      • 2019-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-02
      相关资源
      最近更新 更多