王 海, 秦 蓁, 熊 飛, 朱 毅, 李艾靜, 于衛(wèi)波, 米志超
(陸軍工程大學(xué) 通信工程學(xué)院,江蘇 南京 210007)
無(wú)人集群是現(xiàn)代社會(huì)最重要的發(fā)展趨勢(shì)之一。預(yù)計(jì)在不久的將來(lái),無(wú)人集群將應(yīng)用于各種工業(yè)場(chǎng)景中,包括軍事、應(yīng)急事務(wù)、農(nóng)業(yè)和野生動(dòng)物保護(hù)等。軟件定義網(wǎng)絡(luò)(Software defined network,SDN)[1]是網(wǎng)絡(luò)的發(fā)展趨勢(shì)之一,并在5G網(wǎng)絡(luò)、數(shù)據(jù)中心等得到了廣泛應(yīng)用。將軟件定義網(wǎng)絡(luò)擴(kuò)展應(yīng)用到無(wú)人集群組網(wǎng)也成為發(fā)展的必然。軟件定義網(wǎng)絡(luò)的具體實(shí)現(xiàn)有多種類型,如集中式軟件定義網(wǎng)絡(luò)、分布式軟件定義網(wǎng)絡(luò)和混合式軟件定義網(wǎng)絡(luò)。
無(wú)人集群在向分布式、大規(guī)模、智能自治的方向發(fā)展,重點(diǎn)需要5種能力:集群自治、人-機(jī)組隊(duì)、集群感知、集群組網(wǎng)和集群智能[2-3]。此外,為了有效應(yīng)對(duì)軍事任務(wù)需求,無(wú)人集群還要能夠克服固定架構(gòu)網(wǎng)絡(luò)的不足,適應(yīng)戰(zhàn)場(chǎng)未知多變環(huán)境,因而需要一個(gè)開(kāi)放、可動(dòng)態(tài)調(diào)整的網(wǎng)絡(luò)架構(gòu)。
在戰(zhàn)場(chǎng)環(huán)境中,無(wú)人集群對(duì)載荷業(yè)務(wù)數(shù)據(jù)和控制數(shù)據(jù)的傳輸有很高的要求[4]。由于無(wú)人集群是一種由具有移動(dòng)性的無(wú)線設(shè)備組成的網(wǎng)絡(luò),始終處于頻繁變化的狀態(tài)(比如節(jié)點(diǎn)的離開(kāi)或加入,集群隊(duì)形的變化等),所以無(wú)人機(jī)集群需要一個(gè)軟件架構(gòu),該架構(gòu)使集群能夠自主根據(jù)感知情況、計(jì)算和行動(dòng)資源,動(dòng)態(tài)完成感知、決策、實(shí)施等一系列任務(wù)。
集群的架構(gòu)需要有整合全體成員的能力,以及與集群外部的戰(zhàn)場(chǎng)網(wǎng)絡(luò)其他要素交互的能力。如圖1所示,為了適應(yīng)不同的通信交互場(chǎng)景(無(wú)人集群之間、集群與其他戰(zhàn)斗單元、集群與指揮所),需要采用多種通信手段如無(wú)線通信、衛(wèi)星通信、延遲容忍網(wǎng)絡(luò)(Delay tolerant network,DTN)等。不同的場(chǎng)景下采用不同的通信手段,這對(duì)于傳統(tǒng)的固定架構(gòu)網(wǎng)絡(luò)已經(jīng)很難實(shí)現(xiàn),更何況無(wú)人集群還需要將這些通信協(xié)議進(jìn)行整合,滿足不同業(yè)務(wù)的不同服務(wù)質(zhì)量(Quality of service,QoS)要求。為了實(shí)現(xiàn)以上功能,適應(yīng)變化多樣的軍事需求,亟需為無(wú)人集群設(shè)計(jì)一種靈活魯棒的網(wǎng)絡(luò)架構(gòu)。
圖1 無(wú)人集群戰(zhàn)場(chǎng)要素交互示意圖
本文論證了分布式軟件定義網(wǎng)絡(luò)(Distributed software defined network,DSDN)特別符合無(wú)人集群組網(wǎng)的需求,可用于增強(qiáng)無(wú)人集群的整體組網(wǎng)能力,并與現(xiàn)有信息系統(tǒng)互聯(lián)形成有機(jī)整體,使這些網(wǎng)絡(luò)成為動(dòng)態(tài)可調(diào)、自組織、自形成和開(kāi)放結(jié)構(gòu)化的網(wǎng)絡(luò)。
論文的創(chuàng)新點(diǎn)如下:(1)論證了DSDN更適合無(wú)人集群無(wú)中心、自組織的組網(wǎng)特點(diǎn);(2)論證了DSDN應(yīng)用于無(wú)人集群組網(wǎng)的多個(gè)優(yōu)勢(shì);(3)構(gòu)建了DSDN架構(gòu)實(shí)例,驗(yàn)證了DSDN應(yīng)用于無(wú)人集群組網(wǎng)的有效性。
軟件定義網(wǎng)絡(luò)近年來(lái)已成為“開(kāi)放、可定義”網(wǎng)絡(luò)的代名詞,并在5G、數(shù)據(jù)中心等網(wǎng)絡(luò)中得到了廣泛的應(yīng)用。將軟件定義網(wǎng)絡(luò)應(yīng)用于新型的無(wú)人集群系統(tǒng)中也是比較直觀的。近年來(lái),不少研究提出了將SDN與無(wú)人集群相結(jié)合,以及融入軟件定義網(wǎng)絡(luò)大系統(tǒng)的思路。Secinti等[5]基于SDN提出了一個(gè)空中網(wǎng)絡(luò)管理協(xié)議,無(wú)人機(jī)可以在控制器的指導(dǎo)下,使用SDN交換器,便于無(wú)人機(jī)快速有效選擇最優(yōu)的可用路由。但是,該架構(gòu)屬于集中模式,存在單點(diǎn)故障的風(fēng)險(xiǎn),無(wú)法應(yīng)用于戰(zhàn)場(chǎng)環(huán)境。Zacarias等[6]針對(duì)最后一英里戰(zhàn)術(shù)邊緣網(wǎng)絡(luò)的不同QoS應(yīng)用需求,采用SDN與DTN結(jié)合的方案進(jìn)行解決。但該方案需要保持網(wǎng)絡(luò)拓?fù)浞€(wěn)定,在高動(dòng)態(tài)性下表現(xiàn)不佳。Nobre等[7]使用SDN技術(shù)提出了一個(gè)網(wǎng)絡(luò)架構(gòu),可以適應(yīng)戰(zhàn)場(chǎng)網(wǎng)絡(luò)的動(dòng)態(tài)性和異構(gòu)性,但其與Secinti等[5]架構(gòu)存在同樣的缺陷。Zhao等[8]為無(wú)人機(jī)輔助的應(yīng)急網(wǎng)絡(luò)提出了一個(gè)統(tǒng)一架構(gòu),可以在災(zāi)難環(huán)境下建立網(wǎng)絡(luò),但不支持無(wú)人機(jī)的移動(dòng)性。
文獻(xiàn)[9]為軟件化無(wú)人機(jī)網(wǎng)絡(luò)的數(shù)據(jù)分發(fā)設(shè)計(jì)了一種基于區(qū)塊鏈的安全數(shù)據(jù)分發(fā)方案,其可以檢測(cè)竊聽(tīng)者,分析惡意數(shù)據(jù),緩解對(duì)SDN控制器的各種安全攻擊。文獻(xiàn)[10]提出了一個(gè)兩層SDN體系結(jié)構(gòu)來(lái)分離無(wú)人機(jī)控制。上層SDN控制器負(fù)責(zé)無(wú)人機(jī)配置的調(diào)度,下層SDN控制器負(fù)責(zé)無(wú)人機(jī)的區(qū)域協(xié)調(diào)。文獻(xiàn)[11]提出了一個(gè)超大規(guī)模的人群監(jiān)控系統(tǒng),旨在收集和處理與人群管理相關(guān)的多模式、多視角和實(shí)時(shí)擁擠數(shù)據(jù)。它采用SDN和邊緣云技術(shù),從基礎(chǔ)設(shè)施的角度優(yōu)化網(wǎng)絡(luò)和數(shù)據(jù)分析性能。文獻(xiàn)[12]采用了集中式的SDN架構(gòu),并且允許控制器對(duì)數(shù)據(jù)流量進(jìn)行追蹤檢查。文獻(xiàn)[13]提出了一種基于SDN架構(gòu)和區(qū)塊鏈技術(shù)的新型無(wú)人機(jī)網(wǎng)絡(luò)。通過(guò)使用區(qū)塊鏈技術(shù),該架構(gòu)實(shí)現(xiàn)了邏輯集中但物理分離的控制平面,其主要負(fù)責(zé)無(wú)人機(jī)網(wǎng)絡(luò)的路由計(jì)算和配置管理。上述研究分別從不同角度探討了SDN與無(wú)人機(jī)網(wǎng)絡(luò)的結(jié)合策略,但基本是基于集中式SDN控制架構(gòu)。文獻(xiàn)[14]提出了一種分布式SDN控制架構(gòu),將整個(gè)區(qū)域劃分為多個(gè)子區(qū)域,在每個(gè)子區(qū)域內(nèi)都布設(shè)一個(gè)SDN控制器,每個(gè)控制器負(fù)責(zé)控制其本區(qū)域的所有節(jié)點(diǎn)??刂破鞒掷m(xù)監(jiān)視網(wǎng)絡(luò)狀態(tài)信息,并主動(dòng)調(diào)整拓?fù)涞慕诟?。但沒(méi)有對(duì)分布式SDN控制器的其他應(yīng)用進(jìn)行更深入探討。
綜合現(xiàn)有研究,將SDN應(yīng)用于無(wú)人集群大體上有3類架構(gòu),第一類是遵循傳統(tǒng)的集中式SDN控制架構(gòu),全網(wǎng)有一個(gè)邏輯的SDN控制器,該控制器可以位于無(wú)人節(jié)點(diǎn)之上,抑或位于無(wú)人節(jié)點(diǎn)之外的基礎(chǔ)設(shè)施之上,網(wǎng)內(nèi)所有節(jié)點(diǎn)均受該控制器控制;第二類是分布式SDN控制架構(gòu),即每個(gè)節(jié)點(diǎn)上都有一個(gè)本地SDN控制器,相互之間通過(guò)控制器之間的協(xié)調(diào)機(jī)制加以協(xié)調(diào);第三類是混合SDN架構(gòu),在無(wú)人集群中,部分節(jié)點(diǎn)擁有SDN控制器,管理一部分節(jié)點(diǎn),而管理者之間通過(guò)控制器之間的協(xié)調(diào)機(jī)制加以交互。目前絕大多數(shù)研究都是采用第一類架構(gòu),少部分采用第三類混合架構(gòu),而采用第二類純分布式SDN控制架構(gòu)的研究很少。
本文提出一種適用于無(wú)人集群的全分布式SDN網(wǎng)絡(luò)架構(gòu)。與傳統(tǒng)的集中式SDN架構(gòu)不同的是,分布式SDN架構(gòu)可以有效避免集中式結(jié)構(gòu)導(dǎo)致的開(kāi)銷和可用性/安全問(wèn)題。在無(wú)人機(jī)網(wǎng)絡(luò)中,所有連接都是快速變化的無(wú)線信道,在整個(gè)任務(wù)過(guò)程中缺乏穩(wěn)定的數(shù)據(jù)連接通道。因此,如果在無(wú)人集群中設(shè)置一個(gè)集中式控制器,控制器本身就成了單一故障點(diǎn),而控制器和轉(zhuǎn)發(fā)平面之間的連接將成為瓶頸。單點(diǎn)故障將大大降低網(wǎng)絡(luò)的魯棒性。換言之,傳統(tǒng)SDN的集中控制優(yōu)勢(shì)被集中結(jié)構(gòu)帶來(lái)的各種不便所掩蓋。因此,在動(dòng)態(tài)環(huán)境中,分布式SDN更適合在復(fù)雜的無(wú)人集群環(huán)境中生存。集中式SDN與全分布式SDN的區(qū)別如表1所示。
表1 集中式SDN與DSDN對(duì)比
當(dāng)前對(duì)純分布式SDN研究很少的原因是,直觀上看,SDN的優(yōu)勢(shì)就是其控制器的集中調(diào)配能力,當(dāng)一個(gè)架構(gòu)放棄SDN的集中式屬性時(shí),似乎就沒(méi)有采用SDN的必要了。一般認(rèn)為,SDN網(wǎng)絡(luò)具有5個(gè)基本特征:平面分離、設(shè)備簡(jiǎn)化、集中控制、網(wǎng)絡(luò)自動(dòng)化、虛擬化和開(kāi)放性[1]。當(dāng)無(wú)人集群放棄“集中控制”這一特征時(shí),其他4個(gè)特征仍然可以有效保留在無(wú)人系統(tǒng)網(wǎng)絡(luò)中發(fā)揮重要作用。
與某些混合式SDN解決方案不同,DSDN是在所有無(wú)人節(jié)點(diǎn)上都部署本地控制器,而控制器之間的協(xié)調(diào)仍然采用傳統(tǒng)的組網(wǎng)協(xié)議(如路由協(xié)議)完成,因而不會(huì)增加額外的控制器交互開(kāi)銷,同時(shí)也不涉及控制器的選擇、選舉和協(xié)調(diào)過(guò)程。DSDN的每個(gè)節(jié)點(diǎn)都有自己的SDN控制器,每個(gè)節(jié)點(diǎn)之間的協(xié)調(diào)完全基于傳統(tǒng)的分布式協(xié)議,如傳統(tǒng)路由協(xié)議OLSR(優(yōu)化鏈路狀態(tài)路由協(xié)議)或其他可用的無(wú)人系統(tǒng)路由協(xié)議等。每個(gè)節(jié)點(diǎn)上的控制器將分布式交互協(xié)議視為控制器之上的應(yīng)用程序,并根據(jù)從這些協(xié)議中提取的邏輯做出本地控制器決策。DSDN的優(yōu)點(diǎn)是不會(huì)在網(wǎng)絡(luò)中引入新協(xié)議或開(kāi)銷。采用DSDN架構(gòu)及與現(xiàn)有自組織網(wǎng)絡(luò)協(xié)議相結(jié)合的策略能夠很好地應(yīng)對(duì)分布式環(huán)境,并且每個(gè)節(jié)點(diǎn)只需要很少的更改。具體而言,對(duì)于每個(gè)節(jié)點(diǎn),控制器和本地交換機(jī)取代了傳統(tǒng)的內(nèi)核轉(zhuǎn)發(fā)引擎,分布式網(wǎng)絡(luò)協(xié)議如資源預(yù)約協(xié)議和路由協(xié)議只需要修改接口以向本地SDN控制器交互信息,除此之外無(wú)須進(jìn)行其他更改,如圖2所示。
圖2 基于DSDN的協(xié)議棧結(jié)構(gòu)與傳統(tǒng)協(xié)議棧比較
本文認(rèn)為DSDN架構(gòu)特別適合無(wú)人集群網(wǎng)絡(luò),其優(yōu)點(diǎn)如下:
(1)DSDN可以在無(wú)人節(jié)點(diǎn)中引入最小節(jié)點(diǎn)處理延遲
眾所周知,無(wú)人集群對(duì)端到端數(shù)據(jù)包傳輸?shù)臅r(shí)間要求比傳統(tǒng)網(wǎng)絡(luò)嚴(yán)格得多,節(jié)點(diǎn)間交換的信息可能是位置和運(yùn)動(dòng)信息,這些信息對(duì)時(shí)間至關(guān)重要,其規(guī)模為毫秒級(jí)或者更小。較大的端到端延遲可能會(huì)導(dǎo)致節(jié)點(diǎn)間的沖突和網(wǎng)絡(luò)變形。如果目標(biāo)區(qū)域固定且無(wú)線鏈路帶寬固定,則分組傳輸延遲和傳播延遲將是固定的,并且只有節(jié)點(diǎn)處理延遲和排隊(duì)延遲可以微調(diào)。幸運(yùn)的是,DSDN結(jié)構(gòu)可以減小這兩種延遲。
在節(jié)點(diǎn)處理過(guò)程中,移動(dòng)自組織網(wǎng)絡(luò)中中繼節(jié)點(diǎn)的傳統(tǒng)數(shù)據(jù)包處理過(guò)程是從傳入接口接收數(shù)據(jù)包,通過(guò)協(xié)議棧進(jìn)行數(shù)據(jù)包處理,然后將數(shù)據(jù)包發(fā)送到傳出接口。整個(gè)過(guò)程將持續(xù)幾毫秒到幾十毫秒,甚至數(shù)百毫秒,這取決于中繼節(jié)點(diǎn)的處理能力。不幸的是,任務(wù)規(guī)劃、傳感器數(shù)據(jù)處理等繁重的處理負(fù)擔(dān)往往會(huì)使無(wú)人系統(tǒng)的中央處理器(Central processing unit,CPU)不堪重負(fù),協(xié)議棧的資源很少,這反過(guò)來(lái)會(huì)降低整個(gè)網(wǎng)絡(luò)的性能。然而,在DSDN結(jié)構(gòu)的幫助下,分組轉(zhuǎn)發(fā)可以借助純硬件(DSDN交換機(jī)的硬件交換)來(lái)簡(jiǎn)化節(jié)點(diǎn)處理,加速分組轉(zhuǎn)發(fā)速度,同時(shí)減輕節(jié)點(diǎn)CPU處理負(fù)擔(dān),如圖3所示。
圖3 DSDN結(jié)構(gòu)中無(wú)控制器干預(yù)的數(shù)據(jù)包中繼
在新的結(jié)構(gòu)中,從任何一個(gè)輸入接口來(lái)的數(shù)據(jù)包都將被直接交付到DSDN交換機(jī),DSDN控制器已經(jīng)通過(guò)OpenFlow對(duì)其進(jìn)行編碼。數(shù)據(jù)包將直接被硬件交換到輸出接口,節(jié)點(diǎn)處理延遲將固定且最小。這樣,多跳端到端數(shù)據(jù)包傳送將成為一條快速交換路徑,整體節(jié)點(diǎn)處理延遲將最小。
(2)DSDN通過(guò)流量卸載,可以減少中繼無(wú)人節(jié)點(diǎn)的排隊(duì)延遲
排隊(duì)延遲會(huì)給網(wǎng)絡(luò)帶來(lái)很大的延遲,特別是對(duì)于數(shù)據(jù)量大、網(wǎng)絡(luò)瓶頸嚴(yán)重的網(wǎng)絡(luò)。不幸的是,這兩種情況在無(wú)人集群網(wǎng)絡(luò)中并不少見(jiàn)。傳統(tǒng)路由協(xié)議的最小代價(jià)路徑偏好會(huì)使情況進(jìn)一步惡化。借助DSDN結(jié)構(gòu),數(shù)據(jù)流將更容易卸載,多QoS支持路由協(xié)議可以與控制器的應(yīng)用程序在同一平臺(tái)上運(yùn)行,并且可以根據(jù)數(shù)據(jù)包的不同服務(wù)類型(Type of service,ToS)字段作出不同的數(shù)據(jù)包交換決策。
如果沒(méi)有集中式控制器,似乎很難實(shí)現(xiàn)全局優(yōu)化卸載解決方案,但是,數(shù)據(jù)卸載仍然可以通過(guò)一些本地有效的技巧來(lái)實(shí)現(xiàn)。例如,鏈路狀態(tài)路由協(xié)議可能會(huì)首先為最高優(yōu)先級(jí)的ToS數(shù)據(jù)包計(jì)算最短路徑,然后修剪已選擇的路徑,并為優(yōu)先級(jí)第二高的ToS數(shù)據(jù)包計(jì)算新路徑,直到該數(shù)據(jù)包沒(méi)有剩余路徑。很明顯,只要所有節(jié)點(diǎn)運(yùn)行相同的路由邏輯,當(dāng)網(wǎng)絡(luò)處于穩(wěn)定狀態(tài)時(shí),就不會(huì)有網(wǎng)絡(luò)環(huán)路。因?yàn)樵诖蠖鄶?shù)情況下,無(wú)人集群網(wǎng)絡(luò)節(jié)點(diǎn)相對(duì)密集(這意味著發(fā)送方和接收方之間可能存在許多路徑),此類解決方案以及其他技術(shù)可用于卸載數(shù)據(jù)流量,并反過(guò)來(lái)大大減少排隊(duì)延遲。
(3)DSDN可以輕松實(shí)現(xiàn)服務(wù)分離和模塊重用
在無(wú)人集群網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)可能有多個(gè)無(wú)線模塊,每個(gè)模塊具有不同的用途。例如,無(wú)人機(jī)可能有一個(gè)特定的遠(yuǎn)程低速無(wú)線模塊,用于飛行控制;它也可能有一個(gè)高速無(wú)線模塊,用于為機(jī)載傳感器(如照相機(jī)和三維掃描設(shè)備)傳輸大容量數(shù)據(jù)。具有不同傳輸能力的不同無(wú)線模塊加載在同一個(gè)平臺(tái)上,以滿足不同的需求。在傳統(tǒng)形式中,所有這些模塊都在“互不通氣”的模式下進(jìn)行工作,它們彼此獨(dú)立開(kāi)發(fā)、控制和工作。換句話說(shuō),它們從不“交談”,也不知道另一方的存在,但是它們卻在競(jìng)爭(zhēng)和共享同一個(gè)頻譜資源。這種結(jié)構(gòu)大大增加了平臺(tái)的復(fù)雜性,降低了整個(gè)系統(tǒng)的整體性能。
在DSDN結(jié)構(gòu)的幫助下,所有無(wú)線設(shè)備都以統(tǒng)一的方式進(jìn)行管理,如圖4所示,而不會(huì)喪失服務(wù)分離的能力。也就是說(shuō),通常DSDN控制器可以在特定模塊上限制某些服務(wù),此時(shí)無(wú)人系統(tǒng)各通信模塊提供的功能與傳統(tǒng)方式類似,但在必要時(shí),也可以借助SDN控制器調(diào)整服務(wù)限制。例如當(dāng)某個(gè)無(wú)人機(jī)飛行控制無(wú)線模塊出現(xiàn)故障時(shí),傳統(tǒng)的解決方案將放棄該無(wú)人機(jī),但在新的結(jié)構(gòu)中,飛行控制模塊也可以啟用其他接口來(lái)傳輸飛行控制信息,從而提高了整個(gè)系統(tǒng)的可靠性。同時(shí),通過(guò)DSDN的開(kāi)放式結(jié)構(gòu),只要平臺(tái)能夠支持,任何數(shù)量的無(wú)線模塊和任何應(yīng)用程序都可以安裝在同一平臺(tái)上。在某些特殊環(huán)境中,可以加載冗余無(wú)線模塊,以提高系統(tǒng)的可靠性,也可以使用它傳輸更多的數(shù)據(jù)回地面控制站。
圖4 用于服務(wù)分離和模塊重用的DSDN開(kāi)放結(jié)構(gòu)
(4)多子網(wǎng)互聯(lián)可以通過(guò)多級(jí)流表輕松實(shí)現(xiàn)
子網(wǎng)互聯(lián)是實(shí)用的無(wú)人集群系統(tǒng)面臨的主要技術(shù)挑戰(zhàn)之一。在一個(gè)網(wǎng)絡(luò)化的世界中,沒(méi)有一個(gè)網(wǎng)絡(luò)可以與其他現(xiàn)有網(wǎng)絡(luò)完全分離。對(duì)于無(wú)人集群系統(tǒng)來(lái)說(shuō),如何融入更大的信息網(wǎng)絡(luò)體系是必須解決的問(wèn)題。首先,無(wú)人機(jī)網(wǎng)絡(luò)應(yīng)與主干網(wǎng)等其他網(wǎng)絡(luò)相結(jié)合,向總部傳送端到端信息,或執(zhí)行來(lái)自總部的命令。其次,為了提高整體網(wǎng)絡(luò)可用性,大型無(wú)人機(jī)可以加入多個(gè)通信子網(wǎng),以實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)亩鄻踊?。例如,?dāng)?shù)孛婵刂普九c無(wú)人機(jī)在視距范圍內(nèi)(Line of sight,LoS)或距離不超過(guò)10 km時(shí),它可以采用L波段高頻段無(wú)線電以傳輸大容量數(shù)據(jù);而當(dāng)無(wú)人機(jī)遠(yuǎn)離視線時(shí),它則可能通過(guò)搭載的衛(wèi)星調(diào)制解調(diào)器加入衛(wèi)星網(wǎng)絡(luò)來(lái)傳輸數(shù)據(jù)。由于衛(wèi)星資源有限,且延遲相對(duì)較大,因此當(dāng)兩個(gè)網(wǎng)絡(luò)都可用時(shí),L波段網(wǎng)絡(luò)將優(yōu)于衛(wèi)星網(wǎng)絡(luò)。而當(dāng)L波段不可用時(shí),系統(tǒng)應(yīng)自動(dòng)切換到衛(wèi)星信道。但是這一能力在現(xiàn)有IP協(xié)議棧架構(gòu)中實(shí)現(xiàn)較為麻煩。IP協(xié)議棧只有一個(gè)轉(zhuǎn)發(fā)表項(xiàng),切換信道涉及轉(zhuǎn)發(fā)表項(xiàng)動(dòng)態(tài)更新問(wèn)題,同時(shí)系統(tǒng)協(xié)議棧還有緩存和延遲,因而往往會(huì)導(dǎo)致信道切換出錯(cuò),這使得無(wú)人集群的跨網(wǎng)動(dòng)態(tài)互聯(lián)一直以來(lái)都是一個(gè)復(fù)雜的負(fù)擔(dān)。
在DSDN結(jié)構(gòu)中,來(lái)自O(shè)penFlowV1.3的一個(gè)新特性為跨網(wǎng)互連提供了新手段:多級(jí)流表??梢允褂枚嗉?jí)流表來(lái)更好地實(shí)現(xiàn)動(dòng)態(tài)子網(wǎng)互連。在圖5中,本文展示了一個(gè)具有3個(gè)子網(wǎng)的示例,該子網(wǎng)通過(guò)DSDN的三級(jí)流表標(biāo)簽結(jié)構(gòu)實(shí)現(xiàn)互連,可以實(shí)現(xiàn)3個(gè)子網(wǎng)的動(dòng)態(tài)切換。
圖5 3個(gè)子網(wǎng)互聯(lián)的三級(jí)流表設(shè)置
如圖5所示,每個(gè)子網(wǎng)都運(yùn)行一個(gè)特定的路由協(xié)議,所有這些協(xié)議都作為DSDN控制器上的應(yīng)用程序運(yùn)行。如果存在到某個(gè)目的地(例如目的地B)的路由,DSDN將通過(guò)OpenFlow對(duì)流表進(jìn)行編碼,并發(fā)送到DSDN交換機(jī)。如果該路由是通過(guò)L波段無(wú)線電子網(wǎng)計(jì)算出的,則該路由將被寫(xiě)入到DSDN交換機(jī)的一級(jí)流表中,因?yàn)長(zhǎng)波段無(wú)線電網(wǎng)絡(luò)是最首選的。由其他子網(wǎng)路由算法計(jì)算的路由將分別寫(xiě)入到二、三級(jí)流表中,它們使用的級(jí)別由管理員決定。例如,假設(shè)衛(wèi)星子網(wǎng)也有到目的地B的路由,該路由將被編碼到二級(jí)流表中。事實(shí)上,大多數(shù)首選路由都會(huì)被寫(xiě)入到一級(jí)流表中,第二個(gè)首選路由將被寫(xiě)入到二級(jí)流表中,等等。
當(dāng)從任何無(wú)線接口接收到數(shù)據(jù)包時(shí),它將首先檢查第一級(jí)流表,如果存在路由匹配,則數(shù)據(jù)包將切換轉(zhuǎn)發(fā)到最首選的子網(wǎng)。在圖4的情況下,目的地為B的數(shù)據(jù)包將傳輸?shù)絃波段子網(wǎng)。過(guò)了一段時(shí)間后,如果網(wǎng)絡(luò)中斷,L波段子網(wǎng)可能會(huì)丟失到目的地B的路由,因此L波段子網(wǎng)的路由協(xié)議會(huì)發(fā)現(xiàn)這種情況,然后由DSDN控制器使用OpenFlow命令依次刪除到目的地B的一級(jí)流表中的路由。后續(xù)數(shù)據(jù)包將不會(huì)在一級(jí)流表中找到匹配項(xiàng),此時(shí)它會(huì)去尋找二級(jí)流表,并找到與目的地B的匹配項(xiàng),此后數(shù)據(jù)包將轉(zhuǎn)發(fā)到衛(wèi)星子網(wǎng)。通過(guò)這種方式,任意數(shù)量的子網(wǎng)都可以無(wú)縫互聯(lián)。
綜上所述,筆者認(rèn)為DSDN架構(gòu)在摒棄“集中控制”帶給無(wú)人集群的單點(diǎn)故障隱患,并沒(méi)有額外增加開(kāi)銷的同時(shí),其平面分離、設(shè)備簡(jiǎn)化和網(wǎng)絡(luò)交換自動(dòng)化、結(jié)構(gòu)開(kāi)放化的特征仍然給無(wú)人集群組網(wǎng)帶來(lái)了巨大的便利,是一種非常適合無(wú)人集群的開(kāi)放式網(wǎng)絡(luò)架構(gòu)。
前面介紹了DSDN架構(gòu)及其優(yōu)勢(shì),正因?yàn)镈SDN具有傳統(tǒng)SDN的開(kāi)放式可擴(kuò)充架構(gòu),從而使該結(jié)構(gòu)很容易增加其他新的模塊和功能。本節(jié)作為DSDN架構(gòu)的應(yīng)用實(shí)例,介紹課題組依托該架構(gòu)實(shí)現(xiàn)的延遲容忍網(wǎng)絡(luò)與常規(guī)路由融合的功能模塊。從而給DSDN架構(gòu)的擴(kuò)展應(yīng)用提供參考。
在無(wú)人機(jī)網(wǎng)絡(luò)中,眾所周知,由于無(wú)人機(jī)機(jī)身的拓?fù)浣Y(jié)構(gòu)和運(yùn)動(dòng)快速變化(無(wú)人機(jī)機(jī)身將屏蔽無(wú)線連接),因此要保持網(wǎng)絡(luò)始終連通是不可能的,在某些情況下,可能需要采用機(jī)會(huì)路由或DTN技術(shù)來(lái)確保重要的數(shù)據(jù)傳輸。然而,普通的DTN協(xié)議棧不同于普通的路由協(xié)議棧,因此在傳統(tǒng)的無(wú)人系統(tǒng)平臺(tái)上集成這兩個(gè)協(xié)議棧,從而實(shí)現(xiàn)有端到端路由時(shí)走路由,沒(méi)有端到端路由時(shí)走DTN成為一項(xiàng)困難的工作。在DSDN結(jié)構(gòu)的幫助下,可以很方便地實(shí)現(xiàn)兩套協(xié)議的動(dòng)態(tài)集成,如圖6所示。
圖6 DTN與DSDN結(jié)構(gòu)的路由協(xié)議棧集成
如圖6所示,DTN協(xié)議模塊和路由協(xié)議模塊都作為DSDN控制器的應(yīng)用程序運(yùn)行,轉(zhuǎn)發(fā)決策將由DSDN控制器編碼到DSDN交換機(jī)中。例如,當(dāng)存在到目的地B的路由(由路由協(xié)議模塊計(jì)算)時(shí),該路由將通過(guò)OpenFlow在DSDN交換機(jī)中編碼。目的地為B的所有數(shù)據(jù)包將通過(guò)DSDN交換機(jī)直接交換。這些數(shù)據(jù)包將根本不上傳DSDN控制器。一段時(shí)間后,假設(shè)到目的地B的路由被破壞,路由協(xié)議將發(fā)現(xiàn)該路由在一定時(shí)間后過(guò)時(shí)。然后,此路由將從DSDN交換機(jī)中刪除。在此之后,目標(biāo)為B的數(shù)據(jù)包將不再在DSDN交換機(jī)中找到匹配項(xiàng),也不再由DSDN進(jìn)行交換。對(duì)于目的地為B的普通數(shù)據(jù)包,應(yīng)直接丟棄。然而,一些目的地為B的數(shù)據(jù)包上會(huì)有一個(gè)特定的ToS字段(在本例中,特殊地,將需要延遲容忍網(wǎng)絡(luò)處理的數(shù)據(jù)包設(shè)置為T(mén)oS=222)。這意味著這些數(shù)據(jù)包足夠重要,它們應(yīng)該被延遲容忍網(wǎng)絡(luò)機(jī)會(huì)式傳輸,而不應(yīng)被丟棄。DTN協(xié)議模塊已經(jīng)將這樣的ToS字段編碼到DSDN交換機(jī)中,此時(shí)就是目的地為B,ToS=222的數(shù)據(jù)包。當(dāng)從任意一個(gè)無(wú)線接口收到目的地為B且ToS等于222的數(shù)據(jù)包時(shí),通過(guò)查詢DSDN交換機(jī)找不到匹配的交換表項(xiàng),但是卻在交換機(jī)中指示將這些數(shù)據(jù)包上交控制器。這些數(shù)據(jù)包隨后將通過(guò)控制器傳送到DTN協(xié)議模塊。在那里,這些數(shù)據(jù)包將在DTN協(xié)議邏輯的控制下被檢查、中繼到其他節(jié)點(diǎn)。通過(guò)這種方式,兩個(gè)協(xié)議模塊就有機(jī)集成在了同一個(gè)無(wú)人平臺(tái)中。
本文提出了一種分布式軟件定義網(wǎng)絡(luò)架構(gòu)DSDN,論證了該架構(gòu)存在的優(yōu)點(diǎn),并將延遲容忍網(wǎng)絡(luò)作為一個(gè)應(yīng)用案例,介紹了該架構(gòu)在無(wú)人集群系統(tǒng)中的應(yīng)用。該架構(gòu)已在課題組所構(gòu)建的實(shí)際無(wú)人集群網(wǎng)絡(luò)中得到了應(yīng)用,在應(yīng)用過(guò)程中,課題組越來(lái)越深刻地感受到了該架構(gòu)的開(kāi)放性與易用性。
當(dāng)然,分布式結(jié)構(gòu)很容易引起人們對(duì)網(wǎng)絡(luò)陷入局部最優(yōu),甚至形成網(wǎng)絡(luò)環(huán)路的擔(dān)憂。通過(guò)實(shí)際應(yīng)用發(fā)現(xiàn),SDN的路由策略也像普通路由器一樣具有查找網(wǎng)絡(luò)環(huán)路的機(jī)制,當(dāng)網(wǎng)絡(luò)發(fā)生振蕩時(shí),在大多數(shù)情況下,這些網(wǎng)絡(luò)環(huán)路的查找機(jī)制也足夠應(yīng)付。而在網(wǎng)絡(luò)剛剛啟動(dòng),尚不收斂的暫態(tài)情況下,即便是集中式控制器也無(wú)法做出正確的決策,并且會(huì)引入巨大的開(kāi)銷以使情況惡化??紤]到所有這些因素,可以得出結(jié)論,DSDN結(jié)構(gòu)比普通集中式SDN結(jié)構(gòu)更適合無(wú)人集群系統(tǒng)的組網(wǎng)。本文列出的優(yōu)點(diǎn)和應(yīng)用案例在無(wú)人集群組網(wǎng)時(shí)非常有用,除此之外,其他一些解決方案中廣泛使用的策略同樣也可以用于DSDN架構(gòu)中,例如訪問(wèn)控制、網(wǎng)絡(luò)保護(hù)、網(wǎng)絡(luò)流重定向等。有關(guān)這些領(lǐng)域的應(yīng)用和探討將在未來(lái)的工作中繼續(xù)加以深入研究。