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