文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2010)10-0145-04
隨著無線網(wǎng)絡(luò)技術(shù)的快速發(fā)展和廣泛應(yīng)用,無線移動(dòng)用戶已經(jīng)不能僅僅滿足于簡(jiǎn)單的數(shù)據(jù)通信。視頻通信,特別是有嚴(yán)格時(shí)延、錯(cuò)誤率限制的實(shí)時(shí)多播業(yè)務(wù)需求正在迅猛增加[1]。大量的實(shí)時(shí)多播應(yīng)用充斥于無線網(wǎng)絡(luò)中,包括:數(shù)字視頻廣播、視頻會(huì)議、游戲、VoIP、IPTV等。
然而,IEEE802.11[2]對(duì)多播數(shù)據(jù)的MAC層傳輸不提供糾錯(cuò),多播數(shù)據(jù)無法得到可靠性保證。如何在高丟包率的無線網(wǎng)絡(luò)中完成快速、準(zhǔn)確的多播數(shù)據(jù)傳輸,這是無線網(wǎng)絡(luò)下的多播糾錯(cuò)協(xié)議所要解決的首要問題。
現(xiàn)有的無線多播糾錯(cuò)協(xié)議大多是基于應(yīng)用層[3-5],雖然在可靠性上都較好地達(dá)成了期望,但是由于應(yīng)用層處于物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層等層次之上,在系統(tǒng)中位置較高,基于應(yīng)用層的協(xié)議往往延時(shí)較大,有時(shí)候不能滿足嚴(yán)格的應(yīng)用程序延時(shí)限制。目前對(duì)無線MAC層多播糾錯(cuò)協(xié)議的研究主要有BMW[6] (Broadcast Medium Window),BMMM[7] (Batch Mode Multicast MAC)和BLBP[8](Beacon-driven Leader Based Protocol)等幾種方法。BMMM傳輸一個(gè)數(shù)據(jù)幀要發(fā)送大量的控制幀而增加了傳輸時(shí)間。BLBP在可靠性上存在問題。BMW雖然可以確保進(jìn)行可靠的多播,但是數(shù)據(jù)幀的糾錯(cuò)時(shí)間較長(zhǎng)。因此本文在BMW的基礎(chǔ)上,提出了BMW的改進(jìn)協(xié)議MMW(Multicast Medium Window),既保持了BMW的可靠性,又克服了BMW延時(shí)較大的特點(diǎn)。
1 BMW協(xié)議
BMW協(xié)議提出了一種可靠的MAC層多播機(jī)制,其主要思想是輪流對(duì)各個(gè)鄰居節(jié)點(diǎn)進(jìn)行單播來達(dá)到多播的效果。
BMW要求每個(gè)節(jié)點(diǎn)保存3個(gè)列表:成員列表、發(fā)送列表和接收列表。成員列表用來記錄所有鄰居節(jié)點(diǎn)的MAC地址;發(fā)送列表用來保存已經(jīng)發(fā)送但還沒有被所有鄰居節(jié)點(diǎn)確認(rèn)收到的多播數(shù)據(jù)幀,列表大小應(yīng)不小于鄰居節(jié)點(diǎn)數(shù)量;接收列表用來記錄已經(jīng)收到多播數(shù)據(jù)幀的序列號(hào)。
BMW在RTS幀中新加入LS和RS兩個(gè)域,分別用來標(biāo)記發(fā)送列表數(shù)據(jù)幀中的最小序列號(hào)和當(dāng)前序列號(hào)。CTS新加入SC域用來標(biāo)記需要的數(shù)據(jù)幀序列號(hào)。擴(kuò)展的RTS、CTS報(bào)文結(jié)構(gòu)如圖1所示。
當(dāng)一個(gè)節(jié)點(diǎn)需要發(fā)送一個(gè)多播幀時(shí),首先將該幀保存到發(fā)送列表中,然后在成功執(zhí)行CSMA/CA后發(fā)送RTS。RTS幀包含當(dāng)前發(fā)送列表中數(shù)據(jù)幀的最小序列號(hào)和當(dāng)前序列號(hào),并選擇鄰居列表中第一個(gè)鄰居節(jié)點(diǎn)的MAC地址作為目的地址。該鄰居成功接收到RTS后,根據(jù)最小序列號(hào)、當(dāng)前序列號(hào)和接收列表檢查是否有丟失數(shù)據(jù)幀。如果有則將丟失幀的序列號(hào)寫入CTS并回復(fù),否則回復(fù)帶有當(dāng)前序列號(hào)的CTS。發(fā)送節(jié)點(diǎn)收到CTS,從發(fā)送列表中找到對(duì)應(yīng)的數(shù)據(jù)幀進(jìn)行發(fā)送,目的節(jié)點(diǎn)成功收到該數(shù)據(jù)幀后回復(fù)ACK,并把數(shù)據(jù)幀的序列號(hào)記錄到接收列表中。其他鄰居在接收到該數(shù)據(jù)幀后也將對(duì)序列號(hào)記錄到自己的接收列表中。如果發(fā)送節(jié)點(diǎn)發(fā)送的數(shù)據(jù)不是當(dāng)前數(shù)據(jù)幀,則重復(fù)上述與該鄰居節(jié)點(diǎn)對(duì)話過程直到發(fā)送當(dāng)前數(shù)據(jù)幀并收到ACK確認(rèn)。如能成功發(fā)送當(dāng)前數(shù)據(jù)幀且該鄰居節(jié)點(diǎn)已經(jīng)確認(rèn)收到發(fā)送列表中的所有幀,則刪除發(fā)送列表中已被所有鄰居確認(rèn)的數(shù)據(jù)幀;然后發(fā)送節(jié)點(diǎn)將選擇鄰居列表中的下一個(gè)鄰居重復(fù)上述方法發(fā)送下一個(gè)多播幀。如果沒有新的多播幀需要發(fā)送,則選擇鄰居列表中下一個(gè)鄰居使用上述方法發(fā)送當(dāng)前的多播幀。當(dāng)發(fā)送列表中沒有數(shù)據(jù)幀時(shí)停止BMW循環(huán)過程,直到有新的多播幀需要發(fā)送時(shí),重啟BMW。
可以看出,BMW發(fā)送多播數(shù)據(jù)時(shí),輪流對(duì)鄰居節(jié)點(diǎn)進(jìn)行單播,并在單播的時(shí)候?qū)υ撪従庸?jié)點(diǎn)之前丟失的數(shù)據(jù)幀進(jìn)行重傳。每個(gè)多播幀都能確保被所有節(jié)點(diǎn)接收,但是每個(gè)節(jié)點(diǎn)只有被選擇作為目的節(jié)點(diǎn)時(shí)才能對(duì)之前丟失的數(shù)據(jù)幀就行重傳。當(dāng)接收節(jié)點(diǎn)數(shù)目較多時(shí),加大了數(shù)據(jù)傳輸?shù)难訒r(shí)。
2 BMW的改進(jìn)協(xié)議MMW
MMW是在BMW的基礎(chǔ)上進(jìn)行改進(jìn)的,既保持了多播數(shù)據(jù)可靠傳輸?shù)奶攸c(diǎn),又可以使丟失的報(bào)文即時(shí)得到重傳,減小了報(bào)文傳輸?shù)难訒r(shí)。
2.1 改進(jìn)成員列表
由于BMW對(duì)廣播數(shù)據(jù)和多播數(shù)據(jù)不做區(qū)分,將所有各個(gè)多播組的多播數(shù)據(jù)和廣播數(shù)據(jù)共同計(jì)算序列號(hào),輪流對(duì)各個(gè)鄰居節(jié)點(diǎn)進(jìn)行單播并進(jìn)行糾錯(cuò)。實(shí)際上把一個(gè)多播數(shù)據(jù)發(fā)送給非多播接收節(jié)點(diǎn)的鄰居節(jié)點(diǎn)并進(jìn)行糾錯(cuò)是沒有必要的,而且增加了糾錯(cuò)時(shí)間。
MMW中規(guī)定每個(gè)節(jié)點(diǎn)為每一個(gè)多播組分別保存成員列表、發(fā)送列表和接收列表:成員列表用來記錄該多播組所有多播接收節(jié)點(diǎn)的MAC地址,該列表在創(chuàng)建多播路由時(shí)獲得;發(fā)送列表用來保存已經(jīng)發(fā)送但還沒有被所有多播接收節(jié)點(diǎn)確認(rèn)收到的多播數(shù)據(jù)幀,列表大小應(yīng)不小于多播接收節(jié)點(diǎn)的數(shù)量;接收列表用來記錄已經(jīng)收到多播數(shù)據(jù)幀的序列號(hào)。由于MMW對(duì)不同的多播組分開計(jì)算序列號(hào),所以需要對(duì)RTS幀繼續(xù)進(jìn)行改進(jìn),具體報(bào)文結(jié)構(gòu)如圖2所示,加入MA域來記錄多播MAC地址。該RTS幀用來表明將要發(fā)送的數(shù)據(jù)屬于哪個(gè)多播組的以及源節(jié)點(diǎn)的該多播組發(fā)送列表中的最小序列號(hào)和當(dāng)前序列號(hào)。廣播被看作一個(gè)特殊的多播組,成員列表為鄰居列表,RTS中的MA域填入廣播MAC地址。
通過對(duì)成員列表的改進(jìn),每個(gè)多播報(bào)文只需要對(duì)各自多播組的接收節(jié)點(diǎn)進(jìn)行糾錯(cuò),而不需要對(duì)所有鄰居節(jié)點(diǎn)糾錯(cuò),減少了糾錯(cuò)延時(shí)。
2.2 引入重傳請(qǐng)求幀
BMW中假設(shè)1個(gè)節(jié)點(diǎn)有n個(gè)鄰居節(jié)點(diǎn),當(dāng)它向第一個(gè)鄰居發(fā)送第一個(gè)多播數(shù)據(jù)時(shí),鄰居列表中第n個(gè)鄰居由于沖突等原因沒有成功接收到這個(gè)數(shù)據(jù),則第n個(gè)鄰居此時(shí)已經(jīng)發(fā)現(xiàn)自己出現(xiàn)丟失了數(shù)據(jù)包,但必須在等待傳輸了n-1個(gè)數(shù)據(jù)后,當(dāng)發(fā)送節(jié)點(diǎn)選擇第n個(gè)鄰居單播多播數(shù)據(jù)幀時(shí),才會(huì)重傳這個(gè)數(shù)據(jù)??梢钥闯?,BMW不能及時(shí)進(jìn)行糾錯(cuò),加大了丟失幀的糾錯(cuò)延時(shí)。
MMW引入了重傳請(qǐng)求幀,其報(bào)文格式如圖3所示,RA域、TA域與RTS幀相同,MA域?yàn)槎嗖ソMMAC地址,SC域?yàn)閬G失幀的序列號(hào)。在每次數(shù)據(jù)傳輸完成后,接收節(jié)點(diǎn)都會(huì)根據(jù)最大序列號(hào)、當(dāng)前序列號(hào)以及自己的接收列表來檢查是否有丟失幀。如果有,則在執(zhí)行完CSMA/CA后發(fā)送重傳請(qǐng)求幀通知源節(jié)點(diǎn)。源節(jié)點(diǎn)接收到重傳請(qǐng)求幀后,立刻與該節(jié)點(diǎn)進(jìn)行RTS/CTS交換,完成交換后發(fā)送丟失幀。在傳輸丟失幀時(shí),其他丟失該數(shù)據(jù)幀的接收節(jié)點(diǎn)也接收此幀并更新各自的接收列表。同時(shí)可能有不止1個(gè)節(jié)點(diǎn)發(fā)現(xiàn)丟失多播數(shù)據(jù)幀,都要發(fā)送重傳請(qǐng)求幀,其他節(jié)點(diǎn)也有可能要發(fā)送RTS幀。因此,在發(fā)送重傳請(qǐng)求幀前使用了CSMA/CA避免沖突,一個(gè)節(jié)點(diǎn)在競(jìng)爭(zhēng)到信道使用權(quán)后,才能發(fā)送重傳請(qǐng)求幀通知源節(jié)點(diǎn)對(duì)丟失幀進(jìn)行重傳。
重傳請(qǐng)求幀的引入是為了讓接收節(jié)點(diǎn)在發(fā)現(xiàn)自己存在丟失數(shù)據(jù)幀后,可以主動(dòng)地請(qǐng)求源節(jié)點(diǎn)立即進(jìn)行重傳,而不必等到被選擇作為目的節(jié)點(diǎn)時(shí)才會(huì)對(duì)丟失的包進(jìn)行糾錯(cuò),減少了數(shù)據(jù)幀的傳輸延時(shí)。
3 仿真實(shí)驗(yàn)
通過仿真實(shí)驗(yàn)對(duì)MAC層糾錯(cuò)協(xié)議BMW、BMMM、BLBP和MMW進(jìn)行比較。發(fā)送10 000個(gè)大小為1 500 B的多播數(shù)據(jù)幀,比較不同數(shù)量接收節(jié)點(diǎn)情況下各個(gè)協(xié)議所需要的時(shí)間以及在一定延時(shí)限制內(nèi)的數(shù)據(jù)丟包情況。物理層部分參數(shù)如表1所示,參數(shù)使用801.11a標(biāo)準(zhǔn)。所有的接收節(jié)點(diǎn)與發(fā)送節(jié)點(diǎn)只有一跳的距離。
圖4是網(wǎng)絡(luò)丟包率為0.1時(shí),不同數(shù)量的接收節(jié)點(diǎn)環(huán)境下發(fā)送10 000個(gè)數(shù)據(jù)幀所用的總傳輸時(shí)間。每種協(xié)議所需要的傳輸時(shí)間都隨著接收節(jié)點(diǎn)的數(shù)量增加而加大,這是由于接收節(jié)點(diǎn)數(shù)量的增大,造成更多的重傳。其中BMMM增加的速度要快于其他協(xié)議,因?yàn)锽MMM每發(fā)送1個(gè)數(shù)據(jù)包都要進(jìn)行更多的控制幀交換,控制幀的數(shù)量隨著接收節(jié)點(diǎn)的增加而增大,因此當(dāng)接收節(jié)點(diǎn)數(shù)量加大時(shí),BMMM所用的傳輸時(shí)間要高于其他3種協(xié)議。
圖5是接收節(jié)點(diǎn)為10個(gè)時(shí),不同網(wǎng)絡(luò)丟包率環(huán)境下發(fā)送10 000個(gè)數(shù)據(jù)幀所用的總時(shí)間。由圖可以看出,每種協(xié)議所需要的傳輸時(shí)間都隨著丟包率增加而加大,這也是因?yàn)榫W(wǎng)絡(luò)丟包率的增加也造成了更多的重傳。而且四種協(xié)議傳輸時(shí)間增大的速度基本相同,但是由于接收節(jié)點(diǎn)為10個(gè)時(shí)BMMM需要進(jìn)行大量的控制幀交換,所以BMMM的傳輸時(shí)間要高于其他三種協(xié)議。
圖6是接收節(jié)點(diǎn)數(shù)量為10個(gè)時(shí),不同網(wǎng)絡(luò)丟包率環(huán)境下發(fā)送數(shù)據(jù)幀的最大延遲時(shí)間??梢钥闯?BMMM、MMW、BLBP最大延遲時(shí)間都在10 ms以下,而BMW由于不能即時(shí)丟失的數(shù)據(jù)幀進(jìn)行重傳,增大了數(shù)據(jù)幀傳輸?shù)难訒r(shí)。
圖7是10個(gè)接收節(jié)點(diǎn)、網(wǎng)絡(luò)丟包率為0.1的情況下,每種協(xié)議在不同延時(shí)限制下的丟失數(shù)據(jù)幀的數(shù)量。BLBP在beach幀的丟失后,非領(lǐng)導(dǎo)節(jié)點(diǎn)即使丟失數(shù)據(jù)幀后也不會(huì)回復(fù)NACK(Negative Acknowledgements)幀,并且存在隱藏節(jié)點(diǎn)問題,造成協(xié)議的不可靠,出現(xiàn)丟包。BMMM、BLBP對(duì)一個(gè)多播數(shù)據(jù)幀進(jìn)行糾錯(cuò)結(jié)束后才發(fā)送下一幀,及時(shí)對(duì)丟失數(shù)據(jù)進(jìn)行重傳,因此所有數(shù)據(jù)幀的延時(shí)都小于10 ms。而BMW只有在節(jié)點(diǎn)被選擇作為目的節(jié)點(diǎn)時(shí)才能對(duì)之前丟失的數(shù)據(jù)包進(jìn)行糾錯(cuò),加大了數(shù)據(jù)幀延時(shí),在延時(shí)限制10 ms時(shí)存在約為1.2%的丟包率。MMW加入了重傳請(qǐng)求幀,使得丟失數(shù)據(jù)包可以及時(shí)進(jìn)行糾錯(cuò),所有數(shù)據(jù)幀的傳輸延時(shí)保持在10 ms以下。
綜上所述,可以發(fā)現(xiàn)BMMM在接收節(jié)點(diǎn)變大時(shí)需要傳輸大量的控制幀而加大了傳輸時(shí)間;BMW由于不能即時(shí)對(duì)丟失的數(shù)據(jù)幀進(jìn)行重傳,增大了數(shù)據(jù)幀糾錯(cuò)延時(shí);而BLBP的可靠性存在問題。MMW卻解決了以上問題,為上層的多播服務(wù)提供了更可靠的實(shí)時(shí)性保障。
本文在BMW的基礎(chǔ)上進(jìn)行改進(jìn),提出了無線局域網(wǎng)糾錯(cuò)協(xié)議MMW。MMW通過對(duì)BMW成員列表的改進(jìn)和引入了重傳請(qǐng)求幀,減少了BMW協(xié)議中的糾錯(cuò)延時(shí),保證了無線多播數(shù)據(jù)在MAC層快速、可靠傳輸。通過仿真實(shí)驗(yàn)表明,在網(wǎng)絡(luò)丟包率為0.1、存在10個(gè)多播接收節(jié)點(diǎn)、延時(shí)限制為10 ms的情況下,MMW仍能保證所有的數(shù)據(jù)報(bào)正確傳輸,為上層多播服務(wù)提供了很好的保證。
參考文獻(xiàn)
[1] DUJOVNE D, TURLETTI T. Multicast in 802.11 WLANs: an experimental study[C]. 9th ACM/IEEE International Symposium on Modeling, Analysis and Simulation of Wireless and Mobile Systems (MSWiM), 2006.
[2] IEEE Standards Department. Wireless LAN medium access control(MAC) and physical layer(PHY) specifications[S/OL]. IEEE std 802.11TM, 2007, http://standards.ieee.org/.
[3] TAN Guo Ping, HERFET T. Optimization of an RTP level hybrid error correction scheme for DVB services in wireless home networks under strict delay constraints[J]. IEEE Transactions on Broadcasting, 2007,53(1).
[4] REIMERS U H, DVB-the family of international standards for digital video broadcasting[J]. Proc. IEEE, 2006,94(1): 173-182.
[5] MAJUMDAR A, SACHS D G, KOZINTSEZ IV, et al. Multicast and unicast real-time video streaming over wireless LANs[J]. IEEE Transactions on CSVT, 2002,12(6).
[6] TANG K, GERLA M. MAC reliable broadcast in Ad Hoc networks[C]. IEEE MILCOM2001,2001:1008-1013.
[7] SUN M T, HUANG L, ARORA A,et al. MAC layer multicast in IEEE 802.11 wireless networks[C]. International Conference on Parallel Processing (ICPP) 2002, 2002.
[8] LI Zhao, HERFET T. BLBP: beacon-driven leader based protocol for MAC layer multicast error control in wireless LANs[C]. International Conference on Wireless Communications, Networking and Mobile Computing, WiCOM,2008.