《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信与网络 > 设计应用 > 基于IEEE802.11 DCF的优化竞争窗口算法
基于IEEE802.11 DCF的优化竞争窗口算法
来源:电子技术应用2011年第7期
张 锋, 向 新, 杨宝强, 裴冬冬
(空军工程大学 工程学院,陕西 西安710038)
摘要: 针对现有IEEE802.11 分布式协调功能DCF(Distribute Coordination Function)方式下吞吐量较小、时延较大的缺点,提出了一种优化竞争窗口的算法。该算法通过增加最小竞争窗口和最大竞争窗口,改进其退避算法,并综合考虑到了公平性的问题。经OPNET仿真验证表明,该算法提高了系统的吞吐量,减小了接入时延。
中圖分類號: TP393.01
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)07-111-04
A calculation optimizing for contention window based on IEEE802.11 DCF
Zhang Feng, Xiang Xin, Yang Baoqiang, Pei Dongdong
College of Engineering, Air Force Engineering University,Xi’an 710038, China
Abstract: In view of the present IEEE802.11 DCF (Distribute Coordination Function) with the weakness of system through be smaller and connected delay be bigger, a calculation optimizing the contention window is proposed. This calculation increased the minimal contention window and enlarged the maximal contention window, also improved the original backoff mechanism, considered the problem of equity comprehensively. The new method is imitated by OPNET. Simulation results show that system through can be improved, and connected delay declines.
Key words : IEEE802.11 DCF; contention window; binary exponential backoff


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

    節(jié)點(diǎn)A發(fā)送時(shí),節(jié)點(diǎn)B、C、D都有幀要發(fā)送,等待信道連續(xù)空閑DIFS時(shí)間后,進(jìn)入退避階段,每個(gè)節(jié)點(diǎn)在CW內(nèi)隨機(jī)產(chǎn)生一個(gè)退避時(shí)間。因?yàn)楣?jié)點(diǎn)C所產(chǎn)生的退避時(shí)間最短,它的退避計(jì)時(shí)器最先減至0,開始發(fā)送幀,節(jié)點(diǎn)B和D的退避計(jì)時(shí)器被凍結(jié)。在節(jié)點(diǎn)C傳送過程中,節(jié)點(diǎn)E也有幀要發(fā)送,進(jìn)入等待過程。信道空閑DIFS后,節(jié)點(diǎn)B和D的退避計(jì)時(shí)器解凍,節(jié)點(diǎn)E產(chǎn)生隨機(jī)退避時(shí)間。因?yàn)楣?jié)點(diǎn)D的退避計(jì)時(shí)器最先減至0,所以節(jié)點(diǎn)D獲得發(fā)送機(jī)會。
    由圖1可以看出,每一個(gè)節(jié)點(diǎn)都要維護(hù)一個(gè)CW參數(shù),CW的初始值為CWmin。在幀的第一次傳輸時(shí),CW等于最小競爭窗口CWmin。當(dāng)一個(gè)節(jié)點(diǎn)發(fā)送失敗時(shí),說明當(dāng)前的網(wǎng)絡(luò)負(fù)載較大或者鏈路狀況不好,該節(jié)點(diǎn)的CW就會增加一倍。以后,該節(jié)點(diǎn)每次發(fā)送失敗而重傳時(shí),CW都會增加一倍,即CW=2m(CWmin+1)-1,其中m為重傳次數(shù)。當(dāng)CW的值增加到CWmax時(shí),即2m(CWmin+1)=(CWmax+1),再重傳時(shí)CW的值將保持CWmax不變,直到該節(jié)點(diǎn)發(fā)送成功,或者達(dá)到了最大重傳次數(shù)限制,CW將被重新置為CWmin, CW的變化方式如圖2所示。

 

 

    競爭窗口越大,隨機(jī)退避機(jī)制解決沖突的能力就越強(qiáng),因?yàn)槭褂幂^大的競爭窗口時(shí),選擇相同的隨機(jī)退避時(shí)間的可能性很小。這樣一方面,在輕載的情況下,小的競爭窗口保證了較短的延遲;另一方面,在重載的情況下,隨機(jī)等待時(shí)間隨著沖突產(chǎn)生次數(shù)的增加呈指數(shù)遞增,降低了沖突的概率。競爭窗口達(dá)到CWmax后不再增長,保證了網(wǎng)絡(luò)在重載情況下的穩(wěn)定。當(dāng)幀成功發(fā)送或者重傳次數(shù)超過限制而被丟掉時(shí),競爭窗口被置為CWmin。這種機(jī)制稱為二進(jìn)制指數(shù)退避(Binary Exponential Backoff)。
2 改進(jìn)的方法
    通過以上分析,可以看出競爭窗口的大小決定了退避的時(shí)間,進(jìn)而影響了吞吐量和接入時(shí)延。本文的優(yōu)化算法通過合理設(shè)置窗口的大小,針對發(fā)生沖突時(shí)退避時(shí)間迅速增加的弊端,并綜合考慮到公平性的問題,從以下四個(gè)方面對現(xiàn)有算法進(jìn)行優(yōu)化。
    (1)增加最小的競爭窗口。參考文獻(xiàn)[9]中指出對不同的網(wǎng)絡(luò)節(jié)點(diǎn)數(shù),存在一個(gè)最優(yōu)的競爭窗口使網(wǎng)絡(luò)的時(shí)延最小,網(wǎng)絡(luò)中有10個(gè)競爭節(jié)點(diǎn)時(shí),將初始競爭窗口設(shè)為63,介質(zhì)訪問的時(shí)延最??;而50個(gè)競爭節(jié)點(diǎn)時(shí),初始窗口設(shè)為127,介質(zhì)訪問的時(shí)延最小。但參考文獻(xiàn)[9]中沒有綜合考慮到窗口對吞吐量的影響,本文通過仿真發(fā)現(xiàn),在站點(diǎn)數(shù)多或少的情況下,將初始窗口設(shè)為127時(shí),應(yīng)用本算法,在吞吐量和時(shí)延上都有良好的改善。
    (2)增加最大的競爭窗口。通過前面的分析可知,如果競爭窗口較小,則發(fā)生沖突的概率將增加,優(yōu)化算法增加了最大窗口,將其設(shè)為1 054。
    (3)優(yōu)化退避算法。原有的二進(jìn)制退避算法,退避的時(shí)隙增加過快,呈指數(shù)增長,但遞減較慢,即當(dāng)檢測到信道空閑時(shí)間≥DIFS時(shí),退避計(jì)數(shù)器做減1操作,這樣將導(dǎo)致再次接入的時(shí)延增加,優(yōu)化算法采用較溫和的方法:當(dāng)發(fā)生沖突時(shí),max_backoff = max_backoff * 1.5+1,這樣做的目的是當(dāng)發(fā)生沖突時(shí),使退避時(shí)間量的增加較為緩慢。
    (4)當(dāng)重傳后競爭窗口超過最大競爭窗口時(shí),將站點(diǎn)的競爭窗口恢復(fù)為最大窗口的一半,即512。這樣當(dāng)一個(gè)站點(diǎn)遭遇連續(xù)多次沖突后,增加其競爭信道的概率,提高系統(tǒng)的公平性。參考文獻(xiàn)[7]中超過最大競爭窗口后,直接將站點(diǎn)的競爭窗口恢復(fù)為最小窗口,這樣雖然在一定程度上提高了公平性,但同時(shí)也加劇了沖突。
    上述改進(jìn)的算法中,(1)、(2)保證了競爭窗口有一個(gè)較大的范圍,降低了可能發(fā)生的沖突,(3)保證了退避時(shí)間增加較為緩慢,減小了再次接入的時(shí)延,(4)解決了一個(gè)站點(diǎn)遭遇連續(xù)多次沖突后再次接入信道的能力,提高了公平性。
3 性能仿真及對比
    本文使用OPNET軟件虛擬建立一個(gè)基本的Adhoc網(wǎng)絡(luò)模型[10],每個(gè)無線節(jié)點(diǎn)的通信范圍設(shè)為100 m,采用的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為所有無線節(jié)點(diǎn)都分布在邊長為100 m×100 m的四方區(qū)域內(nèi),即任意一個(gè)節(jié)點(diǎn)都處在其余所有節(jié)點(diǎn)的通信范圍之內(nèi),也就是說,網(wǎng)絡(luò)中任意兩個(gè)節(jié)點(diǎn)之間能直接進(jìn)行通信。這樣網(wǎng)絡(luò)中不存在隱藏節(jié)點(diǎn)。本文仿真了20個(gè)站點(diǎn)和80個(gè)站點(diǎn)時(shí)系統(tǒng)的吞吐量和時(shí)延。圖3是包括20個(gè)無線節(jié)點(diǎn)的一個(gè)網(wǎng)絡(luò)拓?fù)?,其中,node_0~node_19是無線節(jié)點(diǎn)。
    在仿真實(shí)驗(yàn)中,采用DSSS的參數(shù)(默認(rèn)),見表1。

    OPNET提供了ON—OFF的建模機(jī)制,在ON期間生成數(shù)據(jù)包,每個(gè)包的大小和包間隔可以按照某種分布函數(shù)來確定,在OFF期間不發(fā)送數(shù)據(jù)包。按照表2設(shè)置網(wǎng)絡(luò)的業(yè)務(wù)參數(shù)。

    仿真結(jié)果如圖4~圖7所示。

    從圖4~圖7的仿真曲線圖可以看出,改進(jìn)后的算法在20個(gè)站點(diǎn)及80個(gè)站點(diǎn)時(shí)在時(shí)延和吞吐量方面都有良好的改善,驗(yàn)證了其性能。
    本文詳細(xì)地分析了DCF方式的工作機(jī)制和競爭窗口對接入時(shí)延及吞吐量的影響,針對現(xiàn)有算法的不足提出了一種優(yōu)化競爭窗口的算法,仿真了20個(gè)站點(diǎn)及80個(gè)站點(diǎn)工作時(shí)的吞吐量及接入時(shí)延,相比現(xiàn)有算法和參考文獻(xiàn)[7]中的算法,改進(jìn)的算法提高了吞吐量,降低了接入時(shí)延。
參考文獻(xiàn)
[1] 金純,陳林星,楊吉云.IEEE802.11無線局域網(wǎng)[M].北京:電子工業(yè)出版社,2004.
[2] BIANCHI G. Performance analysis of IEEE802.11 Distributed coordination function[J].IEEE journal on selected  Areas in Communtion,2000,18(3):535-547.
[3] 劉乃安.無線局域網(wǎng)(WLAN)—原理、技術(shù)與應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2004.
[4] 王輝,李津生,洪佩林.一種IEEE802.11中慢啟動遞減競爭窗口控制算法[J].電路與系統(tǒng)學(xué)報(bào),2005,10(2):93-97.
[5] 徐志江,李式巨,官軍.IEEE802.11網(wǎng)絡(luò)中增強(qiáng)的退避算法[J].電子與信息學(xué)報(bào),2004,26(10).
[6] CALI F, CONTI M, GREGORI E. Dynamic tuning of the IEEE802.11 protocol to achieve a theoretical throughput limit[J]. IEEE Transactions on Networking.2000,8(6):785-799.
[7] 裴冬冬,王興華,向新.IEEE802.11DCF退避機(jī)制公平性分析與改善[J].電子技術(shù)應(yīng)用,2010,36(10):92-94.
[8] 王文博,張金文.OPNET Modeler與網(wǎng)絡(luò)仿真[M].北京:人民郵電出版社,2003.
[9] 周海興.競爭窗口大小對IEEE802.11無線網(wǎng)絡(luò)的影響[J].廣東通信技術(shù),2008(10).
[10] 陳敏,韋崗.IEEE802.11無線局域網(wǎng)OPNET建模與性能測試[J].計(jì)算機(jī)工程,2004,30(21):14-16,139.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。