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