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