幀格式

幀格式

幀格式是指根據不同協議規定的幀的格式。通常由“幀頭+數據信息”兩部分組成。

概念


幀格式,是指根據不同協議規定的幀的格式。通常由“幀頭+數據信息”兩部分組成。
目前的幀格式主要有乙太網幀格式、數據幀格式、802.3幀格式、MAC幀格式。

乙太網

目前,有四種不同格式的乙太網幀在使用,它們分別是:
1、Ethernet II即DIX 2.0:Xerox與DEC、Intel在1982年制定的乙太網標準幀格式。Cisco名稱為:ARPA。
2、Ethernet 802.3 raw:Novell在1983年公布的專用乙太網標準幀格式。Cisco名稱為:Novell-Ether。
3、Ethernet 802.3 SAP:IEEE在1985年公布的Ethernet 802.3的SAP版本乙太網幀格式。Cisco名稱為:SAP。
4、Ethernet 802.3 SNAP:IEEE在1985年公布的Ethernet 802.3的SNAP版本乙太網幀格式。Cisco名稱為:SNAP。
EthernetII幀格式:
在Ethernet 802.3 raw類型乙太網幀中,原來Ethernet II類型乙太網幀中的類型欄位被"總長度"欄位所取代,它指明其後數據域的長度,其取值範圍為:46-1500。接下來的2個位元組是固定不變的16進位數0xFFFF,它標識此幀為Novell以太類型數據幀。
Ethernet 802.3 SAP幀格式:
在Ethernet 802.3 SAP幀中,將原Ethernet 802.3 raw幀中2個位元組的0xFFFF變為各1個位元組的DSAP和SSAP,同時增加了1個位元組的"控制"欄位,構成了802.2邏輯鏈路控制(LLC)的首部。LLC提供了無連接(LLC類型1)和面向連接(LLC類型2)的網路服務。LLC1是應用於乙太網中,而LLC2應用在IBM SNA網路環境中。
新增的802.2 LLC首部包括兩個服務訪問點:源服務訪問點(SSAP)和目標服務訪問點(DSAP)。它們用於標識乙太網幀所攜帶的上層數據類型,如16進位數0x06代表IP協議數據,16進位數0xE0代表Novell類型協議數據,16進位數0xF0代表IBM NetBIOS類型協議數據等。至於1個位元組的"控制"欄位,則基本不使用(一般被設為0x03,指明採用無連接服務的802.2無編號數據格式)。
Ethernet 802.3 SNAP幀格式:
Ethernet 802. 3 SNAP類型乙太網幀格式和Ethernet 802. 3 SAP類型乙太網幀格式的主要區別在於:
2個位元組的DSAP和SSAP欄位內容被固定下來,其值為16進位數0xAA。 1個位元組的"控制"欄位內容被固定下來,其值為16進位數0x03。增加了SNAP欄位,由下面兩項組成:
新增了3個位元組的組織唯一標識符(Organizationally Unique Identifier,OUI ID)欄位,其值通常等於MAC地址的前3位元組,即網路適配器廠商代碼。

數據

LLC子層協議規範PDU格式:
1個位元組1個位元組1個或者2個位元組N個位元組
DSAPSSAP控制欄位LLC數據
DSAP:目的服務訪問點,全1 為全局地址,全0為空地址
SSAP:源服務訪問點
乙太網的幀格式:
前導字元目的MAC地址源MAC地址類型IP頭部TCP頭部數據幀校驗
IEEE802.3的幀格式:
前導字元目的MAC地址源MAC地址長度DSAPSSAP數據幀校驗
1、兩種幀格式前導字元都是 10101011作為幀開始的信號,表示一幀的開始。最後兩位是11,表示下面的欄位是目的地址。
2、當目的地址出現多址時,表示該幀被一組站同時接收,稱為“組播”(Multicast)。目的地址出現全地址時,表示該幀被區域網上所有站同時接收,稱為“廣播”(Broadcast),通常以DA的最高位來判斷地址的類型,若第一位元組最低位為“0”則表示單址,第一位元組最低位為“1”則表示組播。
3、乙太網幀格式“類型”用來說明後續數據的類型,IEEE802.3的幀格式“長度”用來說明後續數據(除了幀校驗欄位)的位元組長度。
令牌環網的MAC幀格式:
SDACFC目的地址源地址數據FCSEDFS
SD:幀首定界符
AC:訪問控制,AC欄位的編碼為PPPTMRRR,3P表示優先順序,3位R表示預約優先順序,T是令牌位(T=0表示此幀是令牌幀,T=1表示此幀是數據幀),M是監控位;
FC:幀控制,定義幀的類型。
FCS:幀校驗序列。
ED:幀尾定界符。
FS:幀狀態欄位。
令牌匯流排的MAC幀格式:
前導碼幀起始定界符SDFC目的地址源地址數據FCSED
FDDI(光纖分散式數據介面)的MAC幀格式:
前導碼幀起始定界符SDFC目的地址源地址數據FCSEDFS
前導碼:接收時鐘的同步。
幀起始定界符:表示幀的開始,在幀的數據欄位中不會出現。
FC:幀控制欄位,表示幀發送的類別。
ED:幀結束定界符,表示幀的結束,在幀的數據欄位中不會出現。
FCS:幀校驗序列。
FS:幀狀態欄位,用於返回地址識別、數據差錯及數據複製等狀態。
Radius報文的數據部分由三元組組成:
屬性編號(1位元組)整個屬性的長度(1位元組)屬性值(0到多位元組)
X.25 LAPB幀格式:
標誌F地址欄位A控制欄位C信息欄位I校驗序列FCS標誌F

IEEE802.3幀的結構

前導碼(Preamble):由0、1間隔代碼組成,可以通知目標站作好接收準備。
IEEE 802.3幀的前導碼佔用7個位元組,緊隨其後的是長度為1個位元組的幀首定界符(SOF)。乙太網幀把SOF包含在了前導碼當中,因此,前導碼的長度擴大為8個位元組。
幀首定界符(SOF:Start-of-Frame Delimiter):IEEE 802.3幀中的定界位元組,以兩個連續的代碼1結尾,表示一幀實際開始。
目標和源地址(DA、SA):表示發送和接收幀的工作站的地址,各佔據6個位元組。其中,目標地址可以是單址,也可以是多點傳送或廣播地址。
類型(乙太網):佔用2個位元組,指定接收數據的高層協議。
長度L(IEEE 802.3):表示緊隨其後的以位元組為單位的數據段的長度。
數據L(乙太網):在經過物理層和邏輯鏈路層的處理之後,包含在幀中的數據將被傳遞給在類型段中指定的高層協議。雖然乙太網版本2中並沒有明確作出補齊規定,但是乙太網幀中數據段的長度最小應當不低於46個位元組。
數據(IEEE 802.3:LLCPDU邏輯鏈路層協議數據單元):IEEE 802.3幀在數據段中對接收數據的上層協議進行規定。如果數據段長度過小,使幀的總長度無法達到64個位元組的最小值,那麼相應軟體將會自動填充數據段,以確保整個幀的長度不低於64個位元組。
LLCPDU——它的範圍處在46位元組至1500位元組之間。最小LLCPDU長度46位元組是一個限制,目的是要求區域網上所有的站點都能檢測到該幀,即保證網路工作正常。如果LLCPDU小於46個位元組,則發送站的MAC子層會自動填充“0”代碼補齊。
802.3一個幀的長度計算公式:
DA+SA+L+LLCPDU+FCS=6+6+2+(46~1500)+4=64~1518
即當LLCPDU為46個位元組時,幀最小,幀長為64位元組;當LLCPDU為1500位元組時,幀最大,幀長為1518位元組。
幀校驗序列(FCS:Frame Check Sequence):
該序列包含長度為4個位元組的循環冗餘校驗值(CRC),由發送設備計算產生,在接收方被重新計算以確定幀在傳送過程中是否被損壞。

MAC

一般802.11MAC幀幀格式
Frame controlDuration /IDAddress1Address2Address3Seq- ctlAddress4Frame bodyFCS
RTS幀格式:
請求發送幀(RTS)有20個位元組長,它包含有幀控制域、幀交換所需時間長度(duration)/關聯號(ID)域、兩個地址域和幀校驗域。發送這個幀的一個目的是將完成幀交換所需時間長度(duration)信息告知其鄰近的STA,也就是能收到RTS的STA就用收到的信息更新其NAV,從而防止了這些STA在告知的時間內發送信息,也就避免了衝突的發生。下圖定義了RTS的格式:
RTS幀中的RA標明的是一個無線媒體上的STA,該STA為即將發送的數據幀或者管理幀的接收者,而且在RTS幀中的RA必須是某個STA的MAC地址。TA標明的是傳送RTS幀的STA,它被由RTS中的RA標識的STA用來發送RTS的響應幀。在該幀中傳送的時間長度(duration)信息是完成一個4步驟幀交換(RTS、CTS、DATA、ACK)所需要的時間,它由這些時間構成:傳送1個CTS的時間、傳送1個數據或者管理幀的時間、傳送1個對數據或者管理幀應答的時間、以及在CTS和數據或者管理幀之間的幀間間隙(SIFS)和在數據或者管理幀和ACK之間的幀間間隙(SIFS)時間(一共3個SIFS)。時間長度(duration)是以微秒為單位的。如果計算的時間值不是整數,則取大於該值的最小整數。
CTS幀格式:
允許發送幀(CTS)有14個位元組長,它包含有幀控制域、幀交換所需時間長度(duration)/關聯號(ID)域、1個地址域和幀校驗域。發送這個幀的一個目的是將完成幀交換所需時間長度(duration)信息告知其鄰近的STA,也就是能收到CTS的STA就用收到的信息更新其NAV,從而防止了這些STA在告知的時間內發送信息,也就避免了衝突的發生。下圖定義了CTS的格式:
CTS中的RA標識的是接收該CTS的某個STA的MAC地址,在CTS中RA必須是某個STA的MAC地址。而RA的值是從接收到的RTS幀中的TA複製過來的,而此CTS就是作為接收到的RTS的響應幀。在該幀中傳送的時間長度(duration)信息是完成一個4步驟幀交換(CTS、DATA、RTS、ACK)所需要的時間,它由這些時間構成:傳送1個數據或者管理幀的時間、傳送1個對數據或者管理幀應答的時間、以及在數據或者管理幀和ACK之間的幀間間隙(SIFS)時間,也就是將收到的RTS幀中的時間長度(duration)減去傳送CTS時間和1個SIFS時間。
ACK幀格式:
確認(ACK)幀有14位元組長,包含有幀控制域、幀交換所需時間長度(duration)/關聯號(ID)域、1個地址域與幀校驗域。使用這個幀有兩個目的,一是對剛正確接收到的數據、管理幀、PS-Poll幀的確認。這也就告訴了ACK的接收者或者是剛收到的數據、管理幀、PS-Poll幀的發送者已經正確接收了,那麼也就不需要重傳剛收到的數據、管理幀、PS-Poll幀。ACK幀的第二個目的是在段突發傳送過程中,它可以將時間長度(duration)通知給段接收者的鄰近STA,這種情況下ACK就扮演了CTS的角色。
ACK幀的RA標識的是某個接收該幀的STA的MAC地址,而且在ACK中的RA必須是某個STA的MAC地址,RA是從剛接收到的數據幀,管理幀或者PS-Poll控制幀中的第2地址域複製過來的。如果接收到的數據幀或者管理幀中的幀控制域的More Fragment位被置為0,則長度域的值置為0。如果接收到的數據幀或者管理幀中的幀控制域的More Fragment位被置為1,則長度域的值置將接收到的數據幀或者管理幀的長度域的值減去傳送1個ACK幀的時間和1個SIFS得到。如果計算出的該值不是整數,則取大於該值的最小整數。
Beacon幀格式:
信標幀Beacon是相當重要的維護機制,主要用來宣告某個網路的存在。定期發送的信標,可讓移動工作站得知該網路的存在,從而調整加入該網路所必要的參數。在基礎型網路里,接入點必須負責發送 Beacon幀。Beacon幀所及範圍即為基本服務區域。在基礎型網路里,所有溝通都必須通過接入點,因此工作站不能距離太遠,占則便無法接收到信標。信標並不全會用到所有位。選擇性位只有在用到時才一會出現。

分析與應用


IEEE 802.3又叫做具有CSMA~CD(載波監聽多路訪問/衝突檢測)的網路。CSMA/CD是IEEE802.3採用的媒體接入控制技術,或稱為介質訪問控制技術。因此,IEEE 802.3是以“乙太網”為技術原型,本質特點是採用CSMA/CD的介質訪問控制技術。
IEEE 802.3協議標準系列中,數據鏈路層包括邏輯鏈路控制(LLC)子層和媒體訪問控制(MAC)子層。其中MAC位於LLC和物理層之間,它使LLC適應於不同的媒體訪問技術和物理媒體。MAC單獨作為一個子層,就不會因為媒體訪問方法改變而影響較高層次的協議。MAC由數據拆裝和媒體訪問管理兩個模塊組成,完成數據幀的封裝、解封、發送和接收功能。
Ethernet上發送的的數據是按一定格式進行的,並將此數據格式稱為幀。幀是一系列標準化的數據位,是乙太網系統的核心部件,乙太網站點採用發送信息幀的方式進行通信,幀是網路通信的基本單元,節點間發送任何信息,都要將內容放在幀的有效部分當中,通過一個或多個幀進行傳送。節點之間可靠的幀傳輸不僅是相互通信的保障,通過幀的傳輸還可以實現對網路的控制等各種功能。幀結構的目的是提供一種封裝來承載數據。幀的基本結構是由原始的DEC.Intel.Xerox(DIX)乙太網標準定義的,最後由IEEE 802.3X提出官方標準。

基本幀結構

從1998編輯版開始,802.3標準對MAC幀的結構作了重大的變化,增添了擴展幀,基本的幀格式也有了意義重大的變化。
前導碼:
處於mac幀開始處的欄位為前導碼欄位,由7個位元組組成。其功能是使接收器建立比特同步。編碼形式為多個“1”或“0”交替構成的二進位序列,最後一比特為“0”。在這種編碼形式下,經過曼徹斯特編碼後為一周期性方波。
幀首定界符(sfd):
幀首定界符(sfd)是man幀的第2個欄位,其編碼形式為“10101011”序列,長度剛好為一個位元組。該欄位的功能是指示一幀的開始。
目的地址欄位(da)和源點地址(sa):
目的地址欄位(da)為第3個欄位,長度為6個位元組。該欄位用來指出幀要發住的工作站。源點地址(sa)處於終點地址欄位之後,其長度也為6個位元組。該欄位功能是指示發送該幀的工作站地址。每個地址欄位如圖4所示。
a)每個地址欄位都是48比特長度。儘管IEEE802指定可用16位或者48位比特地址,但IEEE802.3的實現沒有使用16位比特地址。因此16位比特地址特別地被這個標準排除了。 b)第一位(LSB)將用於目的地址欄位作為地址類型標誌位用於識別目的地址是單地址還是組地址。如果這位是0,標識單地址;如果是1,標識組地址,組地址則可以是0個,1個,多個或者全部連接在LAN上的網路站。源地址欄位中第一位保留或設置為0。
c)第二位將用於區別局部或全局可管理地址。對全局可管理(U)地址,這一位設為0。如果一個地址是局部可管理的,這一位設為1。注意的是,對廣播地址而言,這一位仍然是l。 d)地址中位元組位序。乙太網同大多數數據通信系統一樣,傳輸一個位元組的順序是從最低有效位到最高有效。一般二進位數字最低位寫在最左邊,而最高位寫在最右邊,這被稱為小端形式或正規形式。一個位元組可以寫成兩個十六進位數字,第一個數字(最左邊)是最高位數字,第二個(最右邊)是最低位數字。例如,6位元組域:08.OO.60.01.ZC.4A 將按以下順序從左向右串列發送:00010000—00000000—00000110一10000000—00110100—
01010010
長度/類型欄位:
長度/類型欄位為第5個欄位,其長度為2個位元組,長度/類型欄位具有兩種意義中的一種。如果這個欄位的值小於1518,那麼這個欄位就是長度欄位,並定義後面的數據欄位的長度。但是如果這個欄位的值大於1518,它就定義使用網際網路服務的上層協議。長度域:0800H 表示數據為IP包,0806H 表示數據為ARP包,814CH是SNMP包,8137H為IPX/SPX包,(小於0600H的值是用於IEEE802的,表示數據包的長度。
2.5 MAC客戶數據欄位
MAC客戶數據欄位是幀要載攜的用戶數據,該數據有46-1500位元組長,由llc子層提供或接收。
其中,DSAP(1位元組)表示目的服務訪問點,指出MAC幀的數據應上交給哪一個協議,
SSAP(1位元組)表示源服務訪問點,指出該MAC幀是從哪一個協議發送過來的,另外還有1或2位元組的控制欄位。此三部分構成LLC幀的首部三個欄位。
2.6 填充(pad)欄位
填充(pad)欄位緊接的MAC客戶數據欄位之後,包含一個n位元組序列,它們可以是任意值,允許所有數據對傳輸的幀是透明的。當MAC客戶數據欄位的長度小於46位元組時,則應加以填充(內容不限),這樣,整個MAC幀(包含14位元組首都和四位元組尾部)的最小長度是64位元組或512bit。數據欄位的長度不能超過標準指定的最大值1500位元組。
2.7 幀檢驗序列(fcs)
幀檢驗序列(fcs)處於幀的最後,其長度為32比特,用於檢驗幀在傳輸過程中有無差錯。FCS是在傳輸之前,在DA、SA、長度/類型和數據+填充欄位上生成的。將傳輸的FCS值與新的FCS值比較,而新值是在接收該幀時計算得到的。這提供對DA、SA、長度/類型、數據+填充及幀校驗序列(FCS)欄位的差錯檢測。目前,採用使用CRC-32計算產生。

無效的MAC

802.3標準規定凡出現下列情況之—的即為無效的MAC幀:
(1)MAC客戶數據欄位的長度與長度欄位的值不—致;
(2)幀的長度不是整數個位元組;
(3)當收到的幀檢驗序列FCS查出有差錯。
(4)收到的幀的MAC客戶數據欄位的長度不在46~1500位元組之間。
對於檢查出的無效MAC幀就簡單地丟棄,乙太網不負責重傳丟失的幀。為什麼長度不夠的幀就是無效幀呢?
這是因為,CSMA/CD協議的一個要點就是當發送站正在發送時,若檢測到碰撞則立即中止發送,然後推后一段時間后再發送。如果所發送的幀太短,還沒有來得及檢測到碰撞就已經發送完了.那麼就無法進行碰撞檢測.因而就會使CSMA/CD協議變得沒有意義。因此,所發送的幀的最短長度應當要保證在發送完畢之前,必須能夠檢測到可能最晚來到的碰撞信號。這段時間就是乙太網的兩倍端到端往返時延。在802.3標準中,這段時間取為51.2us,對於10M Bit/s速率的乙太網,這段時間可以發送512bit。這樣就得出了MAC幀的最短長度為512bit,或64位元組。在接收端,凡長度不夠64位元組的幀就都認為是應當棄的無效幀。
MAC子層的標準還規定了幀間最小間隙為9.6us,相當於96bit的發送時間。這就是說,一個站在檢沒到匯流排開始空閑后,還要等待9.6us才能發送數據,這樣做是為了使剛剛收到數據幀的站接收緩存來路及清理做好接收下一幀的準備。