以太網幀格式
以太網幀發展
1980 DEC,Intel,Xerox制訂了Ethernet I的標准;
1982 DEC,Intel,Xerox又制訂了Ehternet II的標准;
1982 IEEE開始研究Ethernet的國際標准802.3;
1983 迫不及待的Novell基於IEEE的802.3的原始版開發了專用的Ethernet幀格式;
1985 IEEE推出IEEE 802.3規范;
后來為解決EthernetII與802.3幀格式的兼容問題推出折衷的Ethernet SNAP格式 。(其中早期的Ethernet I已經完全被其他幀格式取代了所以現在Ethernet只能見到后面幾種Ethernet的幀格式現在大部分的網絡設備都支持這幾種Ethernet的幀格式如:cisco的路由器在設定Ethernet接口時可以指定不同的以太網的幀格式:arpa,sap,snap,novell-ether)。
各種不同的幀格式
Ethernet II
該幀格式是DIX以太網聯盟推出的,它由6個字節的目的MAC地址,6個字節的源MAC地址,2個字節的類型域(用於表示裝在這個Frame里面數據的類型),接下來是46--1500 字節的數據,和4字節的幀校驗)
Novell Ethernet
它的幀頭與Ethernet II有所不同,其中Ethernet II幀頭中的類型域變成了長度域,后面接着的兩個字節為0xFFFF用於標示這個幀是Novell Ether類型的幀,由於前面的0xFFFF占掉了兩個字節所以數據域縮小為44-1498個字節,幀校驗不變。
IEEE 802.3 SAP
802.3的Frame Header和Ethernet II的幀頭有所不同,它把EthernetII類型域變成了長度域(與Novell Ethernet相同)。並且引入802.2協議(LLC),該協議在802.3幀頭后面添加了一個LLC首部。LLC由1個字節的DSAP(Destination Service Access Point) 、1字節的SSAP(Source SAP) 以及一個字節的控制域,SAP用於表示幀的上層協議。
IEEE 802.3 SNAP
Ethernet SNAP Frame與802.3/802.2 Frame的最大區別是增加了一個5字節的SNAP ID,其中前面3個字節通常與源mac地址的前三個字節相同,為廠商代碼。后2字節與Ethernet II的類型域相同。
各格式幀抓包結果
-
Ethernet II:
-
IEEE 802.3 SAP:
-
IEEE 802.3 SNAP:
總結
幀格式匯總
Ethernet II和IEEE802.3是局域網里最常見的幀,每種幀所能裝載的幀長度分別為:
Ethernet II可以裝載的數據長度是46---1500
IEEE802.3 SAP可以裝裝的數據長度是43---1497
IEEE 802.3 SNAP可以裝載的數據長度是38---1492
以太網幀最小長度為64字節,那么幀承載的數據加上幀頭如果不夠64字節就會發生數據填充,但是在協議之間是有區別的。
Ethernet II不提供MAC層的數據填充功能
IEEE802.3 SAP和SNAP都提供數據填充功能
因些,Ethernet II比IEEE802.3 SAP和SNAP更適合於傳輸大量的數據,但Ethernet II缺乏對數據鏈路層的控制,不利於傳輸需要嚴格傳輸控制的數據。實際中,大多數應用程序的以太網數據包都是Ethernet II幀的(HTTP/Telnet/FTP/SMTP/PO P3等應用),而交換機之間的BPDU是采用IEEE802.3 SAP幀,VLAN Trunk協議802.1Q和Cisco CDP都是采用IEEE802.3 SNAP幀。**
參考
https://www.cnblogs.com/mylinux/p/5553242.html
https://blog.csdn.net/marywang56/article/details/78295406