802.11成幀封裝實現(二) 數據幀

 1.2     數據幀

數據幀會將上層協議的數據置於幀主體加以傳遞。圖 1-9 顯示了數據幀的基本結構。會用到哪些位,取決於該數據幀所屬的類型。

 

          圖1-9 基本的數據幀

不同類型的數據幀可根據功能加以分類。其中一種方式,是將數據幀區分爲競爭式服務及免競爭服務兩種數據幀。只能在免競爭期間出現的幀,就不可能在IBSS(獨立型基本服務組合)中使用。另一種區分方式,則是對攜帶數據與提供管理功能的幀加以區別。表1-1 顯示了數據幀的分類方式。

表 4-1:數據幀的各種分類方式

 

1.2.1   Frame Control (幀控制)

Frame Control(幀控制)位各個 bit都可能影響到MAC標頭其他位的解讀方式。最值得注意的是那些地址位,它們的意義將因ToDS 及FromDSbit 的值而異。

1.2.2   Duration(持續時間)

Duration (持續時間)位用來記載網絡分配矢量(NAV)的值。訪問介質的時間限制是由NAV所指定。數據幀之 Duration 位的設定,必須依循四項規範:

 1.  免競爭期間所傳遞的任何幀,必須將Duration 位設定爲32768 。此規範適用於免競爭期間所傳遞的任何數據幀。

2.  目的地爲廣播或組播地址的幀(Address 1 位設定了羣組 bit),其持續時間爲 0。此類幀並非基本交換過程的一部分,接收端也不會加以應答,因此競爭式介質訪問可以在廣播或組播數據幀結束後立即開始。NAV在幀交換過程中是用來保護傳輸介質。既然廣播或組播幀之後不會有來自鏈路層的應答,因此沒有必要爲後續幀鎖住介質使用權。

3.  如果Frame Control位中的More Fragments bit 爲0,表示該幀已無其餘片段。最後的幀片段只須爲本身的應答預訂介質使用權,之後就可以恢復競爭式訪問了。Duration位會被設定爲發送一個短幀間隔及片段應答所需要的時間。整個過程如圖 1-10 所示。倒數第二個片段的Duration 位,會爲最後一個片段鎖住介質使用權。

 

        圖1-10:最終片段的Duration 設定

4.  如果Frame Control位的More Fragmentsbit被設定爲 1,表示其後還有幀片段。因此, Duration 位便會被設定爲發送兩個應答、加上三個短幀間隔及下一個幀片段所需要的時間。爲非最終片段設定NAN 的方式本質上與 RTS 相同,所以亦稱爲虛擬RTS 。

 

          圖1-11:非最終片段的Duration 設定

1.2.3   地址與DS Bit

地址位的編號與功能取決於設定了哪個 DS(分佈式系統)bit,因此所使用的網絡類型會間接影響到地址位的用法。表 1-2 列出了地址位在數據幀中的各種用法。只有無線橋接器纔會使用第四個地址位,因此比較少見。

表 1-2:地址位在數據幀中的用法

 

Address 1 代表幀接收端的地址。在某些情況下,接收端即爲目的地,但不總是這樣。目的地是指負責處理幀中網絡層封包的工作站;而接收端則是負責將無線電解碼爲 802.11幀的工作站。如果Address 1 被設爲廣播或組播地址,則必須同時檢查 BSSID (基本服務組合識別碼)。工作站只會應答來自同一個基本服務集(basic service set,簡稱 BSS )的廣播或組播信息;至於來自其他不同 BSS 者則加以忽略。Address 2 是發送端的地址,用來發送應答信息。發送端就是源地址。源地址是指產生幀中網絡層協議封包的工作站;而發送端則是負責將幀發送至無線鏈路。Address 3 位則是供接入點與分佈式系統過濾之用,不過該位的用法,取決於所使用的網絡類型。

由於IBSS 並未使用接入點,因此不會涉及分佈式系統。發送端即爲幀的源,而接收端即爲幀的目的地。每個幀都會記載 BSSID ,因此工作站可以檢查廣播與組播信息。只有隸屬同一個 BSS的工作站,纔會處理該廣播或組播信息。在 IBSS 中,BSSID 是由隨機數產生器隨機產生的。

BSSID

每個BSS都會被賦予一個BSSID,它是一個長度爲48個bit的二進制識別碼,用來辨識不同的BSS。BSSID的主要優點是,它可作爲過濾之用。雖然不同的802.11網絡彼此間可能重疊,但即使如此也不應該讓相互重疊的網絡收到彼此的鏈路層廣播。

在 infrastructure BSS(基礎架構型基本服務集)中,BSSID 就是建立該 BSS 的接入點上無線接口的MAC地址。而IBSS(獨立型基本服務組合)則必須建立BSSID。方能產生網絡。

爲了讓所建立的地址儘量不致重複,BSSID有46個bit是隨機產生的。其所產生的BSSID,會將Universal/Local bit設定爲1,代表這是一個區域地址,至 於vidual/Group bit則會設定爲0。兩個不同的IBSS,如果要產生相同的BSSID,它們所產生的46bit數必須完全相同。

有一個BSSID會被保留不用,就是所有bit均設定爲1的BSSID,又稱爲廣播型BSSID。使用廣播型BSSID的幀,可以不被MAC中任何的BSSID filter所過濾。BSSID的廣播只有在移動式工作站送出probe request(檢測要求),試圖找出有哪些網絡可以加入時纔會用到。probe幀要能夠檢測現存的網絡,就不能被 BSSID filter過濾掉probe幀是惟一允許使用廣播型BSSID的幀。

802.11對源與發送端以及目的地與接收端有明確的區分。將幀送至無線介質的發送端,不見得就是幀的產生者。目的地址與接收端地址同樣有此區別。接收端可能只是中介目的地,而幀只有到達目的地,纔會由較上層的協議加以處理。

圖1-12 展示了一個簡單的網絡,其中有某個無線用戶端通過 802.11網絡連接至服務器。用戶端將幀發送給服務器時,地址位的用法如表 1-2 第二列所示。

 

        圖1-12:將幀發送至服務器時,地址位的用法

如果幀的目的地位於分佈式系統,則用戶端既是源亦是發送端。至於無線幀的接收端則是接入點,不過該接入點只是箇中介目的地。當幀送到接入點時,該幀會經分佈式系統轉送給服務器。因此,接入點是接收端,而服務器纔是最後的目的地。在基礎架構型網絡裏,接入點會以其無線接口的地址建立相應的BSS ,這就是爲什麼接收端地址(Address 1)會被設定爲 BSSID 的原因。

當服務器應答用戶端時,幀會通過接入點發送給用戶端,如圖 1-13 所示。這種情況相當於表1-2 的第三列。

 

          圖1-13:幀來自分佈式系統時,地址位的用法

由於幀產生自服務器,所以服務器的 MAC地址即爲該幀的來源地址(簡稱 SA)。當幀通過接入點轉送出去時,接入點將會以自己的無線接口做爲發送端地址(簡稱TA)。如同前一個例子,接入點的接口地址就是 BSSID 。幀最後會被送至用戶端,此時用戶端既是目的地又是接收端。

表1-2 的第四列展示了地址位在無線分佈式系統(wireless distribution system 簡稱 WDS)中的用法。無線分佈式系統有時也稱爲無線橋接器。如圖1-14 所示,兩條有線網絡通過扮演無線橋接器角色的接入點彼此相連。從用戶端送至服務器的幀會經過 802.11 WDS 。該無線幀的源與目的地址,依然對應到用戶端與服務器的地址。不過,這些幀還是會區分無線接口上幀的發送端與接收端。對於由用戶端送至服務器的幀而言,發送端就是用戶端這邊的接入點,而接收端就是服務器這邊的接入點。將來源地與發送端分開的好處是,當服務器這邊的接入點送出必要的 802.11應答給對方接入點時,不會干擾到有線鏈路層。

 

          圖1-14:無線分佈式系統

1.2.4   數據幀的次類型

802.11具有數種不同類型的數據幀。要使用何種幀,取決於服務是屬於競爭式或免競爭式服務。基於效率上的考慮,免競爭幀中可以加入其他功能。只要改變幀的次類型,免競爭期間的數據幀即可用來應答其他幀,由此便可省去幀間隔以及一一應答所帶來的負擔。以下是常見的數據幀次類型:

l  Data(數據)

子類型爲 Data的幀,只有在競爭訪問期間纔會傳輸。這類簡單的幀只有一個目的,亦即在工作站間發送幀主體。

l  Null (空)

Null 幀看起來有點奇怪。它是由 MAC標頭與 FCS 標尾所組成。在傳統的以太網中,Null幀無非就是額外的負擔;在 802.11網絡中,移動工作站會利用 Null 幀來通知接入點省電狀態的改變。當工作站進入休眠狀態,接入點必須開始爲之暫存幀。如果該移動式工作站沒有數據要通過分佈式系統傳輸,也可以使用 Null 幀,同時將 Frame Control(幀控制)位的 Power Management(電源管理)bit設定爲1。接入點不可能進入省電模式,因此不會發送 Null 幀。Null 幀的用法,如圖1-15 所示。此外尚有一些在免競爭期間使用的幀類型。不過,免競爭服務在實際上並不常見。

 

          圖1-15:次類型爲Null 的數據幀

1.2.5   數據幀的封裝

數據幀的形式取決於網絡的形式。幀究竟屬於哪種類型,完全取決於subtype(子類型)位,而與其他位是否出現在幀中無關。

 1.2.5.1 IBSS幀

在IBSS 中,所使用的 address 位有三種,如圖 1-16 所示。第一個地址代表接收端,同時也是IBSS 網絡中的目的地址。第二個地址是源地址。在這些地址之後,伴隨而來的是 IBSS 的BSSID 。當無線 MAC收到一個幀時,首先會去檢查 BSSID ,只有BSSID 與工作站相同的幀,纔會交由上層協議加以處理。

 

          圖1-16:IBSS 數據幀

IBSS 數據幀的子類型不是 data 就是 Null ;後者只是用來告知目前的電源管理狀態。

 1.2.5.2 發送自接入點(From AP )的幀

圖1-17 顯示了由接入點發送給移動工作站的幀格式。和所有數據幀一樣,第一個位代表無線網絡中接收該幀的接收端,亦即該幀的目的地。第二個位存放了發送端的地址。在基礎網絡中,發送端地址即爲接入點(AP)上無線接口的地址,同時也是BSSID 。最後,該幀會記載幀的源MAC地址。區分源與發送端之所以必要,是因爲 802.11 MAC 會將應答送給幀的 Transmitter(發送端AP),而較上層的協議會將應答送給幀的 source (來源地)。

 

          圖1-17:發送自接入點的數據幀

在802.11的規格書中並未明文禁止接入點發送 Null 幀,不過這麼做並沒有任何意義。因爲接入點禁止使用省電程序,所以接入點只會應答來自工作站的 Null 幀,而不會在應答中使用 Null 幀。

實際上,在競爭式訪問期間,接入點會使用 Data幀,而在免競爭期間則是使用包含 CF-Poll功能的幀。

1.2.5.3 發送至接入點(To AP )的幀

圖1-18 顯示了,在 infrastructure (基礎架構型)網絡裏,移動工作站發送給所連接接入點的幀格式。接收端地址(RA)爲 BSSID 。在基礎網絡裏,BSSID 即爲接入點的 MAC地址。送至接入點的幀,其源/發送端地址(SA/TA )得自無線工作站的網絡接口。接入點並未進行地址過濾的動作,而是使用第三個地址(DA ),將數據轉送至位於分佈式系統的適當位置。

 

          圖1-18:發送至接入點的數據幀

發送至分佈式系統(Ds)的幀其 ToDS bit 會被設定爲 1,而 FromDS bit會被設定爲 0 。在基礎網絡中,移動工作站不能扮演中樞協調者(point coordinato)的角色,因此不能發送含有CF-Poll(免競爭一輪詢)功能的幀。

 1.2.5.4 WDS 中的幀

當接入點被部署成無線橋接器(或者 VUDS )時,就會用到四個地址位,如圖 1-19 所示。和其他數據幀一樣,WDS幀會使用第一個地址(RA)代表 receiver (接收端),第二個地址(TA)代表Transmitter(發送端)MAC層會使用這兩個地址送出應答以及控制流量,例如 RTS 、CTS以及ACK幀。另外兩個地址位(SA與DA)則是用來記載幀的 source(源)以及 destination(目的)地址,並且將之與無線鏈路所使用的地址區別開來。

 

          圖1-19:WDS幀

在無線橋接鏈路中,通常不會存在移動工作站,也不會使用免競爭期間。接入點禁止進入省電模式,因此 power management (電源管理)bit必然設定爲 0 。

1.2.5.5  經加密的幀

受到鏈路層安全協議保護的幀並不算新的幀類型。當幀經過加密處理,Frames Control (幀控制)位的 Protected Frame bit會被設定爲 1 ,至於幀主體,則是以加密標頭起頭,這取決於所使用的何種協議。