为什么某些 VLAN Wireshark 捕获在 IPv4 负载后包含数据?

为什么某些 VLAN Wireshark 捕获在 IPv4 负载后包含数据?

数据

一些 Cloudshark 捕获显示 vLAN 的“尾部”,而有些则没有。

证据


捕获

  1. 附加 4 个字节。
  2. 没有多余的4个字节。

问题

为什么一些 并非所有VLAN Wireshark 捕获是否包含 IPv4 有效负载之后的数据?

答案1

如何通过读取标头准确预测带有 vLAN 标签的 IPv4 数据包的大小?

IPv4 数据包的报头中没有 VLAN 标记。只有以太网帧(第 2 层)报头才有 VLAN 标记。IPv4 数据包(第 3 层)是帧的有效负载,IPv4 数据包报头对帧报头中的内容一无所知。这是网络中的两个独立层,IPv4 可以由任意数量的第 2 层协议承载,同时对所使用的第 2 层协议一无所知。

如果您想知道 IPv4 数据包的大小,您可以在 IPv4 数据包头中查找“总长度”字段(IPv4 数据包头的第三和第四个八位字节)。

答案2

https://wiki.wireshark.org/以太网https://wiki.wireshark.org/VLAN

如果类型/长度字段是:

  • 0 - 1500:长度字段(IEEE 802.3 和/或 802.2)
  • 0x0800:IP(v4),互联网协议版本 4
  • 0x0806:ARP,地址解析协议
  • 0x8100:IEEE 802.1Q帧
  • 0x86dd:IPv6,互联网协议版本 6

因此,如果类型/长度字段为 0x8100,则以太网帧在类型/长度字段后包含 VLAN 标记。跳过 2 个字节,并将接下来的 2 个字节视为类型。对于 IPv4,该字节为 0x0800,您的 IPv4 数据包紧随其后。

相关内容