检测不同的以太网帧

网络工程 以太网 协议理论
2021-07-18 16:24:03

有人如何区分以太网协议中的不同数据包?它没有像高级协议那样使用的“长度”字段/区域。

因为这个协议在物理和逻辑范围内都有处理,我假设区别也是分开的。

是否使用“EtherType”协议字段执行逻辑分离?(即使用更高级别协议的类型获取数据包长度,在其报头中有一个长度字段)。

物理上的区别仅仅是不传输电信号吗?(据我所知,高/低电信号代表 0/1 位)。

2个回答

尽管 ytti 已回答,但您可能会对一些相关细节感兴趣...

有人如何区分以太网协议中的不同数据包?它没有像高级协议那样使用的“长度”字段/区域。

实际上以太网有多种封装:

  • 以太网 II(通常用于 IP,如 [RFC 894] 中所述,是最常见的封装):没有长度字段,而是使用类型字段......
       +----+----+------+------+-----+
       | DA | SA | Type | Data | FCS |
       +----+----+------+------+-----+
                 ^^^^^^^^

       DA      Destination MAC Address (6 bytes)
       SA      Source MAC Address      (6 bytes)
       Type    Protocol Type           (2 bytes: >= 0x0600 or 1536 decimal)  <---
       Data    Protocol Data           (46 - 1500 bytes)
       FCS     Frame Checksum          (4 bytes)
  • 802.2 LLC 以太网:具有长度字段
       +----+----+------+------+------+------+-----+
       | DA | SA | Len  | LLC  | SNAP | Data | FCS |
       +----+----+------+------+------+------+-----+
                 ^^^^^^^^

       DA      Destination MAC Address (6 bytes)
       SA      Source MAC Address      (6 bytes)
       Len     Length of Data field    (2 bytes: <= 0x05DC or 1500 decimal)  <---
       LLC     802.2 LLC Header        (3 bytes)
       SNAP                            (5 bytes)
       Data    Protocol Data           (46 - 1492 bytes)
       FCS     Frame Checksum          (4 bytes)

无论 802.2 的长度字段是否存在,您始终可以通过查找96 位帧间间隙来检测线路上以太网帧的结尾

是否使用“EtherType”协议字段执行逻辑分离?(即使用更高级别协议的类型获取数据包长度,在其报头中有一个长度字段)。

通过逻辑分离,我假设您的意思是以太网内部承载的不同协议之间的分离,例如区分 IPv4、IPv6 或生成树帧。

  • 以太网 II 通常使用类型字段
  • 802.2 LLC 以太网通常使用五字节的802.2 以太网 SNAP 扩展当 802.2 DSAP / SSAP 字节为 0xAAAA 时,协议仅使用 SNAP 扩展进行解码。

物理上的区别仅仅是不传输电信号吗?(据我所知,高/低电信号代表 0/1 位)

简单地说,是的,以太网帧之间有 96 位的差距;但是,请注意以太网使用8b/10b 编码(FastEthernet)和64b/66b 编码(千兆以太网),因此说“不传输电信号”在技术上是不正确的,因为 8b/10b 没有“静”状态。


出于好奇,我还链接到原始以太网版本 2 规范

以太网在开始和结束时具有前导码和起始帧定界符,它具有“IFG”或帧间间隙。这些用于确定帧的开始和结束。