802.11MAC協議的簡單分析
IEEE 802.11MAC協議在一些規定中有著獨特的地方。那么我們這里對MAC協議不再過多描述,主要看一下802.11MAC協議的一些特點和工作流程。希望大家能從中有所收獲。
802.11MAC協議定義了5類時序間隔,其中兩類是由物理層決定的基本類型:短幀空間(SIFS)和時隙 (slot time)。其余3類時序間隔則基于以上兩種基本的時序間隔:優先級幀間空間(PIFS)、分散幀間空間(DIFS)和擴展幀間空間(EIFS)。 SIFS是最短的時序間隔,其次為時隙。時隙可視為MAC協議操作的時間單元,盡管802.11信道就整體而言并不工作于時隙級時序間隔上。對于 802.11b網絡(即具有DSSS物理層的網絡),SIFS和時隙分別為10和20μs。考慮到信號的傳播和處理延遲,通常將時隙選擇為20μs。 PIFS等于SIFS加1個時隙,而DIFS等于SIFS加2個時隙。EIFS比上述4類時序間隔都長得多,通常在當收到的數據幀出現錯誤時才使用。
802.11MAC協議支持兩種操作模式:單點協調功能(PCF)和分散協調功能(DCF)。PCF提供了可避免競爭的接入方式,而DCF則對基于接入的競爭采取帶有沖突避免的載波檢測多路訪問(CSMA/CA)機制。上述兩種模式可在時間上交替使用,即一個PCF的無競爭周期后緊跟一個DCF的競爭周期。
AP首先將輪詢消息和數據(如果存在)發送至移動站1(用S1表示)。移動站1應當在SIFS時序間隔內,立即發送確認消息或數據幀(如果數據幀存在)至AP。在收到來自移動站1的ACK消息或數據后,AP將在SIFS時序間隔內輪詢移動站2。在本例中,由于輪詢消息丟失或者移動站不需要發送數據至AP,因此移動站2并未作出響應。這種情形中,由于在SIFS截止之前AP未收到來自移動站2的響應, AP將在PIFS時序間隔內繼續輪詢移動站3。PIFS開始于移動站2最后一條輪詢消息的末尾。
在退避期間,如果在一個時隙中檢測到信道繁忙,那么退避間隔將保持不變,并且只當檢測到在DIFS間隔及其下一時隙內信道持續保持空閑,才重新開始減少退避間隔值。當退避間隔為0,將再次傳送分組數據。退避機制有助于避免沖突,因為信道可在最近時刻被檢測為繁忙。更進一步,為了避免信道被捕獲,在兩次連續的新分組數據傳送之間,移動站還必須等待一個退避間隔,盡管在DIFS間隔中檢測到信道空閑。
DCF的退避機制具有指數特征。對于每次分組傳送,退避時間以時隙為單位(即是時隙的整數倍),統一地在0至n-1之間進行選取,n表示分組數據傳送失敗的數目。在第一次傳送中,n取值為CWmin=32,即所謂的最小競爭窗(minimum contention window)。每次不成功的傳送后,n將加倍,直至達到最大值CWmax=1024。
對于每個成功接收的分組數據,802.11規范要求向接收方發送ACK消息。而且為了簡化協議頭,ACK消息將不包含序列號,并可用來確認收到了最近發送的分組數據。也就是說,移動站根據間斷停起(stop-and-go)協議進行數據交換。一旦分組數據傳送結束,發送移動站將在10μs SIFS間隔內收到ACK。如果ACK不在指定的ACK_timeout周期內到達發送移動站,或者檢測到信道上正在傳送不同的分組數據,最初的傳送將被認為是失敗的,并將采用退避機制進行重傳。
除了物理信道檢測,802.11MAC協議還實現了網絡向量分配(NAV),NAV的值向每個移動站指示了信道重新空閑所需的時間。所有的分組數據均包含一個持續時間字段,而且NAV將對傳送的每個分組數據的持續時間字段進行更新。因此,NAV實際上表示了一種虛擬的載波檢測機制。MAC協議就采用物理檢測和虛擬檢測的組合以避免沖突。
上面描述的協議稱為雙向握手機制,此外,MAC協議也包含4通(four-way)幀交換協議。實際上,4通協議利用上述競爭過程獲得信道接入之后,要求移動站向AP發送一個特殊信號:發送請求(RTS)信號,而不是實際的數據分組包。與此相呼應,AP將在適當的時候,在 SIFS間隔內發送清除-發送(Clear-to-Send, CTS)消息,以通知請求的移動站立即開始分組數據傳送。RTS/CTS握手的主要目的是解決所謂的隱藏終端(hidden terminal)問題。