黃星河 ,李艾靜 , , 王 海
(1.中國人民解放軍陸軍工程大學(xué) 通信工程學(xué)院,江蘇 南京 210007;2.上海交通大學(xué) 電子信息與電氣工程學(xué)院,上海 200240)
隨著人們對信息需求的增加,隨時隨地的信息交互變得尤為重要。網(wǎng)絡(luò)部署正迅速擴展到標準TCP/IP協(xié)議不能很好支持的移動ad-hoc網(wǎng)絡(luò)(Mobile Ad-hoc NETworks MANET)。在這些網(wǎng)絡(luò)中,節(jié)點與節(jié)點之間形成的鏈路由于節(jié)點的移動變得脆弱?;赥CP/IP協(xié)議的移動無線自組網(wǎng)絡(luò)MANET在沒有穩(wěn)定可靠的端到端鏈路存在的情況下,表現(xiàn)不佳,甚至無法正常工作。
中斷/延遲容忍網(wǎng)絡(luò)(Disruption/Delay Tolerant Network,DTN)是從ad hoc網(wǎng)絡(luò)中抽象出來的一種全新的網(wǎng)絡(luò)模型。與傳統(tǒng)的無線移動自組織網(wǎng)絡(luò)不同,該網(wǎng)絡(luò)模型應(yīng)用場景具有高延遲、易中斷等特點。高延遲、易中斷的網(wǎng)絡(luò)環(huán)境被稱為受限網(wǎng)絡(luò)。DTN作為一個針對受限網(wǎng)絡(luò)的新興研究領(lǐng)域,其使用特殊的“存儲-攜帶-轉(zhuǎn)發(fā)”模式進行數(shù)據(jù)傳遞,以對抗受限網(wǎng)絡(luò)中延遲和中斷帶來的影響[1]。DTN的發(fā)展將對未來軍事戰(zhàn)爭、航天通信、搶險救災(zāi)等諸多場景,提供更為可靠的通信保證。但是,由于其特殊的轉(zhuǎn)發(fā)模式,導(dǎo)致數(shù)據(jù)不得不進入到DTN的bundle層中緩存后再進行轉(zhuǎn)發(fā)。此外,為了追求較高的數(shù)據(jù)包到達率,不得不生成大量洪泛消息,造成了額外網(wǎng)絡(luò)開銷。因此,在鏈路可靠的網(wǎng)絡(luò)中,DTN的性能遠遠不如MANET等其他一些網(wǎng)絡(luò)架構(gòu)。
本文希望能將DTN網(wǎng)絡(luò)與MANET網(wǎng)絡(luò)集成到一個統(tǒng)一的網(wǎng)絡(luò)架構(gòu)中。這種網(wǎng)絡(luò)架構(gòu)既擁有MANET在穩(wěn)定網(wǎng)絡(luò)中的優(yōu)異性能,又能擁有DTN應(yīng)對鏈路潛在中斷的能力。目前,基于DTN與MANET的異構(gòu)網(wǎng)絡(luò)主要使用一種平行網(wǎng)絡(luò)架構(gòu),通過在源節(jié)點設(shè)置適配層,根據(jù)網(wǎng)絡(luò)狀態(tài)選擇合適的網(wǎng)絡(luò)架構(gòu)進行轉(zhuǎn)發(fā)數(shù)據(jù)。在這種架構(gòu)下,DTN與MANET彼此相互獨立,兩者之間不會相互干擾[2]。這種架構(gòu)的優(yōu)勢是操作簡單、便于實現(xiàn),但是DTN與MANET切換不夠靈活,導(dǎo)致許多設(shè)計的基于DTN與MANET的混合路由協(xié)議方案不能在這種網(wǎng)絡(luò)架構(gòu)下有效實現(xiàn)。
本文提出了一種交叉混合網(wǎng)絡(luò)架構(gòu)。首先在傳統(tǒng)平行網(wǎng)絡(luò)架構(gòu)基礎(chǔ)上提出了一種垂直雙重路由異構(gòu)體系架構(gòu)模型。該架構(gòu)通過將兩種網(wǎng)絡(luò)架構(gòu)中的相似部分進行整合,建立雙重路由表將兩者有效融合,形成了一個靈活、易于設(shè)計實現(xiàn)的垂直網(wǎng)絡(luò)架構(gòu)。同時,為了能夠更有效地提升網(wǎng)絡(luò)性能,本文將該垂直結(jié)構(gòu)與平行結(jié)構(gòu)相結(jié)合,形成了一種全新的交叉混合網(wǎng)絡(luò)架構(gòu)模型。
MANET經(jīng)過多年發(fā)展,已經(jīng)形成了一套較為完善的體系結(jié)構(gòu)和配套服務(wù),并且得到了廣泛應(yīng)用。DTN體系結(jié)構(gòu)是IRTF(Internet Research Task Force)在星際網(wǎng)絡(luò)研究基礎(chǔ)上發(fā)展而來的,最初作為星際通信服務(wù)被提出,后來研究人員希望將它發(fā)展為解決受限網(wǎng)絡(luò)的一種通用解決方法[3]。DTN與MANET由于網(wǎng)絡(luò)架構(gòu)的不同,導(dǎo)致其各自有著一套完全不同的傳輸模式。
MANET網(wǎng)絡(luò)架構(gòu)使用包括應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層五層網(wǎng)絡(luò)架構(gòu)。路徑上的每一跳都使用不同的物理層和數(shù)據(jù)鏈路層,但是IP協(xié)議在所有節(jié)點上運行,TCP(Transmission Control Protocol)協(xié)議只在源節(jié)點與目標節(jié)點上運行[4],如圖1所示。
圖1 移動無線自組織網(wǎng)絡(luò)傳輸模型
1.1.1 應(yīng)用層
應(yīng)用層是網(wǎng)絡(luò)應(yīng)用程序及其應(yīng)用層協(xié)議存留的地方,主要功能是提供面向用戶的各種應(yīng)用服務(wù),包括具有嚴格時延和丟失率限制的實時應(yīng)用、基于RTP/RTCP的自適應(yīng)應(yīng)用和沒有任何服務(wù)質(zhì)量保障的數(shù)據(jù)報業(yè)務(wù)等。
1.1.2 傳輸層
傳輸層負責為信源和信宿提供應(yīng)用程序進程間的數(shù)據(jù)傳輸服務(wù),向應(yīng)用層提供可靠的端到端服務(wù),使上層與通信子網(wǎng)相隔離,并根據(jù)網(wǎng)絡(luò)層特性高效利用網(wǎng)絡(luò)資源。這一層主要定義了兩個傳輸協(xié)議——傳輸控制協(xié)議TCP和用戶數(shù)據(jù)報協(xié)議UDP(User Datagram Protocol)。但是,在MANET網(wǎng)絡(luò)中,無線信道的衰落干擾、節(jié)點移動等因素會造成報文沖突和丟失,嚴重影響TCP的性能。因此,研究人員在有線的傳輸層協(xié)議上添加了包括復(fù)用、流控、按序交付、重傳控制和擁塞等機制,以滿足數(shù)據(jù)傳輸?shù)男枰?/p>
1.1.3 網(wǎng)絡(luò)層
網(wǎng)絡(luò)層負責將數(shù)據(jù)報獨立從信源發(fā)送到信宿,主要功能包括鄰居發(fā)現(xiàn)、分組路由、擁塞控制和網(wǎng)絡(luò)互連等。鄰居發(fā)現(xiàn)主要用于收集網(wǎng)絡(luò)拓撲信息。路由協(xié)議的作用是發(fā)現(xiàn)和維護去往目的節(jié)點的路由。
1.1.4 數(shù)據(jù)鏈路層
數(shù)據(jù)鏈路層負責將IP數(shù)據(jù)報封裝成適合在物理網(wǎng)絡(luò)上傳輸?shù)膸袷讲鬏?,或?qū)奈锢砭W(wǎng)絡(luò)接收到的幀解封,取出IP數(shù)據(jù)報交給網(wǎng)絡(luò)層。在MANET網(wǎng)絡(luò)中,數(shù)據(jù)鏈路層中MAC子層規(guī)定了不同用戶如何共享可用的媒體資源,即移動節(jié)點對無線信道的訪問。一是信道劃分,即如何把頻譜劃分為不同的信道;二是信道分配,即如何把劃分的信道分給不同的用戶。邏輯鏈路控制子層負責向網(wǎng)絡(luò)提供統(tǒng)一服務(wù),屏蔽底層不同的MAC方法,具體包括數(shù)據(jù)流復(fù)用、數(shù)據(jù)幀檢測、分組的轉(zhuǎn)發(fā)/確認、優(yōu)先級排隊、差錯控制和流量控制等。
1.1.5 物理層
物理層負責將比特流在結(jié)點間傳輸,即負責物理傳輸。該層的協(xié)議既與鏈路有關(guān),也與傳輸介質(zhì)有關(guān)。在MANET中,它的主要功能包括信道的區(qū)分和選擇、無線信道的監(jiān)測、調(diào)制解調(diào)等。傳統(tǒng)基于TCP/IP協(xié)議的MANET網(wǎng)絡(luò)架構(gòu)的平穩(wěn)運行主要依賴三個主要的底層鏈路特性:
(1)源節(jié)點與目的節(jié)點間存在穩(wěn)定的端到端鏈路;
(2)任意節(jié)點之間的最大往返時間RTT(Round Trip Time)較??;
(3)數(shù)據(jù)報文在傳輸過程中丟失概率較小。
然而,在一些特定的通信環(huán)境中,如節(jié)點移動速度快、移動范圍廣的網(wǎng)絡(luò)或受干擾的通信網(wǎng)絡(luò)等,這些條件難以滿足。
DTN在傳統(tǒng)的五層協(xié)議棧的基礎(chǔ)上增添了Bundle層協(xié)議棧。該協(xié)議層位于傳輸層之上、應(yīng)用層之下,滿足數(shù)據(jù)傳輸和緩存的需要。該層的主要功能包括以下六點[5]:
(1)保管傳遞:節(jié)點具有保存數(shù)據(jù)和給其他DTN節(jié)點傳遞數(shù)據(jù)的功能;
(2)接收回復(fù):目的節(jié)點收到數(shù)據(jù)后,給源節(jié)點發(fā)送確認信息;
(3)保管傳遞通知:中間節(jié)點收到上一跳節(jié)點發(fā)送過來的數(shù)據(jù)后,給上一跳節(jié)點發(fā)送確認通知;
(4)束轉(zhuǎn)發(fā)和通知:當需要轉(zhuǎn)發(fā)數(shù)據(jù)時,給下一跳節(jié)點發(fā)送確認消息;
(5)傳遞優(yōu)先級分類:DTN根據(jù)數(shù)據(jù)的緊急程度,提供不同的傳遞優(yōu)先級;
(6)認證:驗證發(fā)送者身份和數(shù)據(jù)完整性。
源節(jié)點在發(fā)送數(shù)據(jù)前,將數(shù)據(jù)存儲到Bundle中,并給該數(shù)據(jù)包加上一個標記,注明該包的目的節(jié)點ID。在該DTN的路由中,設(shè)置了相應(yīng)的路由轉(zhuǎn)發(fā)表,標記了通往該目的ID的下一跳節(jié)點的IP地址。通過查看數(shù)據(jù)包的目的ID,找到對應(yīng)的轉(zhuǎn)發(fā)的下一跳節(jié)點的IP地址。下一跳節(jié)點收到數(shù)據(jù)包后,首先將數(shù)據(jù)包送至Bundle中進行緩存,再通過查看數(shù)據(jù)包的目的ID,尋找下一跳節(jié)點的地址,將數(shù)據(jù)轉(zhuǎn)發(fā)至下一跳節(jié)點。使用這種逐跳轉(zhuǎn)發(fā)的模式,直至將改數(shù)據(jù)包傳送至目的節(jié)點[6],如圖2所示。
圖2 中斷/延遲容忍網(wǎng)絡(luò)傳輸模型
目前,混合體系架構(gòu)的網(wǎng)絡(luò)模型大都使用一種平行的結(jié)構(gòu)。在這種架構(gòu)下,DTN與MANET彼此之間相互獨立。這樣的設(shè)計能夠簡化設(shè)計流程,源節(jié)點只需要在應(yīng)用層之下添加一個適配層,通過在適配層設(shè)計協(xié)議區(qū)分到達適配層的數(shù)據(jù)應(yīng)該使用哪種網(wǎng)絡(luò)模式轉(zhuǎn)發(fā)。但是。這種方法導(dǎo)致DTN與MANET兩種架構(gòu)之間不能靈活切換,一些設(shè)計的混合傳輸協(xié)議不能有效付諸實踐。
針對這個問題,本文提出了一種DTN與MANET的交叉異構(gòu)網(wǎng)絡(luò)模型,如圖3所示。
圖3 基于移動無線自組織網(wǎng)絡(luò)與延遲/中斷容忍網(wǎng)絡(luò)的混合交叉網(wǎng)絡(luò)系統(tǒng)模型
在這個交叉異構(gòu)網(wǎng)絡(luò)模型中,本文首先提出了一種垂直雙重路由異構(gòu)體系傳輸模型,如圖3的Link1所示。在這個架構(gòu)中,DTN與MANET不再相互獨立,DTN的Bundle協(xié)議建立在MANET協(xié)議基礎(chǔ)上,DTN的路由表以MANET路由表為基礎(chǔ)建立。在DTN路由建立過程中,節(jié)點通過檢查數(shù)據(jù)包的目的ID,在其自身的DTN路由表中獲得該ID對應(yīng)的下一跳IP地址。此時,在系統(tǒng)的底層維護著由MANET建立的系統(tǒng)核心路由表。Bundle層檢查系統(tǒng)的核心路由表,查看該IP地址是否可達。當通往下一跳IP的鏈路可用時,使用MANET協(xié)議將該數(shù)據(jù)包送至下一跳節(jié)點的Bundle中進行緩存。當無可用鏈路時,數(shù)據(jù)被存儲至本節(jié)點的Bundle中,等待可用鏈路的建立。中間節(jié)點在收到DTN數(shù)據(jù)包后,MAC層檢查數(shù)據(jù)包的目的MAC地址。如果是自己的,繼續(xù)往上層傳送至Bundle中。Bundle中的DTN協(xié)議查詢數(shù)據(jù)包的目的ID,通過目的ID,在其自身路由表中尋找下一跳轉(zhuǎn)發(fā)節(jié)點的IP,繼續(xù)往下傳送。IP層檢查目的IP地址是自己的就往上送,不是自己的則查詢MANET建立的核心路由表,有路由則直接進行轉(zhuǎn)發(fā)。使用這種垂直結(jié)構(gòu),DTN的轉(zhuǎn)發(fā)路由表建立在MANET的路由表基礎(chǔ)上,因此數(shù)據(jù)包傳輸使用的網(wǎng)絡(luò)架構(gòu)在中間節(jié)點上切換的過程不需要增加額外的組件。
由于在這個垂直雙重路由異構(gòu)網(wǎng)絡(luò)體系傳輸模型中,所有的數(shù)據(jù)都需要進入到源節(jié)點與目的節(jié)點的Bundle中進行緩存,因此在一些連接可靠的網(wǎng)絡(luò)中,該垂直混合網(wǎng)絡(luò)的性能比直接使用MANET性能低。受DTN與MANET的平行網(wǎng)絡(luò)架構(gòu)思想的啟發(fā),為了解決這個弊端,本文在該垂直結(jié)構(gòu)中加入一個與該結(jié)構(gòu)相對獨立的MANET架構(gòu),作為該垂直架構(gòu)的補充,如圖3中Link2所示。該平行結(jié)構(gòu)與之前提出的垂直結(jié)構(gòu)(圖3中Link1)平行且相對獨立,兩種架構(gòu)互為補充,提高了網(wǎng)路性能。在該交叉異構(gòu)網(wǎng)絡(luò)模型下,節(jié)點的網(wǎng)關(guān)模型如圖4所示。
圖4 交叉異構(gòu)網(wǎng)絡(luò)模型網(wǎng)關(guān)設(shè)置
為了驗證該交叉異構(gòu)網(wǎng)絡(luò)架構(gòu)的可行性,本文實現(xiàn)了這種架構(gòu),并且通過實驗得出了這種架構(gòu)的潛在優(yōu)勢。
實現(xiàn)使用硬件為樹莓派3b,操作系統(tǒng)為基于14.2 linux內(nèi)核的raspbain操作系統(tǒng),信道使用樹莓派自帶的WiFi信道。樹莓派具有設(shè)備廉價、性能強大、方便攜帶等特點,因此受到嵌入式開發(fā)人員的廣泛歡迎。
軟件使用DTN2作為DTN網(wǎng)絡(luò)架構(gòu)的協(xié)議源碼。該應(yīng)用實現(xiàn)了DTN的bundle層協(xié)議,數(shù)據(jù)在DTN節(jié)點間以DTN中Bundle協(xié)議所定義的格式進行傳播,在這里稱DTN的數(shù)據(jù)包為束。DTN2繼承了應(yīng)用層與Bundle的功能,工作在系統(tǒng)的核心協(xié)議層之上。因此,束可以傳輸在IP傳輸層上或是其他鏈路層。利用DTN2以及系統(tǒng)的底層協(xié)議棧搭建的網(wǎng)絡(luò)實現(xiàn)了如束的轉(zhuǎn)發(fā)和接收等功能。為了驗證協(xié)議的可行性,本文對DTN2提供的路由算法進行改進,數(shù)據(jù)包目的節(jié)點ID指定的下一跳IP為MANET建立的核心路由表中能夠到達的所有IP地址,本文將這種路由算法稱為局部洪泛算法。
MANET使用目前較為成熟的OLSRd作為本文的協(xié)議源碼。該源碼為MANET路由協(xié)議OLSR的實現(xiàn)。OLSR(Optimized Link State Routing Protocol)協(xié)議是LS(Link State Routing Protocol)路由協(xié)議的改進,節(jié)點之間通過周期性的交互狀態(tài)信息維護整個網(wǎng)絡(luò)的拓撲信息,其中OLSR的關(guān)鍵概念是多點轉(zhuǎn)播MPR機制。只有MPR節(jié)點才會向全網(wǎng)廣播TC控制消息和鏈路狀態(tài)信息,而LS路由協(xié)議每個節(jié)點都會轉(zhuǎn)發(fā)它收到的消息的第一份拷貝。因此,與LS相比,OLSR協(xié)議優(yōu)化了網(wǎng)絡(luò)中洪泛消息的數(shù)量,降低了網(wǎng)絡(luò)開銷。同時,OLSR的維護只用了部分鏈路狀態(tài)信息來建立最短鏈路,降低了拓撲維護的成本和協(xié)議的開銷。
適配層的主要功能是為數(shù)據(jù)包找到最快到達目的節(jié)點的傳輸方式提供服務(wù)。本文設(shè)計了一個較為簡單的適配層協(xié)議,所有節(jié)點的適配層在收到應(yīng)用層發(fā)來的數(shù)據(jù)包后,檢查該數(shù)據(jù)包的目的節(jié)點ID,并將該目的節(jié)點ID映射為對應(yīng)的目的節(jié)點IP地址。適配層檢查底層系統(tǒng)核心路由表是否有通往目的節(jié)點的可用鏈路,如果有,則直接調(diào)用MANET網(wǎng)絡(luò)架構(gòu)接口,將該數(shù)據(jù)包傳輸至目的節(jié)點;如果沒有,適配層則將數(shù)據(jù)包存儲至DTN的bundle層中進行緩存,DTN將其路由設(shè)置為該數(shù)據(jù)包的下一跳轉(zhuǎn)發(fā)節(jié)點的IP地址,將其作為目的節(jié)點的IP地址。同時,Bundle層的協(xié)議代理循環(huán)檢測系統(tǒng)的核心路由表,一旦有通往目的節(jié)點的可用鏈路,將Bundle中的數(shù)據(jù)包使用MANET的方式傳至目的節(jié)點的Bundle層中。使用這種方式,當該節(jié)點移動至可與目的節(jié)點形成鏈路的位置時,Bundle中的數(shù)據(jù)可以通過MANET建立鏈路傳輸至目的節(jié)點的Bundle中,且可以通過更改DTN路由達到DTN與MANET切換的目的。
為了驗證該混合交叉架構(gòu)的有效性,本文設(shè)置了兩個簡單的驗證性實驗場景。實驗節(jié)點為5個,DTN的ID分別為Pi1、Pi2、Pi3、Pi4、Pi5,IP地址分別為192.168.1.1~192.168.1.5。通過設(shè)置將使用不同網(wǎng)絡(luò)架構(gòu)傳輸過來的文件放至不同的文件夾中,以確定該文件使用哪種方式傳輸?shù)侥康墓?jié)點。
場景1。源節(jié)點Pi1在傳輸前與目的節(jié)點Pi5可以形成可靠鏈路,如圖5所示。Pi1節(jié)點以Pi5節(jié)點為目的節(jié)點發(fā)送數(shù)據(jù),在Pi5節(jié)點處檢查接收結(jié)果,并且在所有節(jié)點上使用Wireshark抓取數(shù)據(jù)包查看結(jié)果。
場景2。源節(jié)點Pi1在傳輸前與目的節(jié)點Pi5沒有可用鏈路,如圖6所示。Pi1節(jié)點以Pi5節(jié)點為目的節(jié)點發(fā)送數(shù)據(jù),之后Pi1節(jié)點移動至可以與Pi5節(jié)點形成鏈路處,但與Pi5不在一跳范圍之內(nèi),如圖5所示。在Pi5節(jié)點處檢查發(fā)送結(jié)果,并且在所有節(jié)點上使用Wireshark抓取數(shù)據(jù)包查看結(jié)果。
圖5 實驗場景1連通關(guān)系
圖6 實驗場景2連通關(guān)系
場景1與場景2均能在Pi5處接收到Pi1發(fā)送過來的文件,且可以在Pi5通過查看數(shù)據(jù)包所存放的位置得到。場景1中,數(shù)據(jù)通過MANET傳輸至目的節(jié)點Pi5;場景2中,數(shù)據(jù)通過DTN方式傳輸至目的節(jié)點Pi5。在兩次實驗中,在所有節(jié)點上使用wireshark進行抓包,可以得場景1所有節(jié)點使用MANET網(wǎng)絡(luò)架構(gòu)將數(shù)據(jù)從源節(jié)點Pi1傳遞至目的節(jié)點Pi5,場景2則使用了垂直雙重路由體系架構(gòu),Pi1與Pi5作為DTN節(jié)點發(fā)送和接收數(shù)據(jù),Pi2與Pi4以MANET的方式傳輸DTN的數(shù)據(jù)包??梢姡@驗證了本文提出的架構(gòu)的有效性。DTN2的Bundle層協(xié)議建立在OLSRd建立的底層協(xié)議基礎(chǔ)上,利用這種雙重路由協(xié)議,DTN與MANET達到了有效的結(jié)合和靈活的切換
本文基于MANET與DTN網(wǎng)絡(luò)架構(gòu),綜合考慮兩種網(wǎng)絡(luò)的結(jié)構(gòu)特點,且結(jié)合實際應(yīng)用的需要,提出了一種異構(gòu)交叉網(wǎng)絡(luò)架構(gòu)模型。該模型集合了傳統(tǒng)的平行架構(gòu)網(wǎng)絡(luò)模型,提出了一種全新的垂直架構(gòu)模型,即利用垂直與平行兩種架構(gòu)將DTN與MANET兩種網(wǎng)絡(luò)有效結(jié)合到一起,以此達到兩種架構(gòu)靈活切換的目的。最后,利用現(xiàn)有的資源對該架構(gòu)進行實現(xiàn),驗證了該架構(gòu)的有效性。
未來移動無線通信網(wǎng)絡(luò)的應(yīng)用會越來越廣泛,應(yīng)用環(huán)境也會變得越來越錯綜復(fù)雜。該架構(gòu)的提出為未來的研究者們提供了一個良好的解決思路,為未來的異構(gòu)網(wǎng)絡(luò)設(shè)計打下了良好的基礎(chǔ)。