未知以太类型

网络工程 以太网 包分析
2021-07-24 06:47:32

我正在解析以太网数据帧。

它的形式为:(destination_mac_6_bytes) + (source_mac_6_bytes) + (ether_type_2_bytes)。

通常,我看到像 Ox86dd (IPv6) 这样的以太网类型。

但是我遇到了这个 etherType:Ox0036。

目标 mac 地址为 1:80:c2:0:0:0。源 mac 地址是路由器之一。

有谁知道这是什么?我在互联网上找不到任何参考资料。也许它不是 EtherType,但它是什么?

谢谢

3个回答

有谁知道这是什么?

正如 Ron Maupin 已经写过的那样,值高达 1500 的“EtherType”字段被解释为“数据长度”,即 EtherType 字段之后的有效数据字节数。(“有效”的意思是:不包括帧末尾的填充字节)。

0x0036 表示“EtherType”字段后面有 54 个数据字节。

但是,该帧不一定是802.3帧,也可以是802.2帧。

如果你想知道它是哪种类型的数据包,有以下几种可能:

1) 802.3

802.3 帧不包含有关承载的数据包类型的信息。也不可能确定区分 802.2 和 802.3 数据包。

这意味着目标计算机必须能够区分数据包类型和有效载荷数据,或者在以太网中只能使用一个单一的第 3 层协议(使用最多 1500 的 EtherType 字段)。

Linux(例如)使用以下假设:

如果 EtherType 字段后面的两个数据字节是0xFF 0xFF,则这两个字节是 IPX 数据包的前两个字节;否则以太网帧是 802.2 帧(见下文)。

2) 802.2 (有限责任公司)

(见维基百科词条

802.2 帧在 EtherType 字段和实际数据之间有一个额外的 3 或 4 字节长度的报头。EtherType 字段包含数据的长度,包括这 3 或 4 个字节。

在最常见的情况下,EtherType 字段后的第一个字节是一个描述数据包类型的偶数值,后面跟着一个具有相同值或值加 1 的字节。

示例:如果EtherType 后跟0xF0 0xF00xF0 0xF1,则该数据包为NetBEUI 数据包;如果后跟0xE0 0xE0,则为 IPX 数据包。

如果第 3 个字节的两个低位都置位,则额外的头为 3 个字节长;否则它是 4 个字节长。

3) 快照

如果“EtherType”字段之后的两个字节是0xAA 0xAA(也可能是0xAA 0xAB),则 3 或 4 字节 802.2 (LLC) 额外标头后跟 40 位数据包类型。这可以是 EtherType 值(前 3 个字节为零)或制造商特定值(前 3 个字节是制造商代码)。

示例(EtherType 字段后面的数据字节):

  • 0xAA 0xAA 0x03 0x00 0x00 0x00 0x86 0xDD ...

    以太网类型 = 0x86DD (IPv6)

  • 0xAA 0xAB 0x01 0x46 0x00 0x11 0x22 0x12 0x34 ...

    制造商的专有协议类型 0x1234 00:11:22

对于 802.3 以太网,您有长度,而不是 EtherType 字段。以太网 II 没有那个,而是使用该字段作为 EtherType。由于以太网 MTU 定义为 1500 ( 0x05DC),因此 EtherType 值为十进制 1536 ( 0x0600)。任何等于或小于十进制 1500 的值都意味着它是使用长度值的 802.3 以太网。

目标 MAC 地址 01:80:c2:00:00:00 由生成树协议使用,并且是 Ron 回答的旧 802.3 以太网格式。Wireshark 可以很好地解码。逻辑链路控制字段 0x42 位于确认 STP 的长度字段之后。