本文将浅谈支持VLAN中二层交换机转发的具体过程,通过图文结合了解VLAN协议802.1Q文档中的帧在数据包中的具体体现。
上图就是二层交换机的具体转发过程,下面对上图中进行具体的阐述。
首先,我们来看一下TPID这个是什么意思?
VLAN协议802.1Q文档中的帧在数据包的中的体现为下图:
标签协议识别符(Tag Protocol Identifier, TPID): 一组16位元的域其数值被设定在0x8100以用来辨别某个IEEE 802.1Q的帧为已被标签的,而这个域所被标定位置与乙太形式/长度在未标签帧的域相同,这是为了用来区别未标签的帧。通过判断此项的值是否是0x8100就可得出此帧是否是VLAN的帧。
优先权代码点(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标签代表优先权。16位元的值 0、1、0xFFF为保留值,其他的值都可用来做为小于4094个VLAN的识别符。此项表示VLAN ID的值是多少。
其次,我们来看看支持VLAN的交换表的表项:
vlan switch查找switch table的时候是以Dmac+vlanid为关键字进行查找对应的发出端口号的,当然此表和普通交换机一样是可以自学习的。
最后,其它缩写解释:
PVID:当端口收到一个UNTAGED数据帧时,无法确定在哪个VLAN中进行交换,PVID定义了在这种情形下交换该帧的VLAN。从某种意义上讲,可以把PVID理解为端口的default VLAN。
TAGED:如果一个端口在一个VLAN中的属性是TAG的,那么,从该端口转发出去的数据帧就是TAGED。(当然,该数据帧是在该VLAN中交换的)
UNTAGED:如果一个端口在一个VLAN中的属性是UNTAG的,那么,从该端口转发出去的数据帧就是UNTAGED,但是在转发之前要在交换机中进行处理的时候要先加上PVID,以便能够在没有TAGED的包的时候有对应的一张表对其包进行转发。 |