摘 要: 針對現(xiàn)有IEEE802.11 分布式協(xié)調功能DCF(Distribute Coordination Function)方式下吞吐量較小、時延較大的缺點,提出了一種優(yōu)化競爭窗口的算法。該算法通過增加最小競爭窗口和最大競爭窗口,改進其退避算法,并綜合考慮到了公平性的問題。經(jīng)OPNET仿真驗證表明,該算法提高了系統(tǒng)的吞吐量,減小了接入時延。
關鍵詞: IEEE802.11分布式協(xié)調功能; 競爭窗口; 二進制退避算法
近幾年,IEEE 802.11無線網(wǎng)絡得到迅速的發(fā)展[1],對無線網(wǎng)絡的性能和服務質量提出了更高的要求。同有線網(wǎng)絡相比,無線網(wǎng)絡在性能和服務質量方面還有很大差距,這除了其物理傳輸介質的固有特點之外,實現(xiàn)介質共享的MAC層協(xié)議是一個非常重要的因素。無線局域網(wǎng)(WLAN)IEEE802.11協(xié)議中,MAC層上最基本也是目前使用最廣泛的接入方式是被稱為分布式協(xié)調功能DCF(Distribute Coordination Function)的隨機競爭接入方式。
DCF方式下,WLAN的吞吐量和接入時延隨著網(wǎng)絡中的活動節(jié)點(Active Nodes)數(shù)和初始競爭窗口大小(CWmin)而變化[2],系統(tǒng)的初始競爭窗口大小由物理層特性決定,例如使用直接序列擴頻時,CWmin為31;使用跳頻擴頻時,CWmin為15[3]。也就是說,在DCF協(xié)議中,初始競爭窗口是固定的,并不能隨著網(wǎng)絡中競爭節(jié)點數(shù)的多少而變化。根據(jù)網(wǎng)絡中活動節(jié)點數(shù)的變化來動態(tài)調整初始競爭窗口的值,是改進DCF性能的一種行之有效的方法[4-6]。但目前獲得網(wǎng)絡中的活動節(jié)點數(shù)目都是基于某種估計算法獲得的。這些估計算法不能精確地反映網(wǎng)絡中真實的活動節(jié)點數(shù),所計算出的優(yōu)化初始競爭窗口大小也不會很精確,如果初始窗口設置不正確,對網(wǎng)絡性能的影響將會很大。參考文獻[7]提出了增加初始窗口為63,并在退避到最大窗口時,將最大窗口置為初始窗口來參與競爭,這在一定程度提高了系統(tǒng)的公平性,但此算法也增加了沖突發(fā)生的概率。本文提出的優(yōu)化競爭窗口的算法用OPNET軟件[8]進行了仿真,與原有算法及參考文獻[7]中的算法相比,在吞吐量及時延上都有良好的改善。
1 DCF的二進制退避機制和競爭窗口的分析
DCF協(xié)議基于載波監(jiān)聽多路訪問/沖突避免(CSMA/CA)機制實現(xiàn)有競爭的信道共享。當一個節(jié)點需要發(fā)送幀時,要調用載波偵聽機制來確定信道的忙/閑狀態(tài),如果信道忙,它將推遲,直到信道連續(xù)處于空閑狀態(tài)達到分布協(xié)調功能的幀間間隔DIFS(Distributed Coordination Function Interframe Space)時間,為了避免發(fā)送沖突,這時該節(jié)點在發(fā)送前必須經(jīng)過一個附加的退避周期,產生一個隨機的退避時間(Backoff Time),并存入退避計數(shù)器。如果退避計數(shù)器中已經(jīng)包含有一個非0的值,則不再執(zhí)行產生隨機退避時間的過程。
產生退避時間的方法如下:Backoff Time=Random( )* aSlotTime其中,Random( )是均勻分布在[0,CW]范圍內的隨機整數(shù),CW是介于由物理層特征決定的最小競爭窗口CWmin和最大競爭窗口CWmax之間的一個整數(shù)值,即CWmin≤CW≤CWmax。aSlotTime 是由物理層特性決定的一個時隙的實際長度值,對于DSSS(直接序列擴頻),一個時隙的長度是 20 μs。每個節(jié)點在發(fā)送數(shù)據(jù)前,監(jiān)聽信道的狀態(tài),如果信道閑,則將退避時間計數(shù)器減1;如果信道忙,則退避過程將被推遲,退避時間計數(shù)器被凍結。當終端檢測到信道的空閑時間≥DIFS時,退避過程重新被激活,繼續(xù)遞減。當退避計數(shù)器遞減到0時,節(jié)點就可以執(zhí)行發(fā)送。圖1顯示了退避過程。
節(jié)點A發(fā)送時,節(jié)點B、C、D都有幀要發(fā)送,等待信道連續(xù)空閑DIFS時間后,進入退避階段,每個節(jié)點在CW內隨機產生一個退避時間。因為節(jié)點C所產生的退避時間最短,它的退避計時器最先減至0,開始發(fā)送幀,節(jié)點B和D的退避計時器被凍結。在節(jié)點C傳送過程中,節(jié)點E也有幀要發(fā)送,進入等待過程。信道空閑DIFS后,節(jié)點B和D的退避計時器解凍,節(jié)點E產生隨機退避時間。因為節(jié)點D的退避計時器最先減至0,所以節(jié)點D獲得發(fā)送機會。
由圖1可以看出,每一個節(jié)點都要維護一個CW參數(shù),CW的初始值為CWmin。在幀的第一次傳輸時,CW等于最小競爭窗口CWmin。當一個節(jié)點發(fā)送失敗時,說明當前的網(wǎng)絡負載較大或者鏈路狀況不好,該節(jié)點的CW就會增加一倍。以后,該節(jié)點每次發(fā)送失敗而重傳時,CW都會增加一倍,即CW=2m(CWmin+1)-1,其中m為重傳次數(shù)。當CW的值增加到CWmax時,即2m(CWmin+1)=(CWmax+1),再重傳時CW的值將保持CWmax不變,直到該節(jié)點發(fā)送成功,或者達到了最大重傳次數(shù)限制,CW將被重新置為CWmin, CW的變化方式如圖2所示。