二層交換機(jī)的轉(zhuǎn)發(fā)過(guò)程描述
本文將淺談支持VLAN中二層交換機(jī)轉(zhuǎn)發(fā)的具體過(guò)程,通過(guò)圖文結(jié)合了解VLAN協(xié)議802.1Q文檔中的幀在數(shù)據(jù)包中的具體體現(xiàn)。
上圖就是二層交換機(jī)的具體轉(zhuǎn)發(fā)過(guò)程,下面對(duì)上圖中進(jìn)行具體的闡述。
首先,我們來(lái)看一下TPID這個(gè)是什么意思?
VLAN協(xié)議802.1Q文檔中的幀在數(shù)據(jù)包的中的體現(xiàn)為下圖:
標(biāo)簽協(xié)議識(shí)別符(Tag Protocol IdenTIfier, TPID): 一組16位元的域其數(shù)值被設(shè)定在0x8100以用來(lái)辨別某個(gè)IEEE 802.1Q的幀為已被標(biāo)簽的,而這個(gè)域所被標(biāo)定位置與乙太形式/長(zhǎng)度在未標(biāo)簽幀的域相同,這是為了用來(lái)區(qū)別未標(biāo)簽的幀。通過(guò)判斷此項(xiàng)的值是否是0x8100就可得出此幀是否是VLAN的幀。
優(yōu)先權(quán)代碼點(diǎn)(Priority Code Point, PCP): 以一組3位元的域當(dāng)作IEEE 802.1p優(yōu)先權(quán)的參考,從0(最低)到7(最高),用來(lái)對(duì)資料流作傳輸?shù)膬?yōu)先級(jí)。
標(biāo)準(zhǔn)格式指示(Canonical Format Indicator, CFI): 1位元的域。若是這個(gè)域的值為1,則MAC地指則為非標(biāo)準(zhǔn)格式;若為0,則為標(biāo)準(zhǔn)格式;在乙太交換器中他通常默認(rèn)為0。在以太和令牌環(huán)中,CFI用來(lái)做為兩者的相容。若幀在乙太端中接收資料則CFI的值須設(shè)為1,且這個(gè)端口不能與未標(biāo)簽的其他端口橋接。
虛擬局域網(wǎng)識(shí)別符(VLAN IdenTIfier, VID): 12位元的域,用來(lái)具體指出幀是屬于哪個(gè)特定VLAN。值為0時(shí),表示幀不屬于任何一個(gè)VLAN;此時(shí),802.1Q標(biāo)簽代表優(yōu)先權(quán)。16位元的值 0、1、0xFFF為保留值,其他的值都可用來(lái)做為小于4094個(gè)VLAN的識(shí)別符。此項(xiàng)表示VLAN ID的值是多少。
其次,我們來(lái)看看支持VLAN的交換表的表項(xiàng):
vlan switch查找switch table的時(shí)候是以Dmac+vlanid為關(guān)鍵字進(jìn)行查找對(duì)應(yīng)的發(fā)出端口號(hào)的,當(dāng)然此表和普通交換機(jī)一樣是可以自學(xué)習(xí)的。
最后,其它縮寫(xiě)解釋:
PVID:當(dāng)端口收到一個(gè)UNTAGED數(shù)據(jù)幀時(shí),無(wú)法確定在哪個(gè)VLAN中進(jìn)行交換,PVID定義了在這種情形下交換該幀的VLAN。從某種意義上講,可以把PVID理解為端口的default VLAN。
TAGED:如果一個(gè)端口在一個(gè)VLAN中的屬性是TAG的,那么,從該端口轉(zhuǎn)發(fā)出去的數(shù)據(jù)幀就是TAGED。(當(dāng)然,該數(shù)據(jù)幀是在該VLAN中交換的)
UNTAGED:如果一個(gè)端口在一個(gè)VLAN中的屬性是UNTAG的,那么,從該端口轉(zhuǎn)發(fā)出去的數(shù)據(jù)幀就是UNTAGED,但是在轉(zhuǎn)發(fā)之前要在交換機(jī)中進(jìn)行處理的時(shí)候要先加上PVID,以便能夠在沒(méi)有TAGED的包的時(shí)候有對(duì)應(yīng)的一張表對(duì)其包進(jìn)行轉(zhuǎn)發(fā)。