802.1q 并非实际封入原始帧中。相反,在以太网帧格式里,在MAC地址源 与 以太网类型/长度 之间添加一个32位的域(field)。

image.png

VLAN标签领域必须遵守下列格式(4个字节):

16 bits    3 bits   1bit    12 bits

TPID        PCP     CFI      VID


标签协议识别符(Tag Protocol Identifier, TPID): 一组16位的域其数值被设置在0x8100,以用来辨别某个IEEE 802.1q的帧(也就是说0x8100代表了这个以太帧带了vlan),而这个域所被标定位置与以太形式/长度与未标签帧的域相同,这是为了用来区别未标签的帧。

802.1Qtag帧中tpid字段取固定值0x8100,如果不支持802.1Q的设备收到802.1Q帧,则将其丢弃。


优先权代码点(Priority Code Point, PCP): 以一组3比特的域当作IEEE 802.1p优先权的参考,从0(最低)到7(最高),用来对数据流(音频、视频、文件等等)作传输的优先级。


标准格式指示(Canonical Format Indicator, CFI): 1比特的域。若是这个域的值为1,则MAC地址则为非标准格式;若为0,则为标准格式;在以太交换器中他通常默认为0。

在以太和令牌环中,CFI用来做为两者的兼容:若帧从令牌环网发送报文到以太端口中接收,则CFI的值须设为1,且这个以太侧端口不能与未标签的其他以太端口桥接。


虚拟局域网识别符(VLAN Identifier, VID): 12位的域,用来具体指出帧是属于哪个特定VLAN。值为0时,表示帧不属于任何一个VLAN;此时,802.1q标签代表优先权。12位的值0x000和0xFFF为保留值,其他的值都可用来做为共4094个VLAN的识别符。在桥接器上,VLAN1在管理上做为保留值。这个12位的域可分为两个6比特的域以延伸目的(Destination)与源(Source)之48位地址,18位的三重标记(Triple-Tagging)可和原本的48位相加成为66比特的地址。