摘要:從理論上對(duì)典型的無(wú)線Mesh網(wǎng)絡(luò)組播差錯(cuò)控制協(xié)議BLBP、LBLBP以及HLBLBP的性能進(jìn)行分析,通過(guò)MATLAB對(duì)各協(xié)議在不同丟包率情況下的重傳次數(shù)、信道占用時(shí)間及端到端平均時(shí)延等性能進(jìn)行實(shí)驗(yàn)仿真。研究結(jié)果表明:HLBLBP的整體性能最優(yōu),但其未考慮某些信道質(zhì)量較差的節(jié)點(diǎn)對(duì)整個(gè)網(wǎng)絡(luò)性能的影響。
關(guān)鍵詞:組播;無(wú)線Mesh網(wǎng)絡(luò);基于領(lǐng)導(dǎo)者的協(xié)議;差錯(cuò)控制;性能
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A
1引言
隨著Internet的發(fā)展和商業(yè)化進(jìn)程的加速,組播[1]以其節(jié)約網(wǎng)絡(luò)帶寬和減輕服務(wù)器負(fù)荷的優(yōu)勢(shì)獲得了越來(lái)越多的應(yīng)用。無(wú)線Mesh網(wǎng)絡(luò)[2]作為“最后一公里”寬帶無(wú)線接入的重要技術(shù)之一,具有高速度、低干擾、網(wǎng)絡(luò)覆蓋范圍大、結(jié)構(gòu)靈活等特點(diǎn)。因此無(wú)線Mesh網(wǎng)絡(luò)中的組播應(yīng)用越來(lái)越廣泛。但無(wú)線網(wǎng)絡(luò)帶寬低、丟包率高、穩(wěn)定性差的缺點(diǎn),對(duì)無(wú)線Mesh網(wǎng)絡(luò)組播傳輸?shù)目煽啃詠?lái)說(shuō)是一個(gè)挑戰(zhàn)。
差錯(cuò)控制是保證組播傳輸可靠性的重要方法,而MAC層的控制協(xié)議因?yàn)榫哂刑幚硌舆t短等特點(diǎn),使它成為目前研究的重點(diǎn),其中基于領(lǐng)導(dǎo)者的系列組播差錯(cuò)控制協(xié)議最為典型。本文對(duì)典型的無(wú)線Mesh網(wǎng)絡(luò)組播差錯(cuò)控制協(xié)議的性能進(jìn)行分析,通過(guò)理論和實(shí)驗(yàn)比較其優(yōu)劣性,以期改進(jìn)出性能更優(yōu)的協(xié)議。本文結(jié)構(gòu)主要如下,第2節(jié)介紹典型的無(wú)線Mesh 網(wǎng)絡(luò)組播差錯(cuò)控制協(xié)議;第3節(jié)從理論上對(duì)協(xié)議進(jìn)行性能分析;第4節(jié)實(shí)驗(yàn)仿真結(jié)果;第5節(jié)對(duì)全文進(jìn)行總結(jié)并給出下一步研究期望。
2典型無(wú)線Mesh網(wǎng)絡(luò)組播差錯(cuò)控制協(xié)議
基于領(lǐng)導(dǎo)者的系列組播差錯(cuò)控制協(xié)議以802.11 MAC標(biāo)準(zhǔn)的分布式協(xié)調(diào)機(jī)制[ 3]為基礎(chǔ),其基本思想是選擇一個(gè)代理(即領(lǐng)導(dǎo)者)來(lái)代表所有的接收者負(fù)責(zé)與發(fā)送者進(jìn)行控制信息的交互,從而避免反饋信息沖突和爆炸。不同的基于領(lǐng)導(dǎo)者協(xié)議在非領(lǐng)導(dǎo)者是否有發(fā)言權(quán)、是否采用分層以及是否結(jié)合前向糾錯(cuò)等方面存在差異,因而其在重傳次數(shù)、信道占用時(shí)間及端到端平均時(shí)延等方面的性能不同。
定義1 組播源節(jié)點(diǎn)或任意中間需要轉(zhuǎn)發(fā)數(shù)據(jù)的節(jié)點(diǎn),在向下一跳發(fā)送或者轉(zhuǎn)發(fā)數(shù)據(jù)時(shí)稱為發(fā)送者。
2.1LBP
LBP[4]是最基本的領(lǐng)導(dǎo)者協(xié)議,其基本思想是在接收者中選出一個(gè)領(lǐng)導(dǎo)者,作為和發(fā)送者交互的代理。發(fā)送者發(fā)送數(shù)據(jù)后,如果領(lǐng)導(dǎo)者正確接收到了數(shù)據(jù),則回復(fù)ACK確認(rèn),其它節(jié)點(diǎn)無(wú)論是否收到數(shù)據(jù)都不做任何回應(yīng)。如果發(fā)送者收到領(lǐng)導(dǎo)者回復(fù)的ACK,則此次傳輸結(jié)束;如果發(fā)送者在一定時(shí)間內(nèi)沒(méi)有收到ACK,則說(shuō)明傳輸過(guò)程發(fā)生錯(cuò)誤,開(kāi)始重傳,直至能正確接收到ACK。如果非領(lǐng)導(dǎo)者沒(méi)有接收到正確數(shù)據(jù),但領(lǐng)導(dǎo)者回復(fù)了ACK,則發(fā)送者會(huì)認(rèn)為所有節(jié)點(diǎn)都已正確接收數(shù)據(jù),不會(huì)再進(jìn)行重傳,所以無(wú)法保證非領(lǐng)導(dǎo)者節(jié)點(diǎn)接收到正確數(shù)據(jù)。LBP實(shí)現(xiàn)簡(jiǎn)單,但由于非領(lǐng)導(dǎo)者沒(méi)有話語(yǔ)權(quán),不能保證組播的可靠性。
2.2BLBP
BLBP[5]在LBP的基礎(chǔ)上,使非領(lǐng)導(dǎo)者能反饋NACK來(lái)告知自己未正確收到數(shù)據(jù)。BLBP要解決的關(guān)鍵問(wèn)題是如何統(tǒng)一接收者接收數(shù)據(jù)以及進(jìn)行反饋的時(shí)間。為此,BLBP增加一個(gè)信標(biāo)幀BEACON幀,BEACON幀格式如圖1所示。持續(xù)時(shí)間標(biāo)識(shí)的是即將發(fā)送的數(shù)據(jù)的持續(xù)時(shí)間,這樣可以使所有接收者能在收到BEACON幀同時(shí)確定數(shù)據(jù)發(fā)送完成的時(shí)間,即同步了所有接收者的時(shí)間。幀序號(hào)標(biāo)識(shí)了當(dāng)前發(fā)送幀的序號(hào),重傳時(shí)已正確接收到數(shù)據(jù)的節(jié)點(diǎn)可以直接丟棄重復(fù)的幀。
BLBP的基本思想是:發(fā)送者在發(fā)送數(shù)據(jù)之前,廣播BEACON幀,這樣所有節(jié)點(diǎn)在收到BEACON幀后可根據(jù)持續(xù)時(shí)間設(shè)定自己回復(fù)ACK/NACK時(shí)間;領(lǐng)導(dǎo)者在成功接收數(shù)據(jù)后,回復(fù)ACK,如果未正確接收,則不回應(yīng);非領(lǐng)導(dǎo)者成功接收則沉默,否則回復(fù)NACK。如果發(fā)送者收到ACK,則本次組播成功結(jié)束,收到NACK或者ACK等待超時(shí)則本次組播失敗,進(jìn)行重傳,直到發(fā)送者正確接收到領(lǐng)導(dǎo)者回復(fù)的ACK時(shí),結(jié)束本次組播。
分析BLBP可知,領(lǐng)導(dǎo)者和非領(lǐng)導(dǎo)者接收數(shù)據(jù)的情況有三種。①如果所有節(jié)點(diǎn)都成功接收數(shù)據(jù),發(fā)送者會(huì)收到ACK;②如果是領(lǐng)導(dǎo)者或者某些非領(lǐng)導(dǎo)者未收到正確數(shù)據(jù),發(fā)送者會(huì)在ACK等待超時(shí)或者收到NACK后進(jìn)行重傳;③如果領(lǐng)導(dǎo)者正確接收而其他節(jié)點(diǎn)有錯(cuò)誤,則會(huì)同時(shí)回復(fù)ACK和NACK,這樣會(huì)因?yàn)樾诺罌_突導(dǎo)致信道噪音,發(fā)送者會(huì)因?yàn)闊o(wú)法正確接收到ACK而在等待超時(shí)后進(jìn)行重傳。這三種情況下,BLBP都能保證所有接收者正確接收數(shù)據(jù),因此BLBP能保證組播可靠性。
但是BLBP僅考慮了單跳情況,在多跳的無(wú)線Mesh網(wǎng)絡(luò)環(huán)境中性能較差。
2.3LBLBP
為了使BLBP能適用于多跳環(huán)境,LBLBP[6]在BLBP的基礎(chǔ)上加入分層的概念,將組播的糾錯(cuò)過(guò)程逐跳的進(jìn)行。LBLBP子層內(nèi)用改進(jìn)的BLBP協(xié)議進(jìn)行可靠性保障,且定義了層內(nèi)和層間的競(jìng)爭(zhēng)機(jī)制。
定義2從組播源節(jié)點(diǎn)開(kāi)始,按照每增加一跳將組播劃分一層,即到源節(jié)點(diǎn)跳數(shù)相同的節(jié)點(diǎn)處于同一層。
定義3如果某一層中有節(jié)點(diǎn)需要向下轉(zhuǎn)發(fā)數(shù)據(jù),那么將該節(jié)點(diǎn)和接收它轉(zhuǎn)發(fā)數(shù)據(jù)的節(jié)點(diǎn)劃分成一個(gè)子層。
在出現(xiàn)錯(cuò)誤時(shí),如果是單跳情況下,發(fā)送者只有一個(gè),可以緊接著重傳;但在多跳環(huán)境下,除子層內(nèi)發(fā)送者外,還有其他的轉(zhuǎn)發(fā)節(jié)點(diǎn)在競(jìng)爭(zhēng)信道,所以要對(duì)競(jìng)爭(zhēng)加以限制,因此加入L-C/L-R(Layer-Clear/Layer-Retransmission)幀來(lái)標(biāo)識(shí)子層內(nèi)傳輸完成情況。若子層內(nèi)所有接收者都正確接收到了數(shù)據(jù),則發(fā)送者組播L-C幀,告知此次發(fā)送成功;如果本次組播出錯(cuò),則發(fā)送者組播L-R幀,等待一定時(shí)間后發(fā)送者立刻開(kāi)始重傳過(guò)程。
由于存在多個(gè)中間節(jié)點(diǎn)需要轉(zhuǎn)發(fā)數(shù)據(jù),因此要協(xié)調(diào)節(jié)點(diǎn)對(duì)信道的使用,LBLBP定義了層內(nèi)和層間的競(jìng)爭(zhēng)機(jī)制。同層節(jié)點(diǎn)間遵循重傳優(yōu)先,轉(zhuǎn)發(fā)平等的原則。假設(shè)節(jié)點(diǎn)A本次轉(zhuǎn)發(fā)失敗,需要進(jìn)行重傳,此時(shí)同層其他節(jié)點(diǎn)偵聽(tīng)到A的L-R幀后會(huì)根據(jù)A的持續(xù)時(shí)間域繼續(xù)等待,以保證A能優(yōu)先重傳。層間采用的是下層節(jié)點(diǎn)轉(zhuǎn)發(fā)優(yōu)先的原則,保證數(shù)據(jù)幀能盡快向下傳遞,減小時(shí)延。如圖2,B、C是A的下層節(jié)點(diǎn)。A在成功完成數(shù)據(jù)傳輸后,若仍要繼續(xù)發(fā)送,則需將競(jìng)爭(zhēng)窗口設(shè)置為最小窗口的2倍再參與信道競(jìng)爭(zhēng),而B、C節(jié)點(diǎn)只要設(shè)為最小競(jìng)爭(zhēng)窗口即可參與信道競(jìng)爭(zhēng),從而保證數(shù)據(jù)能盡快向下轉(zhuǎn)發(fā)。
分析LBLBP可知,由于子層內(nèi)采用了改進(jìn)的BLBP,因此它能保證組播的可靠性;同時(shí)LBLBP在多跳環(huán)境下定義了信道競(jìng)爭(zhēng)機(jī)制,避免了無(wú)序競(jìng)爭(zhēng),能有效降低傳輸時(shí)延。但LBLBP也存在以下問(wèn)題:當(dāng)任意接收者出錯(cuò)時(shí),發(fā)送者都要將數(shù)據(jù)包單獨(dú)重傳一次,這會(huì)大大增加重傳的次數(shù),且花費(fèi)在傳輸控制幀的時(shí)間開(kāi)銷太大。
2.4HLBLBP
HLBLBP[7]在LBLBP的基礎(chǔ)上,采用前向糾錯(cuò)FEC機(jī)制降低重傳次數(shù),另外為了減少控制幀開(kāi)銷,將BEACON幀與RTS幀通過(guò)融合形成新的MRTS幀,格式如圖4所示。
HLBLBP的主要思想是:利用糾刪碼[8]技術(shù)將一個(gè)數(shù)據(jù)塊的k個(gè)數(shù)據(jù)包編碼成k+n個(gè)包,其中n個(gè)包作為重傳包。數(shù)據(jù)傳輸過(guò)程分為兩部分。首先按照802.11規(guī)定標(biāo)準(zhǔn)發(fā)送前k-c個(gè)數(shù)據(jù)包,這樣可以減少信道競(jìng)爭(zhēng)和控制幀開(kāi)銷。其中c的取值取決于信道質(zhì)量,在丟包率較小、鄰居節(jié)點(diǎn)競(jìng)爭(zhēng)較少時(shí),c取值比較小。其次采用LBLBP機(jī)制發(fā)送余下的包,當(dāng)發(fā)送完k個(gè)包后,發(fā)送者根據(jù)反饋信息決定是否要進(jìn)行重傳糾錯(cuò)。
如果領(lǐng)導(dǎo)者正確收到了k個(gè)數(shù)據(jù)包,則反饋ACK,若接收的正確數(shù)據(jù)包小于k個(gè),則不反饋任何信息;如果是非領(lǐng)導(dǎo)者正確接收到k個(gè)數(shù)據(jù)包,則不作反饋,若接收到的正確數(shù)據(jù)包小于k個(gè),則回復(fù)NACK。發(fā)送者根據(jù)反饋,若收到ACK信息,則發(fā)送L-C幀,表示數(shù)據(jù)發(fā)送成功;若收到NACK或在一定時(shí)間內(nèi)沒(méi)收到ACK幀,則發(fā)送L-R幀,表示需要進(jìn)行糾錯(cuò)。
分析可知,HLBLBP同樣能夠保證組播的可靠性;由于引入了糾刪碼技術(shù),在組播環(huán)境下單個(gè)的糾錯(cuò)包能同時(shí)糾正不同接收者的不同錯(cuò)誤,因此可以有效的減少重傳次數(shù)。雖然編碼解碼會(huì)增加計(jì)算開(kāi)銷和復(fù)雜性,占用更多的帶寬,但與LBLBP每次出錯(cuò)都要重傳數(shù)據(jù)包相比,帶寬利用率還是更高。
無(wú)線環(huán)境中某些節(jié)點(diǎn)到發(fā)送者的信道質(zhì)量可能很差,只能收到很少的正確包,需要重傳的數(shù)據(jù)包數(shù)量就很大,這樣對(duì)信道質(zhì)量較好的節(jié)點(diǎn)不公平,同時(shí)會(huì)增大數(shù)據(jù)包向下轉(zhuǎn)發(fā)的時(shí)延,影響整個(gè)網(wǎng)絡(luò)的性能。因此,公平性問(wèn)題是基于領(lǐng)導(dǎo)者系列協(xié)議要解決的一個(gè)共同問(wèn)題。
3理論分析
從上節(jié)分析可知LBP不能保證可靠性,而BLBP、LBLBP和HLBLBP三種協(xié)議都能保證可靠性,因此只對(duì)后三種協(xié)議的性能進(jìn)行分析。重點(diǎn)分析協(xié)議的傳輸次數(shù)期望E(N)、數(shù)據(jù)包信道占用時(shí)間期望T(N)和端到端平均時(shí)延DK。假設(shè)本文用到的MAC層控制幀(RTS、CTS、BEACON、ACK/NACK等)都可無(wú)差錯(cuò)地傳輸?shù)浇邮照摺?/p>
3.1傳輸次數(shù)期望
5結(jié)束語(yǔ)
本文從理論和實(shí)驗(yàn)上分析了BLBP、LBLBP、HLBLBP等典型的無(wú)線Mesh網(wǎng)絡(luò)組播差錯(cuò)控制協(xié)議的性能,結(jié)果表明三者均能保證組播的可靠性;其中BLBP主要適用于單跳環(huán)境,而LBLBP和HLBLBP能適用于多跳環(huán)境;在傳輸次數(shù)、信道占用時(shí)間、端到端平均時(shí)延等方面HLBLBP的整體性能最好。但HLBLBP也存在某些信道質(zhì)量較差節(jié)點(diǎn)影響整個(gè)網(wǎng)絡(luò)的性能,對(duì)信道質(zhì)量好的節(jié)點(diǎn)不公平,因此解決這個(gè)公平性問(wèn)題是下一步的研究目標(biāo)。
參考文獻(xiàn)
[1]周賢偉.IP組播與安全[M].北京:國(guó)防工業(yè)出版社,2006.
[2]方旭明.下一代無(wú)線因特網(wǎng)技術(shù):無(wú)線Mesh網(wǎng)絡(luò)[M].北京:北京郵電出版,2007.
[3]IEEE Standards Department. Wireless LAN medium access control (MAC) and physical layer (PHY) specifications[S].Piscataway,NJ,USA.IEEE,2000.
[4]J Kuri, SK Kasera. Reliable multicast in multiaccess wireless LANs[J].ACM/Kliwer Wireless Networks Journal.2001,7(4):445-487.
[5]Zhao Li,Herfet T. BLBP:A Beacondriven Leader Based Protocol for MAC Layer Multicast Error Control in Wireless LANs[C].Wicom’08.HJ,USA.IEEE,2008:1-4.
[6]席鵬,周顥,趙保華.分層信標(biāo)幀驅(qū)動(dòng)的無(wú)線Mesh網(wǎng)多播差錯(cuò)控制協(xié)議[J].西安交通大學(xué)學(xué)報(bào).2010.6,44:51-56.
[7]CHI Xinzhe, ZHOU Hao,ZHAO Baohua. Multicast Error Control Protocol in Wireless Mesh Networks Based on Forward Correction[J]. Journal of Xi’an Jiaotong University.2011.8,45:y1-y6.
[8]Rizoo L. Effective erasure codes for reliable computer communication protocols[J].