以太网 II 帧的类型可以是 Layer1 的协议还是 Layer4 的协议?

网络工程 第 2 层 线鲨
2022-02-18 05:54:12

Ethernet II 帧的 Type 字段可以是IPv4, ARP,所以可以是 Layer2 和 Layer3 的协议。

这是 WireShark 捕获的帧快照。

enter image description here

但是我有一个问题,是否可以是其他Layer的协议?比如Layer1还是Layer4?

3个回答

以太网 II 帧的类型可以是 Layer1 的协议还是 Layer4 的协议?

两者都不。以太网 II 帧是第 2 层 SDU(服务数据单元是数据在该层中打包的方式)。

它们最常携带(封装)第 3 层 SDU(IP 数据包),而后者又经常封装第 4 层 SDU(TCP 段、UDP 数据报……),进而传输应用层协议。

以太网帧还可以携带大量其他协议有效负载,包括 LLDP、STP BPDU 或其他第 3 层协议(IPv6、IPX、NetBIOS 等)。

第 1 层是物理层,定义物理传输协议,如 1000BASE-T,以及与之一起使用的电缆、端口……。

理论上,你可以放任何你想要的东西。但实际上,只定义了某些类型。

IANA 在此处列出了定义的以太类型。

但是我有一个问题,是否可以是其他Layer的协议?比如Layer1还是Layer4?

首先,与往常一样,网络模型(即层)只是抽象概念的模型,有助于开发能够与其他系统通信的系统。以太网类型字段不定义或关心“层”。类型字段的目的是使与从接收到的数据中删除 L2 报头相关的进程知道将相关数据交给下一个进程。

把它想象成一栋公寓楼。您的“L2 交通”通过地址在公寓楼收到,但没有指定它应该去哪个公寓,接下来要去哪里?当然,您可以包含收件人的全名,但标准化号码更有效。L2 不关心一旦交付到正确的公寓会发生什么样的处理或交付。

因此,您可以输入任何您想要的值,但只有某些类型被定义并被广泛接受。这就引出了一个问题:为什么要引用 L1 或 L4 协议(假设您指的是常见的 L4 协议,例如 TCP 或 UDP)?重点是什么?

在现代网络中,L2 进程没有理由删除 L2 标头并将相关数据传递给任何 L1 进程。事情就不是那样的。

L2 进程也没有理由将数据直接传递给 L4 进程,例如 TCP 或 UDP,因为它们被写入期望在 L3 使用 IP。有人可能会争辩说,当使用某些协议(例如 STP、LLDP 等)时,L2 数据直接传递给应用程序,但 L2 进程也不关心或不需要知道下一个进程在哪个“层”上正在运行。