802.11成幀封裝實現(一)


 

      

以太網的幀封裝十分簡單,只要為幀加上同步信號、一些地址信息,以及在結尾加上檢驗碼即可。相對而言,802.11的幀封裝就比較復雜,因為無線介質必須將有線網絡所沒有的幀類型,以及各式管理功能納入考慮。

802.11幀主要有三種類型。數據幀好比 802.11的馱馬,負責在工作站之間傳輸數據。數據幀可能會因為所處的網絡環境不同而有所差異。控制幀通常與數據幀搭配使用,負責區域的清空、信道的取得以及載波監聽的維護,並於收到數據時予以正面的應答,借此促進工作站間數據傳輸的可靠性。管理幀負責監督,主要用來加入或退出無線網絡,以及處理接入點之間連接的轉移事宜。

 

1.1     控制幀

控制幀主要在協助數據幀的傳遞。它們可用來監督無線介質的訪問(但非介質本身),以及提供MAC層次的可靠性。

1.1.1   一般的幀控制位

為控制幀均使用相同的 Frame Control(幀控制)位,如圖1-1所示。

 

      圖1-1:控制幀中的Frame Control 位

l  Protocol(協議版本)

在圖1-1 中,協議版本的值為 0 ,因為這是目前絕無僅有的版本。未來可能會出     其他新的版本。

l  Type(類型)

控制幀的類型識別碼為 01。定義上,所有控制幀均使用此識別碼。

l  Subtype(次類型)

此位代表發送控制幀的次類型。

l  ToDS 與FromDS bit

控制幀負責處理無線介質的訪問,因此只能夠由無線工作站產生。傳輸系統並不會收送控制幀,因此這兩個 bit必然為 0 。

l  More Fragments(尚有片段)bit

控制幀不可能被切割,這個 bit必然為 0 。

l  Retry(重試)bit

控制幀不像管理或數據幀那樣,必須在序列中等候重送,因此這個 bit必然為0 。

l  Power Management (電源管理)bit

此bit用來指示、完成當前的幀交換過程后,發送端的電源管理狀態。

l  More Data(尚有數據)bit

More Data bit 只用於管理數據幀,在控制幀中此 bit必然為0 。

l  Protected Frame(受保護幀)bit

控制幀不會經過加密。因此對控制幀而言,Protected Frame bit 必然為 0。

l  Order(次序)bit

控制幀是基本幀交換程序(atomic frame exchange operation )的組成要件,因此必須依序發送。所以這個 bit必然為 0 。

1.1.2   RTS (請求發送)

RTS幀可用來取得介質的控制權,以便傳輸「大型」幀。至於多大稱之大型:是由網卡驅動程式中的 RTS threshold(門限)來定義。介質訪問權只能保留給單點傳播(unicast)幀使用,而廣播(broadcast)與組播(multicast )幀只須發送便是了。RTS 幀的格式如圖 1-2所示。

就和所有控制幀一樣,RTS 幀只包含標頭。幀主體中並未包含任何數據,標頭之后即為FCS (幀檢查碼)。

 

        圖1-2:RTS幀

RTS的MAC標頭由四個位構成:

l   Frame Control(幀控制)

Frame Control位並沒有任何特殊之處。幀的 subtype(次類型)位設定為 1011,代 表 RTS幀。除此之外,它與其他的控制幀具備相同位。(在 802.11規格書中,最高效 bit乃是最后一個bit,因此在 subtype 位中,第 7 個bit代表最高效 bit。)

l  Duration (持續時間)

RTS幀會試圖預定介質使用權,供幀交換程序使用,因此 RTS 幀發送者必須計算 RTS幀結束后還需要多少時間。圖 1-3說明了整個交換過程,總共需要三個 SIFS、一個CTS、最后的ACK,加上發送第一個幀或幀片段所需要的時間。(fragmentation burst 〔片段宣泄期〕會使用后續的幀片段來更新 Duration 位。)傳輸所需要的微秒數經過計算后會置於 Duration 位。假使計算的結果不是整數,就會被修正為下一個整數微秒。

 

        圖1-3:RTS幀的Duration 位

 Address 1 位;Receiver Address (接收端地址)

接收大型幀的工作站的地址。

Address -2 位:Transmitter Address (發送端地址)

RTS幀的發送端的地址。

1.1.3   CTS (允許發送)

CTS幀有兩種目的,其格式如圖 1-4 所示。起初,CTS幀僅用於應答 RTS幀,如果之前沒有RTS出現,就不會產生 CTS 。后來,CTS幀被 802.11g 防護機制用來避免干擾較舊的工作站。

 

        圖1-4:CTS幀

CTS幀的 MAC標頭由三個位構成:

l  Frame Control( 幀控制)

幀的subtype(次類型)位被設定為 1100,代表 CTS 幀。

l  Duration (持續時間)

用來應答 RTS 時,CTS幀的發送端會以 RTS 幀的 duration 值作為持續時間的計算基准。RTS會為整個 RTS-CTS-frame-ACK 交換過程預留介質使用時間。不過當 CTS 幀被發送出后,只剩下其他未幀或幀片段及其回應待傳。CTS幀發送端會將 RTS 幀的duration 值減去發送CTS幀及其后短幀間隔所需的時間,然后將計算結果置於 CTS 的Duration 位。圖 1-5顯示了 CTS duration 與RTS diratopm的關系。

 

        圖1-5二CTS的持續時間

l  Address 1 位:Receiver Address (接收端地址)

CTS幀的接收端即為之前 RTS幀的發送端,因此 MAC會將 RTS幀的發送端地址復制到CTS幀的接收端地址。802.11g保護操作所使用的 CTS 幀會被發送給發出 RTS 的工作站,而且只用來設定 NAV。

1.1.4   ACK (應答)

ACK幀(圖 1-6 )就是 MAC以及任何數據傳輸(包括一般傳輸 RTS/CTS交換之前的幀、幀片段)所需要的正面應答(positive acknowledgment)。服務質量擴展功能放寬了個別數據幀必須各自得到應答的要求。

 

          圖1-6:ACK幀

ACK幀的 MAC標頭由三個位構成:

l  Frame Control(幀控制)

幀的subtype(次類型)位被設定為 1101,代表 ACK幀。

l  Duration (持續時間)

依照ACK信號在整個幀交換過程中位居何處,duration 的值可以有兩種設定方式。在完整的數據幀及一連串幀片段的最后一個片段中,duration 會被設定為 0。數據發送端會將 Frame Control(幀控制)位中的 More Fragments(尚有片段)bit設定為 0,表示數據傳輸已經結束。

如果More Fragments bit 為0 ,表示整個傳輸已經完成,沒有必要再延長對無線信道的控制權,因此會將 duration 設定為 0 。

如果More Fragments bit為1 ,表示尚有幀片段仍在發送中。此時Duration 位的用法和 CTS幀中的Duration 位相同。發送ACK以及短幀間隔所需要的時間,將由最近幀片段所記載的duration 中減去。如果不是最后一個 ACK幀,duration 的計算方式類似 CTS duration 的計算方式。事實上,802.11的規格書將 ACK幀中的duration 設定稱為虛擬 CTS。

l  Address 1 位:Receiver Address (接收端地址)

接收端地址是由所要應答的發送端幀復制而來。技術上而言,它是由所要應答幀的Address 2 位復制而來。應答主要是針對數據幀、管理幀以及 PS-Poll幀。

 

        圖1-7:非最終ACK幀的Duration 位

1.1.5   PS-Poll (省電模式一輪詢)

當一部移動工作站從省電模式中蘇醒,便會發送一個 PS-Poll幀給接入點,以取得任何暫存幀。PS-Poll幀的格式如圖 1-8 所示。

 

          圖1-8:PS-Poll幀

PS-Poll幀的 MAC標頭由四個位構成:

l  Frame Control(幀控制)

幀的subtype(次類型)位被設定為 1010,代表 PS-Poll幀。

l  AID(連接識別碼)

PS-Poll幀將會以 MAC標頭的第三與第四 bit來代表連接識別碼(association ID)。連接識別碼是接入點所指定的一個數值,用以區別各個連接。將此識別碼置入幀,可讓接入點找出為其(移動工作站)所暫存的幀。

l  Address 1 位:BSSID

此位包含發送端目前所在 BSS 的BSSID ,此BSS 建立自目前所連接的 AP。

l  Address 2 位:Transmitter Address (發送端地址)

此為PS-Poll幀之發送端的 MAC地址

在PS-Poll幀中並未包含 duration 信息,因此無法更新 NAV。不過,所有收到 Ps-Poll幀的工作站,都會以短幀間隔加上發送 ACK信號所需要的時間來更新 NAV。此一自動調整機制使得接入點在發送 ACK信號時,比較不會與移動接入點發生碰撞。

【連接識別碼(AID)在PS-Poll幀中,Duration/ID位是連接識別碼,而非虛擬載波偵測功能所使用的數值。當移動工作站與接入點連接時,接入點會從1-2,007范圍內指派一個值來做為連接識別碼(AID)。】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM