一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法
【專利摘要】本發(fā)明提出一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法,包括:1.結(jié)合CCSDS和DTNRG構(gòu)建星上路由器模型,在OPNET中進行可行性和有效性驗證;2.基于OPNET的SITL接口實現(xiàn)虛擬數(shù)據(jù)流和真實數(shù)據(jù)流的轉(zhuǎn)換,驗證網(wǎng)關(guān)處理能力;3.用STK得到網(wǎng)絡(luò)拓?fù)渲行请H和星地鏈路相關(guān)數(shù)據(jù),并導(dǎo)入仿真軟件模擬星際網(wǎng)絡(luò);4.對網(wǎng)絡(luò)損傷儀進行延遲、誤碼率等相關(guān)設(shè)置,模擬空間鏈路。因此,本發(fā)明具有如下優(yōu)點:整合現(xiàn)有空間通信協(xié)議體系提出了星上路由器模型,為我國DTN協(xié)議體系的系統(tǒng)級實現(xiàn)乃至空間信息網(wǎng)絡(luò)的關(guān)鍵技術(shù)研究做了一些準(zhǔn)備工作;軟硬件結(jié)合較真實的模擬了衛(wèi)星網(wǎng)絡(luò)的環(huán)境,有助于驗證星上路由器對空間環(huán)境的適用性。
【專利說明】—種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法
[0001]
【技術(shù)領(lǐng)域】
[0002]本發(fā)明屬于衛(wèi)星網(wǎng)絡(luò)技術(shù)和計算機技術(shù)兩大領(lǐng)域,具體涉及一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法。
【背景技術(shù)】
[0003]當(dāng)前我國航天事業(yè)進入飛速發(fā)展期,我國發(fā)射航天飛行器的數(shù)量和種類較以往有很大程度的增加,航天技術(shù)及空間應(yīng)用的迅速發(fā)展對空間網(wǎng)絡(luò)的研究提出了迫切需求。地面互聯(lián)網(wǎng)的巨大成功使人們自然而然地想到將地面互聯(lián)網(wǎng)的工作模式搬移到空間網(wǎng)絡(luò)中,地面互聯(lián)網(wǎng)IP協(xié)議體系的優(yōu)勢是技術(shù)成熟度高、能大大縮減航天成本、易于升級。2001年,美國哥達德航天中心開展了名為OMNI的研究項目[I],主要研究利用地面商用IP協(xié)議實現(xiàn)空間通信方案??臻gIP協(xié)議體系雖然可以基本滿足地面與近地軌道航天器間的信息傳輸,但TCP協(xié)議是基于端到端重傳的協(xié)議,需要假定傳輸延遲很小,與深空通信不符。此外,按照分級方式實現(xiàn)的地面路由協(xié)議不適用于深空通信的操作環(huán)境。
[0004]空間數(shù)據(jù)系統(tǒng)咨詢委員會(CCSDS)于1982年成立,目前已發(fā)布了用于空間鏈路從物理層到應(yīng)用層的一系列建議。CCSDS針對空間環(huán)境特點,對地面標(biāo)準(zhǔn)TCP/IP協(xié)議進行相應(yīng)改進,開發(fā)了一套涵蓋網(wǎng)絡(luò)層到應(yīng)用層的空間通信協(xié)議規(guī)范(SCPS) [2],較為全面地解決了空間信息傳輸問題。針對深空通信的特點,CCSDS協(xié)議也提出了相應(yīng)的解決方法,如CCSDS文件傳輸協(xié)議CFDP [3]。然而,SCPS針對通信資源非常珍貴的深空通信環(huán)境,并未提出具體路由算法;可靠傳輸依然是采用先建立連接后傳送數(shù)據(jù)的模式;選擇重傳機制仍然是基于端到端的重傳。CFDP協(xié)議僅限定于文件傳輸應(yīng)用,解決方法不夠徹底,缺乏更完善的應(yīng)用服務(wù),從星際互聯(lián)的角度考慮的體系結(jié)構(gòu)不夠完整。
[0005]1998年NASA噴氣推進實驗室(`JPL)的一些工程師和網(wǎng)絡(luò)先驅(qū)之一——VintCerf開始了關(guān)于星際網(wǎng)絡(luò)(Interplanetary Network, IPN)的研究,其基本想法是讓地球和距離很遠(yuǎn)的太空船之間的數(shù)據(jù)通信能夠簡化到像發(fā)生在地球上的兩個節(jié)點之間一樣。相關(guān)人員后來發(fā)展成立了 Internet協(xié)會特別興趣小組,也就是IPNSIG[4]。但是,IPNSIG遇到了一個問題就是現(xiàn)在還沒有這樣一個星際網(wǎng)絡(luò)可以進行試驗,而建立星際網(wǎng)絡(luò)又十分昂貴,所以一部分人開始研究如何將IPN的概念體現(xiàn)在陸地應(yīng)用中,特別是傳感器網(wǎng)絡(luò),它與假設(shè)的IPN網(wǎng)絡(luò)具有很多共性,同時傳感器網(wǎng)絡(luò)的試驗很容易進行(有試驗的物質(zhì)基礎(chǔ))。由于這個原因,IRTF研究組(Internet research task f roce)成立了新的工作組尋找更通用的延遲可容忍網(wǎng)絡(luò),這個工作組稱為DTNRG (DTN research group) [5],是現(xiàn)在DTN體系結(jié)構(gòu)和協(xié)議研究的主要公開組織,并向IETF提交了包括DTN體系結(jié)構(gòu)[6]在內(nèi)的多項草案和標(biāo)準(zhǔn)。為解決深空環(huán)境下的可靠傳輸問題,JPL于2002年12月提交了一份支持DTN網(wǎng)絡(luò)的協(xié)議草案Lieklider傳輸協(xié)議[7]替代IP協(xié)議和TCP協(xié)議。2004年初,美國國防部下的DARPA (Defence Advanced Research Project s Agency)提出 DisruptionTolerant Networking,也簡稱為DTN[8]。所以,有時用DTN不僅表示延遲可容忍網(wǎng)絡(luò),還表示延遲中斷可容忍網(wǎng)絡(luò)。
[0006]近年來,還產(chǎn)生CCSDS協(xié)議體系與空間IP協(xié)議體系相結(jié)合的思想,就是在數(shù)據(jù)鏈路層仍然可以使用CCSDS建議,如分包遙測、分包遙控、AOS、Proximity等,網(wǎng)絡(luò)層應(yīng)用IP及其擴展技術(shù),傳輸層和應(yīng)用層選用商業(yè)標(biāo)準(zhǔn)協(xié)議或CCSDS協(xié)議。這種解決方案具有較為靈活的協(xié)議配置能力,但沒有從根本上消除空間IP協(xié)議體系和當(dāng)前CCSDS協(xié)議體系在深空通信中的固有缺陷,協(xié)議堆棧的可適應(yīng)感知能力較弱,仍面臨許多挑戰(zhàn)。
[0007]IP、CCSDS、DTN三種協(xié)議體系并非單純的技術(shù)演進,而是互依并存的。地面互聯(lián)網(wǎng)TCP/IP的成熟技術(shù)和空間IP的應(yīng)用驗證為CCSDS建議的改進提供了明確的方向,CCSDS與IP相結(jié)合的協(xié)議體系成為發(fā)揮TCP/IP的巨大優(yōu)勢并能滿足空間通信要求的基本解決途徑。DTN協(xié)議體系結(jié)構(gòu)可以通過整合前兩者分層協(xié)議和自身協(xié)議以解決空間環(huán)境異構(gòu)異質(zhì)條件下的可靠傳輸問題。但DTN協(xié)議與前兩者相比具有明顯的區(qū)別:一是DTN不假定存在發(fā)送端與接收端的端到端路徑,包裹采用存儲轉(zhuǎn)發(fā)的方法進行傳遞;二是DTN引入了所謂的“包裹層(Bundle Layer) ”作為連接不同受限網(wǎng)絡(luò)的覆蓋層,采用此覆蓋的節(jié)點依靠發(fā)送稱為“包裹”的異步消息進行通信。包裹層提供和互聯(lián)網(wǎng)關(guān)相似的功能,但它集中于虛消息轉(zhuǎn)發(fā)而不是分組交換。
[0008]目前,衛(wèi)星上通信設(shè)備一般只實現(xiàn)了轉(zhuǎn)發(fā)的功能而沒有路由的功能,衛(wèi)星轉(zhuǎn)發(fā)器分為透明式轉(zhuǎn)發(fā)器和再生式轉(zhuǎn)發(fā)器。透明式轉(zhuǎn)發(fā)器具有信號放大、下變頻等功能;再生式轉(zhuǎn)發(fā)器具有射頻波束交換、解調(diào)-再調(diào)制、基帶交換、多址方式變換等功能,以減少傳輸差錯率,提高效率,消除干擾,降低傳輸時延,改善交換性能。最早將路由器搬上衛(wèi)星的是OMNI [I],直接對現(xiàn)有商用通信協(xié)議進行取舍、組合,使之適應(yīng)航天任務(wù)的操作環(huán)境和通信需求,通過利用現(xiàn)成的軟、硬件資源來降低航天任務(wù)的成本、提高互操作性,僅需在射頻設(shè)備后增加一個信道糾錯編/譯碼的模塊即可與商用路由器相接,直接將承載了用戶數(shù)據(jù)的IP包在網(wǎng)絡(luò)上傳輸。2002年,美國情報部門、國防部、NASA共同啟動了轉(zhuǎn)型通信研究(TCS),18個月后,該聯(lián)合研究小組制定了轉(zhuǎn)型通信體系結(jié)構(gòu)(TCA)基線1.0[9],其中最著名的莫過于TSAT計劃,預(yù)計采用全激光交叉鏈路和TSAT路由器構(gòu)建空間骨干網(wǎng),雖然該項目被取消,但TCA的總體架構(gòu)基本上沒變[10-11]。2007年美國國防部將“太空互聯(lián)網(wǎng)路由器”(IRIS)計劃列入聯(lián)合能力技術(shù)演示驗證財政預(yù)算,IRIS JCTD通過一顆地球同步通信衛(wèi)星上攜帶的一個路由器來進一步開放這種新型網(wǎng)絡(luò)中心能力的作戰(zhàn)概念、戰(zhàn)術(shù)、技術(shù)和方法,實驗結(jié)果可以更好的指出這種下一代衛(wèi)星通信網(wǎng)絡(luò)能力[12-15]。IRIS最大的優(yōu)點是簡化衛(wèi)星間通信,降低音頻傳輸?shù)难舆t。傳統(tǒng)的衛(wèi)星傳輸方式下,即使旗艦和驅(qū)逐艦之間本來只相距幾英里,但是它們之間的通訊需要在不同的衛(wèi)星和地面網(wǎng)絡(luò)之間傳遞數(shù)次才能到達目的地。IRIS計劃可以在太空中的衛(wèi)星之間發(fā)送IP數(shù)據(jù)包,工作原理類似地面上的互聯(lián)網(wǎng),這就減少數(shù)據(jù)傳送的延遲,節(jié)省衛(wèi)星通信寬帶,提供更高的網(wǎng)絡(luò)靈活性。由于該技術(shù)能提高軍用衛(wèi)星通訊效率并降低成本,裝備較差、規(guī)模較小的部隊就能第一次在真正意義上使用中心網(wǎng)絡(luò)的各種功能。IRIS承諾對流量更好的適應(yīng)性、降低每個字節(jié)的成本以及為裝備差的部隊提供更高的流量。
[0009]由此可見,星上路由器仍然處于研究階段,并未成為星上的成熟載荷。面向延遲可容忍網(wǎng)絡(luò)的星上路由器仿真的目標(biāo)在于驗證星上路由器對于空間環(huán)境的適用性,其難點不在于路由器本身,而在于衛(wèi)星網(wǎng)絡(luò)環(huán)境模擬的真實性。目前國內(nèi)外衛(wèi)星網(wǎng)絡(luò)及其網(wǎng)絡(luò)設(shè)備的仿真方法主要有:
(I)、基于軟件的網(wǎng)絡(luò)仿真。采用網(wǎng)絡(luò)仿真軟件對網(wǎng)絡(luò)設(shè)備以及網(wǎng)絡(luò)環(huán)境進行建模分析。常用的有OPNET和NS2軟件。OPNET支持在網(wǎng)絡(luò)各個層次的設(shè)備、鏈路和協(xié)議的精確建模,并能夠準(zhǔn)確分析復(fù)雜網(wǎng)絡(luò)的性能和行為,能夠比較真實地反映網(wǎng)絡(luò)環(huán)境,工程和商業(yè)應(yīng)用中較多。NS2的仿真則較為抽象,適合于協(xié)議算法的研究,一般在科學(xué)研究領(lǐng)域應(yīng)用較為廣泛。另外,專門針對延遲可容忍網(wǎng)絡(luò)的還有ONE軟件,ONE是開源軟件,從網(wǎng)絡(luò)仿真的角度看,ONE能仿真運動模型、DTN路由。從功能的角度看,ONE集成了大量的運動模型和路由算法的具體實現(xiàn),并且易于擴展,但ONE很難精細(xì)地對設(shè)備進行仿真。
[0010](2)、半物理仿真。采用軟件(例如0ΡΝΕΤ)對真實的路由器、交換機等網(wǎng)絡(luò)設(shè)備進行模擬,網(wǎng)絡(luò)環(huán)境采用軟件、硬件配合搭建,即采用PC+仿真軟件的形式對星上路由器進行仿真,采用其他的軟硬件形式對網(wǎng)絡(luò)環(huán)境(包括信源信宿)進行仿真。這種方法平臺搭建較為復(fù)雜,需要仿真軟件具有相應(yīng)的轉(zhuǎn)換接口,但是更能真實模擬空間網(wǎng)絡(luò)。
[0011](3)、星上路由器PC模擬。在PC平臺下開發(fā)與運行和星上通信設(shè)備的協(xié)議棧結(jié)構(gòu)相同的通信軟件,在地面采用軟硬件搭建網(wǎng)絡(luò)仿真環(huán)境并且,對PC平臺下的路由器進行測試。這種方法能夠比較真實地模擬空間網(wǎng)絡(luò),但仿真周期很長,已接近于地面的驗證測試系統(tǒng),設(shè)備研發(fā)平臺雖然在PC上,但整個通信軟件在移植過程中總體框架并不變化。
【發(fā)明內(nèi)容】
[0012]本發(fā)明的上述技術(shù)問題主要是通過下述技術(shù)方案得以解決的:
一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法,其特征在于,包括:
星上路由器建模和仿真的步驟:建立星上路由器模型;結(jié)合CCSDS和DTNRG定義的網(wǎng)絡(luò)層次結(jié)構(gòu),構(gòu)建適合星上路由器的協(xié)議模型,并采用軟件仿真的形式對模型的可行性和有效性進行驗證;所述星上路由器建模和軟件仿真是基于OPNET進行,包括節(jié)點域建模、進程域建模、以及外部系統(tǒng)域建模;
仿真數(shù)據(jù)和真實數(shù)據(jù)的轉(zhuǎn)換的步驟:將軟件仿真環(huán)境下通過驗證的虛擬的數(shù)據(jù)流,轉(zhuǎn)換為真實的數(shù)據(jù)流,從而驗證網(wǎng)關(guān)對真實流的處理能力,由于網(wǎng)關(guān)仍然采用軟件形式實現(xiàn),因此具體實施過程中包括仿真數(shù)據(jù)到真實數(shù)據(jù)的轉(zhuǎn)換接口和真實數(shù)據(jù)到仿真數(shù)據(jù)的轉(zhuǎn)換接口 ;該步驟是基于OPNET SITL接口進行的,包括時間的同步、數(shù)據(jù)包的截獲以及數(shù)據(jù)包的轉(zhuǎn)換的子步驟;
衛(wèi)星拓?fù)涞哪M步驟:根據(jù)各衛(wèi)星的軌道參數(shù)生成星座組網(wǎng)運行數(shù)據(jù),得到星際和星地鏈路通斷時間、鏈路傳輸時延等數(shù)據(jù),并分析得到網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)變化數(shù)據(jù);在仿真軟件中輸入這些數(shù)據(jù),構(gòu)建星際網(wǎng)絡(luò)拓?fù)淠P?,在此基礎(chǔ)上對星際網(wǎng)絡(luò)中的星地、星間通信協(xié)議進行仿真;該步驟是基于STK進行,通過在STK中定義衛(wèi)星的參數(shù)確定不同的衛(wèi)星,從而進行衛(wèi)星網(wǎng)絡(luò)拓?fù)涞姆抡妫?br>
空間鏈路的模擬步驟:模擬星地、星間鏈路,提供延遲、誤碼率這些參數(shù)的模擬接口,通過這些參數(shù)配置,觀察不同鏈路對網(wǎng)絡(luò)性能的影響;具體是:采用iTrinegy網(wǎng)絡(luò)損傷儀對空間鏈路進行模擬;將模擬衛(wèi)星路由器的電腦都與網(wǎng)絡(luò)損傷儀采用以太網(wǎng)連接,在網(wǎng)絡(luò)損傷儀的.xml配置文件中,設(shè)置不同的延時和誤碼率參數(shù),用于模擬不同的空間鏈路參數(shù)和鏈路通斷。
[0013]在上述的一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法,所述步驟I中,三個建模方法具體實現(xiàn)過程如下:
建模一:節(jié)點域建模;
定義在傳輸層和應(yīng)用層間加入附加的Bundle層,傳輸層自適應(yīng)選擇SCPS-TP或UDP協(xié)議,鏈路層則使用IP OVER CCSDS AOS架構(gòu)
建模二:進程域建模;根據(jù)節(jié)點域模型,需要描述和實現(xiàn)的進程模型包括Bundle、SCPS-TP 和 IP OVER CCSDS AOS ;
Bundle進程模型=Bundle初始傳輸、轉(zhuǎn)發(fā)規(guī)程、接收規(guī)程、調(diào)度規(guī)程、
轉(zhuǎn)發(fā)受限規(guī)程、轉(zhuǎn)發(fā)失敗規(guī)程、刪除規(guī)程和本地交付規(guī)程、以及處理行為,所述處理行為包括同意保管、保管釋放和保管失??;
SCPS-TP進程模型:類似于TCP協(xié)議的實現(xiàn),SCPS-TP協(xié)議的實現(xiàn)建立了兩個進程模型,一個為管理進程,一個為處理子進程,管理進程為與上下層的接口進程,子進程為SCPS-TP協(xié)議的實際處理進程;SCPS-TP管理狀態(tài)進程負(fù)責(zé)接收從應(yīng)用層和下層發(fā)來的所有命令,并根據(jù)命令進入不同狀態(tài);SCPS-TP協(xié)議處理子進程負(fù)責(zé)SCPS-TP協(xié)議從建立連接到關(guān)閉連接的整個過程,在不同的時候收到數(shù)據(jù)段采取何種處理,用連接的狀態(tài)來表示這些不同的事件,并使用狀態(tài)轉(zhuǎn)移圖來說明SCPS-TP在各種狀態(tài)下對各種數(shù)據(jù)段的處理方式;
IP OVER CCSDS AOS進程模型:IP OVER CCSDS AOS管理進程首先進入初始化狀態(tài)進行狀態(tài)變量賦值,然后進入idle狀態(tài)開始處理各種事件;當(dāng)進入idle狀態(tài)后,進程開始等待事件;當(dāng)事件為流中斷時,進程首先讀取入流端口 ;如果是來自上層IP進程,進程進入from_upper狀態(tài)對IP數(shù)據(jù)進行AOS巾貞封裝;如果是來自下層MAC進程,進程進入from_lower狀態(tài)對AOS幀進行解封裝并重組IP數(shù)據(jù);當(dāng)事件為自中斷Polling_MPDU時,進程進入from_upper狀態(tài)對當(dāng)前進行封裝操作的AOS幀的幀長進行判斷,若不足指定的固定長度,則產(chǎn)生空閑數(shù)據(jù)插入MPDU包區(qū)中,以保證AOS幀為固定長度,然后調(diào)用IP OVER CCSDSAOS周期發(fā)送子進程對該AOS幀進行發(fā)送;
建模三:外部系統(tǒng)域建模;外部系統(tǒng)模塊主要用于協(xié)同仿真;協(xié)同仿真是一種由多種仿真工具聯(lián)合運行的仿真,由Modeler模型、協(xié)仿真代碼以及外部代碼組成;M0deler模型含有一個或多個外部系統(tǒng)定義,而外部代碼可以是一個完整的仿真器或連接其它操作系統(tǒng)進程的通信機構(gòu),兩者通過協(xié)仿真代碼連接為一體;定義SITL部分的實現(xiàn)屬于外部系統(tǒng)域的建模,首先是編寫自定義的SITL函數(shù),然后在SITL網(wǎng)關(guān)模塊中選擇包含有該SITL轉(zhuǎn)換函數(shù)的外部文件;SITL部分需要實現(xiàn)的是對Bundle、SCPS-TP和IP OVER CCSDS AOS協(xié)議的支持。
[0014]在上述的一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法,所述步驟I中,Bundle進程模型的具體建立方法如下:
進程開始時首先通過預(yù)初始化狀態(tài)直到其它進程準(zhǔn)備好,然后進行一些必要的初始化工作,主要是初始化靜態(tài)路由表和其它狀態(tài)變量并進行Bundle節(jié)點的注冊;初始化完成后進入空閑狀態(tài),此狀態(tài)主要是判斷中斷的類型;如果是流中斷FR0M_L0W,說明從下層進程接收到數(shù)據(jù),根據(jù)傳輸層端口號確定是應(yīng)用數(shù)據(jù)或是Bundle數(shù)據(jù),若傳輸層端口號為550說明是Bundle數(shù)據(jù),需要向保管結(jié)點發(fā)送保管成功信號,然后等待交付中斷信號的達到;否則即為應(yīng)用數(shù)據(jù),此時首先需要打開相應(yīng)的傳輸層連接,由之前設(shè)計的綜合網(wǎng)關(guān)協(xié)議棧模型可知,這里主要是UDP或者SCPS-TP連接;連接建立之后進行Bundle封裝,然后插入保管隊列等待存儲轉(zhuǎn)發(fā);
當(dāng)Bundle源端點與目的端點相距較遠(yuǎn)且只有斷續(xù)的連接,連接的持續(xù)時間不足以傳輸整個Bundle,此時只要基本塊的Bundle處理標(biāo)志字段沒有指示該Bundle不能分段,就可以對Bundle進行分段處理,每個片段都被封裝成一個新的Bundle進行傳輸;各片段都具有相同的源端點ID和創(chuàng)建時間戳,指示它們來源于同一個Bundle ;具體的分段形式包括主動分段和被動分段,此處采用主動分段的方法,即由Bundle進程主動將應(yīng)用數(shù)據(jù)劃分為許多更小的塊,然后再將每個塊封裝成Bundle進行傳輸;此時,目的節(jié)點要從接收的Bundle中提取這些小塊的應(yīng)用數(shù)據(jù)并重組得到完整的應(yīng)用數(shù)據(jù);Bundle的重組是根據(jù)段偏移量和載荷長度的指示,把所有接收到的和當(dāng)前段具有相同端點ID和創(chuàng)建時間戳的段載荷連結(jié)起來;如果組成的字節(jié)陣列的長度等于基本塊中指示的應(yīng)用數(shù)據(jù)單元總長度,那么用這個字節(jié)陣列重組的應(yīng)用數(shù)據(jù)單元取代當(dāng)前段的載荷,每段的載荷是重組后的應(yīng)用數(shù)據(jù)單元的子集;
如果是自中斷FROM_ROUTER,此時調(diào)用路由模塊計算下一跳結(jié)點;
如果是自中斷STATE_IND,此時對收到的Bundle數(shù)據(jù)包進行解封裝和重組,然后交付給目的結(jié)點;
如果是自中斷RETRANS,此時取出保管隊列中的Bundle數(shù)據(jù)包并轉(zhuǎn)發(fā)至下一跳結(jié)點。
[0015]在上述的一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法,所述仿真數(shù)據(jù)和真實數(shù)據(jù)的轉(zhuǎn)換的步驟中,時間的同步、數(shù)據(jù)包的截獲以及數(shù)據(jù)包的轉(zhuǎn)換的具體方法如下:
由于SITL模塊添加了兩個特殊的模型,網(wǎng)關(guān)節(jié)點和鏈路模型,需要將運行于真實協(xié)議棧中的數(shù)據(jù)包導(dǎo)入到虛擬的仿真環(huán)境,包括:
步驟1:時間的同步;
將仿真時間與系統(tǒng)時間同步;
步驟2:數(shù)據(jù)包的截獲;
采用WinPcap輔助抓包工具來捕獲原始數(shù)據(jù)包,在此基礎(chǔ)上根據(jù)數(shù)據(jù)報頭分析協(xié)議的類型,進而實現(xiàn)包的過濾;
步驟3:數(shù)據(jù)包的轉(zhuǎn)換;
當(dāng)SITL模塊接收到數(shù)據(jù)包時,不管是來自物理系統(tǒng)的真實包還是來自仿真系統(tǒng)的虛擬包,都首先嘗試對包格式及其所屬的協(xié)議進行判斷,通過與轉(zhuǎn)換函數(shù)的匹配,找到合適的轉(zhuǎn)換函數(shù),并調(diào)用其對數(shù)據(jù)包進行轉(zhuǎn)換;
當(dāng)仿真開始時,首先SITL調(diào)用初始化函數(shù)加載所有的轉(zhuǎn)換/檢測函數(shù)對;若有數(shù)據(jù)包到達,WinPcap抓包工具將其截獲并發(fā)送到SITL網(wǎng)關(guān)節(jié)點,SITL調(diào)用轉(zhuǎn)換入口函數(shù)來轉(zhuǎn)換數(shù)據(jù)包,通常情況下首先調(diào)用基本包格式的轉(zhuǎn)換函數(shù);若該數(shù)據(jù)包嵌套有其它類型的數(shù)據(jù)包,那么轉(zhuǎn)換函數(shù)會調(diào)用該數(shù)據(jù)域的轉(zhuǎn)換函數(shù)來對下一層數(shù)據(jù)包進行轉(zhuǎn)換,直到轉(zhuǎn)換至所設(shè)定的最頂層協(xié)議。
[0016]在上述的一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法,所述衛(wèi)星拓?fù)涞哪M步驟是通過在STK中定義衛(wèi)星的參數(shù)確定不同的衛(wèi)星,從而進行衛(wèi)星網(wǎng)絡(luò)拓?fù)涞姆抡妫?br>
設(shè)置一:衛(wèi)星的基本屬性設(shè)置; 設(shè)置衛(wèi)星的基本屬性:軌道、姿態(tài)、軌跡斷點、質(zhì)量、描述、圖形、屬性,、顯示時間、約束時間;
設(shè)置二:定義衛(wèi)星軌道設(shè)置;
利用設(shè)置軌道參數(shù)確定衛(wèi)星軌道的大小、形狀、軌道方位及衛(wèi)星在軌道上的位置,主要包括:半長軸、遠(yuǎn)地點半徑、遠(yuǎn)地點高度、回歸周期、每日軌道圈數(shù)、偏心率、近地點半徑、軌道傾角、升交點赤經(jīng)、近地點幅角、真近點角、平近點角、偏近地點角、升交角距、過升交點時間、過近地點時間。
[0017]在上述的一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法,還包括一個網(wǎng)絡(luò)性能的測試的步驟,隨機選擇iperf測試模塊或者VLC_media_player測試模塊進行:
隨機測試一:使用iperf測試模塊進行網(wǎng)絡(luò)性能測試,其步驟為:
步驟6.11,iperf軟件配置:客戶端配置:以2Mb/s速率向服務(wù)器端的5001端口發(fā)送IKByte大小的UDP包,持續(xù)時間200s,服務(wù)器配置以監(jiān)聽UDP的5001端口 ;
步驟6.12,OPNET仿真環(huán)境的配置:打開DTN路由器功能,設(shè)置分片大小設(shè)為1470字節(jié),包的生存期設(shè)置為300s,兩個路由器上設(shè)置監(jiān)聽UDP的5001端口,Bundle的匯聚層設(shè)置為UDPCL ;
步驟6.13,依次啟動設(shè)備上的iperf服務(wù)器,以及opnet軟件,iperf客戶端,保存實驗結(jié)果;
隨機測試二:使用VLC_media_player軟件進行實際業(yè)務(wù)測試,其步驟為:
步驟6.21,在通信雙方上分別運行兩個VLC_media_player進程(該軟件不支持雙向通信,即一個進程只能作為客戶端或者服務(wù)器),分別作為雙向通信的客戶端和服務(wù)器,兩個服務(wù)器的通信端口分別配置為10000和10001,開啟OPNET環(huán)境下DTN網(wǎng)關(guān)的相應(yīng)端口 ;步驟6.22,配置網(wǎng)絡(luò)損傷儀,分別設(shè)置延時為IOOmsUs和IOs ;
步驟6.23,測試使用VLC_media_player軟件能否在通信雙方高延遲的鏈路情況下進行雙向通話;
步驟6.24,拔掉的以太網(wǎng)線,然后對著通信設(shè)備的麥克風(fēng)進行錄音;然后再插上以太網(wǎng)線,測試在接收設(shè)備上能否聽到剛才錄音的內(nèi)容。
[0018]因此,本發(fā)明具有如下優(yōu)點:整合了現(xiàn)有的空間通信協(xié)議體系從而設(shè)計出星上路由器,為我國在DTN協(xié)議體系的系統(tǒng)級實現(xiàn)乃至空間信息網(wǎng)絡(luò)的關(guān)鍵技術(shù)研究方面做一些準(zhǔn)備工作;軟硬件結(jié)合較為真實的模擬了衛(wèi)星網(wǎng)絡(luò)的環(huán)境,有助于驗證星上路由器對空間環(huán)境的適用性。
【專利附圖】
【附圖說明】
[0019]附圖1是本發(fā)明中實施例的綜合網(wǎng)關(guān)的協(xié)議體系。
[0020]附圖2是本發(fā)明中實施例的Bundle協(xié)議基本處理過程。
[0021]附圖3是本發(fā)明中實施例的SCPS-TP協(xié)議的數(shù)據(jù)報文格式。
[0022]附圖4是本發(fā)明中實施例的idle狀態(tài)控制流。
[0023]附圖5是本發(fā)明中DTN路由器測試結(jié)果。
[0024]附圖6是本發(fā)明的方法流程示意圖?!揪唧w實施方式】
[0025]下面通過實施例,并結(jié)合附圖,對本發(fā)明的技術(shù)方案作進一步具體的說明。
[0026]實施例:
以下結(jié)合附圖和實施例詳細(xì)說明本發(fā)明技術(shù)方案。
[0027]步驟一、基于OPNET的星上路由器建模和仿真。
[0028](I)節(jié)點域建模。
[0029]節(jié)點域的工作是定義節(jié)點的內(nèi)部結(jié)構(gòu)。在OPNET中采用如圖1所示的協(xié)議體系結(jié)構(gòu)。在傳輸層和應(yīng)用層間加入附加的Bundle層,傳輸層自適應(yīng)選擇SCPS-TP或UDP協(xié)議,鏈路層則使用IP OVER CCSDS AOS架構(gòu)。在空間通信時,一般無需考慮應(yīng)用層網(wǎng)關(guān)這一復(fù)雜情況。
[0030]在節(jié)點模型中,相互連接組成節(jié)點模型的方塊成為模塊,每個模塊包含一組輸入和輸出、狀態(tài)內(nèi)存以及根據(jù)輸入和狀態(tài)內(nèi)存計算輸出的函數(shù)。模塊的輸入和輸出分為包流和統(tǒng)計兩種,模塊可以從它的輸出包流中輸出數(shù)據(jù)包或從輸入包流上接收數(shù)據(jù)包,也可以從輸出統(tǒng)計中輸出數(shù)值或從輸入統(tǒng)計中輸入數(shù)值。
[0031](2)進程域建模。
[0032]根據(jù)節(jié)點域模型,需要描述和實現(xiàn)的進程模型包括Bundle、SCPS-TP和IP OVERCCSDS AOS。
[0033]l、Bundle 進程模型。
[0034]Bundle協(xié)議的基本處理流程如圖2所示,主要包括Bundle初始傳輸、轉(zhuǎn)發(fā)規(guī)程、接收規(guī)程、調(diào)度規(guī)程、轉(zhuǎn)發(fā)受限規(guī)程、轉(zhuǎn)發(fā)失敗規(guī)程、刪除規(guī)程和本地交付規(guī)程等。此外還有一些處理行為,例如同意保管、保管釋放和保管失敗等。各種規(guī)程具體的處理流程詳見協(xié)議規(guī)范。
[0035]進程開始時首先通過預(yù)初始化狀態(tài)直到其它進程準(zhǔn)備好,然后進行一些必要的初始化工作,主要是初始化靜態(tài)路由表和其它狀態(tài)變量并進行Bundle節(jié)點的注冊。初始化完成后進入空閑狀態(tài),此狀態(tài)主要是判斷中斷的類型。如果是流中斷FR0M_L0W,說明從下層進程接收到數(shù)據(jù),根據(jù)傳輸層端口號確定是應(yīng)用數(shù)據(jù)或是Bundle數(shù)據(jù)。若傳輸層端口號為550說明是Bundle數(shù)據(jù),需要向保管結(jié)點發(fā)送保管成功信號,然后等待交付中斷信號的達到;否則即為應(yīng)用數(shù)據(jù),此時首先需要打開相應(yīng)的傳輸層連接,由之前設(shè)計的綜合網(wǎng)關(guān)協(xié)議棧模型可知,這里主要是Μ)Ρ或者SCPS-TP連接。連接建立之后進行Bundle封裝,然后插入保管隊列等待存儲轉(zhuǎn)發(fā)。
[0036]當(dāng)Bundle源端點與目的端點相距較遠(yuǎn)且只有斷續(xù)的連接,連接的持續(xù)時間不足以傳輸整個Bundle,此時只要基本塊的Bundle處理標(biāo)志字段沒有指示該Bundle不能分段,就可以對Bundle進行分段處理,每個片段都被封裝成一個新的Bundle進行傳輸。各片段都具有相同的源端點ID和創(chuàng)建時間戳,指示它們來源于同一個Bundle。具體的分段形式包括主動分段和被動分段,此處采用主動分段的方法,即由Bundle進程主動將應(yīng)用數(shù)據(jù)劃分為許多更小的塊,然后再將每個塊封裝成Bundle進行傳輸。此時,目的節(jié)點要從接收的Bundle中提取這些小塊的應(yīng)用數(shù)據(jù)并重組得到完整的應(yīng)用數(shù)據(jù)。Bundle的重組是根據(jù)段偏移量和載荷長度的指示,把所有接收到的和當(dāng)前段具有相同端點ID和創(chuàng)建時間戳的段載荷連結(jié)起來。如果組成的字節(jié)陣列的長度等于基本塊中指示的應(yīng)用數(shù)據(jù)單元總長度,那么用這個字節(jié)陣列重組的應(yīng)用數(shù)據(jù)單元取代當(dāng)前段的載荷,每段的載荷是重組后的應(yīng)用數(shù)據(jù)單元的子集。
[0037]如果是自中斷FR0M_R0UTER,此時調(diào)用路由模塊計算下一跳結(jié)點。
[0038]如果是自中斷STATE_IND,此時對收到的Bundle數(shù)據(jù)包進行解封裝和重組,然后交付給目的結(jié)點。
[0039]如果是自中斷RETRANS,此時取出保管隊列中的Bundle數(shù)據(jù)包并轉(zhuǎn)發(fā)至下一跳結(jié)點。
[0040]2、SCPS-TP 進程模型。
[0041]類似于TCP協(xié)議的實現(xiàn),SCPS-TP協(xié)議的實現(xiàn)建立了兩個進程模型,一個為管理進程,一個為處理子進程,管理進程為與上下層的接口進程,子進程為SCPS-TP協(xié)議的實際處理進程。SCPS-TP管理狀態(tài)進程負(fù)責(zé)接收從應(yīng)用層和下層發(fā)來的所有命令,并根據(jù)命令進入不同狀態(tài):
1)OPEN:打開一個 SCPS-TP 連接;
2)SEND:發(fā)送一個數(shù)據(jù)包給建立好的SCPS-TP連接;
3)RECEIVE:SCPS-TP請求上層注入數(shù)據(jù)包;
4)CLOSE:發(fā)送完數(shù)據(jù),結(jié)束SCPS-TP連接;
5)ABORT:非正常中斷SCPS-TP連接;
6)SEG_REV:接收數(shù)據(jù)包;
7)STATUS: SCPS-TP 狀態(tài)指示。
[0042]SCPS-TP協(xié)議處理子進程負(fù)責(zé)SCPS-TP協(xié)議從建立連接到關(guān)閉連接的整個過程,在不同的時候收到數(shù)據(jù)段采取何種處理,可以用連接的狀態(tài)來表示這些不同的事件,并使用狀態(tài)轉(zhuǎn)移圖來說明SCPS-TP在各種狀態(tài)下對各種數(shù)據(jù)段的處理方式:
1)LISTEN:監(jiān)聽非本地的SCPS-TP端口的連接請求;
2)SYN-SENT:在發(fā)送連接請求后等待相應(yīng)連接請求;
3)SYN-RECEIVED:在收到和發(fā)送一個連接請求后等待對方對連接請求的確認(rèn);
4)ESTABLISHED:表示一個連接已經(jīng)建立;
5)FIN-WAIT-1:等待遠(yuǎn)程SCPS-TP連接中斷請求,或先前的連接中斷請求的確認(rèn);
6)FIN-WAIT-2:從遠(yuǎn)程SCPS-TP等待連接中斷請求;
7)CL0SE-WAIT:等待從本地用戶發(fā)來的連接中斷請求;
8)CLOSING:等待遠(yuǎn)程SCPS-TP對連接中斷的確認(rèn);
9)LAST-ACK:等待原來的發(fā)向遠(yuǎn)程SCPS-TP的連接中斷請求的確認(rèn);
10)HME-WAIT:等待足夠的時間以確保遠(yuǎn)程SCPS-TP接收到連接中斷請求的確認(rèn);
11)CLOSED:表示當(dāng)前沒有任何連接狀態(tài)。
[0043]SCPS-TP協(xié)議的數(shù)據(jù)報文格式如圖3所示:
ields 域為 20 字節(jié)標(biāo)準(zhǔn)的 TCP 報文包頭;SACK-Permitted Option 域與 SACK Option域為SACK機制所用到的SACK允許選項域與SACK選項域;SCPS Capabilities Option域與SNACK Option域為SNACK機制相關(guān)的字段。
[0044]3、IP OVER CCSDS AOS 進程模型
IP OVER CCSDS AOS管理進程首先進入初始化狀態(tài)進行狀態(tài)變量賦值,然后進入idle狀態(tài)開始處理各種事件,如圖4所示。當(dāng)進入idle狀態(tài)后,進程開始等待事件。當(dāng)事件為流中斷時,進程首先讀取入流端口。如果是來自上層IP進程,進程進入from_upper狀態(tài)對IP數(shù)據(jù)進行AOS巾貞封裝;如果是來自下層MAC進程,進程進入from_lower狀態(tài)對AOS巾貞進行解封裝并重組IP數(shù)據(jù)。當(dāng)事件為自中斷Polling_MPDU時,進程進入from_upper狀態(tài)對當(dāng)前進行封裝操作的AOS幀的幀長進行判斷,若不足指定的固定長度,則產(chǎn)生空閑數(shù)據(jù)插入MPDU包區(qū)中,以保證AOS幀為固定長度,然后調(diào)用IP OVER CCSDS AOS周期發(fā)送子進程對該AOS幀進行發(fā)送。
[0045](3)外部系統(tǒng)域建模。
[0046]外部系統(tǒng)模塊主要用于協(xié)同仿真。協(xié)同仿真是一種由多種仿真工具聯(lián)合運行的仿真,由Modeler模型、協(xié)仿真代碼以及外部代碼組成。Modeler模型含有一個或多個外部系統(tǒng)定義,而外部代碼可以是一個完整的仿真器或連接其它操作系統(tǒng)進程的通信機構(gòu),兩者通過協(xié)仿真代碼連接為一體。本發(fā)明實施例中SITL部分的實現(xiàn)便屬于外部系統(tǒng)域的建模,首先是編寫自定義的SITL函數(shù),然后在SITL網(wǎng)關(guān)模塊中選擇包含有該SITL轉(zhuǎn)換函數(shù)的外部文件即可。SITL部分需要實現(xiàn)的是對Bundle、SCPS-TP和IP OVER CCSDS AOS協(xié)議的支持。
[0047]步驟二、基于OPNET SITL接口的仿真數(shù)據(jù)和真實數(shù)據(jù)的轉(zhuǎn)換。
[0048]SITL模塊添加了兩個特殊的模型,網(wǎng)關(guān)節(jié)點和鏈路模型,在真實網(wǎng)絡(luò)中,我們利用TCP/IP協(xié)議棧進行數(shù)據(jù)流的轉(zhuǎn)發(fā)與通信,而在仿真網(wǎng)絡(luò)中的協(xié)議棧是虛擬構(gòu)造的,不同的數(shù)據(jù)結(jié)構(gòu)使真實的設(shè)備和仿真網(wǎng)絡(luò)無法直接進行通信。將運行于真實協(xié)議棧中的數(shù)據(jù)包導(dǎo)入到虛擬的仿真環(huán)境,需要解決3個方面的問題:時間的同步、包的截獲以及數(shù)據(jù)包的轉(zhuǎn)換。
[0049](I)時間的同步.一般情況下SITL仿真的時間同步是通過將仿真時間與系統(tǒng)時間同步推進來確保的,通過簡單的設(shè)置就可以完成。
[0050](2)數(shù)據(jù)包的截獲。
[0051]采用WinPcap輔助抓包工具來捕獲原始數(shù)據(jù)包,在此基礎(chǔ)上根據(jù)數(shù)據(jù)報頭分析協(xié)議的類型,進而實現(xiàn)包的過濾。
[0052](3)數(shù)據(jù)包的轉(zhuǎn)換.當(dāng)SITL模塊接收到數(shù)據(jù)包時,不管是來自物理系統(tǒng)的真實包還是來自仿真系統(tǒng)的虛擬包,都首先嘗試對包格式及其所屬的協(xié)議進行判斷,通過與轉(zhuǎn)換函數(shù)的匹配,找到合適的轉(zhuǎn)換函數(shù),并調(diào)用其對數(shù)據(jù)包進行轉(zhuǎn)換。
[0053]當(dāng)仿真開始時,首先SITL調(diào)用初始化函數(shù)加載所有的轉(zhuǎn)換/檢測函數(shù)對。若有數(shù)據(jù)包到達,WinPcap抓包工具將其截獲并發(fā)送到SITL網(wǎng)關(guān)節(jié)點,SITL調(diào)用轉(zhuǎn)換入口函數(shù)來轉(zhuǎn)換數(shù)據(jù)包,通常情況下首先調(diào)用基本包格式的轉(zhuǎn)換函數(shù)。若該數(shù)據(jù)包嵌套有其它類型的數(shù)據(jù)包,那么轉(zhuǎn)換函數(shù)會調(diào)用該數(shù)據(jù)域的轉(zhuǎn)換函數(shù)來對下一層數(shù)據(jù)包進行轉(zhuǎn)換,直到轉(zhuǎn)換至所設(shè)定的最頂層協(xié)議。
[0054]步驟三、基于STK的衛(wèi)星網(wǎng)絡(luò)拓?fù)涞哪M。
[0055]通過在STK中定義衛(wèi)星的參數(shù)確定不同的衛(wèi)星,從而進行衛(wèi)星網(wǎng)絡(luò)拓?fù)涞姆抡妗?br>
[0056](I)衛(wèi)星的基本屬性設(shè)置。[0057]設(shè)置衛(wèi)星的基本屬性:軌道、姿態(tài)、軌跡斷點、質(zhì)量、描述、圖形、屬性,、顯示時間、約束時間等。
[0058](2)定義衛(wèi)星軌道設(shè)置.利用設(shè)置軌道參數(shù)確定衛(wèi)星軌道的大小、形狀、軌道方位及衛(wèi)星在軌道上的位置,主要包括:半長軸、遠(yuǎn)地點半徑、遠(yuǎn)地點高度、回歸周期、每日軌道圈數(shù)、偏心率、近地點半徑、軌道傾角、升交點赤經(jīng)、近地點幅角。真近點角、平近點角、偏近地點角、升交角距、過升交點時間、過近地點時間。
[0059]步驟四、基于網(wǎng)絡(luò)損傷儀的空間鏈路的模擬。
[0060]采用iTrinegy網(wǎng)絡(luò)損傷儀對空間鏈路進行模擬。將模擬衛(wèi)星路由器的電腦都與網(wǎng)絡(luò)損傷儀采用以太網(wǎng)連接,在網(wǎng)絡(luò)損傷儀的.xml配置文件中,設(shè)置不同的延時和誤碼率參數(shù),用于模擬不同的空間鏈路參數(shù)和鏈路通斷。
步驟五、網(wǎng)絡(luò)性能的測試。
[0061]本發(fā)明實施例中采用兩種方法測試網(wǎng)絡(luò)性能:采用 (O使用iperf軟件進行網(wǎng)絡(luò)性能測試,其步驟為:
1、iperf軟件配置。客戶端配置:以2Mb/s速率向服務(wù)器端的5001端口發(fā)送IKByte大小的UDP包,持續(xù)時間200s。服務(wù)器配置以監(jiān)聽UDP的5001端口。
[0062]2、OPNET仿真環(huán)境的配置。打開DTN路由器功能,設(shè)置分片大小設(shè)為1470字節(jié),包的生存期設(shè)置為300s,兩個路由器上設(shè)置監(jiān)聽UDP的5001端口,Bundle的匯聚層設(shè)置為UDPCL。
[0063]3、依次啟動設(shè)備上的iperf服務(wù)器,以及opnet軟件,iperf客戶端。保存實驗結(jié)果。如圖5為DTN路由器測試結(jié)果,結(jié)果顯示雖然沒有端到端的連接,數(shù)據(jù)仍可以通過保管轉(zhuǎn)發(fā),最終交付給服務(wù)器。
[0064](2)使用VLC_media_player軟件進行實際業(yè)務(wù)測試,其步驟為:
1、在通信雙方上分別運行兩個VLC_media_player進程(該軟件不支持雙向通信,即一個進程只能作為客戶端或者服務(wù)器),分別作為雙向通信的客戶端和服務(wù)器。兩個服務(wù)器的通信端口分別配置為10000和10001。開啟OPNET環(huán)境下DTN網(wǎng)關(guān)的相應(yīng)端口。
[0065]2、配置網(wǎng)絡(luò)損傷儀,分別設(shè)置延時為100ms、ls和10s。
[0066]3、測試使用VLC_media_player軟件能否在通信雙方高延遲的鏈路情況下進行雙向通話。
[0067]4、拔掉的以太網(wǎng)線,然后對著通信設(shè)備的麥克風(fēng)進行錄音。然后再插上以太網(wǎng)線,測試在接收設(shè)備上能否聽到剛才錄音的內(nèi)容。
[0068]本文中所描述的具體實施例僅僅是對本發(fā)明精神作舉例說明。本發(fā)明所屬【技術(shù)領(lǐng)域】的技術(shù)人員可以對所描述的具體實施例做各種各樣的修改或補充或采用類似的方式替代,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。
【權(quán)利要求】
1.一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法,其特征在于,包括: 星上路由器建模和仿真的步驟:建立星上路由器模型;結(jié)合CCSDS和DTNRG定義的網(wǎng)絡(luò)層次結(jié)構(gòu),構(gòu)建適合星上路由器的協(xié)議模型,并采用軟件仿真的形式對模型的可行性和有效性進行驗證;所述星上路由器建模和軟件仿真是基于OPNET進行,包括節(jié)點域建模、進程域建模、以及外部系統(tǒng)域建模; 仿真數(shù)據(jù)和真實數(shù)據(jù)的轉(zhuǎn)換的步驟:將軟件仿真環(huán)境下通過驗證的虛擬的數(shù)據(jù)流,轉(zhuǎn)換為真實的數(shù)據(jù)流,從而驗證網(wǎng)關(guān)對真實流的處理能力,由于網(wǎng)關(guān)仍然采用軟件形式實現(xiàn),因此具體實施過程中包括仿真數(shù)據(jù)到真實數(shù)據(jù)的轉(zhuǎn)換接口和真實數(shù)據(jù)到仿真數(shù)據(jù)的轉(zhuǎn)換接口 ;該步驟是基于OPNET SITL接口進行的,包括時間的同步、數(shù)據(jù)包的截獲以及數(shù)據(jù)包的轉(zhuǎn)換的子步驟; 衛(wèi)星拓?fù)涞哪M步驟:根據(jù)各衛(wèi)星的軌道參數(shù)生成星座組網(wǎng)運行數(shù)據(jù),得到星際和星地鏈路通斷時間、鏈路傳輸時延等數(shù)據(jù),并分析得到網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)變化數(shù)據(jù);在仿真軟件中輸入這些數(shù)據(jù),構(gòu)建星際網(wǎng)絡(luò)拓?fù)淠P停诖嘶A(chǔ)上對星際網(wǎng)絡(luò)中的星地、星間通信協(xié)議進行仿真;該步驟是基于基于STK進行,通過在STK中定義衛(wèi)星的參數(shù)確定不同的衛(wèi)星,從而進行衛(wèi)星網(wǎng)絡(luò)拓?fù)涞姆抡妫? 空間鏈路的模擬步驟:模擬星地、星間鏈路,提供延遲、誤碼率這些參數(shù)的模擬接口,通過這些參數(shù)配置,觀察不同鏈路對網(wǎng)絡(luò)性能的影響;具體是:采用iTrinegy網(wǎng)絡(luò)損傷儀對空間鏈路進行模擬;將模擬衛(wèi)星路由器的電腦都與網(wǎng)絡(luò)損傷儀采用以太網(wǎng)連接,在網(wǎng)絡(luò)損傷儀的.xml配置文件中,設(shè)置不同的延時和誤碼率參數(shù),用于模擬不同的空間鏈路參數(shù)和鏈路通斷。
2.根據(jù)權(quán)利要求1所述的一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法,其特征在于,所述步驟I中,三個建模方法具體實現(xiàn)過程如下: 建模一:節(jié)點域建模;· 定義在傳輸層和應(yīng)用層間加入附加的Bundle層,傳輸層自適應(yīng)選擇SCPS-TP或UDP協(xié)議,鏈路層則使用IP OVER CCSDS AOS架構(gòu) 建模二:進程域建模;根據(jù)節(jié)點域模型,需要描述和實現(xiàn)的進程模型包括Bundle、SCPS-TP 和 IP OVER CCSDS AOS ; Bundle進程模型=Bundle初始傳輸、轉(zhuǎn)發(fā)規(guī)程、接收規(guī)程、調(diào)度規(guī)程、 轉(zhuǎn)發(fā)受限規(guī)程、轉(zhuǎn)發(fā)失敗規(guī)程、刪除規(guī)程和本地交付規(guī)程、以及處理行為,所述處理行為包括同意保管、保管釋放和保管失?。? SCPS-TP進程模型:類似于TCP協(xié)議的實現(xiàn),SCPS-TP協(xié)議的實現(xiàn)建立了兩個進程模型,一個為管理進程,一個為處理子進程,管理進程為與上下層的接口進程,子進程為SCPS-TP協(xié)議的實際處理進程;SCPS-TP管理狀態(tài)進程負(fù)責(zé)接收從應(yīng)用層和下層發(fā)來的所有命令,并根據(jù)命令進入不同狀態(tài);SCPS-TP協(xié)議處理子進程負(fù)責(zé)SCPS-TP協(xié)議從建立連接到關(guān)閉連接的整個過程,在不同的時候收到數(shù)據(jù)段采取何種處理,用連接的狀態(tài)來表示這些不同的事件,并使用狀態(tài)轉(zhuǎn)移圖來說明SCPS-TP在各種狀態(tài)下對各種數(shù)據(jù)段的處理方式; IP OVER CCSDS AOS進程模型:IP OVER CCSDS AOS管理進程首先進入初始化狀態(tài)進行狀態(tài)變量賦值,然后進入idle狀態(tài)開始處理各種事件;當(dāng)進入idle狀態(tài)后,進程開始等待事件;當(dāng)事件為流中斷時,進程首先讀取入流端口 ;如果是來自上層IP進程,進程進Λ from_upper狀態(tài)對IP數(shù)據(jù)進行AOS幀封裝;如果是來自下層MAC進程,進程進入from_lower狀態(tài)對AOS幀進行解封裝并重組IP數(shù)據(jù);當(dāng)事件為自中斷Polling_MPDU時,進程進入from_upper狀態(tài)對當(dāng)前進行封裝操作的AOS幀的幀長進行判斷,若不足指定的固定長度,則產(chǎn)生空閑數(shù)據(jù)插入MPDU包區(qū)中,以保證AOS幀為固定長度,然后調(diào)用IP OVER CCSDSAOS周期發(fā)送子進程對該AOS幀進行發(fā)送; 建模三:外部系統(tǒng)域建模;外部系統(tǒng)模塊主要用于協(xié)同仿真;協(xié)同仿真是一種由多種仿真工具聯(lián)合運行的仿真,由Modeler模型、協(xié)仿真代碼以及外部代碼組成;M0deler模型含有一個或多個外部系統(tǒng)定義,而外部代碼可以是一個完整的仿真器或連接其它操作系統(tǒng)進程的通信機構(gòu),兩者通過協(xié)仿真代碼連接為一體;定義SITL部分的實現(xiàn)屬于外部系統(tǒng)域的建模,首先是編寫自定義的SITL函數(shù),然后在SITL網(wǎng)關(guān)模塊中選擇包含有該SITL轉(zhuǎn)換函數(shù)的外部文件;SITL部分需要實現(xiàn)的是對Bundle、SCPS-TP和IP OVER CCSDS AOS協(xié)議的支持。
3.根據(jù)權(quán)利要求2所述的一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法,其特征在于,所述步驟I中,Bundle進程模型的具體建立方法如下: 進程開始時首先通過預(yù)初始化狀態(tài)直到其它進程準(zhǔn)備好,然后進行一些必要的初始化工作,主要是初始化靜態(tài)路由表和其它狀態(tài)變量并進行Bundle節(jié)點的注冊;初始化完成后進入空閑狀態(tài),此狀態(tài)主要是判斷中斷的類型;如果是流中斷FR0M_L0W,說明從下層進程接收到數(shù)據(jù),根據(jù)傳輸層端口號確定是應(yīng)用數(shù)據(jù)或是Bundle數(shù)據(jù),若傳輸層端口號為550說明是Bundle數(shù)據(jù),需要向保管結(jié)點發(fā)送保管成功信號,然后等待交付中斷信號的達到;否則即為應(yīng)用數(shù)據(jù),此時首先需要打開相應(yīng)的傳輸層連接,由之前設(shè)計的綜合網(wǎng)關(guān)協(xié)議棧模型可知,這里主要是UDP或者SCPS-TP連接;連接建立之后進行Bundle封裝,然后插入保管隊列等待存儲轉(zhuǎn)發(fā); 當(dāng)Bundle源端點與目的端點相距較遠(yuǎn)且只有斷續(xù)的連接,連接的持續(xù)時間不足以傳輸整個Bundle,此時只要基本塊的Bundle處理標(biāo)志字段沒有指示該Bundle不能分段,就可以對Bundle進行分段處理,每個片段都被封裝成一個新的Bundle進行傳輸;各片段都具有相同的源端點ID和創(chuàng)建時間戳,指示它們來源于同一個Bundle ;具體的分段形式包括主動分段和被動分段,此處采用主動分段的方法,即由Bundle進程主動將應(yīng)用數(shù)據(jù)劃分為許多更小的塊,然后再將每個塊封裝成Bundle進行傳輸;此時,目的節(jié)點要從接收的Bundle中提取這些小塊的應(yīng)用數(shù)據(jù)并重組得到完整的應(yīng)用數(shù)據(jù);Bundle的重組是根據(jù)段偏移量和載荷長度的指示,把所有接收到的和當(dāng)前段具有相同端點ID和創(chuàng)建時間戳的段載荷連結(jié)起來;如果組成的字節(jié)陣列的長度等于基本塊中指示的應(yīng)用數(shù)據(jù)單元總長度,那么用這個字節(jié)陣列重組的應(yīng)用數(shù)據(jù)單元取代當(dāng)前段的載荷,每段的載荷是重組后的應(yīng)用數(shù)據(jù)單元的子集; 如果是自中斷FR0M_R0UTER,此時調(diào)用路由模塊計算下一跳結(jié)點; 如果是自中斷STATE_IND,此時對收到的Bundle數(shù)據(jù)包進行解封裝和重組,然后交付給目的結(jié)點; 如果是自中斷RETRANS,此時取出保管隊列中的Bundle數(shù)據(jù)包并轉(zhuǎn)發(fā)至下一跳結(jié)點。
4.根據(jù)權(quán)利要求1所述的一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法,其特征在于,所述仿真數(shù)據(jù)和真實數(shù)據(jù)的轉(zhuǎn)換的步驟中,時間的同步、數(shù)據(jù)包的截獲以及數(shù)據(jù)包的轉(zhuǎn)換的具體方法如下: 由于SITL模塊添加了兩個特殊的模型,網(wǎng)關(guān)節(jié)點和鏈路模型,需要將運行于真實協(xié)議棧中的數(shù)據(jù)包導(dǎo)入到虛擬的仿真環(huán)境,包括: 步驟1:時間的同步; 將仿真時間與系統(tǒng)時間同步; 步驟2:數(shù)據(jù)包的截獲; 采用WinPcap輔助抓包工具來捕獲原始數(shù)據(jù)包,在此基礎(chǔ)上根據(jù)數(shù)據(jù)報頭分析協(xié)議的類型,進而實現(xiàn)包的過濾; 步驟3:數(shù)據(jù)包的轉(zhuǎn)換; 當(dāng)SITL模塊接收到數(shù)據(jù)包時,不管是來自物理系統(tǒng)的真實包還是來自仿真系統(tǒng)的虛擬包,都首先嘗試對包格式及其所屬的協(xié)議進行判斷,通過與轉(zhuǎn)換函數(shù)的匹配,找到合適的轉(zhuǎn)換函數(shù),并調(diào)用其對數(shù)據(jù)包進行轉(zhuǎn)換; 當(dāng)仿真開始時,首先SITL調(diào)用初始化函數(shù)加載所有的轉(zhuǎn)換/檢測函數(shù)對;若有數(shù)據(jù)包到達,WinPcap抓包工具將其截獲并發(fā)送到SITL網(wǎng)關(guān)節(jié)點,SITL調(diào)用轉(zhuǎn)換入口函數(shù)來轉(zhuǎn)換數(shù)據(jù)包,通常情況下首先調(diào)用基本包格式的轉(zhuǎn)換函數(shù);若該數(shù)據(jù)包嵌套有其它類型的數(shù)據(jù)包,那么轉(zhuǎn)換函數(shù)會調(diào)用該數(shù)據(jù)域的轉(zhuǎn)換函數(shù)來對下一層數(shù)據(jù)包進行轉(zhuǎn)換,直到轉(zhuǎn)換至所設(shè)定的最頂層協(xié)議。
5.根據(jù)權(quán)利要求1所述的一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法,其特征在于,所述衛(wèi)星拓?fù)涞哪M步驟是通過在STK中定義衛(wèi)星的參數(shù)確定不同的衛(wèi)星,從而進行衛(wèi)星網(wǎng)絡(luò)拓?fù)涞姆抡?,包括` 設(shè)置一:衛(wèi)星的基本屬性設(shè)置; 設(shè)置衛(wèi)星的基本屬性:軌道、姿態(tài)、軌跡斷點、質(zhì)量、描述、圖形、屬性,、顯示時間、約束時間; 設(shè)置二:定義衛(wèi)星軌道設(shè)置; 利用設(shè)置軌道參數(shù)確定衛(wèi)星軌道的大小、形狀、軌道方位及衛(wèi)星在軌道上的位置,包括:半長軸、遠(yuǎn)地點半徑、遠(yuǎn)地點高度、回歸周期、每日軌道圈數(shù)、偏心率、近地點半徑、軌道傾角、升交點赤經(jīng)、近地點幅角、真近點角、平近點角、偏近地點角、升交角距、過升交點時間、過近地點時間。
6.根據(jù)權(quán)利要求1所述的一種延遲可容忍網(wǎng)絡(luò)的星上路由器仿真方法,其特征在于,還包括一個網(wǎng)絡(luò)性能的測試的步驟,隨機選擇iperf測試模塊或者VLC_media_player測試模塊進行: 隨機測試一:使用iperf測試模塊進行網(wǎng)絡(luò)性能測試,其步驟為: 步驟6.11,iperf軟件配置:客戶端配置:以2Mb/s速率向服務(wù)器端的5001端口發(fā)送IKByte大小的UDP包,持續(xù)時間200s,服務(wù)器配置以監(jiān)聽UDP的5001端口 ; 步驟6.12,OPNET仿真環(huán)境的配置:打開DTN路由器功能,設(shè)置分片大小設(shè)為1470字節(jié),包的生存期設(shè)置為300s,兩個路由器上設(shè)置監(jiān)聽UDP的5001端口,Bundle的匯聚層設(shè)置為UDPCL ; 步驟6.13,依次啟動設(shè)備上的iperf服務(wù)器,以及opnet軟件,iperf客戶端,保存實驗結(jié)果;隨機測試二:使用VLC_media_player軟件進行實際業(yè)務(wù)測試,其步驟為: 步驟6.21,在通信雙方上分別運行兩個VLC_media_player進程(該軟件不支持雙向通信,即一個進程只能作為客戶端或者服務(wù)器),分別作為雙向通信的客戶端和服務(wù)器,兩個服務(wù)器的通信端口分別配置為10000和10001,開啟OPNET環(huán)境下DTN網(wǎng)關(guān)的相應(yīng)端口 ;步驟6.22,配置網(wǎng)絡(luò)損傷儀,分別設(shè)置延時為IOOmsUs和IOs ; 步驟6.23,測試使用VLC_media_player軟件能否在通信雙方高延遲的鏈路情況下進行雙向通話; 步驟6.24,拔掉的 以太網(wǎng)線,然后對著通信設(shè)備的麥克風(fēng)進行錄音;然后再插上以太網(wǎng)線,測試在接收設(shè)備上能否聽到剛才錄音的內(nèi)容。
【文檔編號】H04L12/46GK103825761SQ201410066341
【公開日】2014年5月28日 申請日期:2014年2月26日 優(yōu)先權(quán)日:2014年2月26日
【發(fā)明者】吳靜, 江昊, 周建國, 李勇, 臺嘯, 羅威 申請人:武漢大學(xué)