以太网标记帧的Ethertype字段

如果802.1q创buildEthertype字段更改为0x8100这意味着什么 – 它是一个802.1q帧。

但这意味着Ethertype不再用于标记更高级别的协议,例如IPv4的0x0800。

丢失IPv4标记的Ethertype字段和802.1q标记帧有什么后果? 假设L3协议没有改变。

谢谢。

结果是帧的接收端必须知道什么是0x8100。 如果它不能识别帧types,它将无法接收它。 大多数Windows版本无法处理标记的帧(没有第三方软件)。 大多数* nix系统可以,但通常需要特殊configuration。

L3层以下的层不会在意:像简单的L2交换机这样的networking设备不会以任何不同的方式处理数据包。 值得注意的是,802.1Q不是第一个使用IPv4中不同EtherType的协议。 有十几个EtherTypes,你会发现在networking中相对常见的用法。

当一个普通的以太网帧被转换成802.1Q标记的帧时,原始的Ethertype字段不会被覆盖。 您原来的推定 – 当“802.1q创buildEthertype字段更改为0x8100” – 是不正确的。

802.1Q标准使用标签来改变原始帧。 当一个普通的以太网帧转换成802.1Q时,在源MAC地址和原Ethertype字段之间插入一个特殊的32位字段(标签)。 所以原始的Ethertype字段不会丢失,但会被802.1Q标签的32位右移。

而且802.1Q标签的格式是这样的 ,即其第一个16位字段携带与原始以太网Ethertype字段相同types的信息。 虽然它实际上被称为TPID(标签协议标识符)字段。 该字段位于与普通以太网帧中Ethertype字段完全相同的位置,因此用于将帧与未标记的帧进行区分。 所以当感兴趣的一方parsing以太网帧头并在假定的Ethertype字段中发现0x8100值时,它知道这实际上不是Ethertype字段,而是802.1Q标记帧的802.1Q的TPID字段。 为了得到实际的Ethertype值,parsing器将需要忽略刚刚读取的16位字段和随后的16位(802.1Q标记的32位总数)。