發布時間: 2022-02-16 14:26:22
以太幀格式,在以太網中有兩種數據幀封裝格式,分別是IEEE 802.3和Ethernet II(以太網二型)。
以太網物理層規范如圖1所示,該圖展示了IEEE 802.3中定義的以太網物理層規范。
圖1 以太網物理層規范
?兩種以太網數據封裝結構如圖2所示,該圖描述了IEEE 802.3和Ethernet II(以太網二型)兩種協議的封裝結構。
圖2 兩種以太網數據封裝結構
通過觀察可以發現,Ethernet II和IEEE 802.3數據結構很類似,無論Ethernet II還是IEEE 802.3,數據幀的封裝長度都是一樣的,幀頭為14字節,幀尾(FCS)為4字節,共計18字節,但是它們也有一些具體的區別,具體分析如下。Ethernet II數據幀封裝如圖3所示。
圖3 Ethernet II數據幀封裝?
1、以太網二型(Ethernet II)數據幀格式
① 前導碼:長度為8字節,為交替的0和1,在每個分組的開頭提供5 MHz的時鐘信號,讓接收設備能夠跟蹤到來的比特流。
② 目的地址:長度為6字節,是接收者的MAC地址,標識數據幀的接收者。目的地址類型可以是單播MAC地址、組播MAC地址或者廣播MAC地址,不同類型的MAC地址對應的接收者不同。
單播MAC地址是一對一的通信,只有真正的接收者才能接收數據幀;組播MAC地址是一對多的通信,接收者需要先加入對應的組播組才會接收數據幀,非組播組成員不會接收;廣播MAC地址也是一對多的通信,和組播MAC地址的區別在于廣播MAC地址是針對所有設備的,同一廣播域中的所有設備都能接收數據幀。
③ 源地址:長度為6字節,是發送者的MAC地址,標識數據幀的發送者,源地址類型只能使用單播MAC地址,不能使用組播或廣播地址。
④ 類型:長度為2字節,用于標識網絡層封裝協議。常見的以太類型有:0x0800,代表IPv4;0x86DD,代表IPv6;0x0806,代表ARP;0x8100,代表IEEE 802.1q;等等。
⑤ 數據:長度為46~1500字節,是網絡層可以填充的數據長度。
⑥ FCS:Frame Check Sequence,幀校驗序列,長度為4字節。FCS字段用于存儲CRC(Cyclic Redundancy Check,循環冗余校驗)結果。接收者收到數據幀后會首先對數據幀頭進行CRC校驗,將校驗結果和FCS中的內容進行對比,如果一致則接收數據幀,如果不一致則丟棄數據幀。
在采用Wireshark 抓包時看不到前導碼和FCS(幀尾),這是由于網卡收到數據包后會先去掉前導碼并對數據幀頭進行CRC校驗,只有校驗正確才會將數據幀交給上層應用處理,之前的校驗步驟都是由網卡驅動完成的,所以當采用Wireshark 抓包時是看不到前導碼和FCS(幀尾)的。一般情況下,以太網二型數據幀承載業務數據。
2.IEEE 802.3數據幀格式
IEEE 802.3的數據幀格式和Ethernet II的數據幀格式類似,具體說明如下。
① 前導碼:長度為7字節,為交替的0和1,在每個分組的開頭提供5 MHz的時鐘信號,讓接收設備能夠跟蹤到來的比特流。
② 幀起始位置分隔符(SOF):長度為1字節,其值為10101011,其中最后的兩個1讓接收者能夠識別中間0和1交替模式,從而同步并檢測到數據開頭。
③ 目的地址:長度為6字節,是接收者的MAC地址,標識數據幀的接收者。作用和以太網二型數據幀中的目的MAC地址相同。
④ 源地址:長度為6字節,是發送者的MAC地址,作用和以太網二型數據幀中的源MAC地址相同。
⑤ 長度:長度為2字節,標識IEEE 802.3數據幀的長度。
⑥ IEEE 802.2報頭和數據:長度為46~1500字節,是IEEE 802.2報頭和網絡層可以填充的數據長度。
⑦ FCS:Frame Check Sequence,幀校驗序列,長度為4字節。FCS字段用于存儲CRC(Cyclic Redundancy Check,循環冗余校驗)的結果。接收者收到數據幀后會首先對數據幀頭進行CRC校驗,將校驗結果與FCS中的內容進行對比,如果一致則接收數據幀,如果不一致則丟棄數據幀。
介紹完IEEE 802.3的數據幀結構,大家會發現一個問題,在IEEE 802.3的頭部中并沒有“以太網類型”字段,那么它是怎么來標識上層協議封裝的呢?實際上,IEEE802.3是通過攜帶IEEE 802.2的報頭來標識上層協議封裝的。
如圖4所示描述了IEEE 802.2封裝結構。
圖4 IEEE 802.2封裝結構
由圖4可知,從DSAP開始到Protocol ID結束是IEEE 802.2的封裝結構,IEEE802.2的封裝分為兩部分,分別是IEEE 802.2 LLC(Logical Link Control,邏輯鏈路控制)頭部和SNAP(Subnetwork Access Protocol,子網訪問協議)擴展。
① IEEE 802.2 LLC Header(IEEE 802.2 LLC頭部)長度為3字節,具體說明如下。
●DSAP(Destination Service Access Point,目的服務訪問點):1字節,標識數據接收者的網絡層邏輯地址(封裝協議);
●SSAP(Source Service Access Point,源服務訪問點):1字節,標識數據發送者的網絡層邏輯地址(封裝協議);
●Control(控制字段):1或2字節,用于標識數據格式,共有以下3種類型。
◆ U-fromat(Unnumbered format)PDU(無編號格式PDU):使用1字節的控制字段,標識用戶無連接服務的IEEE 802.2無編號數據格式,通常數據格式被設置為U-format;
◆ I-format(Information transfer format)PDU(信息傳輸格式PDU):使用2字節的控制字段填充序列號,標識面向連接的數據格式。
◆ S-format(Supervisory format)PDU(管理格式PDU):使用2字節的控制字段,標識在LLC中采用的管理數據格式。
② SNAP Extension(SNAP擴展)長度為5字節,由OUI和Type兩部分組成。
●OUI(Organizationally Unique Identifier,組織唯一標識符,又稱廠商唯一代碼):通常等于 MAC地址的前3字節,標識網卡廠商。
●Protocol ID(Ethernet Type):標識網絡層封裝協議,作用和以太網類型字段相同。
在IEEE 802.2的LLC頭部中已經可以通過DSAP和SSAP標識上層的封裝協議,那為什么還需要SNAP擴展呢?這是因為LLC的SSAP字段只有1字節,只能標識標準協議,像一些私有協議是無法標識的,這就需要通過SNAP擴展中的OUI和Protocol ID字段來標識廠商和上層協議。
SNAP擴展頭部是可選的,只有在封裝非標準協議時才需要SNAP擴展頭部。IEEE 802.2封裝PVST+協議報文結構如圖5所示,該圖顯示了思科私有協議PVST+的報文封裝,IEEE 802.2通過攜帶SNAP擴展頭部來標識PVST+私有協議。
一般情況下,IEEE 802.3的幀承載二層協議數據。
圖5 IEEE 802.2封裝PVST+協議報文結構
上一篇: 交換機轉發行為有哪些
下一篇: mac地址是什么意思