劉淵,張浩,葉海洋,李劍鋒,王曉鋒,張桂珠
(1. 江南大學(xué)數(shù)字媒體學(xué)院,江蘇 無錫 214122;
2. 江蘇省媒體設(shè)計與軟件技術(shù)重點實驗室,江蘇 無錫 214122;3. 江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫 214122)
天地一體化信息網(wǎng)絡(luò)可以分為天基骨干網(wǎng)、天基接入網(wǎng)、地基節(jié)點網(wǎng)、地面互聯(lián)網(wǎng),包含衛(wèi)星節(jié)點、地面站節(jié)點、衛(wèi)星鏈路等多類型元素,具有網(wǎng)絡(luò)拓撲切換快、異構(gòu)網(wǎng)絡(luò)互聯(lián)、時空跨度大、業(yè)務(wù)種類多等特點。天地一體化信息網(wǎng)絡(luò)需要建立大規(guī)模、真實的、可控的網(wǎng)絡(luò)仿真平臺,支撐安全保障技術(shù)[1]的研究以及新的衛(wèi)星網(wǎng)絡(luò)協(xié)議與技術(shù)研究。
天地一體化信息網(wǎng)絡(luò)仿真平臺包含控制平面與數(shù)據(jù)平面,控制平面管理衛(wèi)星節(jié)點和衛(wèi)星鏈路,數(shù)據(jù)平面完成仿真場景的映射[2]。衛(wèi)星節(jié)點需要滿足節(jié)點數(shù)量、拓撲變化、軌道高度的仿真要求,衛(wèi)星鏈路包含星間鏈路和星地鏈路,星間鏈路又分為同軌和異軌星間鏈路。同軌衛(wèi)星之間的鏈路持續(xù)通信時間、鏈路距離基本不隨時間變化,異軌衛(wèi)星之間的鏈路建立相對復(fù)雜,鏈路空間幾何參數(shù)與性能參數(shù)呈周期性變化,星間鏈路主要受自由空間傳播損耗的影響。星地鏈路除了會受自由空間傳播損耗的影響外,還會受大氣吸收損耗、雨衰的影響。
目前,衛(wèi)星鏈路仿真的相關(guān)研究主要集中在基于理論建模的數(shù)字仿真、基于離散事件驅(qū)動的網(wǎng)絡(luò)模擬、基于鏈路特性的參數(shù)仿真與新興網(wǎng)絡(luò)技術(shù)[3,4]融合等方面。文獻[5,6]研究了衛(wèi)星鏈路計算數(shù)學(xué)模型,分析了星間鏈路空間幾何特性、星地鏈路時延與誤碼率的動態(tài)變化規(guī)律,為衛(wèi)星鏈路仿真提供了理論基礎(chǔ)。文獻[7]基于 NS3模擬衛(wèi)星鏈路,基于TCP通信協(xié)議測試了不同鏈路特性下衛(wèi)星鏈路吞吐量的變化。文獻[8]提出了動態(tài)衛(wèi)星鏈路數(shù)據(jù)交互的聯(lián)合仿真方法,通過逼真的星地信道衰落情況來確定滿足鏈路約束條件的衛(wèi)星天線增益等關(guān)鍵參數(shù)。文獻[9]提出了基于共享緩沖區(qū)的超高速鏈路仿真方法TLEM,由多個獨立線程實現(xiàn)的管道體結(jié)構(gòu),線程間通過有限的交互實現(xiàn)高性能轉(zhuǎn)發(fā),但其存在內(nèi)存復(fù)制開銷的瓶頸,并且僅能適用于支持netmap的系統(tǒng)。文獻[10]提出了基于 dummynet的數(shù)據(jù)鏈路層仿真方法,通過攔截指定鏈上的數(shù)據(jù)幀實現(xiàn),在 PlanetLab實物測試床中驗證了其仿真性能。文獻[11]提出了基于IP級KauNet仿真器的衛(wèi)星鏈路仿真方法,結(jié)合 LMS衛(wèi)星信道模型,給出傳統(tǒng)網(wǎng)絡(luò)中復(fù)現(xiàn)衛(wèi)星鏈路時延與丟失分組的系統(tǒng)實現(xiàn)。文獻[12]提出了大規(guī)模時延容忍網(wǎng)絡(luò)仿真平臺,基于netem實現(xiàn)單層低軌衛(wèi)星網(wǎng)絡(luò)中衛(wèi)星鏈路仿真,對星地鏈路的帶寬、時延等進行仿真分析。大多數(shù)衛(wèi)星鏈路仿真方法基于單一的衛(wèi)星工具包[13](STK,satellite tool kit)和模擬器(NS2、NS3、OPNET 等),無法運行真實的業(yè)務(wù)流量,難以支撐安全仿真驗證。實物測試床(PlanetLab、OneLab等)通過真實的軟硬件環(huán)境來保障實驗網(wǎng)絡(luò)的真實性,但其存在投入成本高、靈活性差的問題。鏈路仿真器(TLEM、dummynet、KauNet等)能夠為衛(wèi)星鏈路仿真提供支撐,但其自身都存在一定的局限性。少部分衛(wèi)星鏈路仿真方法可承載真實的業(yè)務(wù)流量,融合了新興網(wǎng)絡(luò)技術(shù),但缺乏考慮衛(wèi)星鏈路的逼真性和周期性。
本文提出了一種云計算環(huán)境中衛(wèi)星鏈路仿真方法,基于虛擬化技術(shù)仿真不同軌道高度的衛(wèi)星節(jié)點,基于軟件定義網(wǎng)絡(luò)(SDN,software defined network)技術(shù)仿真可重構(gòu)的衛(wèi)星鏈路,基于 STK模擬真實的衛(wèi)星網(wǎng)絡(luò)場景,對衛(wèi)星鏈路進行建模與計算,獲取鏈路持續(xù)通信時間、距離、誤碼率等數(shù)據(jù)。根據(jù)衛(wèi)星網(wǎng)絡(luò)場景,可自動化部署衛(wèi)星網(wǎng)絡(luò)拓撲,可動態(tài)配置差異化的衛(wèi)星節(jié)點與衛(wèi)星鏈路,為天地一體化信息網(wǎng)絡(luò)中各類技術(shù)的驗證與評估提供一套原型系統(tǒng)。
采用連通圖 G=(V,E,D)對衛(wèi)星網(wǎng)絡(luò)建模,其中,V= {vi|i∈ (1,2,…,n )}表示衛(wèi)星節(jié)點和地面站節(jié)點集合, E={eij|i,j ∈ (1,2,…,n )}表示衛(wèi)星鏈路集合, D={dij|i,j ∈ (1,2,…,n )}表示衛(wèi)星鏈路的長度。
衛(wèi)星鏈路的間歇性是指鏈路通斷隨著時間周期性地動態(tài)切換。在衛(wèi)星接收機的功率滿足可以正常接收發(fā)射信號的條件下,當(dāng)衛(wèi)星鏈路被其他天體在物理位置上阻隔時,鏈路會無法通信,當(dāng)衛(wèi)星運動到某一個無天體阻隔的位置時,鏈路又可以繼續(xù)通信。因此,造成了衛(wèi)星鏈路的間歇性。
衛(wèi)星鏈路的物理可見性取決于衛(wèi)星間、衛(wèi)星與地面站間的相對位置,如圖1所示。
當(dāng)2顆衛(wèi)星運動到衛(wèi)星 vi與衛(wèi)星 vj的位置時,空間位置關(guān)系上滿足[14]Hij≥ Re,Hij為地球球心O到星間鏈路 eij的距離, Re為地球半徑,衛(wèi)星之間物理可見,星間鏈路可以通信。當(dāng)2顆衛(wèi)星運動到衛(wèi)星 vi與衛(wèi)星 vk的位置時,其空間位置關(guān)系滿足
當(dāng)衛(wèi)星vm運動到vm′位置時,星地鏈路em′n與地面站vn所在位置相切,星地鏈路長度達到最大值,星地鏈路可以通信的約束條件為
圖1 衛(wèi)星鏈路可通約束條件
衛(wèi)星鏈路時延與鏈路長度D有關(guān),時延仿真的前提條件是鏈路必須可通,即物理可見,時延的計算式為
其中,f(t)為時變函數(shù),T為鏈路長度變化周期,鏈路時延td在周期T內(nèi)動態(tài)變化,c為電磁波在自由空間的傳播速度。
衛(wèi)星鏈路誤碼率與信號的調(diào)制方式有關(guān),誤碼率仿真也必須滿足鏈路可通,在二進制相移鍵控(BPSK,binary phase shift keying)調(diào)制方式下,誤碼率的計算式為
其中,erfc(?)為互補誤差函數(shù),為每比特信號能量Eb與噪聲的功率譜密度N0之比,其與信道的載噪比密切相關(guān),計算式為
其中,Rb為比特率,Bn為噪聲帶寬,載噪比可由式(6)進行推算。
其中,Pt為發(fā)射機發(fā)射功率;Gt為發(fā)射機天線增益;Gr為接收機天線增益;k為波爾茲曼常量;Ts為接收機系統(tǒng)噪聲溫度;Lf為自由空間傳輸損耗;La為其他損耗,包含大氣吸收損耗、雨衰等;EIRP為有效全向輻射功率。根據(jù)這些參數(shù)值,可以推算出衛(wèi)星鏈路的誤碼率。
天地一體化信息網(wǎng)絡(luò)仿真平臺采用融合仿真的思想,由 STK負責(zé)仿真平臺的數(shù)據(jù)平面,由OpenStack云計算環(huán)境負責(zé)仿真平臺的控制平面,如圖2所示,包含了一個控制節(jié)點、一個STK節(jié)點、若干個計算節(jié)點。控制節(jié)點負責(zé)整個平臺的資源調(diào)度,包含計算、存儲、網(wǎng)絡(luò)等資源以及自動化部署衛(wèi)星網(wǎng)絡(luò)拓撲,STK節(jié)點提供豐富的可視化界面,負責(zé)構(gòu)建衛(wèi)星網(wǎng)絡(luò)場景,設(shè)計星座結(jié)構(gòu)、衛(wèi)星軌道、地面站、發(fā)射機、接收機等,并對鏈路持續(xù)通信時間、鏈路距離、鏈路誤碼率等數(shù)據(jù)進行計算,計算節(jié)點負責(zé)承載多粒度衛(wèi)星節(jié)點、構(gòu)建衛(wèi)星鏈路、加載衛(wèi)星鏈路性能參數(shù),實時檢測并動態(tài)切換衛(wèi)星鏈路的間歇性、時延、誤碼率。
在STK節(jié)點中采用Walker星座構(gòu)建衛(wèi)星網(wǎng)絡(luò),軌道平面的升交點沿赤道等間距排列,每個軌道的衛(wèi)星等間距分布,可以使覆蓋面積達到最優(yōu),縮短重訪時間。假設(shè)有P個軌道平面,每個軌道平面上的衛(wèi)星個數(shù)為N,衛(wèi)星總數(shù)為T=P×N,軌道平面的角距為360°/P,衛(wèi)星的角距為360°/N,相鄰軌道平面衛(wèi)星間的相位因子為F=1,2,…,P-1,相位角為360°F/T。通??梢杂忙?T/P/F來描述一個Walker星座,δ為軌道平面傾角。
低軌(LEO,low earth orbit)衛(wèi)星的軌道高度一般在500~2 000 km,單顆LEO衛(wèi)星的覆蓋范圍很小,可持續(xù)通信時間也很短,覆蓋全球通常需要數(shù)十顆,因此,采用基于輕量級虛擬化的 Docker容器來仿真 LEO衛(wèi)星節(jié)點,其直接運行在宿主機的操作系統(tǒng)之上,占用物理資源少,啟動速度快,可以滿足數(shù)量較多的 LEO衛(wèi)星節(jié)點需求。地面站用于向衛(wèi)星發(fā)射信號,并接收其他地面站經(jīng)衛(wèi)星轉(zhuǎn)發(fā)過來的信號,考慮到其數(shù)量需求也很多,同樣采用Docker容器來仿真地面站節(jié)點。中軌(MEO,medium earth orbit)衛(wèi)星的軌道高度一般在10 000~20 000 km,覆蓋全球通常需要幾顆至十幾顆;地球同步軌道(GSO,geosynchronous orbit)衛(wèi)星的軌道高度為 35 786 km,包含地球靜止軌道(GEO,geostationary orbit)衛(wèi)星和傾斜地球同步軌道(IGSO,inclined geosynchronous orbit)衛(wèi)星,3顆即可覆蓋全球。在選擇GSO或MEO衛(wèi)星作為骨干節(jié)點時,拓撲結(jié)構(gòu)變化相對較慢、數(shù)量較少,因此,采用基于全虛擬化的KVM虛擬機來仿真GSO和MEO衛(wèi)星節(jié)點,全虛擬化提供了較好的隔離性和安全性。一個計算節(jié)點(Dell R730)可以仿真的LEO衛(wèi)星節(jié)點數(shù)量在45個左右,可以仿真的GSO或MEO衛(wèi)星節(jié)點數(shù)量在6個左右。
OpenStack云計算環(huán)境中基于qrouter實現(xiàn)3層網(wǎng)絡(luò)的互聯(lián)互通,其只支持靜態(tài)路由,并且需要跨宿主機通信。為提高衛(wèi)星鏈路的吞吐量,衛(wèi)星節(jié)點基于路由軟件 quagga實現(xiàn)動態(tài)路由協(xié)議,默認的路由協(xié)議為OSPF,可通過配置接口切換RIP或BGP協(xié)議。衛(wèi)星節(jié)點在啟動過程中對所接入的虛擬網(wǎng)絡(luò)進行探測,完成路由協(xié)議的配置和對整個衛(wèi)星網(wǎng)絡(luò)的路由學(xué)習(xí),無需手動配置,有利于衛(wèi)星網(wǎng)絡(luò)拓撲的快速部署。
圖2 天地一體化信息網(wǎng)絡(luò)仿真平臺
根據(jù) STK節(jié)點所構(gòu)建的衛(wèi)星網(wǎng)絡(luò)場景,基于XML形式化描述衛(wèi)星網(wǎng)絡(luò)拓撲,形成指定格式的配置文件,如圖3所示,標簽元素從左至右處于不同的層次結(jié)構(gòu),第一層根標簽為衛(wèi)星網(wǎng)絡(luò)拓撲,第二層并列的子標簽包含衛(wèi)星節(jié)點、星歷時間、衛(wèi)星鏈路,地面站節(jié)點與衛(wèi)星節(jié)點信息基本類似,衛(wèi)星節(jié)點中的3層子標簽包含衛(wèi)星名稱、軌道高度、路由協(xié)議、網(wǎng)卡集合,衛(wèi)星鏈路中的3層子標簽包含鏈路類型、源節(jié)點、目的節(jié)點、間歇性、帶寬、時延、分組丟失率,在天地一體化信息網(wǎng)絡(luò)仿真平臺中自動化部署衛(wèi)星網(wǎng)絡(luò)拓撲。
圖3 基于XML的衛(wèi)星網(wǎng)絡(luò)拓撲描述
在控制節(jié)點中,需先通過身份認證服務(wù)keystone識別用戶有無權(quán)限部署衛(wèi)星網(wǎng)絡(luò),再根據(jù)衛(wèi)星軌道高度從鏡像服務(wù)glance中獲取衛(wèi)星節(jié)點鏡像。然后,通過網(wǎng)絡(luò)服務(wù) neutron給衛(wèi)星節(jié)點分配端口、地址等信息。最后,計算服務(wù) nova會根據(jù)每一臺計算節(jié)點的CPU、內(nèi)存、磁盤容量等信息完成衛(wèi)星節(jié)點的資源調(diào)度與分配,對于需要使用GPU資源的衛(wèi)星節(jié)點,通過設(shè)備透傳(PCI passthrough)進行分配。
在計算節(jié)點中,通過衛(wèi)星鏈路仿真模塊,可以配置衛(wèi)星鏈路的固定帶寬,加載衛(wèi)星鏈路性能參數(shù),包含鏈路的間歇性、時延、誤碼率,實時檢測并動態(tài)切換衛(wèi)星鏈路狀態(tài)。
基于 OpenvSwitch(簡稱 OVS)軟件交換機構(gòu)建天地一體化信息網(wǎng)絡(luò),OVS交換機分為普通二層交換機和OpenFlow交換機,如圖4所示,天基骨干網(wǎng)、天基接入網(wǎng)、地基節(jié)點網(wǎng)連接至二層交換機,跨節(jié)點的通信由二層交換機連接至OpenFlow交換機,地面互聯(lián)網(wǎng)連接至底層物理交換機,實現(xiàn)天地一體化信息網(wǎng)絡(luò)的互聯(lián)互通。相對于傳統(tǒng)網(wǎng)橋LinuxBridge,OVS可基于通用路由封裝(GRE,generic routing encapsulation)實現(xiàn)overlay覆蓋網(wǎng)絡(luò),并且支持vlan和OpenFlow協(xié)議,可有效支撐衛(wèi)星鏈路的靈活構(gòu)建與重構(gòu)。
數(shù)據(jù)分組從衛(wèi)星節(jié)點發(fā)出后,先經(jīng)過一個普通的二層交換機,如果數(shù)據(jù)分組的目的地址為該二層交換機上的某一個衛(wèi)星節(jié)點,則直接轉(zhuǎn)發(fā)給該衛(wèi)星節(jié)點。如果該二層交換機上未能尋找到數(shù)據(jù)分組的目的地址,則轉(zhuǎn)發(fā)給OpenFlow交換機,其根據(jù)流表規(guī)則來匹配數(shù)據(jù)分組執(zhí)行相關(guān)操作,將數(shù)據(jù)分組的vlan標簽去除后,進行隧道封裝,數(shù)據(jù)分組獲得一個唯一的隧道號,經(jīng)過底層物理鏈路,到達遠端的OpenFlow交換機再進行拆分,打上vlan標簽后,轉(zhuǎn)發(fā)給二層交換機,最終傳輸?shù)叫l(wèi)星節(jié)點。對于流表的生成、下發(fā)和維護交由 SDN控制器處理,在OpenStack中, neutron充當(dāng)默認的控制器角色。
針對衛(wèi)星鏈路的間歇性仿真,需要實時檢測并動態(tài)切換衛(wèi)星節(jié)點到 OVS的鏈路狀態(tài),鏈路狀態(tài)包含正常通信狀態(tài)、硬中斷狀態(tài)、軟中斷狀態(tài),初始鏈路狀態(tài)由STK節(jié)點中的衛(wèi)星網(wǎng)絡(luò)場景所決定,后續(xù)鏈路狀態(tài)由鏈路標識符所決定。衛(wèi)星鏈路間歇性仿真包含鏈路計算模塊、鏈路檢測模塊、鏈路切換模塊,如圖5所示。
圖4 基于SDN的天地一體化信息網(wǎng)絡(luò)
圖5 衛(wèi)星鏈路間歇性仿真
鏈路計算模塊主要由仿真平臺中的 STK節(jié)點負責(zé),根據(jù)2.1節(jié)中衛(wèi)星鏈路可以通信的約束條件,計算衛(wèi)星鏈路通信的開始時間、結(jié)束時間,仿真平臺中的計算節(jié)點計算出衛(wèi)星鏈路的持續(xù)通信時間,并存放到相應(yīng)的日志文件中。
鏈路檢測模塊主要基于網(wǎng)絡(luò)時間協(xié)議(NTP,network time protocol)將控制節(jié)點作為統(tǒng)一的時間軸,檢測當(dāng)前仿真時間是否在星歷時間范圍內(nèi),如果超出星歷時間范圍,則會自動結(jié)束鏈路間歇性仿真,如果在星歷時間內(nèi),則繼續(xù)根據(jù)該時間是否在鏈路計算模塊的時間范圍內(nèi)來設(shè)置鏈路標識符。鏈路標識符一方面可以表明當(dāng)前鏈路狀態(tài),另一方面可以避免對鏈路的頻繁操作,減少系統(tǒng)的性能開銷。
鏈路切換模塊主要完成鏈路正常通信狀態(tài)到中斷狀態(tài)間的相互切換操作,需要與虛擬機監(jiān)視器VMM建立連接,獲取衛(wèi)星節(jié)點的虛擬網(wǎng)卡對信息,虛擬網(wǎng)卡對是指衛(wèi)星節(jié)點的虛擬網(wǎng)卡連接至 OVS的tap設(shè)備,包含了地址信息、vlan標簽、內(nèi)部端口in_port等信息。鏈路從正常通信狀態(tài)切換到硬中斷狀態(tài)時,通過del-port接口斷開衛(wèi)星節(jié)點到OVS的鏈路,對應(yīng)的vlan標簽、流表規(guī)則等會被級聯(lián)刪除,鏈路將無法傳輸任何數(shù)據(jù)分組,當(dāng)鏈路從硬中斷狀態(tài)切換回正常通信狀態(tài)時,除了需要通過add-port接口重新建立鏈路,還需要通過 add-flow接口建立匹配ARP和IP分組的流表規(guī)則,主要包含規(guī)則1~規(guī)則4,用于檢測數(shù)據(jù)分組中地址信息與衛(wèi)星節(jié)點地址的一致性。鏈路從正常通信狀態(tài)切換到軟中斷狀態(tài)時,通過add-flow接口建立丟棄鏈路中指定數(shù)據(jù)分組的流表規(guī)則5,圖5中衛(wèi)星sat1和sat2間建立軟中斷時,該條鏈路無法傳輸衛(wèi)星 sat1到sat2的數(shù)據(jù)分組,但仍然可以傳輸衛(wèi)星sat1到sat3的數(shù)據(jù)分組,當(dāng)鏈路從軟中斷狀態(tài)切換回正常通信狀態(tài)時,通過del-flows接口刪除與源、目的地址相對應(yīng)的報文丟棄流表規(guī)則。
規(guī)則1 table=0,priority=10,dl_type=0x0806,in_port=IN_PORT,actions=resubmit(,24)
規(guī)則2 table=0,priority=9,in_port=IN_PORT,actions=resubmit(,25)
規(guī)則3 table=24,priority=2,dl_type=0x0806,in_port=IN_PORT,arp_spa=IP_ADDR,actions=resubmit(,25)
規(guī)則4 table=25,priority=2,in_port=IN_PORT,dl_src=SRC_MAC,actions=normal
規(guī)則5 table=0,priority=8,dl_src=SRC_MAC,dl_dst=DST_MAC,actions=drop
上述規(guī)則中table表示流表編號,priority表示優(yōu)先級,dl_type表示協(xié)議類型,arp_spa表示源IP地址,dl_src表示源 MAC地址,dl_dst表示目的MAC地址,actions表示具體的動作,resubmit為跳轉(zhuǎn)動作,normal為正常轉(zhuǎn)發(fā)動作,drop為丟棄動作。
針對衛(wèi)星鏈路的時延仿真,需要實時檢測并匹配衛(wèi)星鏈路的距離,計算出當(dāng)前鏈路時延后,動態(tài)切換鏈路時延,其仿真流程如圖6所示。
圖6 衛(wèi)星鏈路時延仿真流程
鏈路計算由 STK節(jié)點根據(jù)衛(wèi)星節(jié)點的空間幾何位置關(guān)系,計算出衛(wèi)星鏈路的距離,距離長度具有周期性。當(dāng)前鏈路可通是衛(wèi)星鏈路時延仿真的必要條件,與4.1節(jié)中的鏈路檢測模塊一致。
當(dāng)前鏈路長度 Dcur由仿真時間 Temu與鏈路距離所對應(yīng)的時間Tn所決定,根據(jù)兩者的差值Δt進行匹配,匹配規(guī)則為
檢測鏈路是否設(shè)置時延主要是為了在衛(wèi)星節(jié)點的虛擬網(wǎng)卡上建立隊列,緩存數(shù)據(jù)分組,通過輪詢的方式發(fā)送數(shù)據(jù)分組,假設(shè)數(shù)據(jù)分組入隊的時刻為 Tarrive,則實際數(shù)據(jù)分組的發(fā)送時刻為
其中, tphy為底層物理鏈路的時延,該時延由衛(wèi)星節(jié)點跨計算節(jié)點通信所引入,可通過數(shù)據(jù)分組攔截與重構(gòu)計算所得, tdeviation為鏈路時延切換所造成的誤差。如果當(dāng)前衛(wèi)星鏈路已經(jīng)設(shè)置過時延,則直接切換時延 td即可,無需再次建立隊列。
針對衛(wèi)星鏈路的誤碼率仿真,其仿真流程與時延仿真相似,鏈路計算根據(jù)2.3節(jié)中影響誤碼率的相關(guān)參數(shù),可將鏈路誤碼率控制在指定的閾值范圍內(nèi),獲取衛(wèi)星鏈路誤碼率參數(shù),根據(jù)誤碼率與分組丟失率的轉(zhuǎn)換關(guān)系,計算出衛(wèi)星鏈路的分組丟失率為
其中,L為數(shù)據(jù)分組的長度,BER為鏈路誤碼率。在衛(wèi)星節(jié)點的虛擬網(wǎng)卡上建立隊列,數(shù)據(jù)分組入隊后,通過隨機損壞一定數(shù)量的數(shù)據(jù)分組來實現(xiàn)衛(wèi)星鏈路的誤碼率仿真,如果當(dāng)前鏈路已經(jīng)設(shè)置時延或分組丟失率,則不需要再次建立隊列,假設(shè)衛(wèi)星節(jié)點間傳輸?shù)臄?shù)據(jù)分組總數(shù)為 Ntotal,損壞的分組數(shù)為則該條鏈路的分組丟失率為
其中, Pphy為底層物理鏈路的分組丟失率,通過數(shù)據(jù)分組計數(shù)動態(tài)感知物理鏈路的丟失分組,對誤碼率仿真進行補償,實現(xiàn)物理鏈路的分組丟失率檢測主要包含數(shù)據(jù)分組構(gòu)造、數(shù)據(jù)分組收發(fā)、數(shù)據(jù)分組解析。數(shù)據(jù)分組構(gòu)造按照IP分組格式進行構(gòu)造,使用UDP協(xié)議進行傳輸,涉及UDP分組頭的構(gòu)造、IP分組頭的構(gòu)造、數(shù)據(jù)部分的構(gòu)造,UDP分組頭需要指明計算節(jié)點在物理鏈路上通信的源、目的端口,IP分組頭需要指明物理鏈路所連接的源、目的IP地址、生存時間、傳輸協(xié)議類型,計算出數(shù)據(jù)分組的長度,數(shù)據(jù)部分添加標識字段表明當(dāng)前是構(gòu)造的第幾個數(shù)據(jù)分組。數(shù)據(jù)分組發(fā)送通過 OpenFlow交換機連接的物理網(wǎng)卡進行發(fā)送,數(shù)據(jù)分組接收根據(jù)過濾規(guī)則在接收端的物理網(wǎng)卡上進行嗅探,過濾規(guī)則為UDP協(xié)議和源IP地址。數(shù)據(jù)分組解析按照IP分組格式對數(shù)據(jù)分組進行解析,獲取數(shù)據(jù)分組的數(shù)據(jù)部分字段,通過記錄前一個和當(dāng)前數(shù)據(jù)分組的標識字段,統(tǒng)計出物理鏈路丟失分組的數(shù)量,根據(jù)數(shù)據(jù)分組構(gòu)造的總數(shù),計算出物理鏈路的分組丟失率。
衛(wèi)星鏈路的帶寬仿真與間歇性、時延、分組丟失率仿真有所不同,其不具備周期性,通常是一個固定的數(shù)值,也就不需要動態(tài)切換,但是需要能夠支持差異化的配置,滿足天地一體化信息網(wǎng)絡(luò)中骨干網(wǎng)絡(luò)、接入網(wǎng)絡(luò)、終端用戶的帶寬需求。
基于OVS的QoS機制實現(xiàn)衛(wèi)星鏈路的帶寬仿真,屏蔽不同軌道高度下衛(wèi)星節(jié)點的異構(gòu)性,提供管制 Policing和整形 Shaping這 2種限速策略,Policing控制虛擬網(wǎng)卡的最大數(shù)據(jù)分組接收速率和突發(fā)流量大小,Shaping采用隊列緩存和調(diào)度數(shù)據(jù)分組,2種策略相比,前者的實現(xiàn)方式更為簡單,后者的精確性更高。從衛(wèi)星鏈路帶寬仿真的逼真度考慮,主要采用Shaping策略,其實現(xiàn)方式如圖7所示,首先,在衛(wèi)星節(jié)點的虛擬網(wǎng)卡對tap設(shè)備上建立網(wǎng)卡根隊列;然后,在根隊列上建立根分類,并設(shè)置衛(wèi)星鏈路的最大帶寬 Bmax;隨后,在根分類上劃分出多個子分類,設(shè)置子分類上衛(wèi)星鏈路的帶寬 Bi,其需要滿足式(11)的約束條件;最后,為每個子分類上的衛(wèi)星節(jié)點添加流表規(guī)則,指明衛(wèi)星節(jié)點的地址、端口,執(zhí)行“enqueue:port:i”排隊動作,port為tap設(shè)備在OVS上的內(nèi)部端口號,i為子分類號。
圖7 基于Shaping策略的衛(wèi)星鏈路帶寬仿真實現(xiàn)
在天地一體化信息網(wǎng)絡(luò)仿真平臺的 STK節(jié)點中構(gòu)建如圖8所示的GSO+LEO衛(wèi)星網(wǎng)絡(luò)場景,包含5顆GEO衛(wèi)星(GEO11-GEO15),一個軌道平面,3顆IGSO衛(wèi)星(IGSO11-IGSO13),3個軌道平面,48顆LEO衛(wèi)星(LEO11-LEO16、LEO21-LEO26、LEO31-LEO36、LEO41-LEO46、LEO51-LEO56、LEO61-LEO66、LEO71-LEO76、LEO81-LEO86)組成的全球星,8個軌道平面,軌道參數(shù)如表1所示,一個位于中國北京的地面站,經(jīng)度為116.228°,緯度為40.117 2°,高度為38 m,發(fā)射機、接收機的參數(shù)如表2和表3所示,星歷時間為7 Mar 2018 00:00:00.000到8 Mar 2018 00:00:00.000,步長為60 s。
圖8 GSO+LEO衛(wèi)星網(wǎng)絡(luò)場景
表1 衛(wèi)星軌道參數(shù)
表2 發(fā)射機參數(shù)
表3 接收機參數(shù)
在仿真平臺中,控制節(jié)點加載圖8中的衛(wèi)星網(wǎng)絡(luò)場景,自動化部署虛擬衛(wèi)星網(wǎng)絡(luò)拓撲,計算節(jié)點加載鏈路持續(xù)通信時間、鏈路距離、鏈路誤碼率數(shù)據(jù),開啟衛(wèi)星鏈路仿真模塊。
以衛(wèi)星節(jié)點GEO15與LEO71的星間鏈路、衛(wèi)星節(jié)點LEO71與地面站節(jié)點BJStation的星地鏈路為例,測試鏈路連通,并記錄鏈路持續(xù)通信時間,其與STK計算值對比,如圖9所示。
從圖9可以看出,星間鏈路間歇性仿真的最大誤差為2.251 s,星地鏈路間歇性仿真的最大誤差為1.932 s,星間鏈路的誤差略高于星地鏈路,都小于文獻[14]中間歇性仿真的最大誤差。該誤差主要來源在切換鏈路狀態(tài)時存在著一定的時間損耗,基本可以滿足衛(wèi)星鏈路間歇性仿真的需求。
以衛(wèi)星節(jié)點GEO15與地面站節(jié)點BJStation第一次建立通信為例,測試鏈路時延,星間鏈路、星地鏈路時延變化如圖10所示。
從圖 10可以看出,衛(wèi)星鏈路時延仿真的最大誤差為0.44 ms,整體誤差在0.4 ms周圍波動,小于文獻[15]中衛(wèi)星鏈路時延仿真誤差。該誤差主要來源衛(wèi)星節(jié)點的處理時延和衛(wèi)星鏈路的固定時延損耗。默認的時延仿真步長為60 s,鏈路實際時延呈階梯形動態(tài)變化,當(dāng)仿真步長為30 s時,匹配的鏈路長度更加精確,能夠有效提高衛(wèi)星鏈路仿真的逼真度。仿真步長越小,時延變化曲線越平滑,適用于多粒度衛(wèi)星網(wǎng)絡(luò)場景。
圖9 衛(wèi)星鏈路持續(xù)通信時間
以衛(wèi)星節(jié)點GEO15與地面站節(jié)點BJStation第一次建立通信為例,使用 Iperf網(wǎng)絡(luò)性能測試工具測試衛(wèi)星鏈路分組丟失率,其發(fā)送數(shù)據(jù)分組的速度為2 Mbit/s,數(shù)據(jù)分組的長度為100 B,總共發(fā)送的分組數(shù)量為 150 000,星間鏈路、星地鏈路分組丟失數(shù)量變化如圖11所示。
從圖11可以看出,平均分組丟失數(shù)量誤差約為10個,利用統(tǒng)計的方式來定義分組丟失這一隨機的過程具有較好的準確性,優(yōu)于文獻[10]中基于dummynet的靜態(tài)分組丟失率仿真,衛(wèi)星鏈路實際分組丟失數(shù)量呈階梯形動態(tài)變化,受鏈路信噪比變化的影響,當(dāng)仿真步長越小時,實際分組丟失數(shù)量越接近理論曲線,匹配的鏈路誤碼率越精確,逼真度就越高。
圖10 衛(wèi)星鏈路時延變化
圖11 衛(wèi)星鏈路分組丟失數(shù)量變化
將衛(wèi)星節(jié)點GEO15到LEO71、LEO43的下行星間鏈路最大帶寬設(shè)置為50 Mbit/s,分配給LEO71、LEO43的鏈路帶寬為20 Mbit/s、30 Mbit/s。地面站節(jié)點BJStation到LEO71、LEO43的上行星地鏈路最大帶寬設(shè)置為10 Mbit/s,分配給LEO71、LEO43的鏈路帶寬為1 Mbit/s、9 Mbit/s,使用Netperf網(wǎng)絡(luò)性能測試工具并發(fā)測試衛(wèi)星鏈路帶寬,星間鏈路、星地鏈路帶寬測試結(jié)果如圖12所示。
圖12 衛(wèi)星鏈路帶寬測試結(jié)果
從圖 12可以看出,星間鏈路 GEO15-LEO71與GEO15-LEO43的帶寬比值近似于2:3,星地鏈路BJStation-LEO71與BJStation-LEO43的帶寬比值近似于 1:9,符合預(yù)期的鏈路帶寬分配,星間鏈路平均帶寬總和為50.25 Mbit/s,星地鏈路平均帶寬總和為 9.91 Mbit/s,總體誤差小于文獻[15]中衛(wèi)星鏈路帶寬仿真誤差。
天地一體化信息網(wǎng)絡(luò)是未來的發(fā)展趨勢,其各種技術(shù)方案必須經(jīng)過嚴格的驗證與評估。本文提出了一種云計算環(huán)境中衛(wèi)星鏈路仿真方法,對衛(wèi)星鏈路的性能參數(shù)進行了分析,給出了詳細的計算模型與方法,融合OpenStack和STK構(gòu)建天
地一體化信息網(wǎng)絡(luò)仿真平臺,基于SDN技術(shù)仿真衛(wèi)星鏈路,實現(xiàn)衛(wèi)星網(wǎng)絡(luò)場景的自動化部署,不同軌道高度的衛(wèi)星節(jié)點具備動態(tài)路由學(xué)習(xí)能力,衛(wèi)星鏈路性能參數(shù)可動態(tài)實時切換。實驗結(jié)果表明,本文方法能夠準確地對衛(wèi)星鏈路性能參數(shù)進行仿真,仿真粒度可按需求靈活選擇,不僅有效解決了衛(wèi)星鏈路仿真的逼真性和周期性問題,并且還能支撐實際應(yīng)用部署。
參考文獻:
[1]李鳳華,殷麗華,吳巍,等. 天地一體化信息網(wǎng)絡(luò)安全保障技術(shù)研究進展及發(fā)展趨勢[J]. 通信學(xué)報,2016,37(11): 156-168.LI F H,YIN L H,WU W,et al. Research status and development trends of security assurance for space-ground integration information network[J]. Journal on Communications,2016,37(11): 156-168.
[2]張乃通,趙康健,劉功亮. 對建設(shè)我國“天地一體化信息網(wǎng)絡(luò)”的思考[J]. 中國電子科學(xué)研究院學(xué)報,2015,10(3): 223-230.ZHANG N T,ZHAO K L,LIU G L. Thought on constructing the integrated space-terrestrial information network[J]. Journal of CAEIT,2015,10(3): 223-230.
[3]LI T,ZHOU H,LUO H,et al. Using SDN and NFV to implement satellite communication networks[C]//2016 International Conference on Networking and Network Applications (NaNA). 2016: 131-134.
[4]BAO J,ZHAO B,YU W,et al. OpenSAN: a software-defined satellite network architecture[C]//ACM SIGCOMM Computer Communication Review. 2014: 347-348.
[5]王亮,張乃通,劉曉峰. 低軌衛(wèi)星通信網(wǎng)絡(luò)星間鏈路幾何參數(shù)動態(tài)特性[J]. 哈爾濱工業(yè)大學(xué)學(xué)報,2003,35(2): 184-187.WANG L,ZHANG N T,LIU X F. Dynamic characters of inter-satellite links in LEO networks[J]. Journal of Harbin Institute of Technology,2003,35(2): 184-187.
[6]尹艷平,劉波,趙寶康,等. 星地鏈路建模與分析[J]. 小型微型計算機系統(tǒng),2012,33(10): 21-23.YIN Y P,LIU B,ZHAO B K,et al. Modeling and analysis of satellite-ground link[J]. Journal of Chinese Computer Systems,2012,33 (10): 21-23.
[7]余騰,劉志敏. 基于 NS-3 的衛(wèi)星鏈路 TCP 仿真研究[J]. 計算機工程與應(yīng)用,2015,51(22):90-94.YU T,LIU Z M. Study on TCP simulation of satellite link based on NS-3[J]. Computer Engineering and Applications,2015,51(22):90-94.
[8]李博,葉暉,張宏偉,等. 基于 STK/Matlab 接口的衛(wèi)星通信鏈路研究[J]. 無線電通信技術(shù),2016,42(6) : 37-40.LI B,YE H,ZHANG H W,et al. Dynamical satellite link budget analysis based on STK/Matlab interface[J]. Radio communication technology,2016,42 (6): 37-40.
[9]RIZZO L,LETTIERI G,MAFFIONE V. Very high speed link emulation with TLEM[C]// 2016 IEEE International Symposium on Local and Metropolitan Area Networks (LANMAN). 2016: 1-6.
[10]BECKE M,DREIBHOLZ T,RATHGEB E P,et al. Link emulation on the data link layer in a Linux-based future internet testbed environment[C]//The 10th International Conference on Networks (ICN). 2011: 92-98.
[11]PéRENNOU T,BOUABDALLAH A,BRUNSTROM A,et al.IP-level satellite link emulation with KauNet[C]// International Workshop on Satellite and Space Communications. 2009: 349-353.
[12]LI H,ZHOU H,ZHANG H,et al. EmuStack: an openstack-based DTN network emulation platform[C]// 2016 International Conference on Networking and Network Applications (NaNA). 2016: 387-392.
[13]QI J,LI Z,LIU G. Research on coverage and link of multi-layer Satellite Network based on STK[C]//2015 10th International Conference on Communications and Networking in China (ChinaCom). 2015: 410-415.
[14]丁紅勇. 衛(wèi)星通信鏈路連通性仿真模型設(shè)計[J]. 系統(tǒng)仿真學(xué)報,2007,19(4): 713-715.DING H Y. Design of connectivity simulation model of satellite communication link[J]. Journal of System Simulation,2007,19(4):713-715.
[15]陶靜,王寶生,王濤,等. 分布式衛(wèi)星鏈路仿真系統(tǒng)的設(shè)計與實現(xiàn)[J]. 計算機工程與科學(xué),2009,31(11):145-148,152.TAO J,WANG B S,WANG T,et al. Research and implementation of a distributed satellite link simulation system[J]. Computer Engineering and Science,2009,31 (11): 145-148,152.