陶 晶,馮永浩
(空軍工程大學(xué) 電訊工程學(xué)院,陜西 西安 710077)
以JTIDS為終端的Link16網(wǎng)絡(luò)是美軍的主要戰(zhàn)術(shù)數(shù)據(jù)鏈,具有通信、導(dǎo)航、識(shí)別等多種功能。同時(shí)具有組網(wǎng)靈活,抗干擾能力強(qiáng),保密性好的特點(diǎn),使得JTIDS系統(tǒng)具有廣泛的應(yīng)用價(jià)值。JITDS 1類終端多為大型設(shè)備,是Link16,Link11組網(wǎng)的核心端機(jī),設(shè)備功能復(fù)雜,平時(shí)主要擔(dān)任戰(zhàn)術(shù)值班任務(wù)。2類終端構(gòu)成了Link16網(wǎng)絡(luò)的主要端機(jī)部分,與1類端機(jī)組網(wǎng)可以形成較為完整的Link16網(wǎng)絡(luò)功能[1-2]。但是實(shí)際設(shè)備數(shù)量較少、精密度較高、易損壞,而且組網(wǎng)條件較為復(fù)雜。
為了克服使用實(shí)際裝備進(jìn)行訓(xùn)練的難度,必須設(shè)計(jì)出能夠?qū)崿F(xiàn)JTIDS系統(tǒng)功能,同時(shí)結(jié)構(gòu)相對簡單,成本相對低廉的JTIDS仿真訓(xùn)練系統(tǒng)。JTIDS系統(tǒng)采用TDMA的工作方式進(jìn)行組網(wǎng),但是,存在時(shí)隙分配、任務(wù)組劃分等策略。因此,實(shí)現(xiàn)JTIDS仿真訓(xùn)練系統(tǒng)必須著力解決系統(tǒng)組網(wǎng)模式的問題。
JTIDS仿真訓(xùn)練系統(tǒng)是JTIDS端機(jī)組成的Link16網(wǎng)絡(luò)的系統(tǒng)仿真,因此,系統(tǒng)必須實(shí)現(xiàn)實(shí)際網(wǎng)絡(luò)端機(jī)具備的角色分配、入網(wǎng)、通信、導(dǎo)航、監(jiān)視、電子戰(zhàn)、空中控制等一系列功能。同時(shí)系統(tǒng)的實(shí)時(shí)性和安全性要求必須得到滿足。
系統(tǒng)功能包括:1)控制臺(tái)對仿真訓(xùn)練進(jìn)行統(tǒng)一控制,提供角色分配、任務(wù)劃分、入/退網(wǎng)控制。2)端機(jī)通過發(fā)送、接收PPL信息、狀態(tài)信息、電子戰(zhàn)信息實(shí)現(xiàn)導(dǎo)航、監(jiān)視、識(shí)別、電子戰(zhàn)、空中控制等功能。
端機(jī)功能包括:1)端機(jī)產(chǎn)生并發(fā)送自身信息,獲得其他端機(jī)的信息。2)端機(jī)在本地?cái)?shù)據(jù)庫建立所有其他端機(jī)的數(shù)據(jù)信息,并以此進(jìn)行端機(jī)本地化操作。3)端機(jī)通過向控制臺(tái)發(fā)送入、退網(wǎng)請求,建立與控制臺(tái)的連接,完成隨時(shí)入、退網(wǎng)的功能。4)主控端機(jī)通過發(fā)送指令實(shí)現(xiàn)對指定端機(jī)的控制。
非功能需求包括:1)實(shí)時(shí)性要求,即端機(jī)進(jìn)行的操作,能夠?qū)崿F(xiàn)即時(shí)響應(yīng),端機(jī)對端機(jī)的控制能夠?qū)崿F(xiàn)即時(shí)控制。2)記憶性要求,即在需要端機(jī)航跡的情況下,各端機(jī)能夠顯示出其他端機(jī)的航跡線,以及進(jìn)行航跡相關(guān)。3)安全性要求,即系統(tǒng)工作中需要采用加密手段,防止信息、數(shù)據(jù)泄露,網(wǎng)絡(luò)中傳輸?shù)谋仨毷墙?jīng)過加密的數(shù)據(jù)包。
網(wǎng)絡(luò)結(jié)構(gòu)是利用現(xiàn)有通信技術(shù)及協(xié)議方法制定的符合功能需求的拓?fù)浣Y(jié)構(gòu)。同時(shí)結(jié)構(gòu)的設(shè)計(jì)要盡量簡單,以減少成本。
JTIDS仿真訓(xùn)練系統(tǒng)采用C/S體系結(jié)構(gòu)。如圖1所示。服務(wù)器端由控制臺(tái)和服務(wù)器數(shù)據(jù)庫組成。實(shí)現(xiàn)角色的分配、端機(jī)入/退網(wǎng)控制、任務(wù)分配和端機(jī)數(shù)據(jù)的存儲(chǔ)和轉(zhuǎn)發(fā)??蛻舳擞啥藱C(jī)及其數(shù)據(jù)庫組成。實(shí)現(xiàn)自身數(shù)據(jù)的生成和其他端機(jī)數(shù)據(jù)的存儲(chǔ)。網(wǎng)絡(luò)模型采用OSI的7層模型設(shè)計(jì)。使用成熟的TCP/UDP協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)通信。各端機(jī)采用總線模式與服務(wù)器端相連,端機(jī)數(shù)據(jù)需要經(jīng)過數(shù)據(jù)加密和防火墻控制實(shí)現(xiàn)安全通信,其邏輯圖如圖2所示。
圖1 JTIDS仿真訓(xùn)練系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖
圖2 JTIDS仿真訓(xùn)練系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)邏輯圖
系統(tǒng)組網(wǎng)的模式,由系統(tǒng)中各模塊通信的方式和通信鏈路條件決定。由于JTIDS仿真訓(xùn)練系統(tǒng)需要實(shí)現(xiàn)PPL、狀態(tài)、電子戰(zhàn)等信息的端機(jī)獲取和廣播發(fā)送,需要滿足端機(jī)入網(wǎng)、端機(jī)控制指令的發(fā)送和響應(yīng),而且端機(jī)需要實(shí)現(xiàn)控制臺(tái)對其進(jìn)行的角色分配和控制退網(wǎng)的操作。因此,對JTIDS仿真訓(xùn)練系統(tǒng)的組網(wǎng)模式設(shè)計(jì)分為順序輪循模式和指令訪問模式兩種。
仿真訓(xùn)練系統(tǒng)中根據(jù)角色的劃分,端機(jī)分為主控端機(jī)和一般端機(jī)兩大類。
順序輪循模式主要完成系統(tǒng)工作期間的PPL、狀態(tài)和電子戰(zhàn)等數(shù)據(jù)信息的獲取和發(fā)送。
各端機(jī)在入網(wǎng)的情況下,控制臺(tái)按照端機(jī)擔(dān)任角色,確定輪循的順序。即按照先主控端機(jī)、再一般端機(jī)的順序,控制臺(tái)進(jìn)行輪循操作。
同時(shí)各端機(jī)因端機(jī)角色不同,發(fā)送的消息類型也不相同。一般端機(jī)發(fā)送PPL信息和狀態(tài)信息,而主控端機(jī)還需要發(fā)送電子戰(zhàn)消息和控制指令。因此,數(shù)據(jù)信息劃分為3種數(shù)據(jù)格式進(jìn)行傳輸。數(shù)據(jù)格式定義為數(shù)據(jù)類型、端機(jī)優(yōu)先級、信息優(yōu)先級、上傳/下載、原目標(biāo)地址、目標(biāo)節(jié)點(diǎn)地址、數(shù)據(jù)長度和數(shù)據(jù)。其中,端機(jī)優(yōu)先級由端機(jī)角色決定。而信息優(yōu)先級決定了控制臺(tái)首先獲取優(yōu)先級高的數(shù)據(jù)。其順序?yàn)镻PL信息、電子戰(zhàn)信息和狀態(tài)信息。
在JTIDS仿真訓(xùn)練系統(tǒng)的設(shè)計(jì)中,主控端機(jī)只有1臺(tái)。因此在順序輪循模式下,控制臺(tái)對端機(jī)的輪循順序?yàn)橄戎骺囟藱C(jī),再一般端機(jī);先編號低的一般端機(jī),再編號高的一般端機(jī);先優(yōu)先級高的信息,再優(yōu)先級低的信息。
系統(tǒng)工作時(shí),控制臺(tái)向端機(jī)廣播,需要主控端機(jī)的PPL信息,各端機(jī)在收到消息后,確定消息目標(biāo)是否為自身端機(jī),主控端機(jī)這時(shí)就將控制臺(tái)需要的端機(jī)信息發(fā)送到控制臺(tái)??刂婆_(tái)將獲得的主控端機(jī)的PPL信息存入控制臺(tái)數(shù)據(jù)庫中,并將信息以廣播的形式發(fā)送到各端機(jī)。各端機(jī)在收到信息后,存儲(chǔ)到本機(jī)數(shù)據(jù)庫中,以備后期操作使用。這一操作結(jié)束后,控制臺(tái)發(fā)送需要主控端機(jī)電子戰(zhàn)信息的廣播,操作同上。在這樣一輪結(jié)束后,控制臺(tái)再向各端機(jī)發(fā)送需要主控端機(jī)的狀態(tài)信息的廣播,操作同上。之后,控制臺(tái)再發(fā)送對一般端機(jī)PPL信息、狀態(tài)信息的廣播。當(dāng)控制臺(tái)在向各端機(jī)廣播發(fā)送消息,沒有端機(jī)應(yīng)答,則控制臺(tái)將再次發(fā)送相同的消息,如此3次,若沒有端機(jī)應(yīng)答,則控制臺(tái)判定此端機(jī)已退網(wǎng),此后,不再發(fā)送對此端機(jī)的信息需求廣播。其工作流程圖如圖3所示。
圖3 順序輪循模式工作流程圖
在這種輪詢方式下,所有的網(wǎng)絡(luò)成員共同組成了一個(gè)時(shí)分半雙工的網(wǎng)狀網(wǎng)。每個(gè)單元要么處于接收狀態(tài),要么處于發(fā)射狀態(tài)。端機(jī)一般是處于接收狀態(tài),當(dāng)收到控制臺(tái)發(fā)來的信息時(shí),端機(jī)才能發(fā)送自己的數(shù)據(jù)信息或者應(yīng)答信息[3]。
順序輪循模式主要實(shí)現(xiàn)端機(jī)正常工作期間的端機(jī)工作,但不能實(shí)現(xiàn)端機(jī)與控制臺(tái)之間控制指令的及時(shí)傳輸和實(shí)時(shí)響應(yīng),因此提出指令訪問模式。
指令訪問模式為控制臺(tái)、主控端機(jī)、一般端機(jī)之間需要直接通信或間接通信,而在順序輪循模式之外發(fā)送控制指令。而指令訪問模式就是使這種控制指令能夠準(zhǔn)確傳遞、實(shí)時(shí)響應(yīng)的方法。
指令按照終端類型和功能分為兩類。終端類型指令分為控制臺(tái)指令、主控端機(jī)指令和一般端機(jī)指令。而功能指令分為角色分配指令、入網(wǎng)指令、退網(wǎng)指令和端機(jī)控制指令。其中,控制臺(tái)發(fā)送角色分配指令、控制臺(tái)控制端機(jī)退網(wǎng)指令。主控端機(jī)發(fā)送入網(wǎng)指令、端機(jī)控制指令和自主退網(wǎng)指令。一般端機(jī)發(fā)送入網(wǎng)指令和自主退網(wǎng)指令。
在端機(jī)入網(wǎng)時(shí),各端機(jī)向控制臺(tái)發(fā)送入網(wǎng)請求,控制臺(tái)向各端機(jī)發(fā)送網(wǎng)內(nèi)同步時(shí)間,實(shí)現(xiàn)同步入網(wǎng)??刂婆_(tái)根據(jù)訓(xùn)練指導(dǎo)者設(shè)定的要求,向各端機(jī)發(fā)送角色分配指令。
端機(jī)的退網(wǎng)一般有主動(dòng)退網(wǎng)、控制臺(tái)控制退網(wǎng)和異常情況退網(wǎng)。異常情況退網(wǎng)為端機(jī)在斷電和程序錯(cuò)誤的情況下,端機(jī)未發(fā)送指令而退網(wǎng)的情形,這種情況由順序循環(huán)模式處理。主動(dòng)退網(wǎng)為端機(jī)向控制臺(tái)提出退網(wǎng)申請,控制臺(tái)根據(jù)端機(jī)角色,決定退網(wǎng)。如果是主控端機(jī),選定接替端機(jī),進(jìn)行角色重新分配??刂婆_(tái)控制端機(jī)退網(wǎng),為控制臺(tái)指定一個(gè)或多個(gè)端機(jī)退網(wǎng),其操作同主動(dòng)退網(wǎng)。
指令按照數(shù)據(jù)格式的設(shè)定,存在端機(jī)優(yōu)先級和功能優(yōu)先級兩種。端機(jī)優(yōu)先級決定了端機(jī)指令的處理順序,而功能優(yōu)先級決定了相同級別端機(jī)控制指令處理的順序。但是,這種簡單優(yōu)先級的控制,對于需要退網(wǎng)、入網(wǎng)、和角色分配的端機(jī),仍會(huì)出現(xiàn)響應(yīng)不及時(shí)的問題。因此,優(yōu)先級的設(shè)定將主要采用功能優(yōu)先為主、端機(jī)優(yōu)先為輔的原則。指令優(yōu)先級順序?yàn)槿刖W(wǎng)、退網(wǎng)、角色分配、端機(jī)控制。即在指令隊(duì)列中,指令按照入網(wǎng)、控制臺(tái)控制端機(jī)退網(wǎng)、自主退網(wǎng)、角色分配、端機(jī)控制的順序進(jìn)行處理。
但是,不排除由于指令量很大,導(dǎo)致控制指令不斷累積,造成的時(shí)間延誤和實(shí)時(shí)性變差。因此,設(shè)置指令有效期標(biāo)識(shí)符,當(dāng)指令時(shí)延超過門限,指令做拋棄處理。指令訪問模式流程如圖4所示。
圖4 指令訪問模式流程圖
順序輪循模式能夠很好解決系統(tǒng)的PPL信息、狀態(tài)信息、電子戰(zhàn)信息等信息的傳送,實(shí)現(xiàn)通信、導(dǎo)航、識(shí)別、電子戰(zhàn)等功能。
但系統(tǒng)工作中,主控端機(jī)需要完成對端機(jī)的控制,實(shí)現(xiàn)對端機(jī)的任務(wù)指示、空中引導(dǎo)等功能。而且,系統(tǒng)允許端機(jī)的隨時(shí)入網(wǎng)和退網(wǎng),這就使端機(jī)與控制臺(tái)之間的控制指令必須得以及時(shí)傳輸,這時(shí)順序輪循模式將不能滿足系統(tǒng)需要。
而指令訪問模式,主要處理端機(jī)入網(wǎng)、退網(wǎng)、角色分配以及主控端機(jī)對端機(jī)控制的指令。兩種模式的功能比較圖如表1所示。
表1 系統(tǒng)功能與模式分配表
為了實(shí)現(xiàn)順序輪循模式和指令訪問模式的并行工作,在處理上加入雙線程的方法,一條線程實(shí)現(xiàn)對端機(jī)的順序輪詢的操作,按照先從優(yōu)先級高的主控端機(jī)獲得優(yōu)先級高的數(shù)據(jù)信息,再按照端機(jī)優(yōu)先級由高到低,數(shù)據(jù)優(yōu)先級由高到低的順序獲取。指令訪問模式線程時(shí)刻監(jiān)聽指令隊(duì)列。在有多條控制指令到達(dá)控制臺(tái)時(shí),首先處理優(yōu)先級高的控制指令,再處理優(yōu)先級低的控制指令。當(dāng)沒有控制指令時(shí),則處于監(jiān)聽狀態(tài)。
JTIDS仿真訓(xùn)練系統(tǒng)組網(wǎng)屬于應(yīng)用層的范疇,因此仿真模塊是基于NS2[4]的Application層開發(fā),下層采用NS2提供的已有組件,同時(shí)新增了應(yīng)用層模型和數(shù)據(jù)采集模塊,應(yīng)用層模塊又分為控制臺(tái)節(jié)點(diǎn)模塊、鏈路分配模塊、初始分配模塊、文件存儲(chǔ)模塊和接口訪問模塊[5-7]。平臺(tái)各模塊如圖5所示。
圖5 JTIDS仿真訓(xùn)練系統(tǒng)仿真模塊圖
接口訪問模塊通過Socket接口實(shí)現(xiàn)與NS2的直接通信,實(shí)現(xiàn)上層模塊向下層的消息傳遞。
控制臺(tái)節(jié)點(diǎn)模塊確定參與端機(jī)數(shù)量、確定通信目標(biāo)和通信方式,通過鏈路分配模塊實(shí)現(xiàn)邏輯鏈路的搭建和拆除,實(shí)現(xiàn)入網(wǎng)和信息發(fā)送。
鏈路分配模塊主要實(shí)現(xiàn)雙線程的操作,負(fù)責(zé)在與控制臺(tái)節(jié)點(diǎn)配合下的數(shù)據(jù)信息獲取和處理,同時(shí)與接口訪問模塊配合實(shí)現(xiàn)對上傳控制指令的監(jiān)聽和處理。初始分配模塊為靜態(tài)初始化模塊,主要完成對入網(wǎng)端機(jī)的權(quán)限授予、功能分配等功能。文件存儲(chǔ)模塊為動(dòng)態(tài)信息轉(zhuǎn)存模塊,不管是數(shù)據(jù)信息還是控制指令信息,都在與接口模塊的通信中進(jìn)行庫操作。數(shù)據(jù)采集模塊集合了NS2中的狀態(tài)記錄文件*.tr的主要功能,將網(wǎng)路運(yùn)行時(shí)間內(nèi),從控制臺(tái)節(jié)點(diǎn)模塊、鏈路分配模塊、初始分配模塊和文件存儲(chǔ)模塊所進(jìn)行的數(shù)據(jù)操作全部記錄下來。
J T IDS仿真訓(xùn)練系統(tǒng)的數(shù)據(jù)類型、數(shù)據(jù)長度、工作方式都有所不同,其格式定義如圖6所示。
圖6 JIDS數(shù)據(jù)格式
J T IDS_TYPE指傳送消息的類型,主要包括數(shù)據(jù)信息J_Data、控制信息J_Control和廣播信息J_Broadcast。OR_Flag指傳送消息的方向,主要包括J_UP和J_DOWN。Level_Flag指信息的優(yōu)先級。Src_addr指源目標(biāo)節(jié)點(diǎn)地址。Dst_addr指目標(biāo)節(jié)點(diǎn)地址。DATA_Length指數(shù)據(jù)長度,端機(jī)發(fā)送的數(shù)據(jù)信息有4種長度,分別是PPL信息、電子戰(zhàn)信息、狀態(tài)信息、控制信息。DATA為數(shù)據(jù)信息,NS2仿真為網(wǎng)絡(luò)性能仿真,因此數(shù)據(jù)格式中包頭為各種協(xié)議要求的內(nèi)容,而數(shù)據(jù)字段都為空,只是標(biāo)定數(shù)據(jù)字段長度。
根據(jù)仿真模塊圖,主要實(shí)現(xiàn)控制臺(tái)輪循對各端機(jī)信息訪問的順序輪循模式,以及端機(jī)控制指令的發(fā)送和控制臺(tái)的處理過程。因此,在順序輪循模式下實(shí)現(xiàn)端機(jī)數(shù)量與順序輪循周期的關(guān)系仿真。在有控制指令傳輸?shù)那闆r下,仿真多指令發(fā)送延遲、終端數(shù)量、線程的關(guān)系以及單線程和雙線程處理模式下,多指令發(fā)送延時(shí)抖動(dòng)的關(guān)系。
網(wǎng)絡(luò)帶寬100 Mbit/s,網(wǎng)絡(luò)時(shí)延10 ms,路由器隊(duì)列長度為10,使用Droptail模式,廣播包大小為40 bit,指令包大小為200 bit,數(shù)據(jù)包大小為1 000 bit,假設(shè)端機(jī)發(fā)送數(shù)據(jù)信息為PPL信息和狀態(tài)信息,端機(jī)按照序號由低到高先后發(fā)送PPL信息和狀態(tài)信息,端機(jī)數(shù)量為1~40。
圖7為對順序輪詢模式端機(jī)數(shù)量與輪循周期的比較圖,在端機(jī)數(shù)量一定,端機(jī)發(fā)送消息類型相同的情況下,輪循周期隨著端機(jī)數(shù)量的增加成線性增長。同時(shí)可以得到推論,在端機(jī)數(shù)量一定、端機(jī)分配角色已知的情況下,端機(jī)輪循時(shí)間為定值。
圖7 順序輪循模式周期、端機(jī)數(shù)關(guān)系
圖8為在有控制指令的情況下,端機(jī)指令到控制臺(tái)的延時(shí)情況對比圖。從圖中可以看出,單線程處理指令,時(shí)延較長且不穩(wěn)定,使用雙線程處理指令延時(shí)很小,可忽略不計(jì)。
圖9為端機(jī)數(shù)量為5的情況下,單線程與雙線程指令延時(shí)抖動(dòng)特性。從圖中可以看出,單線程的指令延時(shí)抖動(dòng)很明顯。而在雙線程模式下,時(shí)延抖動(dòng)很小,基本可以認(rèn)為沒有抖動(dòng),保證了指令傳輸?shù)膶?shí)時(shí)性和穩(wěn)定性要求。
筆者設(shè)計(jì)了JTIDS仿真訓(xùn)練系統(tǒng)的組網(wǎng)模式,并依據(jù)NS2仿真軟件設(shè)計(jì)了JTIDS仿真訓(xùn)練系統(tǒng)的組網(wǎng)仿真模塊,通過在該模塊下的仿真,驗(yàn)證了該組網(wǎng)模式能夠滿足JTIDS仿真訓(xùn)練系統(tǒng)的穩(wěn)定性和實(shí)時(shí)性要求。
圖8 單、雙線程端機(jī)到控制臺(tái)指令時(shí)延
圖9 單、雙線程端機(jī)到控制臺(tái)延時(shí)抖動(dòng)
[1]梅文華,蔡善法.JTIDS/Link16數(shù)據(jù)鏈[M].北京:國防工業(yè)出版社,2007.
[2]LESLIE C,GOLLIDAY J.DataLink communications in tactical air command and control system[J].IEEE Journal on Selected Areas in Communications,2005,3(5):779-791.
[3]李林,毛玉泉,李連寶,等.陸航數(shù)據(jù)鏈輪循組網(wǎng)模式應(yīng)用研究[J].通信技術(shù),2009(1):143-145.
[4]于斌.NS2與網(wǎng)絡(luò)建模[M].北京:人民郵電出版社,2006.
[5]吳堃,戴菡,葉保留,等.基于NS2的P2P網(wǎng)絡(luò)模擬平臺(tái)研究[J].系統(tǒng)仿真學(xué)報(bào),2006(8):2152-2157.
[6]任浩,王勁林,魯逸峰,等.基于NS2的P2P流媒體系統(tǒng)仿真平臺(tái)的設(shè)計(jì)[J].微計(jì)算機(jī)應(yīng)用,2008(10):26-30.
[7]PORTMANN M,SENEVIRATNE A.Cost-effective broadcast for fully decentralized peer-to-peer networks[J].Computer Communications Journal Special Issue on Ubiquitous Computing,2002,26(11):1159-1167.