3. IEEE 802.3
前面提到過以太網和IEEE 802.3的區別下面我們來看看IEEE802.3具體格式
IEEE802.3是發布的RFC標準由802.3的頭和尾以及802.2的LLC頭部組成。
因為增加了LLC頭部的3或者4個字節,有效載荷會減少3或者4個字節。控制字段為1或者2字節。
字段說明:
幀初始同步 7字節長,每字節由10101010組成,使接收端同步
開始分隔符 1字節長 由10101011組成,指示幀開始
這2個字段正好和以太網的幀初始同步字段相同。
目的地址 和以太網II基本相同,不同的是該地址還支持2字節的地址
源地址 和以太網II基本相同,不同的是該地址還支持2字節的地址
長度 2字節長,指示從LLC頭開始字節到有效載荷的最后一個字節的字節數,不包括IEEE 802.3的頭和FCS字段 ,最小是46 (0x002E)最大是1500(0x05DC)
幀校驗序列(FCS) 4字節 和以太網一樣
IEEE802.2 LLC的頭
DSAP 目的服務訪問字段,1字節長,指明幀的目的上層協議類型
ASAP 源服務訪問字段,1字節長,指明幀的源上層協議類型
控制 1字節或者2字節,確定的長度要看被封裝的LLC數據類型,是LLC數據報(類型1)1字節,LLC對話的一部分(類型2)2字節。
類型1 表明是無連接的,不可靠的LLC數據報,控制字段用0x03指明
類型2 表明是面向連接可靠的LLC會話。
注意:如何區分IEEE 802.3的幀和以太網II的幀?
兩種格式的幀源地址后字段含義不同,IEEE 802.3 是長度,長度范圍是在區間[46,1500],十六進制[0x002E,0x05DC],以太網II是以太網類型,值最小位0x0600XNS(Xerox的網絡系統)協議,大于1500.
4. IEEE 802.3 SNAP
雖然IEEE 802.3是標準,但沒有被業界采用。以太網II已成事實標準。于是IEEE 802.3擴展產生 IEEE 802.3 SNAP 來兼容以太網網頭部協議,在IEEE 802.2 LLC 頭部后插入了SNAP頭部
為了標識SNAP幀,DSAP和SSAP在LLC頭都被設置成SNAP定義的值0xAA,所有SNAP的封裝沒有使用可靠的LLC服務,所以控制設置成0x03
SNAP頭部字段說明
組織代碼 3字節長,指明維護接下來2字節意義的組織,對IP和 ARP,該字段被設置為0x00-00-00
如果組織代碼為0x00-00-00,接下來2字節就是以太網類型IP 0x0800 ARP 0x0806
因為增加了LLC頭部的3字節和SNAP頭部的5字節所以有效載荷比以太網II少8個字節

抓包截圖
在Windows server 2003 和XP中默認使用以太網II來封裝的,對于接收這2中格式都可以,但默認情況下僅會用以太網II封裝的幀響應,如果需要更改默認配置可以修改下列注冊表鍵值
ArpUseEtherSNAP
Location:HKEY_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Data Type:REG_DWORD
Valid range:0-1
Default value:0
Present by default:No
該
鍵值決定在發送IP或ARP是否使用IEEE 802.3
SNAP,1表示用,0表示不用。默認是0,表示IP或ARP用以太網II發送。不論怎么設置2中類型的幀都能接收。如果設為1,用IEEE 802.3
SNAP封裝請求幀,如果對端不能識別則無法通信。但當以下2種情況之一出現時會轉換到以太網II封裝,用IEEE 802.3
SNAP封裝的ARP請求幀得到以太網II響應或者收到用以太網II封裝的ARP請求。