为什么802.1Q不封装原始帧?

why 802.1Q does not encapsulate the original frame?

正在研究VLAN。经过几个小时的搜索,我知道 802.1Q 并没有封装原始帧,而是在源 MAC 地址和原始帧的“EtherType”字段之间添加了一个 32 位字段。但我不知道为什么。有人可以向我解释为什么 802.1Q 不封装原始帧吗?非常感谢。

802.1q 的前身是 Cisco 的 ISL。 ISL 确实完全封装了框架。这意味着当任何设备接收到 ISL 帧时,它必须能够理解 ISL 标记,否则整个帧将被视为格式错误。

在 802.1q 中,帧的前 12 个字节,无论是否标记,总是相同的。

为了准确说明标签修改了什么,这里是没有标签的帧的数据包捕获,然后是带有标签的相同帧:

橙色括号部分全部来自原帧。绿色括号部分是 802.1q 标签添加到帧中的部分。

请注意,在这两种情况下,前 12 个字节是目标 MAC 地址和源 MAC 地址。

此外,在这两种情况下,帧的接下来的2个字节都是一个"EtherType"字段,它指示封装在数据报中的下一个协议。

这意味着无论传输设备是否理解 802.1q 标签,对该帧的处理都不会改变。这意味着 802.1q 标签仍会 "work" 通过设备...

  • 年龄较大,不支持或理解 802.1q 标签
  • 未针对特定标签配置为 read/look
  • 构建为仅检查任何帧的前 12 个字节,因此它可以决定如何转发数据包的线速,这就是 Cut-Through switching.
  • 中的策略

总的来说,它允许 VLAN 和 VLAN 标记的实施和标准化,而无需修补曾经创建的每个进行Layer 2处理的设备教他们如何解释"fully encapsulated VLAN tagging strategy"(如 ISL)。相反,需要支持 VLAN 的设备可以打补丁以理解 802.1q,传输中的所有其他设备都可以继续运行而无需大惊小怪。

诚然,如今很少会遇到不理解 VLAN 的主机或交换机,但请从 VLAN 和标记的概念首次发明时的角度考虑。