国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于EXata 的半實(shí)物仿真功能設(shè)計(jì)與實(shí)現(xiàn)

2022-12-17 07:26盧毅水宜水郭建飛
廣東通信技術(shù) 2022年11期
關(guān)鍵詞:實(shí)物數(shù)據(jù)包代碼

[盧毅 水宜水 郭建飛]

1 引言

網(wǎng)絡(luò)仿真是一種通過虛擬網(wǎng)絡(luò)測試真實(shí)應(yīng)用程序性能的技術(shù)。這與應(yīng)用流量、網(wǎng)絡(luò)模型、通道和協(xié)議的虛擬模型的網(wǎng)絡(luò)模擬不同,目的是評估性能、預(yù)測變化的影響或以其他方式優(yōu)化技術(shù)決策,它以系統(tǒng)理論、形式化理論、隨機(jī)過程和統(tǒng)計(jì)學(xué)理論、優(yōu)化理論為基礎(chǔ)。在設(shè)計(jì)階段,仿真方法可提供一個(gè)虛擬模型來預(yù)測并比較各種方案的性能;運(yùn)行階段,通過對不同環(huán)境和工作負(fù)荷的分析和比較,來優(yōu)化系統(tǒng)的性能。在某些情況下,仿真是唯一可行的方法和技術(shù)。仿真方法的抽象化程度比數(shù)學(xué)分析方法低,耗費(fèi)的時(shí)間比測量技術(shù)少,其低成本和有效性是其他傳統(tǒng)方法不可替代的。隨著網(wǎng)絡(luò)新技術(shù)的不斷出現(xiàn)和數(shù)據(jù)網(wǎng)絡(luò)的日趨復(fù)雜,對網(wǎng)絡(luò)仿真技術(shù)的需求必將越來越迫切,網(wǎng)絡(luò)仿真的應(yīng)用也將越來越廣泛,網(wǎng)絡(luò)仿真技術(shù)已成為研究、規(guī)劃、設(shè)計(jì)網(wǎng)絡(luò)不可缺少的工具。

半實(shí)物仿真作為仿真技術(shù)的一個(gè)分支,成為通信領(lǐng)域的一種重要仿真技術(shù),半實(shí)物仿真就是在計(jì)算機(jī)仿真回路中加入實(shí)物設(shè)備或系統(tǒng)進(jìn)行仿真,計(jì)算機(jī)仿真提供了實(shí)裝系統(tǒng)不具備的應(yīng)用規(guī)模,實(shí)物設(shè)備或系統(tǒng)為計(jì)算機(jī)仿真提供必要的檢驗(yàn)和驗(yàn)證,能夠有效地提高計(jì)算機(jī)仿真的真實(shí)性和可靠性,半實(shí)物仿真具有實(shí)時(shí)性要求高、可擴(kuò)展性好、置信度高[1]等特點(diǎn)。

EXata作為一款通信行業(yè)內(nèi)重要的網(wǎng)絡(luò)仿真軟件平臺,目前已有眾多學(xué)者或技術(shù)人員將其應(yīng)用于工程設(shè)計(jì)、學(xué)術(shù)研究或教學(xué)領(lǐng)域。大部分應(yīng)用還是基于EXata 的原生功能進(jìn)行仿真,其中有學(xué)者對航空數(shù)據(jù)鏈進(jìn)行了半實(shí)物仿真[2],基于EXata 開展了通信教學(xué)平臺設(shè)計(jì)[3],對戰(zhàn)術(shù)互聯(lián)網(wǎng)進(jìn)行半實(shí)物仿真[4],但對EXata 的半實(shí)物仿真功能開發(fā)并不多見。本文在對EXata 半實(shí)物仿真平臺的原生功能進(jìn)行剖析的基礎(chǔ)上,結(jié)合現(xiàn)有仿真業(yè)務(wù)需求,對EXata 進(jìn)行了二次開發(fā),使得其功能設(shè)計(jì)更加貼合實(shí)際的應(yīng)用需要。

2 EXata 半實(shí)物仿真概述

2.1 EXata 平臺簡介

EXata 是一套用來仿真大型有線網(wǎng)絡(luò)和無線網(wǎng)絡(luò)的完整平臺,EXata 創(chuàng)建的“虛擬網(wǎng)絡(luò)”完全可以與真實(shí)物理網(wǎng)絡(luò)中的所有組件互相通信和交換數(shù)據(jù),例如:各種網(wǎng)絡(luò)應(yīng)用、網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)使用者、和網(wǎng)絡(luò)管理工具等,在通信網(wǎng)絡(luò)的研究、開發(fā)、評估、模擬訓(xùn)練等環(huán)節(jié)的卓越表現(xiàn),幫助用戶縮短研發(fā)周期,提高效率。

EXata 功能架構(gòu)如圖1 所示。

圖1 EXata 功能架構(gòu)

EXata 與網(wǎng)絡(luò)仿真平臺QualNet 出自同一個(gè)網(wǎng)絡(luò)仿真開發(fā)公司,它們具有相同的仿真內(nèi)核,共用相同的協(xié)議模塊,支持TCP/IP 協(xié)議棧的標(biāo)準(zhǔn)層間接口,用戶無需自己開發(fā)這種類型(絕大多數(shù)的協(xié)議都滿足,包括大量軍方數(shù)據(jù)通信聯(lián)網(wǎng)設(shè)備)的層間接口;同時(shí)支持非標(biāo)準(zhǔn)協(xié)議棧的開發(fā)。EXata 采用先進(jìn)的并行算法,可以仿真上千個(gè)節(jié)點(diǎn)的大型無線網(wǎng)絡(luò),特別適合集群式計(jì)算系統(tǒng)的復(fù)雜網(wǎng)絡(luò)仿真項(xiàng)目。

EXata 采用了基于事件驅(qū)動(dòng)的仿真機(jī)制,利用消息來表征事件。消息類型分為兩種,一是數(shù)據(jù)消息,用于表示網(wǎng)絡(luò)傳輸和處理的報(bào)文;二是時(shí)間消息,用于驅(qū)動(dòng)時(shí)間同步、延遲發(fā)送等網(wǎng)絡(luò)中各類時(shí)間相關(guān)行為。消息發(fā)送方通過在各層增加消息頭,接收方在對應(yīng)層去除消息頭實(shí)現(xiàn)數(shù)據(jù)消息在網(wǎng)絡(luò)中的模擬傳輸。與數(shù)據(jù)消息不同,時(shí)間消息不進(jìn)行層間傳遞。若協(xié)議或應(yīng)用需要對未來某一事件做出規(guī)劃,在對應(yīng)層生成時(shí)間消息,并將其送出,由該層程序通過對收到的時(shí)間消息類型進(jìn)行判斷,完成相應(yīng)處理即可。

2.2 半實(shí)物仿真機(jī)制

EXata 的仿真內(nèi)核在模擬內(nèi)核功能的基礎(chǔ)上,采用實(shí)時(shí)的事件調(diào)度機(jī)制,提供高精度、實(shí)時(shí)的接口連接虛擬網(wǎng)絡(luò)和外部實(shí)際應(yīng)用設(shè)備,通過建立外部實(shí)物與EXata 虛擬網(wǎng)絡(luò)中節(jié)點(diǎn)映射關(guān)系及接口配置,實(shí)現(xiàn)外部實(shí)物與EXata的數(shù)據(jù)交互。

EXata 在仿真內(nèi)核下實(shí)現(xiàn)半實(shí)物仿真時(shí),一般將運(yùn)行EXata 仿真軟件的計(jì)算機(jī)作為仿真服務(wù)器,對實(shí)際通信網(wǎng)絡(luò)進(jìn)行模擬,構(gòu)建相應(yīng)的虛擬網(wǎng)絡(luò);對實(shí)際各通信設(shè)備進(jìn)行模擬,作為虛擬網(wǎng)絡(luò)的部分仿真節(jié)點(diǎn);構(gòu)建半實(shí)物仿真接口,外部接入設(shè)備作為外部終端,并與虛擬網(wǎng)絡(luò)中的某個(gè)仿真節(jié)點(diǎn)進(jìn)行映射,實(shí)現(xiàn)實(shí)物操作,將實(shí)物數(shù)據(jù)流引入虛擬網(wǎng)絡(luò)或?qū)⑻摂M網(wǎng)絡(luò)數(shù)據(jù)輸出到實(shí)物主機(jī)。

為實(shí)現(xiàn)EXata 半實(shí)物仿真,需要進(jìn)行網(wǎng)絡(luò)配置和連接配置。網(wǎng)絡(luò)配置保證真實(shí)網(wǎng)絡(luò)與虛擬網(wǎng)絡(luò)通信可達(dá),連接配置保證數(shù)據(jù)的成功交互。連接配置利用EXata 的連接管理器對需要接入仿真網(wǎng)絡(luò)的真實(shí)設(shè)備進(jìn)行連接管理。使用連接管理器配置時(shí),連接管理器應(yīng)用程序運(yùn)行在外部終端上,負(fù)責(zé)管理外部終端的網(wǎng)絡(luò)連接配置,建立外部終端與服務(wù)器之間的連接;當(dāng)外部終端不能安裝或執(zhí)行連接管理器時(shí)(無計(jì)算平臺的路由器、無標(biāo)準(zhǔn)操作系統(tǒng)環(huán)境的實(shí)時(shí)系統(tǒng)等),只能手動(dòng)配置連接到仿真服務(wù)器,此時(shí)必須配置外部設(shè)備映射參數(shù),如IP、網(wǎng)關(guān)等。

半實(shí)物仿真連接示意圖如圖2 所示。

圖2 EXata 半實(shí)物仿真連接示意圖

EXata 仿真中的虛擬節(jié)點(diǎn)可映射為外部的外部終端,此時(shí)終端主機(jī)上運(yùn)行的全部應(yīng)用程序相當(dāng)于運(yùn)行在仿真節(jié)點(diǎn)中,連接至虛擬網(wǎng)絡(luò)的多臺外部終端可與運(yùn)行EXata 的服務(wù)器工作在同一網(wǎng)段或不同網(wǎng)段,當(dāng)運(yùn)行于不同網(wǎng)段時(shí),需要配置EXata 服務(wù)器具備多個(gè)IP 網(wǎng)段地址。

如今,在張家界“白天看美景,晚上看大戲”已成為一種新的旅游文化體驗(yàn)消費(fèi)模式。張家界只有不斷借鑒成功經(jīng)驗(yàn),立足本土文化特色,創(chuàng)新旅游演藝產(chǎn)品,順應(yīng)文旅2.0時(shí)代的發(fā)展,才能擴(kuò)大張家界旅游演藝品牌的知名度和美譽(yù)度,成為“演藝之都”。

3 功能設(shè)計(jì)

3.1 需求分析

EXata 通過IP 映射將實(shí)物節(jié)點(diǎn)與虛擬節(jié)點(diǎn)進(jìn)行互聯(lián),當(dāng)實(shí)物節(jié)點(diǎn)向虛擬網(wǎng)絡(luò)中的目的虛擬節(jié)點(diǎn)發(fā)送業(yè)務(wù)時(shí),數(shù)據(jù)包首先發(fā)送至與實(shí)物節(jié)點(diǎn)相映射的虛擬節(jié)點(diǎn),由該虛擬節(jié)點(diǎn)進(jìn)一步發(fā)送至目的虛擬節(jié)點(diǎn),若該業(yè)務(wù)數(shù)據(jù)不在EXata 業(yè)務(wù)模型中,則目的虛擬節(jié)點(diǎn)僅實(shí)現(xiàn)IP 層接收行為,數(shù)據(jù)包并不能交付至應(yīng)用層。

為實(shí)現(xiàn)將業(yè)務(wù)傳遞至目的端業(yè)務(wù)層,使得實(shí)物與虛擬節(jié)點(diǎn)能夠進(jìn)行業(yè)務(wù)互通,并實(shí)時(shí)監(jiān)測目的虛擬節(jié)點(diǎn)收到的業(yè)務(wù)數(shù)據(jù),需要將實(shí)物節(jié)點(diǎn)業(yè)務(wù)添加至EXata 協(xié)議棧中,并且通過設(shè)計(jì)外部接口打通外部程序與EXata 軟件平臺的數(shù)據(jù)壁壘,實(shí)時(shí)獲取EXata 網(wǎng)絡(luò)節(jié)點(diǎn)中的通信數(shù)據(jù)。

3.2 設(shè)計(jì)思路

針對EXata 仿真平臺的模型代碼開源特點(diǎn),結(jié)合功能需求,從協(xié)議模型庫、外部接口兩方面對EXata 進(jìn)行新增功能設(shè)計(jì)。遵循客戶端-服務(wù)器業(yè)務(wù)運(yùn)行機(jī)制,添加實(shí)物節(jié)點(diǎn)業(yè)務(wù)類型至EXata 原生模型庫中,并對前端GUI 設(shè)置進(jìn)行修改以匹配新業(yè)務(wù);基于UDP 協(xié)議設(shè)計(jì)外部接口函數(shù),使得外部程序可以實(shí)時(shí)獲取虛擬網(wǎng)絡(luò)節(jié)點(diǎn)中的數(shù)據(jù)包信息,且可在前端GUI 進(jìn)行UDP 接口參數(shù)配置。功能設(shè)計(jì)框架如圖3 所示。

4 開發(fā)過程

4.1 業(yè)務(wù)新增

遵循EXata 模型代碼框架,業(yè)務(wù)新增主要分為以下幾個(gè)開發(fā)步驟:

圖3 功能設(shè)計(jì)框架

(1)創(chuàng)建業(yè)務(wù)頭文件與源文件;

(2)修改application.cpp 代碼,使其包含新增業(yè)務(wù)的頭文件;

(3)將業(yè)務(wù)添加至應(yīng)用層協(xié)議列表中;

(4)定義業(yè)務(wù)模型的數(shù)據(jù)結(jié)構(gòu),如圖4 所示;

圖4 業(yè)務(wù)數(shù)據(jù)結(jié)構(gòu)代碼

(6)修改應(yīng)用層事件分發(fā)器使其包含對新增業(yè)務(wù)的事件處理調(diào)用;

(7)編寫客戶端與服務(wù)器事件分發(fā)代碼;

(8)編寫仿真結(jié)果統(tǒng)計(jì)代碼;

(9)在應(yīng)用層終止化函數(shù)中添加對業(yè)務(wù)客戶端、服務(wù)器的終止化函數(shù)代碼;

(10)在編譯文件Makefile-common中包含業(yè)務(wù)的源文件,如圖5 所示;

(11)修改GUI 設(shè)置文件以匹配新增業(yè)務(wù),如圖6所示。

當(dāng)完成業(yè)務(wù)新增功能開發(fā)后,創(chuàng)建相應(yīng)圖標(biāo)文件,將在EXata 運(yùn)行界面工具箱的最右端顯示新增業(yè)務(wù)“EMU”,如圖7 所示。

圖5 編譯文件修改

圖6 業(yè)務(wù)GUI 配置文件

圖7 新增業(yè)務(wù)顯示界面

4.2 外部接口開發(fā)

EXata 提供的外部接口開發(fā)框架如圖8 所示。

圖8 EXata 外部接口開發(fā)框架

通過開發(fā)外部接口,可以使得外部程序與外部接口進(jìn)行通信,進(jìn)而通過外部接口API 訪問EXata 仿真網(wǎng)絡(luò),實(shí)現(xiàn)外部程序與仿真網(wǎng)絡(luò)的數(shù)據(jù)交互。

外部接口開發(fā)主要包含初始化、接收、轉(zhuǎn)發(fā)、終止等函數(shù)的編寫,在外部接口函數(shù)中調(diào)用API 中的接口注冊函數(shù)、公用函數(shù)達(dá)到與EXata 虛擬網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)據(jù)互聯(lián)。

初始化函數(shù)代碼片段如圖9 所示。

圖9 初始化函數(shù)代碼片段

接收函數(shù)代碼片段如圖10 所示。

圖10 接收函數(shù)代碼片段

轉(zhuǎn)發(fā)函數(shù)代碼片段如圖11 所示。

圖11 轉(zhuǎn)發(fā)函數(shù)代碼片段

終止函數(shù)代碼片段如圖12 所示。

圖12 終止函數(shù)代碼片段

在外部接口功能開發(fā)后,修改GUI 設(shè)置文件將UDP接口顯示在EXata運(yùn)行界面中,方便對UDP參數(shù)進(jìn)行配置。外部接口參數(shù)界面如圖13 所示。

圖13 外部接口參數(shù)界面

5 仿真試驗(yàn)

搭建仿真場景對半實(shí)物仿真新增功能進(jìn)行試驗(yàn)驗(yàn)證,在EXata 中設(shè)置一多層級網(wǎng)絡(luò),包含100 個(gè)以上的通信節(jié)點(diǎn),分布于不同的區(qū)域,并加載地形數(shù)據(jù)。

以功能驗(yàn)證為例,將其中1 個(gè)節(jié)點(diǎn)(ID 號為105)與實(shí)物節(jié)點(diǎn)進(jìn)行映射,并配置映射節(jié)點(diǎn)向另一目的虛擬節(jié)點(diǎn)(ID 號為113)每隔2 秒發(fā)送一次“EMU”業(yè)務(wù)數(shù)據(jù)包,內(nèi)容為“emulation data…”,同時(shí)通過UDP 測試工具每隔2 秒向EXata 發(fā)送命令獲取目的虛擬節(jié)點(diǎn)的“EMU”業(yè)務(wù)數(shù)據(jù)包信息。仿真場景如圖14 所示。

圖14 仿真場景界面

仿真結(jié)果分析界面如圖15 所示。

圖15 仿真結(jié)果分析界面

業(yè)務(wù)數(shù)據(jù)包獲取界面如圖16 所示。

圖16 業(yè)務(wù)數(shù)據(jù)包獲取界面

由以上仿真試驗(yàn)結(jié)果可以看出,目的節(jié)點(diǎn)可以收到實(shí)物節(jié)點(diǎn)發(fā)送的業(yè)務(wù)數(shù)據(jù)包,新增的業(yè)務(wù)類型“EMU”可以被EXata 仿真網(wǎng)絡(luò)識別,且業(yè)務(wù)接收情況已經(jīng)被正確統(tǒng)計(jì),同時(shí),數(shù)據(jù)包內(nèi)容可以通過外部程序向EXata 網(wǎng)絡(luò)發(fā)送獲取命令的方式進(jìn)行獲取,驗(yàn)證了新增功能的設(shè)計(jì)有效性。

6 總結(jié)

本文基于對EXata 平臺半實(shí)物仿真功能機(jī)制的深入剖析,梳理出不屬于原生業(yè)務(wù)模型庫情形下的仿真功能需求,對新增業(yè)務(wù)的識別與節(jié)點(diǎn)數(shù)據(jù)外部獲取進(jìn)行了功能設(shè)計(jì),詳細(xì)闡述了EXata 業(yè)務(wù)模型與外部接口的開發(fā)流程,最后搭建了半實(shí)物仿真場景進(jìn)行功能驗(yàn)證,該功能設(shè)計(jì)可為EXata 的應(yīng)用提供新的仿真思路,同時(shí)基于通用業(yè)務(wù)功能開發(fā)原理,可以此進(jìn)一步針對不同業(yè)務(wù)設(shè)計(jì)相應(yīng)的數(shù)據(jù)格式與交互機(jī)制,從而應(yīng)用于多個(gè)外部實(shí)物節(jié)點(diǎn)同時(shí)與EXata 虛擬網(wǎng)絡(luò)之間開展不同業(yè)務(wù)互通的半實(shí)物通信仿真場景。

猜你喜歡
實(shí)物數(shù)據(jù)包代碼
帶你學(xué)習(xí)實(shí)物電路圖的連接
二維隱蔽時(shí)間信道構(gòu)建的研究*
民用飛機(jī)飛行模擬機(jī)數(shù)據(jù)包試飛任務(wù)優(yōu)化結(jié)合方法研究
SmartSniff
當(dāng)手繪遇上實(shí)物
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
基于Arduino控制的半實(shí)物模擬駕駛系統(tǒng)
盐亭县| 阿鲁科尔沁旗| 铜山县| 昆山市| 柞水县| 永修县| 达孜县| 科技| 平昌县| 沽源县| 大连市| 靖西县| 班戈县| 金昌市| 昌宁县| 革吉县| 思南县| 临高县| 巨野县| 顺昌县| 龙井市| 大洼县| 额敏县| 宜宾市| 长兴县| 读书| 新建县| 日土县| 太仓市| 安化县| 唐山市| 虎林市| 治县。| 运城市| 钟山县| 柯坪县| 喀喇| 邯郸市| 青铜峡市| 呼伦贝尔市| 铁岭市|