【问题标题】:How identify the next layer protocol after Ethernet以太网之后如何识别下一层协议
【发布时间】:2012-08-01 07:48:35
【问题描述】:

您将如何识别以太网之后的下一层协议?以太网帧中是否有相同的规定?

【问题讨论】:

    标签: networking ethernet


    【解决方案1】:

    以太网帧包含一个Ethertype,一个指定上层协议的2字节字段。例如 IP 有 0x800。当网络引擎从网络接口接收到帧时,它会检查此字段并将其转发给适当的处理程序。

    【讨论】:

    • 这是正确的答案,假设他的框架是 Ether-II encap 而不是 SNAP
    【解决方案2】:

    ethertype(2 个字节,第 13 和第 14 个字节)通常位于目标 mac 和源 mac 之后。 以太网 II 也是如此。

    对于 802.3,有一种情况是 ethertype 被封装为 LLC SNAP 的一部分。 所以一般情况下,你可以检查第13和14字节是否确实是ethertype,然后使用它。

    如果不是 ethertype(ethertype 必须大于 0x05DC),那么你就知道它的有效载荷长度。 然后解析 LLC SNAP 以获取其中的 ethertype。

    【讨论】:

      【解决方案3】:

      这是以太网头

      DstMacAddr // 6 个字节

      SrcMacAddr // 6 个字节

      EthType // 2 个字节 -> ARP(0x0806)、IPv4(0x0800)、IPv6(0x86dd)、VLAN(0x8100) 等

      有效负载 // ARP、IPv4、IPv6 等

      FSC // CRC32

      【讨论】:

      • 除非帧有 VLAN 标签,否则您必须为此添加四个字节。
      猜你喜欢
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 2011-12-16
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多