仝亞光, 崔蘇雯, 梁 俊, 朱子行(.空軍工程大學(xué)電訊工程學(xué)院,陜西西安70077;.海軍司令部,北京0007)
臨近空間通常是指距地表20~100km處的空域,其下面的空域(20km以下)是傳統(tǒng)航空器的主要活動(dòng)空間,其上面的空域(100km以上)是航天器的主要運(yùn)行空間[1]。隨著技術(shù)的進(jìn)步和資源的緊缺,近年來(lái)臨近空間通信網(wǎng)逐漸成為各國(guó)研究的熱點(diǎn)。然而目前對(duì)臨近空間通信網(wǎng)MAC協(xié)議的研究并不多,且僅有的研究主要是針對(duì)固定終端或是固定業(yè)務(wù)[2-6],還沒(méi)有專門(mén)針對(duì)移動(dòng)終端的臨近空間通信網(wǎng)的MAC協(xié)議進(jìn)行的研究。因此,本文結(jié)合隨機(jī)分配和按需分配兩種協(xié)議各自的特點(diǎn),提出了一種基于隨機(jī)預(yù)約的按需分配MAC協(xié)議,從而比較適合于移動(dòng)終端對(duì)臨近空間通信網(wǎng)的接入要求。
基于隨機(jī)預(yù)約的 DAMA協(xié)議是一種通過(guò)隨機(jī)競(jìng)爭(zhēng)方式進(jìn)行預(yù)約的按需分配接入方式,各終端站以S-ALOHA隨機(jī)預(yù)約的方式動(dòng)態(tài)地向臨近空間平臺(tái)申請(qǐng)上行鏈路信道;臨近空間平臺(tái)上存有時(shí)隙分配表,在執(zhí)行完時(shí)隙分配算法后通過(guò)下行鏈路向各個(gè)終端站廣播時(shí)隙分配信息,這樣各終端站才能在屬于自己的發(fā)送時(shí)隙發(fā)送數(shù)據(jù)包[7]。
該協(xié)議時(shí)隙分配算法的工作流程如下:
(1)終端站在預(yù)約時(shí)隙通過(guò)上行鏈路向臨近空間平臺(tái)發(fā)送預(yù)約包,臨近空間平臺(tái)收到預(yù)約包后從中獲得該終端站的預(yù)約信息,如果預(yù)約時(shí)隙數(shù)大于0,則將預(yù)約信息插入時(shí)隙分配表中。
(2)臨近空間平臺(tái)判斷該終端站請(qǐng)求分配的時(shí)隙數(shù)是否大于一幀內(nèi)總的數(shù)據(jù)時(shí)隙個(gè)數(shù),如果沒(méi)有超出本幀的時(shí)隙個(gè)數(shù),則將本幀內(nèi)的剩余時(shí)隙分配給該終端站;如果超出了本幀的時(shí)隙個(gè)數(shù),則在將本幀的剩余時(shí)隙分配完后再將下一幀的部分時(shí)隙分配給該終端站。
(3)臨近空間平臺(tái)通過(guò)下行鏈路發(fā)送時(shí)隙分配包告知各終端站時(shí)隙分配情況,以便使各終端站能在規(guī)定的數(shù)據(jù)時(shí)隙發(fā)送數(shù)據(jù)包。
本文利用OPNET軟件建立了基于移動(dòng)終端的臨近空間通信網(wǎng)仿真模型。該軟件常用的編輯器主要有項(xiàng)目編輯器、節(jié)點(diǎn)模型編輯器和進(jìn)程模型編輯器,相應(yīng)的要建立網(wǎng)絡(luò)模型、節(jié)點(diǎn)模型和進(jìn)程模型[8]。
由于本仿真涉及的通信節(jié)點(diǎn)都在同一個(gè)子網(wǎng)中,不存在子網(wǎng)之間的嵌套關(guān)系,且各通信節(jié)點(diǎn)通過(guò)無(wú)線鏈路進(jìn)行通信,因此網(wǎng)絡(luò)模型就是一個(gè)無(wú)線子網(wǎng),如圖1所示。臨近空間平臺(tái)靜止于 100km的高空,20個(gè)移動(dòng)終端站隨機(jī)分布在700km×700km的空域中。每個(gè)終端在全網(wǎng)中都有唯一的平臺(tái)標(biāo)識(shí)號(hào),通信終端的網(wǎng)絡(luò)地址與平臺(tái)標(biāo)識(shí)號(hào)相對(duì)應(yīng),確保了網(wǎng)絡(luò)地址的唯一性。同時(shí)假定各節(jié)點(diǎn)的發(fā)射功率足夠大,任意節(jié)點(diǎn)都能與臨近空間平臺(tái)進(jìn)行通信。
圖1 網(wǎng)絡(luò)模型
2.2.1 移動(dòng)終端節(jié)點(diǎn)模型
移動(dòng)終端節(jié)點(diǎn)模型由源模塊gen、發(fā)送處理模塊tx_proc、無(wú)線發(fā)射機(jī)模塊r_tx、接收處理模塊rx_proc、無(wú)線接收機(jī)模塊r_rx和天線模塊ant等6部分組成。主要功能為將gen模塊產(chǎn)生的數(shù)據(jù)分組和tx_proc模塊產(chǎn)生的預(yù)約請(qǐng)求分組發(fā)送到無(wú)線發(fā)射機(jī)r_tx模塊,調(diào)制后通過(guò)天線ant模塊發(fā)送到臨近空間平臺(tái)。與此同時(shí)接收臨近空間平臺(tái)廣播的時(shí)隙分配分組和數(shù)據(jù)分組,分別送到tx_proc模塊和rx_proc模塊以決定是否發(fā)送數(shù)據(jù)分組或?qū)W(wǎng)絡(luò)的端到端時(shí)延和分組數(shù)進(jìn)行統(tǒng)計(jì)。
2.2.2 臨近空間平臺(tái)節(jié)點(diǎn)模型
臨近空間平臺(tái)節(jié)點(diǎn)模型由一個(gè)全向天線ant模塊、一個(gè)無(wú)線接收機(jī)r_rx模塊、一個(gè)無(wú)線發(fā)射機(jī)r_tx模塊和一個(gè)具有時(shí)隙分配和信息轉(zhuǎn)發(fā)功能的near_space模塊組成。主要功能為接收移動(dòng)終端節(jié)點(diǎn)發(fā)送的預(yù)約請(qǐng)求分組和數(shù)據(jù)分組,并通過(guò)時(shí)隙分配算法,以廣播的形式將時(shí)隙分配幀和數(shù)據(jù)分組發(fā)送給其覆蓋區(qū)域內(nèi)的所有節(jié)點(diǎn)。
由于進(jìn)程較多,篇幅所限,只對(duì)實(shí)現(xiàn)協(xié)議的關(guān)鍵進(jìn)程進(jìn)行闡述,主要有移動(dòng)終端節(jié)點(diǎn)中的發(fā)送處理模塊tx_proc的進(jìn)程模型以及臨近空間平臺(tái)near_space模塊的進(jìn)程模型。
2.3.1 發(fā)送處理模塊tx_proc的進(jìn)程模型
發(fā)送處理模塊tx_proc的進(jìn)程模型由init、idle、queue、slotassign、data、req這6種轉(zhuǎn)移狀態(tài)和相關(guān)轉(zhuǎn)移連接線組成。主要功能有接收gen模塊產(chǎn)生的數(shù)據(jù)分組、根據(jù)要發(fā)送的數(shù)據(jù)分組數(shù)量生成預(yù)約分組、根據(jù)時(shí)隙分配列表發(fā)送數(shù)據(jù)分組等。
仿真開(kāi)始時(shí),進(jìn)程首先處于init狀態(tài),初始化仿真參數(shù),獲取上行鏈路幀長(zhǎng)、傳輸速率、帶寬以及組成上行幀結(jié)構(gòu)的預(yù)約和固定時(shí)隙數(shù)量等仿真屬性值,同時(shí)對(duì)各個(gè)統(tǒng)計(jì)量進(jìn)行聲明。
idle狀態(tài)是一個(gè)過(guò)渡狀態(tài),其中沒(méi)有任何代碼,主要作用是作為連接其他各個(gè)狀態(tài)的樞紐,從任一狀態(tài)轉(zhuǎn)移到另一個(gè)狀態(tài)幾乎都需要先經(jīng)過(guò)idle狀態(tài),這樣就避免了狀態(tài)直連而導(dǎo)致的連接線的可視復(fù)雜性。
queue狀態(tài)由流中斷PKT_ARRVL觸發(fā),獲取輸入流的數(shù)據(jù)包,并插入子隊(duì)列中。
slotassign狀態(tài)由遠(yuǎn)程中斷RX_ALLOC觸發(fā),獲得遠(yuǎn)程中斷的接口控制信息ICI的指針,判斷是否為本節(jié)點(diǎn)信息,如果是則根據(jù)所分配時(shí)隙的幀數(shù)和時(shí)隙數(shù),計(jì)算下一次數(shù)據(jù)包發(fā)送的時(shí)間,并預(yù)設(shè)中斷時(shí)間。
在data狀態(tài)中,由自中斷TX_PKT觸發(fā)后,將位于子隊(duì)列頭部的數(shù)據(jù)包取出并發(fā)送,同時(shí)將隊(duì)列時(shí)延寫(xiě)入統(tǒng)計(jì)量。
req狀態(tài)是體現(xiàn)低優(yōu)先級(jí)節(jié)點(diǎn)預(yù)約方式的核心部分,由自中斷TX_RES觸發(fā)后,根據(jù)隊(duì)列中等待發(fā)送的數(shù)據(jù)包個(gè)數(shù),隨機(jī)選擇競(jìng)爭(zhēng)預(yù)約時(shí)隙發(fā)送。具體由以下代碼實(shí)現(xiàn):
/*獲取當(dāng)前仿真時(shí)間*/
current_time=op_sim_time();
/*生成隨機(jī)時(shí)隙序號(hào)*/
num_res=(int)rand()%numnodes;
/*計(jì)算隨機(jī)預(yù)約時(shí)間和下一幀開(kāi)始時(shí)間*/
restime=k*frameduration+uldataslots*uldataslotduration+num_res*ulresslotduration;
restime2=k*frameduration+uldataslots*uldataslotduration+numnodes*ulresslotduration;
/*隨機(jī)預(yù)約時(shí)隙到來(lái)(預(yù)留的預(yù)約時(shí)間與當(dāng)前仿真時(shí)間之差很小)*/
if(fabs(restime-current_time)<0.00000001){
/*獲取隊(duì)列中等待發(fā)送的數(shù)據(jù)包數(shù)量*/
numpktsqueued=(int)op_subq_stat(0,OPC_QSTAT_PKSIZE);
/*如果隊(duì)列中有等待發(fā)送的數(shù)據(jù)包*/
if(numpktsqueued>0) {
/*需要預(yù)約的數(shù)據(jù)包數(shù)量=等待發(fā)送的總數(shù)據(jù)包數(shù)量-已經(jīng)預(yù)約成功但未發(fā)送的數(shù)據(jù)包數(shù)量*/
numreqslots=numpktsqueued-numawaitedslots;
/*創(chuàng)建上行鏈路預(yù)約包*/
pktptr=op_pk_create_fmt("damapkt_ulres");
/*將本節(jié)點(diǎn)ID寫(xiě)入預(yù)約包*/
op_pk_nfd_set(pktptr,"src_id",node_id);
/*將需要預(yù)約的數(shù)據(jù)包數(shù)量寫(xiě)入預(yù)約包*/
op_pk_nfd_set(pktptr,"req_slots",numreqslots);
/*發(fā)送預(yù)約包*/
op_pk_send(pktptr,OUT_STRM);
}
}
/*本幀時(shí)隙結(jié)束*/
if(fabs(restime2-current_time)<0.00000001){
/*幀序號(hào)加1*/
k=k+1;
}
2.3.2 near_space模塊的進(jìn)程模型
臨近空間平臺(tái)near_space模塊主進(jìn)程模型由init、allocate、tx_slotassign、end這4種轉(zhuǎn)移狀態(tài)和相關(guān)轉(zhuǎn)移連接線組成。主要功能有接收上行鏈路的預(yù)約包和數(shù)據(jù)包、完成預(yù)約時(shí)隙分配、向下行鏈路發(fā)送時(shí)隙分配包和數(shù)據(jù)包等。為有效使用內(nèi)存,在設(shè)計(jì)時(shí)采用進(jìn)程調(diào)用的方法進(jìn)行。在init狀態(tài),初始化仿真參數(shù),獲取下行鏈路幀長(zhǎng)、傳輸速率、帶寬以及組成上行鏈路幀結(jié)構(gòu)的預(yù)約和固定時(shí)隙數(shù)量等仿真屬性值,給預(yù)約分配列表分配內(nèi)存,并設(shè)置調(diào)用子進(jìn)程的代碼。在allocate狀態(tài)中,獲取預(yù)約包隊(duì)列長(zhǎng)度,判斷每一幀預(yù)約區(qū)間是否結(jié)束。tx_slotassign狀態(tài)是預(yù)約時(shí)隙的分配階段,首先從預(yù)約分配表中獲取預(yù)約信息(預(yù)約時(shí)隙個(gè)數(shù)、預(yù)約節(jié)點(diǎn)ID等),然后創(chuàng)建下行時(shí)隙分配幀,將預(yù)約信息寫(xiě)入下行幀中,最后為下行幀預(yù)設(shè)中斷,并發(fā)送。end狀態(tài)結(jié)束仿真,并統(tǒng)計(jì)。
near_space模塊的子進(jìn)程模型由init、idle、receive這 3 種轉(zhuǎn)移狀態(tài)和相關(guān)轉(zhuǎn)移連接線組成。首先,在init狀態(tài)中完成變量初始化,并由觸發(fā)中斷直接進(jìn)入idle狀態(tài);idle狀態(tài)屬于非強(qiáng)制狀態(tài),內(nèi)部沒(méi)有代碼,各個(gè)強(qiáng)制狀態(tài)執(zhí)行完畢后都回到這個(gè)狀態(tài),在由流中斷RX_PKT觸發(fā)后進(jìn)入receive狀態(tài);在receive狀態(tài)中,判斷接收的上行包格式,如果是預(yù)約包則將預(yù)約信息插入時(shí)隙分配列表,如果是數(shù)據(jù)包則直接轉(zhuǎn)發(fā)。
本仿真采用衛(wèi)星通信系統(tǒng)中常用的C波段,具體仿真環(huán)境配置如表1所示。
表1 仿真環(huán)境
平均時(shí)延和吞吐量是衡量網(wǎng)絡(luò)性能的重要指標(biāo),也是網(wǎng)絡(luò)中關(guān)于各種業(yè)務(wù)服務(wù)質(zhì)量的主要評(píng)估參數(shù)。因此,為實(shí)現(xiàn)網(wǎng)絡(luò)的最佳性能,在仿真過(guò)程中,將平均時(shí)延和吞吐量作為統(tǒng)計(jì)量,分別選取0.024s、0.048s、0.072s和0.096s這4個(gè)時(shí)幀長(zhǎng)度,分析不同時(shí)幀長(zhǎng)度對(duì)平均時(shí)延和吞吐量的影響。
在上述環(huán)境下對(duì)該網(wǎng)絡(luò)進(jìn)行了仿真,對(duì)平均時(shí)延統(tǒng)計(jì)量結(jié)果進(jìn)行了收集,得到網(wǎng)絡(luò)負(fù)載與平均時(shí)延的關(guān)系圖,如圖2~圖5所示??梢钥闯?,網(wǎng)絡(luò)的負(fù)載越大,平均時(shí)延越大;相同負(fù)載的情況下,選取的時(shí)幀長(zhǎng)度越大,平均時(shí)延也越大。
圖2 幀長(zhǎng)為0.024s時(shí)的平均時(shí)延曲線
圖3 幀長(zhǎng)為0.048s時(shí)的平均時(shí)延曲線
圖4 幀長(zhǎng)為0.072s時(shí)的平均時(shí)延曲線
圖5 幀長(zhǎng)為0.096s時(shí)的平均時(shí)延曲線
3.2.2 吞吐量
為了比較不同業(yè)務(wù)量的情況下時(shí)幀長(zhǎng)度對(duì)平均時(shí)延的影響,同樣選取4個(gè)不同的時(shí)幀周期,觀察網(wǎng)絡(luò)負(fù)載與吞吐量的關(guān)系圖。仿真結(jié)果如圖6~圖9所示,當(dāng)幀長(zhǎng)分別為0.024s、0.048s、0.072s和0.096s時(shí),網(wǎng)絡(luò)的飽和吞吐量約分別為3000 packets/s、1550 packets/s、1030 packets/s和 780 packets/s。由此可見(jiàn),隨著幀長(zhǎng)的增加,網(wǎng)絡(luò)的飽和吞吐量逐漸減小,系統(tǒng)利用率降低。
圖6 幀長(zhǎng)為0.024s時(shí)的吞吐量曲線
圖7 幀長(zhǎng)為0.048s時(shí)的吞吐量曲線
圖8 幀長(zhǎng)為0.072s時(shí)的吞吐量曲線
圖9 幀長(zhǎng)為0.096s時(shí)的吞吐量曲線
仿真結(jié)果表明,該仿真場(chǎng)景在選擇較小的時(shí)幀長(zhǎng)度時(shí),能夠保證較穩(wěn)定的系統(tǒng)利用率和較低的端到端時(shí)延,因此可以作為抗洪搶險(xiǎn)、抗震救災(zāi)等用戶數(shù)量不確定時(shí)應(yīng)急通信的有效手段之一。
本文設(shè)計(jì)了一種適用于移動(dòng)終端的臨近空間通信網(wǎng)MAC協(xié)議,解決了移動(dòng)終端動(dòng)態(tài)接入臨近空間通信網(wǎng)的問(wèn)題,并運(yùn)用 OPNET軟件建立了基于移動(dòng)終端的臨近空間通信網(wǎng)仿真模型,分析了不同時(shí)幀長(zhǎng)度對(duì)平均時(shí)延和吞吐量的影響。論文的研究為應(yīng)急通信提供了一種有效手段,適用于移動(dòng)終端等用戶隨機(jī)入/退網(wǎng)的應(yīng)用場(chǎng)景。論文的研究是對(duì)臨近空間通信網(wǎng)中競(jìng)爭(zhēng)型MAC協(xié)議的初探,下一步的工作是研究如何給不同的移動(dòng)終端設(shè)置優(yōu)先級(jí),以滿足其不同的業(yè)務(wù)需求。
[1]曹秀云.美國(guó)臨近空間飛行器技術(shù)發(fā)展概述[J].現(xiàn)代軍事,2007(3):54-58.
[2]朱子行.臨近空間通信網(wǎng)多址接入?yún)f(xié)議研究[D].西安:空軍工程大學(xué),2010.
[3]管明祥,郭慶,李陸.基于臨近空間通信網(wǎng)絡(luò)混合業(yè)務(wù)的MAC協(xié)議[J].華南理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,36(5):65-69.
[4]朱子行,梁俊,趙輝.基于TDMA的臨近空間通信網(wǎng)MAC層協(xié)議仿真[J].電訊技術(shù),2009,49(6):19-22.
[5]王久輝,趙博,蔡青青.基于OPNET的臨近空間通信網(wǎng)仿真研究[J].通信對(duì)抗,2009(1):45-50.
[6]GUAN Ming-xiang,GUO Qing,LI Lu.A novel MAC protocol for mixed traffics in communication network in near space[C].Second International Conference on Space Information Technology,2007:631-636.
[7]仝亞光,梁俊,薛徳友,等.臨近空間通信網(wǎng)RA/DAMA協(xié)議時(shí)延性能分析[J].燕山大學(xué)學(xué)報(bào),2010,34(6):537-541.
[8]陳敏.OPNET網(wǎng)絡(luò)仿真[M].北京:清華大學(xué)出版社,2004.
[9]仝亞光,梁俊,朱子行.一種競(jìng)爭(zhēng)型的臨近空間通信網(wǎng)多址接入?yún)f(xié)議仿真[J].電訊技術(shù),2010,50(8):111-115.
[10]Giuseppe Araniti,Antonio Iera,Antonella Molinaro.The role of HAPs in supporting multimedia broadcast andmulticast services in terrestrial-satellite integrated systems[J].Wireless Personal Communications,2005(32):195-213.
[11]周熙,王柱京,佘陽(yáng).采用預(yù)測(cè)算法的衛(wèi)星CFDAMAMAC協(xié)議時(shí)延性能分析[J].電訊技術(shù),2006,46(5):58-62.
[12]Kalyan Rao D.Performance comparison of DAMA MAC schemes over satellite networks[D].India:Kanwal Rekhi School of Information Technology,Indian Institute of Technology,2004.
[13]Fotini-Niovi Pavlido,Marina Ruggieri,Mario Gerla,et al.Communications via high altitude platforms:technologies and trials[J].International Journal of Wireless Information Networks,2006,13(1):1-4.
[14]梁俊,田斌,仝海波,等.一種支持QoS的D-TDMA協(xié)議性能分析與仿真[J].空軍工程大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,11(1):59-63.
[15]John Farserotu,Ramjee Prasad.IP/ATM mobile satellite networks[M].Beijing:Publishing House of Electronics Industry,2005.
計(jì)算機(jī)工程與設(shè)計(jì)2011年9期