【发布时间】:2012-08-01 07:48:35
【问题描述】:
您将如何识别以太网之后的下一层协议?以太网帧中是否有相同的规定?
【问题讨论】:
标签: networking ethernet
您将如何识别以太网之后的下一层协议?以太网帧中是否有相同的规定?
【问题讨论】:
标签: networking ethernet
以太网帧包含一个Ethertype,一个指定上层协议的2字节字段。例如 IP 有 0x800。当网络引擎从网络接口接收到帧时,它会检查此字段并将其转发给适当的处理程序。
【讨论】:
ethertype(2 个字节,第 13 和第 14 个字节)通常位于目标 mac 和源 mac 之后。 以太网 II 也是如此。
对于 802.3,有一种情况是 ethertype 被封装为 LLC SNAP 的一部分。 所以一般情况下,你可以检查第13和14字节是否确实是ethertype,然后使用它。
如果不是 ethertype(ethertype 必须大于 0x05DC),那么你就知道它的有效载荷长度。 然后解析 LLC SNAP 以获取其中的 ethertype。
【讨论】:
这是以太网头
DstMacAddr // 6 个字节
SrcMacAddr // 6 个字节
EthType // 2 个字节 -> ARP(0x0806)、IPv4(0x0800)、IPv6(0x86dd)、VLAN(0x8100) 等
有效负载 // ARP、IPv4、IPv6 等
FSC // CRC32
【讨论】: