Untag 就是普通的 ethernet 報文,普通 PC 機的網卡是能夠識別這樣的報文進行通信。 Tag 報文結構的變化是在源 mac 地址和目的 mac 地址以後,加上了 4bytes 的 vlan 信息,也就是 vlan tag 頭,通常來講這樣的報文普通 PC 機的網卡是不能識別的。 ide
帶 802.1Q 的幀是在標準以太網幀上插入了 4 個字節的標識,其中包含: spa
1) 2 個字節的協議標示符( TPID ),當前置 0X8100 的固定值,代表該幀帶有 802.1Q 的標記信息。 接口
2) 2 個字節的標記控制信息( TCI ),包含了三個域: it
l priority 域,佔 3bits ,表示報文的優先級,取值 0 到 7 , 7 爲最高優先級, 0 爲最低優先級,該域被 802.1Q 採用; io
l 規範格式指示符域( CFI ),佔 1bits , 0 表示規範格式,應用於以太網, 1 表示非規範格式,應用於 Token Ring 。 class
l VLAN ID 域,佔 12bits ,用於標識 VLAN 的歸屬。 方法
以太網端口的三種鏈路類型: access, trunk, hybridim
Access 類型的端口只能屬於 1 個 VLAN ,通常用於鏈接計算機的端口; 數據
Trunk 類型的端口能夠容許多個 VLAN 經過,能夠接收和發送多個 VLAN 的報文,通常用於交換機之間鏈接的端口; 協議
Hybrid 類型的端口能夠容許多個 VLAN 經過,能夠接收的發送多個 VLAN 的報文,能夠用於交換機之間鏈接,也能夠用於鏈接用戶的計算機。
Hybrid 端口能夠容許多個 VLAN 的數據不帶 tag ,而 802.1Q 的 trunk 只能是 native vlan (即 pvid )對應的 vlan 的數據不帶 tag ,應該說 hybrid 能夠實現 trunk 端口的特性。實際使用時均可以用 hybrid 端口,而不用 trunk 。
Hybrid 端口和 Trunk 端口在接收數據時,處理方法是同樣的,惟一的不一樣之處在於發送數據時, hybrid 端口能夠容許多個 VLAN 的報文發送時不打標籤,而 trunk 端口只容許缺省 VLAN 的報文發送時不打標籤。
交換機接口出入數據處理過程:
接收:
1. Access 端口
1) 收到一個二層幀
2) 判斷是否有 VLAN 標籤,沒有轉到第 3 步,有則轉到第 4 步
3) 打上端口的 PVID ,並進行交換轉發
4) 若 VLAN 標籤和 PVID 一致,轉發 VLAN 幀,不然直接丟棄
2. Trunk 端口
1) 收到一個二層幀
2) 判斷是否有 VLAN 標籤,沒有轉到第 3 步,有則轉到第 4 步
3) 打上端口的 PVID ,並進行交換轉發
4) 判斷該 trunk 端口是否容許該 VLAN 幀進入,容許則轉發,不然直接丟棄
注意: trunk 口容許或不容許 VLAN 幀,是對進入的幀而言的,對出去的幀沒有限制
3. hybrid 端口
1) 收到一個二層幀
2) 判斷是否有 VLAN 標籤,沒有轉到第 3 步,有則轉到第 4 步
3) 打上端口的 PVID ,並進行交換轉發
4) 判斷該 hybrid 端口是否容許該 VLAN 幀進入,容許則轉發,不然直接丟棄。
能夠看到, trunk 和 hybrid 口對接收到得數據幀的處理規則是同樣的。
發送:
1. Access 端口
將報文的 VLAN 信息剝離,直接發送出去
2. Trunk 端口
比較端口的 PVID 和將要發送報文的 VLAN 信息,若是二者相等則剝離 VLAN 信息,再發送;若是不相等則直接發送
3. Hybrid 端口
判斷該 VLAN 在本端口的屬性( disp interface 便可看到該端口對哪些 VLAN 是 untag ,哪些 VLAN 是 tag ),若是是 untag 則剝離 VLAN 信息,再發送;若是是 tag 則直接發送。