我們知道,對于IEEE 802網(wǎng)絡(luò),其媒體訪問控制(MAC,Medium Access Control)子層是基于開放系統(tǒng)互連/基本參考模型(OSI/RM)的第二層數(shù)據(jù)鏈路層(DLL)的一個子層。不同的MAC協(xié)議,確定了IEEE 802網(wǎng)絡(luò)的不同的媒體訪問控制方法,從而構(gòu)成成了IEEE 802網(wǎng)絡(luò)家族。其中,由IEEE 802.3標(biāo)準(zhǔn)規(guī)范了一種CSMA/CD的媒體訪問控制方法,即基于CSMA/CD技術(shù)的媒體訪問控制子層(MAC)協(xié)議,形成了以太局域網(wǎng)絡(luò),成為了IEEE 802網(wǎng)絡(luò)家族的重要一員。基于CSMA/CD技術(shù)的MAC子層通過分組格式、載波檢測/碰撞檢測時序的對應(yīng)、分組收發(fā)功能等與CSMA/CD方式非常相關(guān)的功能,執(zhí)行數(shù)據(jù)鏈路中的數(shù)據(jù)轉(zhuǎn)發(fā)功能。下述重點介紹基于CSMA/CD技術(shù)的媒體訪問控制(MAC)子層協(xié)議中的MAC幀結(jié)構(gòu)。
欲詳細了解基于CSMA/CD技術(shù)的以太局域網(wǎng)絡(luò)介紹的請接入。
一、MAC幀格式
1、幀格式構(gòu)成
以太局域網(wǎng)的MAC幀結(jié)格式詳見下圖1-1-1,它包括了同步信號、MAC地址、類型/長度、MAC數(shù)據(jù)信息和報尾等部分,圖中也顯示了各部分的長度(字節(jié)數(shù));這些部分共由9個字段組成(詳見下圖1-1-2,下述將分別介紹)。在以太網(wǎng)中雖然多臺工作站在傳輸媒體上利用CSMA/CD方式進行存取,但為了識別此時連續(xù)的兩幀,兩幀必須要存在9.6μs以上的間隔,這稱為幀間隙。
圖 1-1-1:以太局域網(wǎng)的MAC幀格式(橫式)
圖 1-1-2:以太局域網(wǎng)的MAC幀格式(豎式)
2、位(比特)發(fā)送順序
MAC幀由前同步信號的開頭字節(jié)開始向媒體(如同軸電纜)上發(fā)送,然后各字節(jié)由最初最低有效位(LSB),到最后最高有效位(MSB)的發(fā)送。也就是說,十六進制的“D5”變?yōu)槎M制的“1101 0101”后,在同軸電纜上需要按照1-0-1-0-1-0-1-1的順序發(fā)送。幀的發(fā)送順序詳見下圖1-2所示。(注意:作為IEEE802.5標(biāo)準(zhǔn)的令牌環(huán)及由ANSI進行標(biāo)準(zhǔn)化的FDDI中,規(guī)定以MSB為開始,LSB為最后的順序發(fā)送,這一點需要特別注意。)
圖 1-2:MAC幀的發(fā)送順序
二、前同步信號部分
8個字節(jié)的前同步信號部分如下圖2所示,它包括7個字節(jié)的前導(dǎo)碼字段和1個字節(jié)的幀首定界符(SFD)字段。前同步信號具有兩個作用,一個是用于時鐘恢復(fù)的PLL(鎖相環(huán),Phase Lock Loop)鎖定,另一個是用于識別幀的來源即源端。以太局域網(wǎng)在媒體(如同軸電纜)上連接著多臺工作站,在沒有任何一臺工作站發(fā)送幀時,同軸電纜上不存在信號。一旦有工作站開始發(fā)送幀,則同軸電纜上就會出現(xiàn)信號。由于每臺工作站都是按照自己的時鐘運作的,所以所發(fā)送的曼徹斯特編碼需要與各個發(fā)送工作站的時鐘同步。一般地,在以太局域網(wǎng)上的工作站自行判斷電纜上各幀的報頭中是否包含自己的地址,所以對于各個工作站,一旦出現(xiàn)幀,需要提取幀的報頭。提取報頭需要在各幀的曼徹斯特編碼上鎖定PLL,所以一出現(xiàn)幀就需要鎖定PLL。鎖定PLL多少需要一些時間。前同步信號應(yīng)用于在所接收到的曼徹斯特編碼鎖定PLL,因而PLL必須被設(shè)計為在傳輸前同步信號之時完成鎖定。前同步信號最后的字節(jié)稱為SFD(幀首定界符),它以“10101011”的模式,表示緊接著的字段為目的端地址,并表示幀的開始。
圖2:前同步信號
實際上前同步信號不是MAC的功能,而是物理層的功能,物理層的稱為PLS(Physical Layer Signaling,物理層信令子層)的功能將進行時鐘恢復(fù)。PLS在由MAC層添加地址字段之后的以太網(wǎng)幀中添加前同步信號,傳輸?shù)酵S電纜上。而且PLS從所接收到的信號流的前同步信號部分提取時鐘,將地址字段以后的幀送往MAC。
三、MAC地址部分
MAC地址用來標(biāo)識源MAC實體和目的MAC實體,即欲通信的兩個工作站。因此,MAC地址包括目的端地址與源端地址兩個字段,分別由6個字節(jié)(即48位)構(gòu)成,具體詳見下圖3。源端地址中添加了發(fā)送幀的工作站的地址,目的端地址中添加了幀所要到達的工作站的地址。地址位組的第1個比特為單/組(I/G)比特,緊接著的第2比特為全局/本地(U/L)比特,這兩個比特的含義詳見下表3-1所描述。
圖 3:MAC地址示意圖
表 3-1:I/G比特與U/L比特的含義
如圖3所示,全局管理地址是由3字節(jié)的制造商標(biāo)識及3字節(jié)的設(shè)備標(biāo)識構(gòu)成。制造安裝了以太網(wǎng)接口的計算機、路由器以及測試儀等的制造商向IEEE申請得到制造商地址,然后在接著的下3個字節(jié)中給每臺設(shè)備分配不同的地址,安裝到設(shè)備中。表3-2是IEEE已分配給制造商的制造商標(biāo)識中的示例,表3-3是全局管理的全局地址示例。
表 3-2:部分制造商標(biāo)識示例
表 3-3:全局地址示例
欲詳細了解IEEE 802網(wǎng)絡(luò)MAC地址管理的請接入。
以太局域網(wǎng)的系統(tǒng)擁有全世界惟一地址,這就意味著當(dāng)購買了某一臺安裝了以太網(wǎng)的設(shè)備時,即使將該設(shè)備攜帶到世界的任一地方,其地址也沒有必要更改。該地址充分考慮到了在目前的使用中的廣泛的可分配性,該地址除了I/G、U/L比特以外還有46比特,以全世界的人口進行分配,每個人可以使用一萬個地址。
前已經(jīng)說明,在以太局域網(wǎng)的情況下,向網(wǎng)絡(luò)上發(fā)送數(shù)據(jù)的轉(zhuǎn)發(fā)順序是從LSB開始傳輸,地址字段也理所當(dāng)然遵從該數(shù)據(jù)轉(zhuǎn)發(fā)順序。而在令牌環(huán)及FDDI的情況下,數(shù)據(jù)轉(zhuǎn)發(fā)順序則首先從MSB開始發(fā)送,但對于地址字段,則是從LSB開始發(fā)送的,這一點需要特別注意。換一種說法,就是所有的IEEE 802/FDDI的局域網(wǎng),都是從I/G比特開始傳輸?shù)摹?/span>
四、類型/長度字段
這兩個八位位組(2字節(jié))字段采用兩個含義之一,依賴于其數(shù)字值。對于數(shù)字評價,第1個八位位組是該字段的最高有效八位位組(MSB)。兩個字段的解釋詳見下表4-0,關(guān)鍵是該字段的長度解釋和類型解釋是互斥的。
表 4-0:長度解釋和類型解釋
1、類型字段
對于類型子段早期是指由施樂、DEC及英特爾三家公司所制定的以太網(wǎng)標(biāo)準(zhǔn)中的類型(Ethertypes),該類型字段只存在于最初的以太局域網(wǎng)標(biāo)準(zhǔn)中,它表示以太網(wǎng)的上層協(xié)議,具體示例如下表4-1所示,類型字段的分配是由IEEE注冊機構(gòu)管理的。各個工作站的分組處理軟件見到該字段信息,將會把分組傳遞給必要的協(xié)議軟件進行處理。現(xiàn)在幾乎所有的網(wǎng)絡(luò)都利用TCP/IP,其類型使用“0800”編碼。
表4-1:協(xié)議類型示例及編碼(十六進制)
2、長度字段
事實上,在IEEE 802.3標(biāo)準(zhǔn)中,利用長度字段代替了類型字段。2字節(jié)長度字段中添加了數(shù)據(jù)字段的字節(jié)數(shù)。當(dāng)利用IEEE 802.3標(biāo)準(zhǔn)的幀時,MAC層的上層必須安裝LLC(Logical Link Control,邏輯鏈路控制,由IEEE 802.2規(guī)范)子層,在這種情況下,前述的類型字段部分被安裝在LLC上。
五、數(shù)據(jù)字段與PAD字段
1、數(shù)據(jù)字段
數(shù)據(jù)字段即工作站所要傳輸?shù)男畔?shù)據(jù)的內(nèi)容,其字段最小為46字節(jié),最大為1500字節(jié)。數(shù)據(jù)字段最小46字節(jié)是為碰撞檢測所確定的。數(shù)據(jù)字段的最小值的確定是為了滿足實現(xiàn)碰撞檢測功能;其最大值是由最大幀長度和特定實現(xiàn)的地址長度參數(shù)來確定的。其最大值也與傳輸通道的差錯特性有關(guān)。在以太網(wǎng)中對每一幀進行校驗,然后丟棄分組含錯誤數(shù)據(jù)的幀,所以即使包含1比特的錯誤,整個幀也會被丟棄。一般地,在比特出錯率較高的線路上,需要縮短幀的長度。在以太網(wǎng)中規(guī)定同軸電纜的比特出錯率要低于10-8。由于1500字節(jié)為12 000比特,所以當(dāng)比特出錯率為10-8時,大約每10 000幀中可能會有一幀被丟棄。
2、PAD字段
PAD字段是數(shù)據(jù)字段的填充字段。為了正確的 CSMA/CD協(xié)議操作而要求一個最小幀長度,如果必要,數(shù)字段可通過添加額外的并以八位位組為單位的位(即填充)來擴充,這種擴充是添加在該數(shù)據(jù)字段之后,但在經(jīng)計算并添加的 FCS之前。如果有填充,其長度由 MAC客戶供給的數(shù)據(jù)字段長度、最小幀長度以及特定現(xiàn)實的地址長度參數(shù)來確定。
六、報尾部分
1、幀校驗序列(FCS)字段
4字節(jié)的幀校驗序列(FCS)字段,在以太網(wǎng)中也利用CRC(循環(huán)冗余碼校驗)作為校驗功能,它使用32比特的CRC,其生成多項式由下式生成:
G(x)= x 32+ x 26+x 23+x 22+x 16+x 12+x 11+x l0+x 8+ x 7+ x 5+ x 4+ x 2 + x + 1
該值是作為源地址、目的地址、長度、LLC數(shù)據(jù)和填充(即除了前導(dǎo)碼、SFD、FCS和擴充之外的所有字段)的內(nèi)容的函數(shù)來進行計算而得到的。由于是32次的生成多項式,所以可以校驗到32比特所有的錯誤,而且不能校驗出33比特的碎發(fā)性錯誤的概率為2-31,34比特以上的碎發(fā)性錯誤不能校驗的概率為2-32。
2、擴展字段
擴展字段緊跟在 FCS字段后面,并且由擴展位序列組成,,可迅速地區(qū)分開擴充位和數(shù)據(jù)位。該字段的長度在0至(slot Time-min Frame Size)位的范圍內(nèi),包括0位和(slot Time-min Frame Size)位。Slot Time-min Frame Size在802.3標(biāo)準(zhǔn)中規(guī)定。擴展字段的內(nèi)容不包括在 FCS計算內(nèi)。
欲進一步了解802.3標(biāo)準(zhǔn)的國內(nèi)標(biāo)準(zhǔn)GB/T 15629.3中MAC幀結(jié)構(gòu)規(guī)定的請接入。