




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章無(wú)線自組織網(wǎng)絡(luò)技術(shù)5.1Adhoc網(wǎng)絡(luò)原理5.2Adhoc網(wǎng)絡(luò)協(xié)議5.3Adhoc網(wǎng)絡(luò)的TCP協(xié)議
5.1Adhoc網(wǎng)絡(luò)原理5.1.1基本概念移動(dòng)通信網(wǎng)絡(luò)通常可以分為兩類(lèi)。第一類(lèi)是有基礎(chǔ)設(shè)施的(Infrastructure)移動(dòng)網(wǎng)絡(luò),網(wǎng)內(nèi)包含固定的或有線的網(wǎng)關(guān)。移動(dòng)節(jié)點(diǎn)通過(guò)空中接口與其通信范圍內(nèi)最近的基站通信,并享受有線網(wǎng)絡(luò)資源。由于基站和移動(dòng)終端僅有“一跳”的距離,因而有基礎(chǔ)設(shè)施的移動(dòng)無(wú)線網(wǎng)絡(luò)又被稱為“單跳”(SingleHop)無(wú)線網(wǎng),如常規(guī)的GSM、GPRS等蜂窩無(wú)線系統(tǒng),以及無(wú)線局域網(wǎng)等。第二類(lèi)是無(wú)基礎(chǔ)設(shè)施的移動(dòng)網(wǎng)絡(luò),也就是移動(dòng)Adhoc網(wǎng)絡(luò)。它是一種自治的無(wú)線多跳網(wǎng),整個(gè)網(wǎng)絡(luò)沒(méi)有固定的基礎(chǔ)設(shè)施,也沒(méi)有固定的路由器,在這種網(wǎng)絡(luò)環(huán)境中移動(dòng)節(jié)點(diǎn)間可通過(guò)空中接口直接通信,由于終端的無(wú)線覆蓋范圍的有限性,兩個(gè)不在彼此無(wú)線覆蓋范圍內(nèi)、無(wú)法直接進(jìn)行通信的用戶終端可能需要借助其他多個(gè)中間節(jié)點(diǎn)進(jìn)行中繼通信。因此無(wú)基礎(chǔ)設(shè)施的移動(dòng)無(wú)線網(wǎng)有時(shí)被稱為“多跳”(Multi-Hop)無(wú)線網(wǎng)。圖5-1為單跳無(wú)線網(wǎng)和多跳無(wú)線網(wǎng)的拓?fù)鋱D。圖5-1單跳無(wú)線網(wǎng)和多跳無(wú)線網(wǎng)的拓?fù)鋱D根據(jù)前面所述,Adhoc網(wǎng)絡(luò)是一種特殊的無(wú)線移動(dòng)網(wǎng)絡(luò)。網(wǎng)絡(luò)中所有節(jié)點(diǎn)的地位平等,無(wú)需任何預(yù)設(shè)的基礎(chǔ)設(shè)施和任何的中心控制節(jié)點(diǎn)。網(wǎng)絡(luò)中的節(jié)點(diǎn)具有普通移動(dòng)終端的功能,而且具有分組轉(zhuǎn)發(fā)能力。
Adhoc網(wǎng)絡(luò)的前身是分組無(wú)線網(wǎng)PRNET(PacketRadioNetwork)。早在1972年,美國(guó)國(guó)防部高級(jí)研究規(guī)劃署(DARPA)就啟動(dòng)了分組無(wú)線網(wǎng)項(xiàng)目PRNET,研究在戰(zhàn)場(chǎng)環(huán)境下利用分組無(wú)線網(wǎng)進(jìn)行數(shù)據(jù)通信。在此之后,DARPA于1983年啟動(dòng)了高殘存性自適應(yīng)網(wǎng)絡(luò)項(xiàng)目(SurvivableAdaptiveNetwork,SURAN),研究如何將PRNET的研究成果加以擴(kuò)展,以支持更大規(guī)模的網(wǎng)絡(luò)。
1994年,DARPA又啟動(dòng)了全球移動(dòng)信息系統(tǒng)GloMo(GlobalMobileInformationSystems)項(xiàng)目,旨在對(duì)能夠滿足軍事應(yīng)用需要的、可快速展開(kāi)、高抗毀性的移動(dòng)信息系統(tǒng)進(jìn)行全面深入的研究。成立于1991年5月的IEEE?802.11標(biāo)準(zhǔn)委員會(huì)采用了“Adhoc網(wǎng)絡(luò)”一詞來(lái)描述這種特殊的自組織對(duì)等式多跳移動(dòng)通信網(wǎng)絡(luò),Adhoc網(wǎng)絡(luò)就此誕生。IETF也將Adhoc網(wǎng)絡(luò)稱為MANET(移動(dòng)Adhoc網(wǎng)絡(luò))。Adhoc網(wǎng)絡(luò)是一種沒(méi)有有線基礎(chǔ)設(shè)施支持的移動(dòng)網(wǎng)絡(luò),網(wǎng)絡(luò)中的節(jié)點(diǎn)均由移動(dòng)主機(jī)構(gòu)成。
Adhoc網(wǎng)絡(luò)最初應(yīng)用于軍事領(lǐng)域,它的研究起源于戰(zhàn)場(chǎng)環(huán)境下分組無(wú)線網(wǎng)數(shù)據(jù)通信項(xiàng)目,該項(xiàng)目由DARPA資助,其后,又在1983年和1994年進(jìn)行了抗毀可適應(yīng)網(wǎng)絡(luò)和全球移動(dòng)信息系統(tǒng)GloMo(GlobalInformationSystem)項(xiàng)目的研究。由于無(wú)線通信和終端技術(shù)的不斷進(jìn)步,Adhoc網(wǎng)絡(luò)在民用環(huán)境下也得到了發(fā)展,如需要在沒(méi)有有線基礎(chǔ)設(shè)施的地區(qū)進(jìn)行臨時(shí)通信時(shí),可以很方便地通過(guò)搭建Adhoc網(wǎng)絡(luò)實(shí)現(xiàn)。
Adhoc的意思是“forthis”,引申為“forthispurposeonly”,解釋為“為某種目的設(shè)置的,特別的”意思,即Adhoc網(wǎng)絡(luò)是一種有特殊用途的網(wǎng)絡(luò)。Adhoc網(wǎng)絡(luò)是由一組帶有無(wú)線收發(fā)裝置的移動(dòng)終端組成的一個(gè)多跳臨時(shí)性自治系統(tǒng),移動(dòng)終端具有路由功能,可以通過(guò)無(wú)線連接構(gòu)成任意的網(wǎng)絡(luò)拓?fù)?,這種網(wǎng)絡(luò)可以獨(dú)立工作,也可以與Internet或蜂窩無(wú)線網(wǎng)絡(luò)連接。在后一種情況中,Adhoc網(wǎng)絡(luò)通常是以末端子網(wǎng)(樹(shù)樁網(wǎng)絡(luò))的形式接入現(xiàn)有網(wǎng)絡(luò)??紤]到帶寬和功率的限制,MANET一般不適于作為中間傳輸網(wǎng)絡(luò),它只允許產(chǎn)生于或目的地是網(wǎng)絡(luò)內(nèi)部節(jié)點(diǎn)的信息進(jìn)出,而不讓其他信息穿越本網(wǎng)絡(luò),從而大大減少了與現(xiàn)存Internet互操作的路由開(kāi)銷(xiāo)。Adhoc網(wǎng)絡(luò)中,每個(gè)移動(dòng)終端兼?zhèn)渲鳈C(jī)和路由器兩種功能:作為主機(jī),終端需要運(yùn)行面向用戶的應(yīng)用程序;作為路由器,終端需要運(yùn)行相應(yīng)的路由協(xié)議,根據(jù)路由策略和路由表參與分組轉(zhuǎn)發(fā)和路由維護(hù)工作。在Adhoc網(wǎng)絡(luò)中,節(jié)點(diǎn)間的路由通常由多個(gè)網(wǎng)段(跳)組成,由于終端的無(wú)線傳輸范圍有限,兩個(gè)無(wú)法直接通信的終端節(jié)點(diǎn)往往要通過(guò)多個(gè)中間節(jié)點(diǎn)的轉(zhuǎn)發(fā)來(lái)實(shí)現(xiàn)通信。所以,它又被稱為多跳無(wú)線網(wǎng)、自組織網(wǎng)絡(luò)、無(wú)固定設(shè)施的網(wǎng)絡(luò)或?qū)Φ染W(wǎng)絡(luò)。Adhoc網(wǎng)絡(luò)同時(shí)具備移動(dòng)通信和計(jì)算機(jī)網(wǎng)絡(luò)的特點(diǎn),可以看做是一種特殊類(lèi)型的移動(dòng)計(jì)算機(jī)通信網(wǎng)絡(luò)。與常見(jiàn)的有線固定網(wǎng)絡(luò)及基礎(chǔ)設(shè)施移動(dòng)無(wú)線網(wǎng)絡(luò)相比,Adhoc網(wǎng)絡(luò)具有如下基本特征:
(1)網(wǎng)絡(luò)自主性。Adhoc網(wǎng)絡(luò)相對(duì)于常規(guī)通信網(wǎng)絡(luò)而言,最大的區(qū)別就是網(wǎng)絡(luò)的部署或展開(kāi)無(wú)需依賴于任何預(yù)設(shè)的基礎(chǔ)設(shè)施。節(jié)點(diǎn)通過(guò)分層協(xié)議和分布式算法協(xié)調(diào)各自的行為,它們可以快速、自主地組成一個(gè)獨(dú)立的網(wǎng)絡(luò)。這也是個(gè)人通信的一種體現(xiàn)形式,它可以滿足隨時(shí)隨地信息交互的需求,從而真正實(shí)現(xiàn)了人們?cè)谌魏螘r(shí)間、任何地點(diǎn)以任何一種方式與任何一個(gè)人進(jìn)行通信的夢(mèng)想。
(2)多跳通信。由于無(wú)線接收機(jī)的信號(hào)傳播范圍有限,Adhoc網(wǎng)絡(luò)要求支持“多跳”通信,即當(dāng)移動(dòng)節(jié)點(diǎn)與它們的目的地不能直接進(jìn)行通信時(shí),它們將借助中間節(jié)點(diǎn)對(duì)它們發(fā)送的分組進(jìn)行轉(zhuǎn)發(fā)。與同等網(wǎng)絡(luò)規(guī)模的單跳網(wǎng)絡(luò)相比,“多跳”的構(gòu)網(wǎng)方式將大大降低網(wǎng)絡(luò)節(jié)點(diǎn)的發(fā)射功率,不僅可以減小功耗電磁干擾以及成本,而且可以提高移動(dòng)終端的靈活性和便攜性。
(3)動(dòng)態(tài)拓?fù)洹dhoc網(wǎng)絡(luò)是一個(gè)動(dòng)態(tài)的網(wǎng)絡(luò),網(wǎng)絡(luò)中的節(jié)點(diǎn)可以隨時(shí)隨處移動(dòng),也可以隨時(shí)開(kāi)機(jī)和關(guān)機(jī),這種任意移動(dòng)性及無(wú)線傳播環(huán)境隨時(shí)間的不確定性,都將導(dǎo)致網(wǎng)絡(luò)拓?fù)湟圆豢深A(yù)測(cè)的方式任意和快速地改變。圖5-2表示了節(jié)點(diǎn)頻繁移動(dòng)導(dǎo)致網(wǎng)絡(luò)拓?fù)漕l繁改變的情形。圖5-2動(dòng)態(tài)拓?fù)浣Y(jié)構(gòu)
(4)分布式控制。Adhoc網(wǎng)絡(luò)中的移動(dòng)節(jié)點(diǎn)兼?zhèn)渲鳈C(jī)和路由功能,不存在一個(gè)網(wǎng)絡(luò)中心控制點(diǎn),用戶節(jié)點(diǎn)之間的地位是平等的,節(jié)點(diǎn)可以隨時(shí)加入和離開(kāi)網(wǎng)絡(luò)。網(wǎng)絡(luò)路由協(xié)議通常采用分布式控制方式,因而具有很強(qiáng)的魯棒性和抗毀性,任何節(jié)點(diǎn)發(fā)生故障都不會(huì)影響整個(gè)網(wǎng)絡(luò)的運(yùn)行。如圖5-3所示,即使節(jié)點(diǎn)B出現(xiàn)故障,節(jié)點(diǎn)5仍然能夠借助節(jié)點(diǎn)3與節(jié)點(diǎn)A進(jìn)行通信,或借助節(jié)點(diǎn)6和節(jié)點(diǎn)7與節(jié)點(diǎn)C進(jìn)行通信。圖5-3魯棒性和抗毀性示意圖
(5)帶寬限制和變化的鏈路容量。Adhoc網(wǎng)絡(luò)采用無(wú)線傳輸技術(shù)作為底層通信手段,相對(duì)于有線信道,無(wú)線信道由于受帶寬的限制導(dǎo)致容量較低,并且由于多路訪問(wèn)、多徑衰落、噪聲和信號(hào)干擾等多種因素,無(wú)線鏈路的容量將更加有限,這使得移動(dòng)節(jié)點(diǎn)可得到的實(shí)際帶寬遠(yuǎn)小于理論上的最大帶寬值。
(6)應(yīng)用廣域化。進(jìn)入21世紀(jì),Adhoc網(wǎng)絡(luò)技術(shù)及應(yīng)用正朝多元化方向發(fā)展,如圖5-4所示,移動(dòng)Adhoc網(wǎng)絡(luò)可以支持CDMA、GPRS等各類(lèi)無(wú)線通信網(wǎng)絡(luò)。圖5-4移動(dòng)Adhoc網(wǎng)絡(luò)技術(shù)支持CDMA、GPRS等各類(lèi)無(wú)線通信網(wǎng)絡(luò)5.1.2Adhoc網(wǎng)絡(luò)的應(yīng)用
Adhoc網(wǎng)絡(luò)的應(yīng)用范圍很廣,總體上來(lái)說(shuō),它可以用于以下場(chǎng)合:
(1)沒(méi)有有線通信設(shè)施的地方,如沒(méi)有建立硬件通信設(shè)施或有線通信設(shè)施遭受破壞。
(2)需要分布式特性的網(wǎng)絡(luò)通信環(huán)境。
(3)現(xiàn)有有線通信設(shè)施不足,需要臨時(shí)快速建立一個(gè)通信網(wǎng)絡(luò)的環(huán)境。
(4)作為生存性較強(qiáng)的后備網(wǎng)絡(luò)。
Adhoc網(wǎng)絡(luò)的應(yīng)用總體上可以歸納為以下幾類(lèi)。
(1)軍事應(yīng)用:Adhoc網(wǎng)絡(luò)技術(shù)的研究最初是為了滿足軍事應(yīng)用的需要,軍隊(duì)通信系統(tǒng)需要具有抗毀性、自組性和機(jī)動(dòng)性。在戰(zhàn)爭(zhēng)中,通信系統(tǒng)很容易受到敵方的攻擊,因此,需要通信系統(tǒng)能夠抵御一定程度的攻擊。若采用集中式的通信系統(tǒng),一旦通信中心受到破壞,將導(dǎo)致整個(gè)系統(tǒng)的癱瘓。分布式的系統(tǒng)可以保證部分通信節(jié)點(diǎn)或鏈路斷開(kāi)時(shí),其余部分還能繼續(xù)工作。在戰(zhàn)爭(zhēng)中,戰(zhàn)場(chǎng)很難保證有可靠的有線通信設(shè)施,因此,通過(guò)通信節(jié)點(diǎn)自己組合,組成一個(gè)通信系統(tǒng)是非常有必要的。此外,機(jī)動(dòng)性是部隊(duì)?wèi)?zhàn)斗力的重要部分,這要求通信系統(tǒng)能夠根據(jù)戰(zhàn)事需求快速組建和拆除。Adhoc網(wǎng)絡(luò)滿足了軍事通信系統(tǒng)的這些需求。Adhoc網(wǎng)絡(luò)采用分布式技術(shù),沒(méi)有中心控制節(jié)點(diǎn)的管理。當(dāng)網(wǎng)絡(luò)中某些節(jié)點(diǎn)或鏈路發(fā)生故障時(shí),其他節(jié)點(diǎn)還可以通過(guò)相關(guān)技術(shù)繼續(xù)通信。
Adhoc網(wǎng)絡(luò)由移動(dòng)節(jié)點(diǎn)自己自由組合,不依賴于有線設(shè)備,因此,具有較強(qiáng)的自組性,很適合戰(zhàn)場(chǎng)的惡劣通信環(huán)境。Adhoc網(wǎng)絡(luò)建立簡(jiǎn)單,具有很高的機(jī)動(dòng)性。目前,一些發(fā)達(dá)國(guó)家為作戰(zhàn)人員配備了尖端的個(gè)人通信系統(tǒng),在惡劣的戰(zhàn)場(chǎng)環(huán)境中,很難通過(guò)有線通信機(jī)制或移動(dòng)IP機(jī)制來(lái)完成通信任務(wù),但可以通過(guò)Adhoc網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)。因此,研究Adhoc網(wǎng)絡(luò)對(duì)軍隊(duì)通信系統(tǒng)的發(fā)展具有重要的應(yīng)用價(jià)值和長(zhǎng)遠(yuǎn)意義。可以說(shuō)軍事應(yīng)用是Adhoc網(wǎng)絡(luò)技術(shù)的主要應(yīng)用領(lǐng)域。因其特有的無(wú)需架設(shè)網(wǎng)絡(luò)設(shè)施、可快速展開(kāi)、抗毀性強(qiáng)等特點(diǎn),Adhoc網(wǎng)絡(luò)是數(shù)字化戰(zhàn)場(chǎng)通信的首選技術(shù),并已經(jīng)成為戰(zhàn)術(shù)互聯(lián)網(wǎng)的核心技術(shù)。為了滿足信息戰(zhàn)和數(shù)字化戰(zhàn)場(chǎng)的需要,美軍研制了大量的無(wú)線自組織網(wǎng)絡(luò)設(shè)備,用于單兵、車(chē)載、指揮所等不同的場(chǎng)合,并大量裝備部隊(duì)。美軍的近期數(shù)字電臺(tái)NTDR和無(wú)線互聯(lián)網(wǎng)控制器等通信裝備都使用了Adhoc網(wǎng)絡(luò)技術(shù)。
(2)傳感器網(wǎng)絡(luò):傳感器網(wǎng)絡(luò)是Adhoc網(wǎng)絡(luò)技術(shù)應(yīng)用的另一大領(lǐng)域。對(duì)于很多應(yīng)用場(chǎng)合來(lái)說(shuō)傳感器網(wǎng)絡(luò)只能使用無(wú)線通信技術(shù),并且傳感器的發(fā)射功率很小。分散的傳感器通過(guò)Adhoc網(wǎng)絡(luò)技術(shù)組成一個(gè)網(wǎng)絡(luò),可以實(shí)現(xiàn)傳感器之間和與控制中心之間的通信。這種網(wǎng)絡(luò)具有非常廣闊的應(yīng)用前景。近年來(lái),Adhoc網(wǎng)絡(luò)的研究在民用和商業(yè)領(lǐng)域也受到了重視,比如:
(1)緊急和突發(fā)場(chǎng)合:在發(fā)生了地震、水災(zāi)、火災(zāi)或遭受其他災(zāi)難后,固定的通信網(wǎng)絡(luò)設(shè)施都可能無(wú)法正常工作。而Adhoc網(wǎng)絡(luò)可以用于災(zāi)難救助,此時(shí)Adhoc網(wǎng)絡(luò)能夠在這些惡劣和特殊的環(huán)境下提供通信支持,對(duì)搶險(xiǎn)和救災(zāi)工作具有重要意義。此外,當(dāng)刑警或消防隊(duì)員緊急執(zhí)行任務(wù)時(shí),可以通過(guò)Adhoc網(wǎng)絡(luò)來(lái)保障通信指揮的順利進(jìn)行。
(2)偏遠(yuǎn)野外地區(qū):當(dāng)處于邊遠(yuǎn)或野外地區(qū)時(shí),由于造價(jià)、地理環(huán)境等原因往往沒(méi)有有線通信設(shè)施,無(wú)法依賴固定或預(yù)設(shè)的網(wǎng)絡(luò)設(shè)施進(jìn)行通信。Adhoc網(wǎng)絡(luò)可以解決這些環(huán)境中的通信問(wèn)題。Adhoc網(wǎng)絡(luò)技術(shù)具有單獨(dú)組網(wǎng)能力和自組織特點(diǎn),是這些場(chǎng)合通信的最佳選擇。
(3)臨時(shí)場(chǎng)合:Adhoc網(wǎng)絡(luò)的快速、簡(jiǎn)單組網(wǎng)能力使得它可以用于臨時(shí)場(chǎng)合的通信。比如會(huì)議、慶典、展覽等場(chǎng)合,可以免去布線和部署網(wǎng)絡(luò)設(shè)備的工作。
(4)動(dòng)態(tài)場(chǎng)合和分布式系統(tǒng):通過(guò)無(wú)線連接遠(yuǎn)端的設(shè)備、傳感節(jié)點(diǎn)和激勵(lì)器,Ad?hoc網(wǎng)絡(luò)可以方便地用于分布式控制,特別適合于調(diào)度和協(xié)調(diào)遠(yuǎn)端設(shè)備的工作,減少分布式控制系統(tǒng)的維護(hù)和重配置成本。Adhoc無(wú)線網(wǎng)絡(luò)還可以用于在自動(dòng)高速公路系統(tǒng)(AHS)中協(xié)調(diào)和控制車(chē)輛,對(duì)工業(yè)處理過(guò)程進(jìn)行遠(yuǎn)程控制等。
(5)個(gè)人通信:個(gè)人局域網(wǎng)(PAN)是Adhoc網(wǎng)絡(luò)技術(shù)的又一應(yīng)用領(lǐng)域,用于實(shí)現(xiàn)PDA、手機(jī)、掌上電腦等個(gè)人電子通信設(shè)備之間的通信,并可以構(gòu)建虛擬教室和討論組等嶄新的移動(dòng)對(duì)等應(yīng)用(MP2P)??紤]到電磁波的輻射問(wèn)題,個(gè)人局域網(wǎng)通信設(shè)備的無(wú)線發(fā)射功率應(yīng)盡量小,這樣Adhoc網(wǎng)絡(luò)的多跳通信能力將再次展現(xiàn)它的獨(dú)特優(yōu)勢(shì)。
(6)商業(yè)應(yīng)用:Adhoc網(wǎng)絡(luò)還可以用于臨時(shí)的通信需求,如商務(wù)會(huì)議中需要參會(huì)人員之間互相通信交流,在現(xiàn)有的有線通信系統(tǒng)不能滿足通信需求的情況下,可以通過(guò)Adhoc網(wǎng)絡(luò)來(lái)完成通信任務(wù);組建家庭無(wú)線網(wǎng)絡(luò)、無(wú)線數(shù)據(jù)網(wǎng)絡(luò)、移動(dòng)醫(yī)療監(jiān)護(hù)系統(tǒng)和無(wú)線設(shè)備網(wǎng)絡(luò),開(kāi)展移動(dòng)和可攜帶計(jì)算以及無(wú)所不在的通信業(yè)務(wù)等。
(7)其他應(yīng)用:考慮到Adhoc網(wǎng)絡(luò)具有很多優(yōu)良特性,它的應(yīng)用領(lǐng)域還有很多,這需要我們進(jìn)一步去挖掘。比如它可以用來(lái)擴(kuò)展現(xiàn)有蜂窩移動(dòng)通信系統(tǒng)的覆蓋范圍,實(shí)現(xiàn)地鐵和隧道等場(chǎng)合的無(wú)線覆蓋,實(shí)現(xiàn)汽車(chē)和飛機(jī)等交通工具之間的通信,用于輔助教學(xué)和構(gòu)建未來(lái)的移動(dòng)無(wú)線城域網(wǎng)和自組織廣域網(wǎng)等。
Adhoc網(wǎng)絡(luò)在研究領(lǐng)域也很受關(guān)注,近幾年的網(wǎng)絡(luò)國(guó)際會(huì)議基本都有Adhoc網(wǎng)絡(luò)專題。隨著移動(dòng)技術(shù)的不斷發(fā)展和人們?nèi)找嬖鲩L(zhǎng)的自由通信需求,Adhoc網(wǎng)絡(luò)會(huì)受到更多的關(guān)注,得到更快速的發(fā)展和普及。由于Adhoc網(wǎng)絡(luò)的特殊性,它的應(yīng)用領(lǐng)域與普通的無(wú)線通信網(wǎng)絡(luò)有著顯著的區(qū)別。它適合用于無(wú)法或不便預(yù)先鋪設(shè)網(wǎng)絡(luò)設(shè)施的場(chǎng)合,以及其他需要快速自動(dòng)組網(wǎng)的場(chǎng)合。5.2Adhoc網(wǎng)絡(luò)協(xié)議5.2.1移動(dòng)Adhoc網(wǎng)絡(luò)MAC協(xié)議無(wú)線頻譜是無(wú)線移動(dòng)通信的通信媒體,是一種廣播媒體,屬于稀缺資源。在移動(dòng)Adhoc網(wǎng)中,可能會(huì)有多個(gè)無(wú)線設(shè)備同時(shí)接入信道,導(dǎo)致分組之間相互沖突,使接收機(jī)無(wú)法分辨出接收到的數(shù)據(jù),導(dǎo)致信道資源浪費(fèi),吞吐量顯著下降。為了解決這些問(wèn)題,就需要MAC(媒體接入控制)協(xié)議。所謂MAC協(xié)議,就是通過(guò)一組規(guī)則和過(guò)程來(lái)更有效、有序和公平地使用共享媒體。因此,MAC協(xié)議在移動(dòng)Adhoc網(wǎng)中起著很重要的作用。應(yīng)該注意的是,由于移動(dòng)Adhoc網(wǎng)中節(jié)點(diǎn)運(yùn)動(dòng)的不確定性,給MAC協(xié)議的實(shí)現(xiàn)帶來(lái)了很大的影響。本節(jié)首先討論移動(dòng)Adhoc網(wǎng)中MAC協(xié)議面臨的挑戰(zhàn),并著重探討移動(dòng)Adhoc網(wǎng)中兩個(gè)著名的信道問(wèn)題——隱藏和暴露終端問(wèn)題;接著討論單信道MAC協(xié)議,主要是MACA、MACAW和著名的802.11DCFMAC協(xié)議。從廣義上說(shuō),無(wú)線網(wǎng)絡(luò)是由以無(wú)線電波作為傳輸介質(zhì)、進(jìn)行分組交換的節(jié)點(diǎn)構(gòu)成的網(wǎng)絡(luò)。這些分組的發(fā)送可能采取兩種方式:?jiǎn)尾シ纸M包含了傳送給特定節(jié)點(diǎn)的信息;組播分組將信息分發(fā)給一組節(jié)點(diǎn)。MAC協(xié)議僅僅決定一個(gè)節(jié)點(diǎn)應(yīng)該什么時(shí)候發(fā)送分組,以及控制所有到物理層的接入。在協(xié)議棧中,MAC協(xié)議位于數(shù)據(jù)鏈路層的底部、物理層的上部。由于無(wú)線通信的特性,無(wú)線網(wǎng)絡(luò)MAC協(xié)議的實(shí)現(xiàn)面臨很大的挑戰(zhàn)。無(wú)線電波通過(guò)非導(dǎo)向介質(zhì)傳播,這種介質(zhì)沒(méi)有絕對(duì)的和看得見(jiàn)的邊界,很容易被外界的干擾破壞掉。所以無(wú)線鏈路通常有較高的誤碼率,并表現(xiàn)出非對(duì)稱的信道特性。采用信道編碼、位交織、頻率/空間分集以及均衡技術(shù),使信息在通過(guò)無(wú)線鏈路進(jìn)行傳輸?shù)倪^(guò)程中仍能保持較高的正確率,但是非對(duì)稱的信道特性卻嚴(yán)重地限制了節(jié)點(diǎn)之間的合作。無(wú)線傳輸信號(hào)的強(qiáng)度會(huì)隨與發(fā)射機(jī)距離的增加而急劇下降,這就意味著發(fā)送的檢測(cè)和接收依賴于發(fā)射機(jī)和接收機(jī)之間的距離。只有節(jié)點(diǎn)位于發(fā)送節(jié)點(diǎn)的信號(hào)覆蓋范圍之內(nèi),才能檢測(cè)到信道上的信號(hào)。這種依賴于位置的載波偵聽(tīng)將導(dǎo)致隱藏和暴露終端問(wèn)題。隱藏終端問(wèn)題導(dǎo)致接收機(jī)端的信號(hào)沖突增加,而暴露終端問(wèn)題卻導(dǎo)致了不必要的禁止節(jié)點(diǎn)接入信道操作。信號(hào)的傳播延遲(信號(hào)從發(fā)送節(jié)點(diǎn)到達(dá)接收節(jié)點(diǎn)的時(shí)間)也會(huì)影響無(wú)線網(wǎng)絡(luò)的性能。依賴載波偵聽(tīng)的協(xié)議對(duì)傳播延遲非常敏感。如果傳播延遲很大,接收節(jié)點(diǎn)在規(guī)定的時(shí)間里接收不到信號(hào),就會(huì)以為信道空閑而發(fā)送信號(hào),而實(shí)際上只是信號(hào)沒(méi)有及時(shí)到達(dá)。這樣信道的沖突就會(huì)加劇,致使網(wǎng)絡(luò)性能惡化。即使已經(jīng)建立起來(lái)可靠的無(wú)線鏈路,無(wú)線MAC還需要考慮額外的硬件限制。大多數(shù)無(wú)線收發(fā)機(jī)僅僅允許在單一的頻率上以半雙工方式通信。當(dāng)一個(gè)無(wú)線節(jié)點(diǎn)進(jìn)行發(fā)送的時(shí)候,很大一部分信號(hào)的能量泄露到接收路徑上。在同一頻率上,信號(hào)發(fā)射的功率遠(yuǎn)遠(yuǎn)超過(guò)接收到的信號(hào)功率。所以,由于無(wú)線信號(hào)的“捕捉”(Capture)特性,發(fā)送節(jié)點(diǎn)在發(fā)送的同時(shí)只能檢測(cè)到自己發(fā)送的信號(hào)。這樣,傳統(tǒng)的局域網(wǎng)協(xié)議——CSMA/CD不能用于無(wú)線環(huán)境。另外,收發(fā)機(jī)接收和發(fā)送的轉(zhuǎn)換時(shí)間對(duì)網(wǎng)絡(luò)的性能影響很大,尤其是高速系統(tǒng)。對(duì)于移動(dòng)Adhoc網(wǎng)絡(luò)來(lái)說(shuō),信道接入的控制必須是分布式的。每個(gè)移動(dòng)節(jié)點(diǎn)必須知道自己的周?chē)h(huán)境中發(fā)生了什么,而且需要和其他節(jié)點(diǎn)合作,實(shí)現(xiàn)網(wǎng)絡(luò)業(yè)務(wù)傳輸。因?yàn)橐苿?dòng)Adhoc網(wǎng)中的節(jié)點(diǎn)常常是移動(dòng)的,所以MAC協(xié)議的復(fù)雜性較高。由于這種分布式的特性,移動(dòng)Adhoc網(wǎng)的信道接入需要在競(jìng)爭(zhēng)節(jié)點(diǎn)之間協(xié)調(diào)。因此,需要采用某些分布式協(xié)商機(jī)制來(lái)得到高效率的MAC協(xié)議。其中,協(xié)商中需要的時(shí)間和帶寬等信道資源是影響網(wǎng)絡(luò)性能的重要因素。
1.隱藏終端與暴露終端問(wèn)題隱藏終端是基于競(jìng)爭(zhēng)機(jī)制的協(xié)議中一個(gè)著名的問(wèn)題,在ALOHA、時(shí)隙ALOHA、CSMA、IEEE?802.11等協(xié)議中均存在。當(dāng)兩個(gè)節(jié)點(diǎn)向同一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)的時(shí)候,如果在接收節(jié)點(diǎn)處導(dǎo)致沖突,就認(rèn)為這兩個(gè)節(jié)點(diǎn)相互隱藏(互相不在對(duì)方的信號(hào)范圍之內(nèi))。如圖5-5所示的節(jié)點(diǎn)A、C相對(duì)節(jié)點(diǎn)B就是隱藏終端。為了避免沖突,所有接收節(jié)點(diǎn)的鄰居需要得到信道將被占用的通知。通過(guò)使用控制信息可以讓節(jié)點(diǎn)預(yù)先留出信道,即使用握手協(xié)議。RTS(RequestToSend,請(qǐng)求發(fā)送)分組可以用來(lái)表示節(jié)點(diǎn)請(qǐng)求發(fā)送數(shù)據(jù)。如果接收節(jié)點(diǎn)允許發(fā)送,就用CTS(ClearToSend,同意發(fā)送)分組表示同意。由于消息的廣播特性,發(fā)送者和接收者的所有鄰居都被通知信道要被占用,這樣就可以實(shí)現(xiàn)禁止它們發(fā)送,避免了沖突。圖5-6表示了RTS/CTS交互的概念。圖5-5節(jié)點(diǎn)A、C相對(duì)節(jié)點(diǎn)B是隱藏終端圖5-6RST/CTS交互
RTS/CTS交互的方法從一定程度上緩解了沖突的矛盾,但并沒(méi)有完全解決隱藏終端問(wèn)題。下面有不同節(jié)點(diǎn)發(fā)送的RTS和CTS幀發(fā)生沖突的實(shí)例。如圖5-7所示,節(jié)點(diǎn)B發(fā)送CTS,響應(yīng)節(jié)點(diǎn)A發(fā)送的RTS幀,與節(jié)點(diǎn)D發(fā)送的RTS在節(jié)點(diǎn)C處發(fā)生了沖突。此時(shí),節(jié)點(diǎn)D是節(jié)點(diǎn)B的隱藏終端。因?yàn)楣?jié)點(diǎn)D沒(méi)有接收到節(jié)點(diǎn)C的CTS應(yīng)答,所以定時(shí)器超時(shí),重傳RTS。當(dāng)節(jié)點(diǎn)A收到節(jié)點(diǎn)B的CTS時(shí),并不知道發(fā)生在節(jié)點(diǎn)C處的沖突,所以繼續(xù)向節(jié)點(diǎn)B發(fā)送數(shù)據(jù)幀。在此情形中,數(shù)據(jù)幀和節(jié)點(diǎn)C發(fā)出的CTS(應(yīng)答節(jié)點(diǎn)D的RTS)發(fā)生了沖突。圖5-7沖突情形1另外一個(gè)有問(wèn)題的情形如圖5-8所示。兩個(gè)節(jié)點(diǎn)在不同的時(shí)刻發(fā)送RTS,節(jié)點(diǎn)A發(fā)送RTS給節(jié)點(diǎn)B,當(dāng)節(jié)點(diǎn)B用CTS應(yīng)答A的時(shí)候,節(jié)點(diǎn)C向節(jié)點(diǎn)B發(fā)送RTS。因?yàn)楣?jié)點(diǎn)C在向節(jié)點(diǎn)D發(fā)送CTS的時(shí)候不可能聽(tīng)到節(jié)點(diǎn)B發(fā)出來(lái)的RTS,所以節(jié)點(diǎn)C不知道節(jié)點(diǎn)A、B之間的通信。節(jié)點(diǎn)D用CTS應(yīng)答節(jié)點(diǎn)C的RTS。所以,最后節(jié)點(diǎn)A和節(jié)點(diǎn)C的數(shù)據(jù)幀發(fā)生了沖突。圖5-8沖突情形2如果一個(gè)節(jié)點(diǎn)聽(tīng)到鄰居節(jié)點(diǎn)在進(jìn)行數(shù)據(jù)發(fā)送,它就自動(dòng)禁止向其他節(jié)點(diǎn)發(fā)送數(shù)據(jù)。這就是所謂的暴露終端問(wèn)題。暴露終端問(wèn)題導(dǎo)致了系統(tǒng)的“過(guò)激”反應(yīng),即引入了不必要的禁止接入。一個(gè)暴露終端即一個(gè)節(jié)點(diǎn)在發(fā)射機(jī)的范圍之內(nèi),在接收機(jī)的范圍之外。如圖5-9所示的節(jié)點(diǎn)A即為暴露終端。圖5-9暴露終端問(wèn)題隱藏終端問(wèn)題降低了網(wǎng)絡(luò)的可用性和系統(tǒng)的吞吐量。解決隱藏終端問(wèn)題可以使用控制信道和數(shù)據(jù)信道分離的方法和使用定向天線的方法。前者將在PAMAS和DBTMA中討論;對(duì)于后者,如果使用定向天線,這個(gè)問(wèn)題可以得到緩解。如圖5-10所示,節(jié)點(diǎn)A可以與節(jié)點(diǎn)B進(jìn)行通信而不影響節(jié)點(diǎn)C、D之間的通信。定向天線的方向性提供了全向天線所不能提供的空間復(fù)用和連接分離。具體方法在定向天線部分討論。圖5-10兩對(duì)節(jié)點(diǎn)同時(shí)傳輸
2.MACA與MACAW協(xié)議
MACA協(xié)議是PhilKarn在其業(yè)余分組無(wú)線電的研究中提出的。當(dāng)時(shí)的業(yè)余分組無(wú)線電只能使用單一頻率的信道,飽受隱藏終端和暴露終端問(wèn)題的困擾。于是PhilKarn提出了MACA協(xié)議來(lái)減輕這些問(wèn)題。同時(shí)MACA協(xié)議也可以加以擴(kuò)展,使發(fā)射機(jī)能自動(dòng)進(jìn)行功率控制。在當(dāng)時(shí)業(yè)余分組無(wú)線電使用的CSMA/CA協(xié)議中,采用物理載波偵聽(tīng)(CSMA)信道與RTS/CTS握手來(lái)進(jìn)行沖突避免(CA)。但是,當(dāng)隱藏終端存在的時(shí)候,移動(dòng)節(jié)點(diǎn)沒(méi)有偵聽(tīng)到信道載波并不是總意味著發(fā)送沒(méi)有問(wèn)題。同樣,當(dāng)暴露終端存在的時(shí)候,也不總是表示此時(shí)不能發(fā)送。換句話說(shuō),載波偵聽(tīng)經(jīng)常是不起作用的。所以Karn就提出了一個(gè)“激進(jìn)”的建議:將CSMA/CA中的CS去除,就是說(shuō)不采用物理載波偵聽(tīng),將剩下的MA/CA稱為MACA,即帶沖突避免的多址接入。
MAC沖突避免的核心就是RTS/CTS分組對(duì)信道上其他移動(dòng)節(jié)點(diǎn)的影響。當(dāng)一個(gè)移動(dòng)節(jié)點(diǎn)“無(wú)意中聽(tīng)到”(Overhear,以下簡(jiǎn)稱“聽(tīng)到”)一個(gè)發(fā)送給其他節(jié)點(diǎn)的RTS分組的時(shí)候,就停止自己的發(fā)射機(jī)的發(fā)送,直到這個(gè)RTS分組的目的節(jié)點(diǎn)響應(yīng)了CTS分組為止。當(dāng)一個(gè)移動(dòng)節(jié)點(diǎn)聽(tīng)到一個(gè)發(fā)送給其他節(jié)點(diǎn)的CTS分組的時(shí)候,就停止自己的發(fā)射機(jī)的發(fā)送,直到另外一個(gè)節(jié)點(diǎn)發(fā)送完數(shù)據(jù)為止。一個(gè)節(jié)點(diǎn)聽(tīng)到RTS或者CTS之后,即使沒(méi)有聽(tīng)到對(duì)RTS或者CTS的響應(yīng)分組(CTS和DATA),這個(gè)節(jié)點(diǎn)也必須等待適當(dāng)?shù)臅r(shí)間。如圖5-11所示為一個(gè)示例。其中,節(jié)點(diǎn)C不能收到A發(fā)送的分組,但能收到節(jié)點(diǎn)B發(fā)送的分組。如果節(jié)點(diǎn)C聽(tīng)到了節(jié)點(diǎn)B發(fā)給A的CTS分組,那么C就需要等待一段時(shí)間,直到B已經(jīng)接收完來(lái)自A的數(shù)據(jù)為止。C如何確定需要等待的時(shí)間?可以在發(fā)送者A的RTS分組中包含待發(fā)數(shù)據(jù)的長(zhǎng)度,然后接收者B將這個(gè)長(zhǎng)度數(shù)據(jù)復(fù)制到CTS中,C通過(guò)計(jì)算即可以知道需要等待的時(shí)間。圖5-11幀交互示例所以,只要網(wǎng)絡(luò)中每一對(duì)鏈路都是對(duì)稱的(即如果節(jié)點(diǎn)A能收到B的發(fā)送,而且節(jié)點(diǎn)B也能收到A的發(fā)送,那么A、B之間的鏈路就稱為對(duì)稱鏈路),那么聽(tīng)到其他節(jié)點(diǎn)之間交互CTS的移動(dòng)節(jié)點(diǎn)就知道鄰節(jié)點(diǎn)要有數(shù)據(jù)分組傳送,MACA協(xié)議就扼止了其他移動(dòng)節(jié)點(diǎn)發(fā)送分組的“企圖”。這樣,MACA就減輕了隱藏終端問(wèn)題。相應(yīng)地,一個(gè)移動(dòng)節(jié)點(diǎn)如果聽(tīng)到了一個(gè)RST(不是發(fā)給自己的),但是沒(méi)有聽(tīng)到這個(gè)RTS的應(yīng)答,那么它就會(huì)假定RTS的接收者不在其接聽(tīng)范圍以內(nèi),或者已經(jīng)關(guān)機(jī)。例如,在圖5-12中,節(jié)點(diǎn)A在B的發(fā)送范圍之內(nèi),而在節(jié)點(diǎn)C的發(fā)送范圍之外。當(dāng)節(jié)點(diǎn)B向C發(fā)送RTS的時(shí)候,節(jié)點(diǎn)A可以聽(tīng)到,但是不能聽(tīng)到節(jié)點(diǎn)C的CTS應(yīng)答。于是節(jié)點(diǎn)A就可以發(fā)送分組,而不必?fù)?dān)心干擾節(jié)點(diǎn)B的數(shù)據(jù)發(fā)送。但在這種情況下,如果使用CSMA協(xié)議就會(huì)不必要地禁止節(jié)點(diǎn)B的發(fā)送,所以MACA協(xié)議減輕了暴露終端問(wèn)題。但是MACA協(xié)議并沒(méi)有完全消除分組之間的沖突。圖5-12減輕暴露終端的問(wèn)題通過(guò)采用與CSMA相似的隨機(jī)指數(shù)退避策略,可以將沖突的概率降低。因?yàn)镸ACA沒(méi)有使用載波偵聽(tīng),所以每一個(gè)節(jié)點(diǎn)都需要在原有的等待時(shí)間(由于聽(tīng)到了其他節(jié)點(diǎn)對(duì)的RTS或者CTS)的基礎(chǔ)上再加一段隨機(jī)時(shí)間。這種機(jī)制可以盡量避免多個(gè)節(jié)點(diǎn)同時(shí)爭(zhēng)用信道,使相互沖突的機(jī)會(huì)減少。顯然,如果數(shù)據(jù)分組的長(zhǎng)度和RTS分組長(zhǎng)度相當(dāng),那么RTS/CTS對(duì)話的開(kāi)銷(xiāo)就會(huì)很大。此時(shí),移動(dòng)節(jié)點(diǎn)可以省略RTS/CTS對(duì)話的過(guò)程,直接發(fā)送數(shù)據(jù)分組。當(dāng)然,如果聽(tīng)到了RTS或者CTS,這個(gè)移動(dòng)節(jié)點(diǎn)還是需要推遲自己的發(fā)送。不過(guò),這種機(jī)制中數(shù)據(jù)分組仍然存在沖突的風(fēng)險(xiǎn),但是對(duì)于小分組來(lái)說(shuō),仍是一種不錯(cuò)的折衷。如果對(duì)MACA協(xié)議進(jìn)行擴(kuò)展,可以增加發(fā)射機(jī)功率控制的功能。經(jīng)過(guò)每一次RTS/CTS交互,發(fā)送者都會(huì)更新到達(dá)接收者需要的功率估計(jì)值,以后發(fā)送分組的時(shí)候(包括本次對(duì)話中的數(shù)據(jù)分組)就可以將其發(fā)射功率調(diào)節(jié)到最有效的發(fā)射功率值。在MACAW協(xié)議中,Bharghavan建議使用RTS-CTS-DS-DATA-ACK的消息交換機(jī)制發(fā)送數(shù)據(jù)分組。相比MACA協(xié)議來(lái)說(shuō),MACAW增加了DS和ACK兩個(gè)控制分組。當(dāng)一個(gè)節(jié)點(diǎn)收到目的節(jié)點(diǎn)發(fā)來(lái)的CTS分組的時(shí)候,就發(fā)送DS分組。這個(gè)分組用來(lái)通知收發(fā)節(jié)點(diǎn)的鄰居:RTS/CTS交互已經(jīng)成功完成,馬上要發(fā)送數(shù)據(jù)分組了。對(duì)于新增的ACK分組,則是希望通過(guò)使用ACK分組,盡量使節(jié)點(diǎn)在MAC層就快速重傳沖突的分組,而不需要在傳輸層進(jìn)行重傳,提高了網(wǎng)絡(luò)的性能。為了進(jìn)一步改善上述退避策略的性能,學(xué)者們?cè)贛ACAW中還引入一種新的退避機(jī)制——MILD算法。這個(gè)算法提高了信道接入的公平性。
3.IEEE802.11MAC協(xié)議(DCF)
IEEE802.11MAC協(xié)議是IEEE802.11無(wú)線局域網(wǎng)(WLAN)標(biāo)準(zhǔn)的一個(gè)部分(另一部分是物理層規(guī)范)。其主要功能是信道分配、協(xié)議數(shù)據(jù)單元(PDU)尋址、成幀、檢錯(cuò)、分組分片和重組等。IEEE802.11MAC協(xié)議有兩種工作方式:一種是分布式控制功能(DistributedCoordinationFunction,DCF);另一種是中心控制功能(PointCoordinationFunction,PCF)。由于DCF采用競(jìng)爭(zhēng)接入信道的方式,而且目前IEEE?802.11WLAN有比較成熟的標(biāo)準(zhǔn)和產(chǎn)品,因此目前在移動(dòng)Adhoc網(wǎng)絡(luò)研究領(lǐng)域中,很多的測(cè)試和仿真分析都基于這種方式。
DCF是用于支持異步數(shù)據(jù)傳輸?shù)幕窘尤敕绞?,它以“盡力而為”(BestEffort)方式工作。DCF實(shí)際上就是CSMA/CA(帶沖突避免的載波偵聽(tīng)多址接入)協(xié)議。為什么不用CSMA/CD(帶沖突檢測(cè)的載波偵聽(tīng)多址接入)協(xié)議呢?因?yàn)闆_突發(fā)生在接收節(jié)點(diǎn),一個(gè)移動(dòng)節(jié)點(diǎn)在傳輸?shù)耐瑫r(shí)不能聽(tīng)到信道發(fā)生了沖突,自己發(fā)出的信號(hào)淹沒(méi)了其他的信號(hào),所以沖突檢測(cè)無(wú)法工作。DCF的載波偵聽(tīng)有兩種實(shí)現(xiàn)方法:第一種實(shí)現(xiàn)是在空中接口,稱為物理載波偵聽(tīng);第二種實(shí)現(xiàn)是在MAC層,叫做虛擬載波偵聽(tīng)。物理載波偵聽(tīng)通過(guò)檢測(cè)來(lái)自其他節(jié)點(diǎn)的信號(hào)強(qiáng)度,判別信道的忙碌狀況。節(jié)點(diǎn)通過(guò)將MAC層協(xié)議數(shù)據(jù)單元(MPDU)的持續(xù)時(shí)間放到RTS、CTS和DATA幀頭部來(lái)實(shí)現(xiàn)虛擬載波偵聽(tīng)。MPDU是指從MAC層傳到物理層的一個(gè)完整的數(shù)據(jù)單元,它包含頭部、凈荷和32?bit的CRC(循環(huán)冗余校驗(yàn))碼。持續(xù)期字段表示目前的幀結(jié)束以后,信道用來(lái)成功完成數(shù)據(jù)發(fā)送的時(shí)間。移動(dòng)節(jié)點(diǎn)通過(guò)這個(gè)字段調(diào)節(jié)網(wǎng)絡(luò)分配矢量(NetworkAllocationVector,NAV)。NAV表示目前發(fā)送完成需要的時(shí)間。無(wú)論是物理載波偵聽(tīng),還是虛擬載波偵聽(tīng),只要其中一種方式表明信道忙碌,就將信道標(biāo)注為“忙”。接入無(wú)線信道優(yōu)先級(jí)用幀之間的間隔表示,稱做IFS(InterFrameSpace),它是傳輸信道強(qiáng)制的空閑時(shí)段。DCF方式中的IFS有兩種:一種為SIFS(ShortIFS),另一種為DIFS(DCF-IFS),DIFS大于SIFS。一個(gè)移動(dòng)節(jié)點(diǎn)如果只需要等待SIFS時(shí)間,就會(huì)比等待DIFS時(shí)間的節(jié)點(diǎn)優(yōu)先接入信道,因?yàn)榍罢叩却臅r(shí)間更短。對(duì)于DCF基本接入方式(沒(méi)有使用RTS/CTS交互),如果移動(dòng)節(jié)點(diǎn)偵聽(tīng)到信道空閑,它還需要等待DIFS時(shí)間,然后繼續(xù)偵聽(tīng)信道。如果此時(shí)信道繼續(xù)空閑,那么移動(dòng)節(jié)點(diǎn)就可以開(kāi)始MPDU的發(fā)送。接收節(jié)點(diǎn)計(jì)算校驗(yàn)和,確定收到的分組是否正確無(wú)誤。一旦接收節(jié)點(diǎn)正確地接收到了分組,將等待SIFS時(shí)間后,將一個(gè)確認(rèn)幀(ACK)回復(fù)給發(fā)送節(jié)點(diǎn),以此表明已經(jīng)成功接收到數(shù)據(jù)幀。如圖5-13所示為在DCF基本接入方式中,成功發(fā)送一個(gè)數(shù)據(jù)幀的定時(shí)圖。當(dāng)一個(gè)數(shù)據(jù)幀發(fā)送出去的時(shí)候,其持續(xù)期字段讓聽(tīng)到這個(gè)幀的節(jié)點(diǎn)(目的節(jié)點(diǎn)除外)知道信道的忙碌時(shí)間,然后調(diào)整各自的網(wǎng)絡(luò)分配矢量(NAV)。這個(gè)NAV里也包含了一個(gè)SIFS時(shí)間和后續(xù)的ACK持續(xù)期。圖5-13DCF基本接入方式一個(gè)節(jié)點(diǎn)無(wú)法知道自己的發(fā)送產(chǎn)生了沖突,所以即使沖突產(chǎn)生,也會(huì)將MPDU發(fā)送完。假如MPDU很大,就會(huì)浪費(fèi)寶貴的信道帶寬。解決的辦法是在MPDU發(fā)送之前,采用RTS/CTS控制幀實(shí)現(xiàn)信道帶寬的預(yù)留,減少?zèng)_突造成的帶寬損耗。因?yàn)镽TS為20字節(jié),CTS為14字節(jié),而數(shù)據(jù)幀最大為2346字節(jié),所以RTS/CTS相對(duì)較小。如果源節(jié)點(diǎn)要競(jìng)爭(zhēng)信道,則首先發(fā)送RTS幀,周?chē)?tīng)到RTS的節(jié)點(diǎn)從中解讀出持續(xù)期字段,相應(yīng)地設(shè)置它們的網(wǎng)絡(luò)分配矢量(NAV)。經(jīng)過(guò)SIFS時(shí)間以后,目的節(jié)點(diǎn)發(fā)送CTS幀。周?chē)?tīng)到CTS的節(jié)點(diǎn)并從中解讀出持續(xù)期字段,相應(yīng)地更新它們的網(wǎng)絡(luò)分配矢量(NAV)。一旦成功地收到CTS,經(jīng)過(guò)SIFS時(shí)間,源節(jié)點(diǎn)就會(huì)發(fā)送MPDU。正像我們已經(jīng)在MACA協(xié)議中提到的那樣,周?chē)?jié)點(diǎn)通過(guò)RTS和CTS頭部中的持續(xù)期字段更新自己的NAV,可以緩解“隱藏終端”問(wèn)題。如圖5-14所示為RTS/CTS交互,然后發(fā)送MPDU的定時(shí)圖。移動(dòng)節(jié)點(diǎn)可以選擇不使用RTS/CTS,也可以要求只有在MPDU超過(guò)一定的大小時(shí)才使用RTS/CTS,或者不管什么情況下均使用RTS/CTS。一旦沖突發(fā)生在RTS或者CTS,帶寬的損失也是很小的。然而,對(duì)于低負(fù)荷的信道,RTS/CTS的開(kāi)銷(xiāo)會(huì)增加時(shí)延。圖5-14使用RTS/CTS的交互方式在大的MPDU從邏輯鏈路層傳到MAC層以后,為了增加傳輸?shù)目煽啃?,?huì)將其分片(Fragment)發(fā)送。那么怎樣確定是否進(jìn)行分片呢?用戶可以設(shè)定一個(gè)分片門(mén)限(Fragment_Threshold),一旦MPDU超過(guò)這個(gè)門(mén)限就將其分成多個(gè)片段,片段的大小和分片門(mén)限相等,其中最后一個(gè)片段是變長(zhǎng)的,一般小于分片門(mén)限。當(dāng)一個(gè)MPDU被分片以后,所有的片段按順序發(fā)送,如圖5-15所示。圖5-15分片交互方式信道只有在所有的片段傳送完畢或者目的節(jié)點(diǎn)沒(méi)有收到其中一個(gè)片段的確認(rèn)(ACK)的時(shí)候才被釋放。目的節(jié)點(diǎn)每接收到一個(gè)片段,都要向源節(jié)點(diǎn)回送一個(gè)ACK。源節(jié)點(diǎn)每收到一個(gè)ACK,經(jīng)過(guò)SIFS時(shí)間,再發(fā)送另外一個(gè)數(shù)據(jù)幀片段。所以,在整個(gè)數(shù)據(jù)幀的傳輸過(guò)程中,源節(jié)點(diǎn)一直通過(guò)間隔SIFS時(shí)間產(chǎn)生的優(yōu)先級(jí)來(lái)維持信道的控制。如果已經(jīng)發(fā)送的數(shù)據(jù)幀片段沒(méi)有得到確認(rèn),源節(jié)點(diǎn)就停止發(fā)送過(guò)程,重新開(kāi)始競(jìng)爭(zhēng)接入信道。一旦接入信道,源節(jié)點(diǎn)就從最后未得到確認(rèn)的數(shù)據(jù)片段開(kāi)始發(fā)送。如果分片發(fā)送數(shù)據(jù)的時(shí)候使用RTS/CTS交互,那么只有在第一個(gè)數(shù)據(jù)片段發(fā)送的時(shí)候才進(jìn)行。RTS/CTS頭部中的持續(xù)期只到第一個(gè)片段的ACK被接收到為止。此后其他周?chē)墓?jié)點(diǎn)從后續(xù)的片段中提取持續(xù)期,來(lái)更新自己的網(wǎng)絡(luò)分配矢量(NAV),CSMA/CA的沖突避免的功能由隨機(jī)指數(shù)退避過(guò)程實(shí)現(xiàn)。如果一個(gè)移動(dòng)節(jié)點(diǎn)準(zhǔn)備發(fā)送一個(gè)數(shù)據(jù)幀,并且偵聽(tīng)到信道忙,節(jié)點(diǎn)就一直等待,直到信道空閑了DIFS時(shí)間為止,接著計(jì)算隨機(jī)退避時(shí)間。在IEEE802.11標(biāo)準(zhǔn)中,時(shí)間用劃分的時(shí)隙表示。在時(shí)隙ALOHA中,時(shí)隙和一個(gè)完整分組的傳輸時(shí)間相同。但是在IEEE802.11中,時(shí)隙遠(yuǎn)比MPDU要小得多,與SIF時(shí)間相同,被用來(lái)定義退避時(shí)間。需要注意的是,時(shí)隙的大小和具體的硬件實(shí)現(xiàn)方式有關(guān)。我們將隨機(jī)退避時(shí)間定義為時(shí)隙的整數(shù)倍。開(kāi)始時(shí),在[0,7]范圍內(nèi)選擇一個(gè)整數(shù),當(dāng)信道空閑了DIFS時(shí)間以后,節(jié)點(diǎn)用定時(shí)器記錄消耗的退避時(shí)間,一直到信道重新忙或者退避時(shí)間定時(shí)器超時(shí)為止。如果信道重新忙,并且退避時(shí)間定時(shí)器沒(méi)有超時(shí),節(jié)點(diǎn)就將凍結(jié)定時(shí)器。當(dāng)定時(shí)器時(shí)間減到零時(shí),節(jié)點(diǎn)就開(kāi)始發(fā)送信息幀。假如兩個(gè)鄰近或者更多個(gè)鄰近節(jié)點(diǎn)的定時(shí)器時(shí)間同時(shí)減到零,就會(huì)發(fā)生沖突。每個(gè)節(jié)點(diǎn)必須在[0,?15]范圍里面,再隨機(jī)選擇一個(gè)整數(shù)作為退避時(shí)間。對(duì)于每一次重傳,退避時(shí)間按22+iranf()增長(zhǎng),其中i是節(jié)點(diǎn)連續(xù)嘗試發(fā)送一個(gè)MPDU的次數(shù),ranf()是(0,l)之間的隨機(jī)數(shù)。經(jīng)過(guò)DIFS空閑時(shí)間以后的退避時(shí)間稱為競(jìng)爭(zhēng)窗口(ContentionWindows,CW),這種競(jìng)爭(zhēng)信道方式的優(yōu)點(diǎn)是提高了節(jié)點(diǎn)之間的公平性。一個(gè)節(jié)點(diǎn)每當(dāng)發(fā)送MPDU的時(shí)候,都需要重新競(jìng)爭(zhēng)信道。經(jīng)過(guò)DIFS時(shí)間之后,每個(gè)節(jié)點(diǎn)都有同樣的概率接入信道。
4.帶信令的功率感知多址協(xié)議(PAMAS)在移動(dòng)Adhoc網(wǎng)中,一個(gè)節(jié)點(diǎn)不管是在發(fā)送、接收或者處于空閑模式都會(huì)消耗功率。一個(gè)節(jié)點(diǎn)處在發(fā)送的時(shí)候,其所有的鄰節(jié)點(diǎn)都會(huì)聽(tīng)到它的發(fā)送。這樣,即使不是發(fā)送的目的節(jié)點(diǎn),這些鄰節(jié)點(diǎn)也要消耗功率進(jìn)行接收。基于這種現(xiàn)象,Raghavendra等提出PAMAS協(xié)議。這個(gè)協(xié)議源于MACA協(xié)議,但是帶有一個(gè)分離的信令信道。該協(xié)議的主要特點(diǎn)是當(dāng)節(jié)點(diǎn)沒(méi)有處于發(fā)送和接收狀態(tài)時(shí),智能地將節(jié)點(diǎn)關(guān)閉,以節(jié)省節(jié)點(diǎn)功率的消耗。在PAMAS協(xié)議中,假定RTS/CTS信息交換在信令信道上進(jìn)行,數(shù)據(jù)分組在數(shù)據(jù)信道上傳送,兩個(gè)信道之間是分離的。信令信道決定了節(jié)點(diǎn)什么時(shí)候關(guān)閉,以及關(guān)閉多長(zhǎng)時(shí)間。如圖5-16所示是PAMAS協(xié)議的狀態(tài)轉(zhuǎn)換圖,比較詳細(xì)地描述了協(xié)議的行為。圖5-16PAMAS協(xié)議狀態(tài)轉(zhuǎn)換圖從圖5-16中可以看到,一個(gè)節(jié)點(diǎn)可能處于6種狀態(tài),即Idle(空閑)、AWaitCTS(等待CTS)、BEB(H進(jìn)制指數(shù)退避)、AwaitPacket(等待分組)、ReceivePacket(分組接收)和TransmitPacket(分組發(fā)送)狀態(tài)。當(dāng)一個(gè)節(jié)點(diǎn)沒(méi)有處在發(fā)送、接收分組狀態(tài),或者沒(méi)有分組要發(fā)送,或者有發(fā)送但不能發(fā)送(原因可能是一個(gè)鄰節(jié)點(diǎn)正在接收),則這個(gè)節(jié)點(diǎn)就處于Idle狀態(tài)。當(dāng)這個(gè)節(jié)點(diǎn)有分組需要發(fā)送時(shí),就發(fā)送RTS,接著進(jìn)入AwaitCTS狀態(tài)。假如等待的CTS沒(méi)有到達(dá),節(jié)點(diǎn)就跳轉(zhuǎn)到BEB狀態(tài)。要是等待的CTS到達(dá)了,節(jié)點(diǎn)就開(kāi)始發(fā)送分組,進(jìn)入TransmitPacket狀態(tài)。目的節(jié)點(diǎn)一旦發(fā)出CTS,就跳轉(zhuǎn)到AwaitPacket狀態(tài)。假如數(shù)據(jù)分組在一個(gè)往返時(shí)間(加上處理時(shí)間)內(nèi)沒(méi)有到達(dá)目的節(jié)點(diǎn),目的節(jié)點(diǎn)就回到Idle狀態(tài)。當(dāng)一個(gè)節(jié)點(diǎn)在Idle狀態(tài)收到一個(gè)RTS,如果沒(méi)有鄰節(jié)點(diǎn)處于TransmitPacket狀態(tài)或者AwaitCTS狀態(tài)時(shí),就用CTS應(yīng)答。對(duì)一個(gè)節(jié)點(diǎn)來(lái)說(shuō),很容易確定它的鄰節(jié)點(diǎn)是否處于TransmitPacket狀態(tài)。但是,很難確定是否它的鄰節(jié)點(diǎn)處于AwaitCTS狀態(tài)。在PAMAS協(xié)議中,假如節(jié)點(diǎn)在RTS到來(lái)的時(shí)間里在信令信道上聽(tīng)到了噪聲,就不應(yīng)答CTS。然而如果在下一個(gè)時(shí)間周期里沒(méi)有聽(tīng)到一個(gè)分組開(kāi)始傳輸,就假定沒(méi)有鄰居處于AwaitCTS狀態(tài)?,F(xiàn)在考慮一個(gè)處于Idle狀態(tài)的節(jié)點(diǎn)有一個(gè)分組要發(fā)送的情形。在一個(gè)節(jié)點(diǎn)發(fā)送了一個(gè)RTS后,進(jìn)入AWaitCTS狀態(tài)。然而,如果一個(gè)鄰節(jié)點(diǎn)正在接收,并發(fā)出一個(gè)忙音(2倍的RTS/CTS長(zhǎng)度),則會(huì)和這個(gè)節(jié)點(diǎn)接收的CTS沖突,導(dǎo)致節(jié)點(diǎn)被強(qiáng)制轉(zhuǎn)入BEB狀態(tài),并且不能發(fā)送分組。如果沒(méi)有鄰節(jié)點(diǎn)發(fā)送忙音,且CTS正確接收,則可以發(fā)送分組,節(jié)點(diǎn)跳轉(zhuǎn)到TransmitPacket狀態(tài)。若是一個(gè)節(jié)點(diǎn)發(fā)出RTS,但沒(méi)有收到CTS,則進(jìn)入BEB狀態(tài),并等待RTS重傳。然而,如果某個(gè)其他鄰節(jié)點(diǎn)發(fā)送一個(gè)RTS給這個(gè)節(jié)點(diǎn),它就離開(kāi)BEB狀態(tài),發(fā)送CTS(假設(shè)沒(méi)有鄰節(jié)點(diǎn)在發(fā)送分組或者處于AwaitCTS狀態(tài)),并進(jìn)入AWaitPacket狀態(tài)(如等待一個(gè)分組的到來(lái))。當(dāng)分組到達(dá)時(shí),節(jié)點(diǎn)進(jìn)入ReceivePacket狀態(tài)。若在期望的時(shí)間(到發(fā)射機(jī)的往返時(shí)間+很短的接收機(jī)處理延遲)里沒(méi)有收到分組,它就返回Idle狀態(tài)。當(dāng)一個(gè)節(jié)點(diǎn)開(kāi)始接收分組的時(shí)候,進(jìn)入ReceivePacket狀態(tài),并立即發(fā)送一個(gè)忙音(比CTS的兩倍要長(zhǎng))。若一個(gè)節(jié)點(diǎn)在接收一個(gè)分組的時(shí)候聽(tīng)到一個(gè)RTS的傳輸(來(lái)自其他節(jié)點(diǎn))或噪聲在控制信道上傳輸?shù)臅r(shí)候,這個(gè)節(jié)點(diǎn)就發(fā)送一個(gè)忙音。它就會(huì)確保發(fā)送RTS的節(jié)點(diǎn)不能收到CTS應(yīng)答,阻塞其發(fā)送。為了節(jié)省移動(dòng)節(jié)點(diǎn)的能量消耗,延長(zhǎng)工作時(shí)間,PAMAS協(xié)議要求一個(gè)節(jié)點(diǎn)在聽(tīng)到信息傳輸時(shí)關(guān)閉。節(jié)點(diǎn)可以在下列兩種條件下關(guān)機(jī):
(1)若一個(gè)節(jié)點(diǎn)的鄰節(jié)點(diǎn)開(kāi)始發(fā)送,且這個(gè)節(jié)點(diǎn)無(wú)分組發(fā)送,那么這個(gè)節(jié)點(diǎn)就關(guān)機(jī)。
(2)若一個(gè)節(jié)點(diǎn)至少有一個(gè)鄰居在發(fā)送,還有一個(gè)鄰居在接收,則節(jié)點(diǎn)應(yīng)該關(guān)閉。因?yàn)榇藭r(shí)這個(gè)節(jié)點(diǎn)既不能發(fā)送,也不能接收(即使其發(fā)送隊(duì)列不為空)。系統(tǒng)中的每個(gè)節(jié)點(diǎn)都是獨(dú)立地決定是否關(guān)閉。節(jié)點(diǎn)知道一個(gè)鄰居是否正在發(fā)送,因?yàn)樗梢栽跀?shù)據(jù)信道上聽(tīng)到發(fā)送。同樣,一個(gè)節(jié)點(diǎn)(其發(fā)送隊(duì)列不為空時(shí))知道一個(gè)或者多個(gè)它的鄰居是否在接收,因?yàn)楫?dāng)它(或它們)開(kāi)始接收的時(shí)候會(huì)發(fā)送一個(gè)忙音,這樣節(jié)點(diǎn)會(huì)很容易地決定什么時(shí)候關(guān)機(jī)。不過(guò),問(wèn)題是關(guān)機(jī)多長(zhǎng)時(shí)間呢?若一個(gè)鄰居要向一個(gè)已經(jīng)關(guān)閉的節(jié)點(diǎn)發(fā)送分組,則必須等待這個(gè)節(jié)點(diǎn)重新開(kāi)啟。因?yàn)槿绻崆伴_(kāi)啟,就會(huì)在這個(gè)節(jié)點(diǎn)處發(fā)生分組沖突。對(duì)于關(guān)機(jī)時(shí)間,在PAMAS協(xié)議中有如下規(guī)定:①當(dāng)一個(gè)節(jié)點(diǎn)的周?chē)l(fā)生了一次分組發(fā)送,它會(huì)知道傳輸?shù)某掷m(xù)期(如1),如果此時(shí)節(jié)點(diǎn)的發(fā)送隊(duì)列為空,就關(guān)閉1時(shí)間。②可能存在這樣一種情況,一個(gè)節(jié)點(diǎn)在關(guān)閉的時(shí)候,周?chē)赡荛_(kāi)始新的數(shù)據(jù)傳輸。當(dāng)這個(gè)節(jié)點(diǎn)的電源恢復(fù)的時(shí)候,會(huì)聽(tīng)到周?chē)鷶?shù)據(jù)信道的傳輸。PAMAS協(xié)議使用探測(cè)(Probe)分組的交互,通過(guò)折半查找的方法,決定節(jié)點(diǎn)繼續(xù)關(guān)閉多長(zhǎng)時(shí)間。應(yīng)當(dāng)提到的是,探測(cè)分組在控制信道上可能發(fā)生沖突。因?yàn)榇嬖诙鄠€(gè)節(jié)點(diǎn)同時(shí)重新開(kāi)啟的可能。在這種情況下,可以使用P-堅(jiān)持型CSMA來(lái)解決。
PAMAS協(xié)議也提出了一種簡(jiǎn)化的探測(cè)方式。其假設(shè)是節(jié)點(diǎn)僅僅關(guān)閉數(shù)據(jù)接口,但一直將信令接口開(kāi)啟,這使得節(jié)點(diǎn)一直能夠了解新的分組發(fā)送的長(zhǎng)度,在適當(dāng)?shù)臅r(shí)候關(guān)閉數(shù)據(jù)接口。如圖5-17所示為PAMAS協(xié)議控制框圖。在這里,信令接口偵聽(tīng)所有的RTSICTSI忙音發(fā)送,以及每個(gè)發(fā)送和接收分組長(zhǎng)度的記錄。這些信息(包括發(fā)送隊(duì)列的長(zhǎng)度)被傳送給功率感知邏輯,它會(huì)決定數(shù)據(jù)接口的開(kāi)啟和關(guān)閉。圖5-17PAMAS協(xié)議控制框圖
5.基于移動(dòng)Adhoc網(wǎng)絡(luò)的其他MAC協(xié)議前面已經(jīng)介紹了很多移動(dòng)Adhoc網(wǎng)的MAC協(xié)議,包括單信道協(xié)議、控制和數(shù)據(jù)信道分離的協(xié)議、功率控制和定向MAC協(xié)議。這些協(xié)議都在一定程度上解決了無(wú)線鏈路接入的問(wèn)題。但是,隨著用戶各種業(yè)務(wù)的需求越來(lái)越廣泛,對(duì)移動(dòng)Adhoc網(wǎng)的性能要求也越來(lái)越高,因此,移動(dòng)Adhoc網(wǎng)的MAC協(xié)議也在不斷發(fā)展。目前MAC協(xié)議主要的發(fā)展方向集中于以下幾個(gè)方面:支持多信道(指數(shù)據(jù)信道)、支持QoS、支持多種速率等。移動(dòng)Adhoc網(wǎng)多信道MAC協(xié)議一般支持多個(gè)數(shù)據(jù)信道,節(jié)點(diǎn)根據(jù)周?chē)那闆r,自己選擇發(fā)送的信道,這就類(lèi)似于蜂窩網(wǎng)絡(luò)中頻率在空間上復(fù)用的概念,使得網(wǎng)絡(luò)中能夠有多對(duì)相鄰的節(jié)點(diǎn)同時(shí)進(jìn)行數(shù)據(jù)傳輸,提高了網(wǎng)絡(luò)的吞吐量,降低了網(wǎng)絡(luò)的延遲。某些使用多波束智能天線的移動(dòng)Adhoc網(wǎng)MAC協(xié)議,也可以劃分到多信道MAC協(xié)議里面。目前,由于網(wǎng)絡(luò)技術(shù)的進(jìn)步,很多用戶開(kāi)始使用多媒體傳輸業(yè)務(wù),如語(yǔ)音和視頻等。但是,目前很多的MAC協(xié)議不支持QoS,所以就不能提供多媒體業(yè)務(wù)。目前MAC的QoS的主要研究集中在信道接入的公平性和支持多媒體業(yè)務(wù)上。QoS主要通過(guò)Intserv與DiffServ機(jī)制實(shí)現(xiàn)。比如在MACA/PR(帶搭載預(yù)留的多址沖突避免)協(xié)議中,對(duì)于非實(shí)時(shí)的分組,一個(gè)節(jié)點(diǎn)首先應(yīng)等待一個(gè)預(yù)留表(RT),然后才能按照RTS/CTS/DATA/CK的方式進(jìn)行收發(fā)。對(duì)于實(shí)時(shí)的分組,首先進(jìn)行RTS/CTS交互,再進(jìn)行DATA/CK交互。對(duì)于以后的分組則不再進(jìn)行RTS/CTS交互,只進(jìn)行DATA/ACK交互。在DATA和ACK分組的頭部搭載了實(shí)時(shí)調(diào)度的信息,用來(lái)進(jìn)行資源的預(yù)留。IEEE?802.11bMAC協(xié)議中的PCF模式也采用了類(lèi)似的QoS機(jī)制。由于通信設(shè)備的飛速發(fā)展,要求很多不同設(shè)備能夠相互通信,而不同的通信設(shè)備采用的發(fā)送和接收的速率也不盡相同。為了支持它們之間的通信,要求MAC協(xié)議必須支持多種速率的信道。這樣,用戶就可以手工或者由節(jié)點(diǎn)自動(dòng)進(jìn)行速率的轉(zhuǎn)換,有利于多種設(shè)備之間的通信。但是也應(yīng)該看到,很多新的MAC機(jī)制都或多或少地提高了對(duì)硬件的要求。相信隨著技術(shù)的發(fā)展,硬件成本會(huì)降低,這樣,很多復(fù)雜但性能更好的MAC協(xié)議將會(huì)得到應(yīng)用。5.2.2移動(dòng)Adhoc網(wǎng)絡(luò)路由協(xié)議移動(dòng)Adhoc網(wǎng)是一種分布式的無(wú)線通信網(wǎng),其最大的特點(diǎn)是沒(méi)有網(wǎng)絡(luò)基礎(chǔ)設(shè)施,完全由一些移動(dòng)節(jié)點(diǎn)臨時(shí)構(gòu)成網(wǎng)絡(luò),并且在節(jié)點(diǎn)移動(dòng)、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)生變化后能夠迅速地建立新的傳輸通道,即能重建路由。移動(dòng)Adhoc網(wǎng)為小范圍內(nèi)的移動(dòng)或無(wú)線主機(jī)互連提供了靈活的解決方案。由于移動(dòng)Adhoc網(wǎng)絡(luò)本身特殊的拓?fù)浣Y(jié)構(gòu),因而其路由問(wèn)題就顯得尤為重要,路由方案的好壞直接關(guān)系到整個(gè)網(wǎng)絡(luò)性能的優(yōu)劣。目前對(duì)移動(dòng)Adhoc網(wǎng)絡(luò)路由的研究已經(jīng)成為無(wú)線通信網(wǎng)的熱點(diǎn)之一,對(duì)這種網(wǎng)絡(luò)路由方法的討論也越來(lái)越深入,并且已經(jīng)提出了多種針對(duì)移動(dòng)Adhoc網(wǎng)的路由方案。本節(jié)對(duì)目前一些主流的移動(dòng)Adhoc網(wǎng)絡(luò)路由協(xié)議進(jìn)行介紹,包括其主要原理和思想,并且簡(jiǎn)單地對(duì)各種路由協(xié)議的性能進(jìn)行比較,分析各種路由協(xié)議的優(yōu)點(diǎn)和不足。在過(guò)去的10年間,無(wú)線通信以令人難以想象的速度發(fā)展,在很短的時(shí)間內(nèi)普及到了世界上幾乎所有的角落,也深刻地改變著人們的生活,其中非常重要的一點(diǎn)就是無(wú)線網(wǎng)絡(luò)被賦予了移動(dòng)性,即人們可以在移動(dòng)中相互通信,發(fā)送、接收語(yǔ)音和數(shù)據(jù),真正實(shí)現(xiàn)了在任何時(shí)間、任何地點(diǎn)與任何人通信的這一人類(lèi)長(zhǎng)期向往的目標(biāo)。這種網(wǎng)絡(luò)就是我們通常所說(shuō)的移動(dòng)無(wú)線網(wǎng)絡(luò)。移動(dòng)無(wú)線網(wǎng)絡(luò)有兩種基本結(jié)構(gòu)。第一種是有基礎(chǔ)設(shè)施的移動(dòng)無(wú)線網(wǎng)絡(luò)(InfrastructuredNetwork),即整個(gè)網(wǎng)絡(luò)中有一些固定的節(jié)點(diǎn),其位置不會(huì)變化,充當(dāng)網(wǎng)關(guān)和中繼的作用,負(fù)責(zé)該節(jié)點(diǎn)所在區(qū)域內(nèi)的所有移動(dòng)節(jié)點(diǎn)的管理和通信等任務(wù)。這種結(jié)構(gòu)的實(shí)質(zhì)就是把整個(gè)網(wǎng)絡(luò)區(qū)域分成若干個(gè)小的區(qū)域,每個(gè)小的區(qū)域內(nèi)由一個(gè)固定的節(jié)點(diǎn)充當(dāng)管理者,負(fù)責(zé)該區(qū)域內(nèi)的移動(dòng)節(jié)點(diǎn)之間以及該區(qū)域和其他區(qū)域的移動(dòng)節(jié)點(diǎn)之間的相互通信。這樣做的好處是網(wǎng)絡(luò)的結(jié)構(gòu)比較清楚,容易實(shí)現(xiàn)。因而節(jié)點(diǎn)位置固定,所以管理起來(lái)也較為簡(jiǎn)單,特別是路由的管理,更可以借鑒原來(lái)計(jì)算機(jī)網(wǎng)絡(luò)(固定節(jié)點(diǎn)網(wǎng)絡(luò))的一些方法,即整個(gè)大的網(wǎng)絡(luò)區(qū)域可以看成是類(lèi)似于計(jì)算機(jī)網(wǎng)絡(luò)的固定節(jié)點(diǎn)相互連接在一起,而在每一個(gè)小的自治區(qū)域內(nèi)卻是一個(gè)移動(dòng)的無(wú)線網(wǎng)絡(luò)。移動(dòng)節(jié)點(diǎn)(如手機(jī))可以在該小區(qū)內(nèi)自由移動(dòng),還可以從一個(gè)固定節(jié)點(diǎn)覆蓋的區(qū)域移動(dòng)到另一個(gè)固定節(jié)點(diǎn)覆蓋的區(qū)域,并且還能通話。這樣就從真正意義上實(shí)現(xiàn)了移動(dòng)性,所以這種網(wǎng)絡(luò)可以算是一種移動(dòng)無(wú)線網(wǎng)絡(luò),雖然它的基礎(chǔ)設(shè)施是有線和固定的。第二種移動(dòng)無(wú)線網(wǎng)絡(luò)可以說(shuō)是一種真正意義上的移動(dòng)網(wǎng),因?yàn)樗畲蟮囊粋€(gè)特點(diǎn)就是沒(méi)有基礎(chǔ)設(shè)施,事先不需要任何的架設(shè)、布線、安放基站等措施。整個(gè)網(wǎng)絡(luò)只由移動(dòng)節(jié)點(diǎn)構(gòu)成,網(wǎng)絡(luò)中所有的元素都是移動(dòng)的。這些移動(dòng)節(jié)點(diǎn)可以臨時(shí)構(gòu)成一個(gè)網(wǎng)絡(luò)。當(dāng)網(wǎng)絡(luò)中的一部分節(jié)點(diǎn)撤出該網(wǎng)絡(luò)、有新的節(jié)點(diǎn)加入該網(wǎng)絡(luò)或者網(wǎng)絡(luò)中的節(jié)點(diǎn)變化了自己的位置(這些變化是隨機(jī)的,事先無(wú)法估計(jì)的)時(shí),網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)可以按照MAC層的媒體接入?yún)f(xié)議與網(wǎng)絡(luò)層的路由協(xié)議等發(fā)現(xiàn)網(wǎng)絡(luò)的變化,及時(shí)得知新的網(wǎng)絡(luò)狀態(tài),以便繼續(xù)與網(wǎng)絡(luò)中的其他節(jié)點(diǎn)通信。這就是我們通常所說(shuō)的移動(dòng)Adhoc網(wǎng)。由于移動(dòng)Adhoc網(wǎng)本身的特殊性,網(wǎng)絡(luò)中所有的節(jié)點(diǎn)都會(huì)移動(dòng),可能會(huì)不斷地生成新的網(wǎng)絡(luò),因此每個(gè)節(jié)點(diǎn)都必須具有路由的功能,即每個(gè)節(jié)點(diǎn)都能充當(dāng)路由器,能夠發(fā)現(xiàn)和識(shí)別相鄰節(jié)點(diǎn),轉(zhuǎn)發(fā)其他節(jié)點(diǎn)發(fā)來(lái)的數(shù)據(jù),并能與其他節(jié)點(diǎn)交換路由信息。從以上描述可以看出,移動(dòng)Adhoc網(wǎng)是一種非常特殊、具有高度靈活性和智能化的移動(dòng)無(wú)線網(wǎng)絡(luò)。正是由于移動(dòng)Adhoc網(wǎng)本身的特殊性,因而這種網(wǎng)絡(luò)的路由問(wèn)題就顯得尤為重要和復(fù)雜,路由問(wèn)題解決的好壞直接關(guān)系到移動(dòng)Adhoc網(wǎng)的性能。因?yàn)橐苿?dòng)Adhoc網(wǎng)是無(wú)基礎(chǔ)設(shè)施的移動(dòng)網(wǎng)絡(luò),所以它所涉及的路由問(wèn)題也比有線固定網(wǎng)絡(luò)復(fù)雜得多。因?yàn)橐苿?dòng)Adhoc網(wǎng)絡(luò)中沒(méi)有基礎(chǔ)設(shè)施,所以網(wǎng)絡(luò)中備節(jié)點(diǎn)之間的通信只能由網(wǎng)絡(luò)中的各移動(dòng)節(jié)點(diǎn)來(lái)代為轉(zhuǎn)發(fā)。此時(shí),這些節(jié)點(diǎn)都充當(dāng)了路由器的功能。與此同時(shí),這些節(jié)點(diǎn)又都是可移動(dòng)的,在某一時(shí)間段位于某一位置,而過(guò)了一段時(shí)間后又可能移動(dòng)到新的位置,而且這些節(jié)點(diǎn)的移動(dòng)應(yīng)該是隨機(jī)的,事先無(wú)法估計(jì)。所以兩節(jié)點(diǎn)之間為傳輸數(shù)據(jù)而建立起來(lái)的路由并不像有線網(wǎng)絡(luò)中那樣是一成不變的,而是隨時(shí)可能會(huì)斷開(kāi),同時(shí)新的路由又可能會(huì)隨時(shí)形成。因?yàn)檎麄€(gè)路由上某一個(gè)或某幾個(gè)節(jié)點(diǎn)可能已經(jīng)移開(kāi),并且移動(dòng)到了一個(gè)新的位置。當(dāng)建立起來(lái)的路由已經(jīng)變得不可用時(shí),必須有一種方法來(lái)快速而準(zhǔn)確地找到新的中繼節(jié)點(diǎn)來(lái)代替原來(lái)的節(jié)點(diǎn),即找到一條新的路由來(lái)繼續(xù)傳輸數(shù)據(jù),路由恢復(fù)的時(shí)間越短越好,但這也跟網(wǎng)絡(luò)中節(jié)點(diǎn)的移動(dòng)速度有關(guān)。若節(jié)點(diǎn)移動(dòng)速度非??欤灾劣谛陆ǖ穆酚蔁o(wú)法存在一段穩(wěn)定的時(shí)間,那么,就只能是用泛洪(Flooding)的方法來(lái)傳輸數(shù)據(jù)。當(dāng)然,這樣做的代價(jià)是很大的,而且整個(gè)網(wǎng)絡(luò)的性能很差。當(dāng)網(wǎng)絡(luò)中節(jié)點(diǎn)的移動(dòng)速度較快(如20?m/s)時(shí),應(yīng)該采用臨時(shí)建立路由的方法,即按需建立路由法,因?yàn)槊織l路由都只具備很短的時(shí)效性,沒(méi)有必要在每個(gè)節(jié)點(diǎn)的內(nèi)存中建立龐大的路由緩存庫(kù);而當(dāng)網(wǎng)絡(luò)中各節(jié)點(diǎn)的移動(dòng)速度較慢(如5m/s)時(shí),應(yīng)該采用事先建立一定量的路由緩存方式,即網(wǎng)絡(luò)中的各節(jié)點(diǎn)周期性地對(duì)整個(gè)網(wǎng)絡(luò)的路由狀態(tài)作出測(cè)試,了解整個(gè)網(wǎng)絡(luò)中各節(jié)點(diǎn)的位置狀態(tài),然后建立一定量的路由信息存于自己的緩存中。當(dāng)需要發(fā)送數(shù)據(jù)時(shí),可以先在自己的緩存中查找有無(wú)目的節(jié)點(diǎn)的路由信息。如果有,則直接將數(shù)據(jù)發(fā)送至路由表中下一個(gè)節(jié)點(diǎn)處;如果沒(méi)有,則再建立路由。這種方法在計(jì)算機(jī)網(wǎng)絡(luò)中普遍采用,這是因?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)由一些固定節(jié)點(diǎn)來(lái)構(gòu)成,是一個(gè)靜態(tài)網(wǎng)絡(luò)。所以這種方案對(duì)于移動(dòng)性較小的網(wǎng)絡(luò)比較適用,因?yàn)槊織l路由維持的時(shí)間較長(zhǎng),事先存儲(chǔ)一定量的路由信息在自己的緩存中可以減少因?yàn)橐l(fā)送數(shù)據(jù)而尋找路由的時(shí)間,提高了整個(gè)網(wǎng)絡(luò)的性能。目前,隨著移動(dòng)Adhoc網(wǎng)路由協(xié)議研究的深入,人們對(duì)臨時(shí)建立路由的方法進(jìn)行了改進(jìn),主要就是加入事先建立緩存信息的思想,并且對(duì)其中的每條路由信息加上生存期(TTL)。發(fā)送數(shù)據(jù)時(shí),首先查找路由表,看是否有可用信息,如果有就直接用;如果沒(méi)有,就從源節(jié)點(diǎn)發(fā)起路由請(qǐng)求,并且中間節(jié)點(diǎn)收到請(qǐng)求后,首先查看自己的緩存中是否有到目的節(jié)點(diǎn)的路由,如果有,則直接返回其路由,如果沒(méi)有再繼續(xù)轉(zhuǎn)發(fā)。這種改進(jìn)的算法明顯比原始的按需建立路由法要好得多。不但路由建立的時(shí)間可大大縮短,而且整個(gè)網(wǎng)絡(luò)的控制信息的開(kāi)銷(xiāo)也會(huì)少得多,不會(huì)輕易使用泛洪策略,有利于減輕網(wǎng)絡(luò)的負(fù)擔(dān)。然而,這樣做惟一的缺點(diǎn)是會(huì)增加網(wǎng)絡(luò)的建立成本,因?yàn)槲覀儾坏貌粸槊總€(gè)節(jié)點(diǎn)增加更多的內(nèi)存。但是,隨著半導(dǎo)體工業(yè)的發(fā)展和存儲(chǔ)器價(jià)格的不斷下降,其成本問(wèn)題將會(huì)變得無(wú)足輕重。總的來(lái)說(shuō),不同的移動(dòng)性環(huán)境下應(yīng)該采用不同的路由策略,以便能達(dá)到最好的網(wǎng)絡(luò)使用效率。
1.移動(dòng)Adhoc網(wǎng)絡(luò)路由協(xié)議的分類(lèi)傳統(tǒng)的路由建立及維護(hù)方法是靠周期性地發(fā)送控制信息來(lái)更新網(wǎng)絡(luò)節(jié)點(diǎn)的路由表(主要是表驅(qū)動(dòng)類(lèi)型)。這種方法對(duì)于靜態(tài)網(wǎng)絡(luò)節(jié)點(diǎn)位置不發(fā)生變化或變化很慢的網(wǎng)絡(luò)結(jié)構(gòu)非常適用,但對(duì)于像移動(dòng)Adhoc網(wǎng)絡(luò)這樣具有特殊要求的移動(dòng)無(wú)線網(wǎng)絡(luò)來(lái)說(shuō),這樣的做法無(wú)疑會(huì)消耗很多的資源,因?yàn)槠渲泻艽笠徊糠致酚尚畔⒍际呛苌偈褂蒙踔翢o(wú)用的,即很多信息由于節(jié)點(diǎn)的移動(dòng)已經(jīng)過(guò)期,從而造成很大的資源浪費(fèi)。及至目前,人們已經(jīng)提出多達(dá)10~20種移動(dòng)Adhoc網(wǎng)絡(luò)路由協(xié)議,但最基本的、具有原創(chuàng)性的也不過(guò)幾種,如DSR、TORA、AODV、DSDV、CGSR和ABR等。這其中有的是根據(jù)移動(dòng)Adhoc網(wǎng)絡(luò)的特點(diǎn)所創(chuàng)建的與傳統(tǒng)路由協(xié)議完全不同的方法,如DSR;有的則是根據(jù)原來(lái)已存在的路由方法進(jìn)行的改進(jìn),使之適應(yīng)移動(dòng)Ad?hoc網(wǎng)絡(luò)對(duì)路由的要求,如DSDV;有的則是把前面兩者的優(yōu)點(diǎn)結(jié)合在一起而形成的新的路由協(xié)議,如AODV。圖5-18所示是對(duì)移動(dòng)Adhoc網(wǎng)絡(luò)路由協(xié)議的一個(gè)簡(jiǎn)單分類(lèi)。圖5-18移動(dòng)Adhoc網(wǎng)絡(luò)路由協(xié)議分類(lèi)
2.目的排序距離矢量(DSDV)協(xié)議
DSDV(DestinationSequencedDistanceVector)協(xié)議對(duì)Bellman-Ford路由算法即距離矢量(DistanceVector,DV)算法進(jìn)行了改進(jìn)。在傳統(tǒng)的DV算法中,每個(gè)節(jié)點(diǎn)同時(shí)保存兩個(gè)矢量表,一個(gè)是該節(jié)點(diǎn)到網(wǎng)絡(luò)中其他節(jié)點(diǎn)的距離D(i)(可以是跳數(shù),也可以是時(shí)延);另一個(gè)保存的是要到此目的節(jié)點(diǎn)需要經(jīng)過(guò)的下一跳節(jié)點(diǎn),即N(i)。每個(gè)節(jié)點(diǎn)周期性地發(fā)送自己的DV表,即D(i),其他節(jié)點(diǎn)根據(jù)自己的DV表和從相鄰節(jié)點(diǎn)收到的DV表來(lái)更新自己的路由表,即對(duì)任意一個(gè)節(jié)點(diǎn)k,dki=Min[dkj+dji],jA,A為節(jié)點(diǎn)收到的相鄰節(jié)點(diǎn)的DV。在DV路由中,每個(gè)節(jié)點(diǎn)周期性地將以它為起點(diǎn)的到其他目的節(jié)點(diǎn)的最短距離廣播給它的鄰節(jié)點(diǎn),收到該信息的鄰節(jié)點(diǎn)將計(jì)算出的到某個(gè)目的節(jié)點(diǎn)的最短距離與自己已知的距離相比較,若比已知的小,則更新路由表。與鏈路狀態(tài)比較起來(lái),DV算法在計(jì)算上是非常有效的,更容易實(shí)現(xiàn),所需的存儲(chǔ)空間也大大減少。然而,我們知道,DV算法既會(huì)形成暫時(shí)性的路由環(huán),也會(huì)形成長(zhǎng)期的路由環(huán)。而DSDV則是在DV算法中加入了目的節(jié)點(diǎn)序列號(hào),此序列號(hào)由目的節(jié)點(diǎn)產(chǎn)生。目的節(jié)點(diǎn)每次因位置發(fā)生改變而與某相鄰節(jié)點(diǎn)的連接斷開(kāi)后會(huì)把其序列號(hào)加1,而該鄰節(jié)點(diǎn)也會(huì)把其序列號(hào)加工,并設(shè)其到目的節(jié)點(diǎn)的距離為。當(dāng)節(jié)點(diǎn)收到多個(gè)不同的矢量表數(shù)據(jù)包時(shí),采用序列號(hào)較大的,即較新的來(lái)計(jì)算;如果序列號(hào)相同,則看誰(shuí)的路徑更短。目的節(jié)點(diǎn)序列號(hào)可以區(qū)別新舊路由,避免了環(huán)路的產(chǎn)生。圖5-19所示為DSDV路由協(xié)議示意圖。圖5-19DSDV路由協(xié)議示意圖如圖5-19(a)所示,節(jié)點(diǎn)A和節(jié)點(diǎn)B的路由表中到節(jié)點(diǎn)D的入口分別如下:節(jié)點(diǎn)A的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)DB3節(jié)點(diǎn)B的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)DC2但是,如圖5-19(b)所示,如果當(dāng)節(jié)點(diǎn)D移動(dòng)到了新的位置,節(jié)點(diǎn)C到節(jié)點(diǎn)D的連接不存在了,那么,如果按照傳統(tǒng)的DV算法,節(jié)點(diǎn)A和節(jié)點(diǎn)B相互交換各自的路由信息。此時(shí),節(jié)點(diǎn)B已經(jīng)收到節(jié)點(diǎn)C的更新消息,把到節(jié)點(diǎn)D的距離設(shè)為無(wú)窮。當(dāng)與節(jié)點(diǎn)A互相交換路由信息后,按照傳統(tǒng)的DV算法,就會(huì)把到節(jié)點(diǎn)D的距離設(shè)為節(jié)點(diǎn)A到節(jié)點(diǎn)D的距離加上節(jié)點(diǎn)B到節(jié)點(diǎn)A的距離,如下所示:更新前節(jié)點(diǎn)B的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)D∞更新后節(jié)點(diǎn)B的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)DA4這樣就造成了路由環(huán)的現(xiàn)象,即節(jié)點(diǎn)A或節(jié)點(diǎn)B想要向節(jié)點(diǎn)D發(fā)送的數(shù)據(jù)會(huì)在節(jié)點(diǎn)A和節(jié)點(diǎn)B之間來(lái)回地轉(zhuǎn)發(fā),根本發(fā)不出去。顯然,這是我們不愿看到的。解決這一問(wèn)題的方法就是在每條路由記錄中加入序列號(hào)。序列號(hào)由目的節(jié)點(diǎn)產(chǎn)生,并且每次當(dāng)目的節(jié)點(diǎn)的鏈路發(fā)生改變時(shí),目的節(jié)點(diǎn)便會(huì)把自己的序列號(hào)加1,如圖5-19(b)所示,當(dāng)節(jié)點(diǎn)D與節(jié)點(diǎn)E建立新的連接時(shí),節(jié)點(diǎn)E到節(jié)點(diǎn)D的路由便會(huì)采用新的序列號(hào)值,說(shuō)明此路由比原來(lái)的路由新。與其相連的節(jié)點(diǎn)就會(huì)產(chǎn)生路由更新,在更新路由的同時(shí),會(huì)把這條更新的路由記錄的序列號(hào)加1。節(jié)點(diǎn)之間相互交換路由信息時(shí),如果需要更新,首先要檢查序列號(hào)的大小,如果收到的更新數(shù)據(jù)的序列號(hào)比本節(jié)點(diǎn)上該路由記錄的序列號(hào)大,則馬上更新;如果相同,則比較路由的距離,像傳統(tǒng)的路由矢量一樣;如果小于自己的路由記錄的序列號(hào),則拒絕更新。因?yàn)楸桓碌穆酚梢呀?jīng)是舊的路由,已無(wú)效。在DSDV中,路由表的表項(xiàng)除了包括目的節(jié)點(diǎn)、跳計(jì)數(shù)外,還有目的節(jié)點(diǎn)的序列號(hào)。當(dāng)網(wǎng)絡(luò)拓?fù)淙鐖D5-19(a)所示時(shí),原節(jié)點(diǎn)A、B的路由表分別如下:節(jié)點(diǎn)A的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)序列號(hào)DB31000節(jié)點(diǎn)B的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)序列號(hào)DC21000當(dāng)節(jié)點(diǎn)D移走,節(jié)點(diǎn)C和節(jié)點(diǎn)D的連接中斷時(shí),節(jié)點(diǎn)C到節(jié)點(diǎn)D的路由會(huì)被更新,在路由更新時(shí),序列號(hào)也被加1。更新前后的路由表如下:節(jié)點(diǎn)C更新前的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)序列號(hào)DD11000節(jié)點(diǎn)C更新后的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)序列號(hào)D∞1001當(dāng)節(jié)點(diǎn)B收到節(jié)點(diǎn)C的路由更新后,其相應(yīng)的路由信息也會(huì)被更新。更新前后的路由表如下:節(jié)點(diǎn)B更新前的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)序列號(hào)DB11000節(jié)點(diǎn)B更新后的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)序列號(hào)D∞100當(dāng)節(jié)點(diǎn)B收到節(jié)點(diǎn)A的交換路由信息后,由于其序列號(hào)小于當(dāng)前序列號(hào),因此不更新。這樣就避免了路由環(huán)路的產(chǎn)生,也不會(huì)造成死鎖。同理,節(jié)點(diǎn)A的相應(yīng)路由也會(huì)被更新,因?yàn)槠湫蛄刑?hào)較小,表明已經(jīng)過(guò)期。更新前后的路由表如下:節(jié)點(diǎn)A更新前的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)序列號(hào)DB31000節(jié)點(diǎn)A更新后的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)序列號(hào)D∞1001當(dāng)節(jié)點(diǎn)E與移動(dòng)到新位置的節(jié)點(diǎn)D建立連接以后,也會(huì)更新路由表,假設(shè)原序列號(hào)也為1000(由節(jié)點(diǎn)A得知),更新前后的路由表如下:節(jié)點(diǎn)E更新前的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)序列號(hào)DA41000節(jié)點(diǎn)E更新后的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)序列號(hào)DD11001由于節(jié)點(diǎn)A和節(jié)點(diǎn)E會(huì)周期性地交換路由信息,當(dāng)節(jié)點(diǎn)A收到節(jié)點(diǎn)E的路由更新后,在序列號(hào)相同時(shí),則會(huì)根據(jù)DV算法來(lái)判斷是否更新路由,顯然,節(jié)點(diǎn)A會(huì)更新路由。更新前后的路由表如下:節(jié)點(diǎn)A更新前的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)序列號(hào)D∞1001節(jié)點(diǎn)A更新后的路由表目的節(jié)點(diǎn)下一跳跳計(jì)數(shù)序列號(hào)DE21001以上是DSDV建立路由的基本過(guò)程,其主要思想就是在DV基礎(chǔ)上加上目的節(jié)點(diǎn)的序列號(hào),用于防止由于節(jié)點(diǎn)移動(dòng)而產(chǎn)生的路由環(huán)和死鎖等問(wèn)題。但因?yàn)橄噜徆?jié)點(diǎn)之間必須周期性地交換路由表信息,所以會(huì)占據(jù)很大一部分網(wǎng)絡(luò)資源,開(kāi)銷(xiāo)過(guò)大。當(dāng)然也可以根據(jù)路由表的改變來(lái)觸發(fā)路由更新。路由表更新有兩種方式:一種是全部更新,即拓?fù)涓孪⒅袑ㄕ麄€(gè)路由表,這種方式主要應(yīng)用于網(wǎng)絡(luò)拓?fù)渥兓^快的情況;另一種方式是部分更新,即更新消息中僅包含變化的路由部分,通常適用于網(wǎng)絡(luò)變化較慢的情況。在DSDV中,只使用序列號(hào)最高的路由,如果兩個(gè)路由具有相同的序列號(hào),那么將選擇最優(yōu)(如跳數(shù)最少)的路由。
3.Adhoc按需距離矢量(AODV)協(xié)議
AODV(AdhocOnDemandDistanceVector)路由算法是專為移動(dòng)Adhoc網(wǎng)設(shè)計(jì)的一種路由協(xié)議,它可以說(shuō)是按需式和表驅(qū)動(dòng)式的一種結(jié)合,具備了兩種方式的優(yōu)點(diǎn)。它的處理過(guò)程簡(jiǎn)單,存儲(chǔ)開(kāi)銷(xiāo)很小,能對(duì)鏈路狀態(tài)的變化做出快速反應(yīng)。AODV通過(guò)引入序列號(hào)的方法解決了傳統(tǒng)DV協(xié)議中的一些問(wèn)題,如“計(jì)算到無(wú)窮”,確保了在任何時(shí)候都不會(huì)形成路由環(huán),這一點(diǎn)與DSDV很相似。
AODV路由算法屬于按需路由算法,即僅當(dāng)有源節(jié)點(diǎn)需要向某目的節(jié)點(diǎn)通信時(shí),才在節(jié)點(diǎn)間建立路由,路由信息不會(huì)一直被保存,具有一定的生命期(TTL),這是由移動(dòng)Adhoc網(wǎng)本身的特點(diǎn)所決定的。若某條路由已不需要,則會(huì)被刪除。通過(guò)使用序列號(hào),AODV可以保證不會(huì)形成路由環(huán),原理在前面的DSDV中已做說(shuō)明,這里不再贅述。
AODV支持單播、多播和廣播通信,在相鄰節(jié)點(diǎn)之間只使用對(duì)稱鏈路。通過(guò)使用特殊的路由錯(cuò)誤信息,可以快速刪除非法路由。AODV能及時(shí)對(duì)影響動(dòng)態(tài)路由的拓?fù)渥兓龀龇磻?yīng)。另外,在建立路由時(shí),除了路由控制分組外,沒(méi)有其他的網(wǎng)絡(luò)開(kāi)銷(xiāo),路由開(kāi)銷(xiāo)也很小。在實(shí)現(xiàn)上,AODV包括七大部分:路由的發(fā)現(xiàn)、擴(kuò)展環(huán)搜索、路由表的維護(hù)、本地連接性管理、節(jié)點(diǎn)重啟后的動(dòng)作、AODV對(duì)廣播的支持、AODV協(xié)議的特點(diǎn)。以下分別加以介紹。
1)路由的發(fā)現(xiàn)
AODV中的路由搜索完全是按需進(jìn)行的,是通過(guò)路由請(qǐng)求—回復(fù)過(guò)程實(shí)現(xiàn)的,其中RREQ(RouteRequestPacket,路由請(qǐng)求分組)消息用于建立路由的請(qǐng)求信息,RREP(RouteReplyPacket,路由回復(fù)分組)消息用于返回建立的路由信息。路由發(fā)現(xiàn)的基本過(guò)程可以歸納如下:
(1)當(dāng)一個(gè)節(jié)點(diǎn)需要一個(gè)到某一個(gè)目的節(jié)點(diǎn)的路由時(shí),就廣播一條RREQ消息。
(2)任何具有到當(dāng)前目的節(jié)點(diǎn)路由的節(jié)點(diǎn)(包括目的節(jié)點(diǎn)本身)都可以向源節(jié)點(diǎn)單播一條RREP消息。
(3)由路由表中的每個(gè)節(jié)點(diǎn)來(lái)維護(hù)路由信息。
(4)通過(guò)RREQ和RREP消息所獲得的信息與路由表中的其他路由信息保存在一起。
(5)序列號(hào)用于減少過(guò)期的路由。
(6)含過(guò)時(shí)序列號(hào)的路由從系統(tǒng)中去除。當(dāng)一個(gè)源節(jié)點(diǎn)想向某一目的節(jié)點(diǎn)發(fā)送分組,而又不存在已知路由時(shí),它就會(huì)啟動(dòng)路由發(fā)現(xiàn)過(guò)程來(lái)尋找到目的節(jié)點(diǎn)的路由。為了開(kāi)始搜索過(guò)程,源節(jié)點(diǎn)首先創(chuàng)建一個(gè)RREQ,其中含有源節(jié)點(diǎn)的IP地址、源節(jié)點(diǎn)的序列號(hào)、廣播ID、源節(jié)點(diǎn)知道的到目的節(jié)點(diǎn)的最新序列號(hào)(該序列號(hào)對(duì)應(yīng)的路由是不可用的);然后,源節(jié)點(diǎn)將RREQ廣播給它的相鄰節(jié)點(diǎn),鄰節(jié)點(diǎn)收到該分組后,又將它轉(zhuǎn)發(fā)給它們自己的鄰節(jié)點(diǎn)。如此循環(huán),直到找到目的節(jié)點(diǎn),或有到目的節(jié)點(diǎn)的足夠新的路由(目的節(jié)點(diǎn)序列號(hào)足夠大)的節(jié)點(diǎn);最后設(shè)置定時(shí)器,等待回復(fù)。所有節(jié)點(diǎn)都保存著RREQ的源IP地址和廣播ID,當(dāng)它們收到已經(jīng)接收過(guò)的分組時(shí),就不再重發(fā)。如圖5-20(a)所示為路由請(qǐng)求分組的傳播過(guò)程(廣播形式)。圖5-20AODV路由建立過(guò)程(a)?RREQ的傳播過(guò)程;(b)RREP按選定的路徑返回中繼節(jié)點(diǎn)在轉(zhuǎn)發(fā)RREQ的同時(shí),會(huì)在其路由表中為源節(jié)點(diǎn)建立反向路由入口,即記錄下相鄰節(jié)點(diǎn)的地址,以及源節(jié)點(diǎn)的相關(guān)信息。其中包括源節(jié)點(diǎn)的IP地址、序列號(hào)、到源節(jié)點(diǎn)所需的跳數(shù)、接收到的RREQ上游節(jié)點(diǎn)的IP地址。每個(gè)節(jié)點(diǎn)在建立路由入口的同時(shí),會(huì)設(shè)置一個(gè)路由定時(shí)器,若該路由入口在定時(shí)器設(shè)定的計(jì)時(shí)周期內(nèi)從未使用過(guò)該入口,則該路由就會(huì)被刪除。若收到RREQ的節(jié)點(diǎn)就是目的節(jié)點(diǎn),或該節(jié)點(diǎn)已有到目的節(jié)點(diǎn)的路由,并且該路由的序列號(hào)要比RREQ所包含的序列號(hào)大或者相同,則該節(jié)點(diǎn)就用單播方式向源節(jié)點(diǎn)發(fā)送一個(gè)RREP;否則,它會(huì)繼續(xù)廣播接收到的RREQ消息。當(dāng)RREQ到達(dá)一個(gè)擁有到目的節(jié)點(diǎn)路由的中繼節(jié)點(diǎn)時(shí),該節(jié)點(diǎn)首先會(huì)檢查該RREQ分組是否是從雙向鏈路上接收到的,因?yàn)锳ODV只支持對(duì)稱鏈路。若一個(gè)中間節(jié)點(diǎn)有到目的節(jié)點(diǎn)的路由入口,則它需要判定該路由是否是最新的。其方法是將其路由表中存儲(chǔ)的該路由的序列號(hào)與RREQ分組中的序列號(hào)相比較,若后者大于前者,說(shuō)明該中繼節(jié)點(diǎn)的路由信息已陳舊,則該中間節(jié)點(diǎn)就不能利用它所記錄的路由來(lái)對(duì)RREQ做出回答,而是繼續(xù)轉(zhuǎn)發(fā)RREQ分組;僅當(dāng)中間節(jié)點(diǎn)的序列號(hào)大于或等于RREQ中的序列號(hào)時(shí),才對(duì)RREQ做出回復(fù),即對(duì)源節(jié)點(diǎn)發(fā)送RREP分組。當(dāng)RREQ到達(dá)一個(gè)能提供到目的節(jié)點(diǎn)路由的節(jié)點(diǎn)時(shí),一條到源節(jié)點(diǎn)的反向路徑就會(huì)被建立。隨著RREP向源節(jié)點(diǎn)的反向傳輸,每一個(gè)該路徑上的節(jié)點(diǎn)都會(huì)設(shè)置一個(gè)指向上一個(gè)節(jié)點(diǎn)的前向指針和到目的節(jié)點(diǎn)的路由入口,更新到源節(jié)點(diǎn)和目的節(jié)點(diǎn)的路由入口的超時(shí)時(shí)間,并且記錄到目的節(jié)點(diǎn)的最新的序列號(hào)。如圖5-20(b)所示為隨著RREP從目的節(jié)點(diǎn)向源節(jié)點(diǎn)傳輸,反向路徑的建立過(guò)程。其他不在返口路徑上的轉(zhuǎn)發(fā)節(jié)點(diǎn)上的路由信息會(huì)在經(jīng)過(guò)ACTIVE_ROUTE_TIMEOUT(如3000?ms)時(shí)間之后,由于超時(shí)而被刪除。若一個(gè)節(jié)點(diǎn)收到多個(gè)RREP分組,則按照先到優(yōu)先的原則進(jìn)行選擇。但是,如果新到的RREP分組比原來(lái)的RREP分組具有更大的目的地序列號(hào),或雖然兩者的序列號(hào)相等,但新到的RREP的跳數(shù)比原來(lái)的小,則源節(jié)點(diǎn)會(huì)增加一條到目的節(jié)點(diǎn)的新的路由。
2)擴(kuò)展環(huán)搜索每當(dāng)一個(gè)節(jié)點(diǎn)啟動(dòng)路由發(fā)現(xiàn)過(guò)程來(lái)發(fā)現(xiàn)新的路由時(shí),它都會(huì)在網(wǎng)絡(luò)中廣播RREQ分組。這種廣播方式對(duì)于小型網(wǎng)絡(luò)的影響較小,但對(duì)于規(guī)模較大的網(wǎng)絡(luò),廣播發(fā)送RREQ分組就會(huì)對(duì)網(wǎng)絡(luò)性能造成很大的影響,嚴(yán)重時(shí)可能會(huì)造成整個(gè)網(wǎng)絡(luò)的癱瘓,即節(jié)點(diǎn)發(fā)送的RREQ占用了所有網(wǎng)絡(luò)資源,而真正需要傳送的數(shù)據(jù)卻根本發(fā)送不出去。為了控制網(wǎng)絡(luò)中的消息泛洪,源節(jié)點(diǎn)可以使用一種被稱為擴(kuò)展環(huán)搜索(ExpandingRingSearch)的方法,其工作原理如下:開(kāi)始時(shí),源節(jié)點(diǎn)通過(guò)設(shè)置ttl_start值來(lái)為RREQ設(shè)置初始TTL值,此時(shí)的TTL值較小。若未收到RREP消息,則源節(jié)點(diǎn)會(huì)廣播一個(gè)TTL更大的RREQ,如此反復(fù),直到找到路由或TTL已達(dá)到門(mén)限值。若TTL已達(dá)門(mén)限值,則說(shuō)明不存在到達(dá)目的節(jié)點(diǎn)的路由。
3)路由表的維護(hù)
AODV需要為每個(gè)路由表入口保存以下信息:
(1)?DestinationIPAddress:目的節(jié)點(diǎn)的IP地址。
(2)?DestinationSequenceNumber:目的節(jié)點(diǎn)的序列號(hào)。
(3)?HopCount:到達(dá)目的節(jié)點(diǎn)所需的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 62746-4:2024 EN-FR Systems interface between customer energy management system and the power management system - Part 4: Demand Side Resource Interface
- 2025-2030年中國(guó)銻摻雜二氧化錫氧化錫行業(yè)運(yùn)行動(dòng)態(tài)及發(fā)展前景分析報(bào)告
- 2025-2030年中國(guó)酸奶冰淇淋市場(chǎng)運(yùn)行狀況與投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)造船板市場(chǎng)運(yùn)行動(dòng)態(tài)規(guī)劃分析報(bào)告
- 2025-2030年中國(guó)軟體家具制造行業(yè)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)超高分子量聚乙烯纖維行業(yè)競(jìng)爭(zhēng)策略規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)負(fù)載均衡器行業(yè)運(yùn)行態(tài)勢(shì)及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)航空飛行培訓(xùn)行業(yè)十三五規(guī)劃與投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)糖醇市場(chǎng)運(yùn)營(yíng)狀況及發(fā)展前景分析報(bào)告
- 2025-2030年中國(guó)米香型酒市場(chǎng)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 第四章 聚合物基納米復(fù)合材料課件
- 燒傷整形外科分層次培訓(xùn)考試題及答案
- 教學(xué)課件 211和985工程大學(xué)簡(jiǎn)介
- 臥式水泵安裝
- 綜合交通運(yùn)輸體系課件
- 趣味經(jīng)濟(jì)學(xué)課件
- 實(shí)木家具生產(chǎn)標(biāo)準(zhǔn)工藝標(biāo)準(zhǔn)流程
- 小學(xué)生讀書(shū)卡模板
- 小學(xué)二年級(jí)體育課《團(tuán)身滾動(dòng)》教案
- 級(jí)本科診斷學(xué)緒論+問(wèn)診課件
- 熱導(dǎo)檢測(cè)器(TCD)原理與操作注意事項(xiàng)
評(píng)論
0/150
提交評(píng)論