以太網幀格式:
各字段解釋:
DMAC:目的MAC地址,該字段確定幀的接收者。
SMAC:源MAC地址,該字段標識發送幀的工作站。
Type:上層協議類型(0x0800:IP;0x0808:ARP;0x8100:VLAN;)
Data:數據字段的最小長度必須為46字節以保證幀長至少為64字節,這意味着傳輸一字節信息也必須使用46字節的數據字段。如果填入該字段的信息少於46字節,該字段的其余部分也必須進行填充。數據字段的最大長度為1500字節。
CRC:用於幀內后續字節差錯的循環冗余檢驗(也稱為FCS或幀檢驗序列)。
VLAN幀格式:
各字段解釋:
Destination address:目的MAC地址。
Source address:源MAC地址。
Type:表示幀類型。取值為0x8100時表示802.1Q Tag幀。如果不支持802.1Q的設備收到這樣的幀,會將其丟棄。
PRI:表示幀的優先級,取值范圍為0~7,值越大優先級越高。用於當阻塞時,優先發送優先級高的數據包。如果設置用戶優先級,但是沒有VLANID,則VLANID必須設置為0x000。
CFI:用於區分以太網幀、FDDI幀和令牌環網幀。在以太網中,CFI的值為0。
VID:表示該幀所屬的VLAN。
Length/Type:指后續數據的字節長度,但不包括CRC檢驗碼。
Data:數據。
CRC:幀檢驗序列。
幀示例
深入理解:
1、data數據為什么是46~1500個字節?
以太網幀的最小長度64byte是由CSMA/CD限制所致
通過比較,選擇1518(6+6+2+1500+4)個字節的幀長度,有效傳輸效率最高。
2、CRC如何校驗幀?
在要發送的幀后面附加一個校驗碼,生成一個新幀發送給接收端。(當然,這個附加的校驗碼不是隨意的,它要使所生成的新幀能與發送端和接收端共同選定的某個特定數整除。)到達接收端后,再把接收到的新幀除以(同樣采用“模2除法”)這個選定的除數。(因為在發送端發送數據幀之前就已通過附加一個數,做了“去余”處理(也就已經能整除了)),所以結果應該是沒有余數。如果有余數,則表明該幀在傳輸過程中出現了差錯。
ps:
模2除法:二進制下的除法,異或,即相同為0,不相同為1。
CSMA/CD:帶沖突檢測的載波監聽訪問,其工作原理簡單總結為:先聽后發,邊發邊聽,沖突停發,隨機延遲后重發。
QinQ幀格式:
重要字段解釋:
ETYPE:長度為2字節,表示幀類型。取值為0x8100時表示802.1Q Tag幀。如果不支持802.1Q的設備收到這樣的幀,會將其丟棄。
對於內層VLAN tag,該值設置為0x8100;對於外層VLAN tag,有下列幾種類型
- 0x8100:思科、華為路由器使用
- 0x88A8:Extreme Networks switches使用
- 0x9100:Juniper路由器使用
- 0x9200:Several路由器使用
幀示例