向雨馨 陸淵祖 馬天闊 蔣煒樂 陳曦
摘? 要:實(shí)現(xiàn)復(fù)雜的網(wǎng)絡(luò)系統(tǒng)代價(jià)往往較高或不現(xiàn)實(shí),而傳統(tǒng)的網(wǎng)絡(luò)模擬仿真均使用二維界面,并利用抽象的命令行進(jìn)行操作,可視化和交互性差。針對(duì)上述問題,將數(shù)字孿生技術(shù)作為網(wǎng)絡(luò)技術(shù)研究的一種有效的現(xiàn)代化測(cè)試、評(píng)估和驗(yàn)證手段,便捷、可視化地針對(duì)現(xiàn)有網(wǎng)絡(luò)系統(tǒng)進(jìn)行模擬仿真,有效提高網(wǎng)絡(luò)仿真平臺(tái)的保真度與交互性,從而打破多數(shù)仿真工具的局限,提供更豐富的仿真服務(wù),具有十分廣闊的前景。
關(guān)鍵詞:數(shù)字孿生;網(wǎng)絡(luò)仿真;可視化網(wǎng)絡(luò);高交互
中圖分類號(hào):TP391.9? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? 文章編號(hào):2096-4706(2023)17-0088-04
Three Dimensional Visualization Network Simulation Platform Based on
Digital Twin Technology
XIANG Yuxin, LU Yuanzu, MA Tiankuo, JIANG Weile, CHEN Xi
(School of Computer Science and Engineering, Southwest Minzu University, Chengdu? 610041, China)
Abstract: The implementation of complex network systems is often costly or impractical, while traditional network simulation uses two-dimensional interfaces and abstract command lines for operation, with poor visualization and interactivity. To address these problems, this paper uses digital twin technology as an effective modern test, evaluation and verification tool for network technology research, to simulate existing network systems conveniently and visually. It effectively improves the fidelity and interactivity of network simulation platforms, thus breaking the limitations of most simulation tools and providing richer simulation services. It has a very broad prospect.
Keywords: digital twin; network simulation; visualization network; high interactivity
0? 引? 言
網(wǎng)絡(luò)仿真對(duì)于網(wǎng)絡(luò)協(xié)議、設(shè)備的研發(fā)具有重要的預(yù)研價(jià)值。業(yè)界已有多款流行的網(wǎng)絡(luò)仿真工具,如OMNeT++、NS-3、GNS3、Packet Tracer等,但存在著使用可視化、交互性有待進(jìn)一步提升等問題,不利于降低網(wǎng)絡(luò)仿真工具的使用門檻,也不利于用戶直觀理解網(wǎng)絡(luò)設(shè)備構(gòu)造、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和網(wǎng)絡(luò)運(yùn)行過程。
針對(duì)此問題,可通過Unity等相關(guān)技術(shù),實(shí)現(xiàn)“數(shù)字孿生+網(wǎng)絡(luò)仿真”的混合呈現(xiàn)。在部署了基于Docker的虛擬實(shí)驗(yàn)網(wǎng)絡(luò)之后,將網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)進(jìn)行3D建模,為實(shí)驗(yàn)網(wǎng)絡(luò)創(chuàng)建一個(gè)數(shù)字孿生,實(shí)現(xiàn)“虛實(shí)結(jié)合”[1],使網(wǎng)絡(luò)仿真不再只是抽象的命令行接口,而是3D的圖形界面,賦予網(wǎng)絡(luò)仿真沉浸式體驗(yàn)。數(shù)據(jù)流在網(wǎng)絡(luò)中的傳輸過程、各種網(wǎng)絡(luò)協(xié)議的建立流程、設(shè)備運(yùn)行狀態(tài)等信息可以通過數(shù)字孿生中的3D特效進(jìn)行展示,賦予網(wǎng)絡(luò)仿真沉浸式體驗(yàn)[2]。
1? 相關(guān)技術(shù)
1.1? Unity3D
Unity3D[3]是由丹麥Unity Technologies公司開發(fā)的綜合性多平臺(tái)的游戲開發(fā)工具。使用Unity3D可實(shí)現(xiàn)多平臺(tái)一次性開發(fā)且兼容性較好。本平臺(tái)主要使用Unity3D開發(fā)前端數(shù)字孿生引擎以創(chuàng)建3D圖形化界面。
1.2? 3D Studio Max
3D Studio Max(3D Max)是Discreet公司開發(fā)的基于PC系統(tǒng)的3D建模渲染和制作軟件。本平臺(tái)使用3D Max對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行建模從而進(jìn)行三維呈現(xiàn)。
1.3? Shader
Shader[4](著色器)是用來實(shí)現(xiàn)圖像渲染的,用來替代固定渲染管線的可編輯程序。其中Vertex Shader(頂點(diǎn)著色器)主要負(fù)責(zé)頂點(diǎn)的幾何關(guān)系等的運(yùn)算,Pixel Shader(像素著色器)主要負(fù)責(zé)片元顏色等的計(jì)算。本平臺(tái)使用Shader技術(shù)來實(shí)現(xiàn)模擬傳輸數(shù)據(jù)時(shí)線條傳輸?shù)牧鞴庖曈X效果。
2? 設(shè)計(jì)思路與方案
2.1? 整體架構(gòu)
平臺(tái)基于數(shù)字孿生理念,由前期自主研發(fā)的后端網(wǎng)絡(luò)仿真引擎(“實(shí)”)和前端數(shù)字孿生引擎(“虛”)兩大部分組成,并進(jìn)行了“虛實(shí)結(jié)合”[5],如圖1所示。
在上述系統(tǒng)架構(gòu)下,平臺(tái)提供網(wǎng)絡(luò)仿真交互功能、協(xié)議原理展示功能兩大功能。平臺(tái)既具備實(shí)驗(yàn)網(wǎng)絡(luò)的模擬仿真功能,又具有3D可視化交互功能,通過讀取已部署的拓?fù)浣Y(jié)構(gòu)描述文件,為其提供數(shù)字孿生的交互式3D界面,打破了多數(shù)仿真工具的局限,提高了仿真網(wǎng)絡(luò)的可交互性。
2.1.1? 后端網(wǎng)絡(luò)仿真引擎
基于虛擬交換機(jī)(Open VSwitch, OVS)技術(shù)和Docker輕量級(jí)容器化技術(shù)創(chuàng)建實(shí)驗(yàn)網(wǎng)絡(luò)運(yùn)行環(huán)境,用戶可以根據(jù)需要,創(chuàng)建由多個(gè)Docker容器、OVS交換機(jī)構(gòu)成的虛擬拓?fù)浣Y(jié)構(gòu),可供用戶選擇部署實(shí)驗(yàn),監(jiān)控網(wǎng)絡(luò)設(shè)備的運(yùn)行狀態(tài)、模擬實(shí)驗(yàn)網(wǎng)絡(luò)行為、分析實(shí)驗(yàn)網(wǎng)絡(luò)狀態(tài),實(shí)現(xiàn)故障定位、故障預(yù)警等功能,并將數(shù)據(jù)反饋至前端數(shù)字孿生引擎。
2.1.2? 前端數(shù)字孿生引擎
基于Unity3D和C#腳本為仿真的實(shí)驗(yàn)網(wǎng)絡(luò)創(chuàng)建一個(gè)可交互3D的數(shù)字孿生場(chǎng)景,對(duì)實(shí)驗(yàn)網(wǎng)絡(luò)及其運(yùn)行狀態(tài)進(jìn)行可視化并呈現(xiàn)在3D的可視化場(chǎng)景中,可直觀地顯示數(shù)據(jù)流在實(shí)驗(yàn)網(wǎng)絡(luò)中的傳輸過程、各種網(wǎng)絡(luò)協(xié)議的建立流程、設(shè)備運(yùn)行狀態(tài)等信息可以通過虛擬世界中的3D特效進(jìn)行展示,賦予網(wǎng)絡(luò)仿真沉浸式體驗(yàn)。網(wǎng)絡(luò)設(shè)備的管理也可通過3D圖形化界面進(jìn)行交互,網(wǎng)絡(luò)管理更加便捷。
2.2? 網(wǎng)絡(luò)仿真交互功能
2.2.1? 網(wǎng)絡(luò)拓?fù)渥x取模塊
后端網(wǎng)絡(luò)仿真引擎最終生成的仿真的實(shí)驗(yàn)網(wǎng)絡(luò)均由軟件進(jìn)行模擬,具有不可見性,不利于展示網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、觀察設(shè)備的狀態(tài)及用戶進(jìn)行各類仿真操作。前端數(shù)字孿生引擎通過網(wǎng)絡(luò)拓?fù)渥x取模塊,動(dòng)態(tài)讀取JSON,獲取網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備類型信息、位置信息等功能,為后續(xù)實(shí)驗(yàn)網(wǎng)絡(luò)3D呈現(xiàn)做好了數(shù)值準(zhǔn)備,有利于更直觀地展示用于仿真的實(shí)驗(yàn)網(wǎng)絡(luò)[6]。另外,平臺(tái)也提供了JSON文件中拓?fù)涞臄?shù)據(jù),使得用戶可以跨平臺(tái)使用,進(jìn)行二次開發(fā)。
2.2.2? 網(wǎng)絡(luò)3D呈現(xiàn)模塊
在對(duì)網(wǎng)絡(luò)拓?fù)溥M(jìn)行3D呈現(xiàn)時(shí),網(wǎng)絡(luò)拓?fù)渥x取模塊通過獲取已經(jīng)部署的實(shí)驗(yàn)網(wǎng)絡(luò)的關(guān)鍵信息,對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行3D呈現(xiàn),對(duì)網(wǎng)絡(luò)拓?fù)溥M(jìn)行3D構(gòu)建,如圖2及圖3所示,可以多視角、多角度觀察網(wǎng)絡(luò)拓?fù)?,用戶可以采用鼠?biāo)切換3D數(shù)字孿生場(chǎng)景中的觀看視角及觀看距離,也可針對(duì)某個(gè)網(wǎng)絡(luò)設(shè)備進(jìn)行點(diǎn)擊、拖拽網(wǎng)絡(luò)設(shè)備變更位置等操作,也可右擊某個(gè)網(wǎng)絡(luò)設(shè)備后選擇需要操作菜單來對(duì)設(shè)備的參數(shù)進(jìn)行配置、訪問等,實(shí)現(xiàn)圖形化的操作界面[7]。
2.2.3? 網(wǎng)絡(luò)仿真交互模塊
在網(wǎng)絡(luò)拓?fù)?D呈現(xiàn)實(shí)現(xiàn)后,前端數(shù)字孿生引擎根據(jù)設(shè)備的類型,在實(shí)驗(yàn)場(chǎng)景中提供對(duì)應(yīng)的圖形化控件,彈出網(wǎng)絡(luò)節(jié)點(diǎn)的按鈕菜單,將仿真數(shù)據(jù)與拓?fù)淠P拖嘟Y(jié)合,來交互式地調(diào)用多種仿真工具,使拓?fù)淠P途哂锌刹僮餍?,從而?shí)現(xiàn)可測(cè)試的數(shù)據(jù)仿真,降低了操作的門檻。其原理是利用Linux系統(tǒng)的終端,通過在終端輸入調(diào)用Docker接口的命令行語句,實(shí)現(xiàn)發(fā)包、抓包、調(diào)用終端輸入命令、彈出瀏覽器等功能[8]。
2.3? 協(xié)議原理展示功能
平臺(tái)不僅能夠動(dòng)態(tài)實(shí)現(xiàn)網(wǎng)絡(luò)仿真,還能以動(dòng)畫的形式對(duì)協(xié)議原理進(jìn)行展示。協(xié)議原理動(dòng)畫配有語音講解及文字說明,用戶不僅可以查看網(wǎng)絡(luò)設(shè)備的各項(xiàng)參數(shù),還能進(jìn)行發(fā)包、收包、打開終端輸入指令、打開瀏覽器等操作,有利于教師教學(xué)以及學(xué)生學(xué)習(xí),有助于課堂教學(xué)及線上教學(xué)。
2.4? 用戶界面設(shè)計(jì)
平臺(tái)具有十分直觀的圖形化界面,主要分為網(wǎng)絡(luò)設(shè)備信息、圖形化操作按鈕、三維可視化界面三個(gè)板塊。
2.4.1? 網(wǎng)絡(luò)設(shè)備信息
網(wǎng)絡(luò)設(shè)備信息:此部分顯示網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖內(nèi)所有節(jié)點(diǎn)設(shè)備及其內(nèi)部功能的調(diào)用,用戶可以點(diǎn)擊網(wǎng)絡(luò)節(jié)點(diǎn)查看其參數(shù),如MAC地址、IP地址、端口號(hào)等。
2.4.2? 圖形化操作按鈕
圖形化操作按鈕:此部分通過點(diǎn)擊對(duì)應(yīng)按鈕,使得用戶可以通過點(diǎn)擊按鈕直接對(duì)實(shí)驗(yàn)網(wǎng)絡(luò)直接進(jìn)行操作,省去了用戶自主編寫代碼的過程,操作簡便,有利于用戶進(jìn)行實(shí)驗(yàn)。
2.4.3? 三維可視化界面
三維可視化界面:此部分以三維的形式向用戶展示更為直觀的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),在實(shí)驗(yàn)網(wǎng)絡(luò)成功部署后展現(xiàn)3D呈現(xiàn)的實(shí)驗(yàn)網(wǎng)絡(luò),可視化程度較高。
3? 方案實(shí)現(xiàn)
3.1? 網(wǎng)絡(luò)拓?fù)渥x取的實(shí)現(xiàn)
前端數(shù)字孿生引擎采用由C#編寫的網(wǎng)絡(luò)拓?fù)渥x取模塊進(jìn)行動(dòng)態(tài)讀取JSON,通過對(duì)后端網(wǎng)絡(luò)仿真引擎拖拽設(shè)計(jì)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成的JSON描述文件進(jìn)行解析,將函數(shù)封裝、序列化,然后根據(jù)描述信息實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的3D構(gòu)建,為用戶更好地展示網(wǎng)絡(luò)結(jié)構(gòu)和觀察設(shè)備,利于仿真操作。
3.2? 網(wǎng)絡(luò)3D呈現(xiàn)的實(shí)現(xiàn)
為了動(dòng)態(tài)呈現(xiàn)3D界面,首先要將各網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備模型作為預(yù)制體存儲(chǔ),當(dāng)用戶點(diǎn)開3D圖形化操作界面時(shí),網(wǎng)絡(luò)拓?fù)渥x取模塊立即獲取用戶所選擇的實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)對(duì)應(yīng)的JSON描述文件。利用獲取到的網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備類型和數(shù)量等信息,網(wǎng)絡(luò)3D呈現(xiàn)模塊依照指定數(shù)量將各類型網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備的預(yù)制體實(shí)例化到3D界面的指定位置,并根據(jù)描述信息調(diào)節(jié)網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備的角度、大小等參數(shù)。同時(shí),以子對(duì)象的形式在對(duì)應(yīng)網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備中生成指定數(shù)量的端口,并為端口添加連線組件LineRenderer,然后根據(jù)網(wǎng)絡(luò)節(jié)點(diǎn)的鏈路描述信息,獲取端口間的映射得到連線終點(diǎn),實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備的連線[8]。
3.3? 網(wǎng)絡(luò)仿真交互的實(shí)現(xiàn)
通過在網(wǎng)絡(luò)仿真交互模塊中采用各類內(nèi)置或自定義組件可實(shí)現(xiàn)3D界面中的交互功能,如在3D界面中使用鼠標(biāo)切換觀看視角及觀看距離、對(duì)某個(gè)網(wǎng)絡(luò)設(shè)備進(jìn)行點(diǎn)擊、拖拽等操作。
圖4為生成交互菜單的C#腳本,網(wǎng)絡(luò)仿真交互模塊將該腳本添加至網(wǎng)絡(luò)3D呈現(xiàn)模塊存儲(chǔ)的預(yù)制體中并轉(zhuǎn)換為自定義組件。當(dāng)預(yù)制體實(shí)例化后,網(wǎng)絡(luò)仿真交互模塊將生成交互按鈕,并通過網(wǎng)絡(luò)拓?fù)渥x取模塊獲取實(shí)例化網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備的名稱、IP等信息,以菜單窗口的形式呈現(xiàn)于3D界面。同時(shí),當(dāng)用戶點(diǎn)擊網(wǎng)絡(luò)仿真交互模塊生成的交互按鈕時(shí),利用C#中的Process類連通用戶的電腦終端,通過預(yù)先編寫的Docker命令行,可以快捷打開終端和進(jìn)入發(fā)包、抓包程序以及瀏覽器,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備內(nèi)部功能的調(diào)用。
3.4? 用戶界面的優(yōu)化
為了在3D界面中實(shí)現(xiàn)界面的美化,提升用戶體驗(yàn)、沉浸感,以及能夠更加直觀地觀察到實(shí)驗(yàn)網(wǎng)絡(luò)的信息映射,并能進(jìn)行實(shí)時(shí)感知,動(dòng)態(tài)呈現(xiàn),可通過編寫Shader代碼來對(duì)圖形進(jìn)行渲染,實(shí)現(xiàn)流光等效果。首先將輸入的網(wǎng)格和輸入的貼圖組合、輸出,從而得到一個(gè)圖形,然后編寫Shader以及通過C#與后端網(wǎng)絡(luò)仿真引擎通信獲取已部署實(shí)驗(yàn)網(wǎng)絡(luò)的吞吐率、時(shí)延、抖動(dòng)、帶寬、負(fù)載等信息來對(duì)該Shader的特定的參數(shù)進(jìn)行設(shè)置后得到一個(gè)材質(zhì),最后將材質(zhì)賦予合適的渲染器來進(jìn)行渲染指定的圖形對(duì)象。
3.5? 協(xié)議原理動(dòng)畫展示功能
為了用于網(wǎng)絡(luò)協(xié)議原理的展示,首先要在Unity中創(chuàng)建3D場(chǎng)景,讀取JSON文件后,在3D圖形化操作界面中部署網(wǎng)絡(luò)設(shè)備,并動(dòng)態(tài)生成端口號(hào)等物理參數(shù),然后通過線條連接各個(gè)網(wǎng)絡(luò)設(shè)備,生成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),并通過調(diào)節(jié)Shader參數(shù)實(shí)現(xiàn)特殊效果,添加對(duì)當(dāng)前網(wǎng)絡(luò)協(xié)議原理的講解音頻,利用C#腳本控制模型的出現(xiàn)、消失和銷毀等狀態(tài),通過Shader代碼中的時(shí)間參數(shù),調(diào)節(jié)線條中流光效果的方向和流動(dòng)的時(shí)間點(diǎn),最終實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)協(xié)議原理的動(dòng)畫展示[9]。
如圖5、圖6、圖7和圖8所示,分別為計(jì)算機(jī)網(wǎng)絡(luò)中的單播與多播的關(guān)系、CSMA/CD協(xié)議、TCP三次握手、RIP協(xié)議原理的動(dòng)畫展示。
4? 結(jié)? 論
本平臺(tái)相較于已有的仿真平臺(tái)做出了可視化、圖形化操作、高交互性的改進(jìn),提供了豐富的網(wǎng)絡(luò)模擬仿真功能,為運(yùn)行中的網(wǎng)絡(luò)呈現(xiàn)三維可視化的拓?fù)浣Y(jié)構(gòu)和網(wǎng)絡(luò)設(shè)備,展示數(shù)據(jù)流在網(wǎng)絡(luò)中的傳輸過程、各種網(wǎng)絡(luò)協(xié)議的建立流程、設(shè)備運(yùn)行狀態(tài)等信息,且提供了網(wǎng)絡(luò)協(xié)議原理動(dòng)畫的展示,同時(shí)三維可視化網(wǎng)絡(luò)操作更加簡便直觀,實(shí)現(xiàn)了后端網(wǎng)絡(luò)仿真引擎與前端數(shù)字孿生引擎的數(shù)據(jù)交互,簡單直接,且可以實(shí)時(shí)查看實(shí)驗(yàn)網(wǎng)絡(luò)中發(fā)生的變化。有助于課堂教學(xué)及科研人員進(jìn)行實(shí)驗(yàn),具有良好的教學(xué)、科研及商用前景。
參考文獻(xiàn):
[1] 康卿彬,張衛(wèi)同,賈舵,等.基于虛擬現(xiàn)實(shí)技術(shù)的網(wǎng)絡(luò)運(yùn)維可視化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [J].智能建筑與智慧城市,2022(12):142-144.
[2] 王駿,韋文亮.計(jì)算機(jī)網(wǎng)絡(luò)運(yùn)維及安全管理設(shè)計(jì)優(yōu)化策略探究 [J].電腦知識(shí)與技術(shù),2021,17(21):46-47+50.
[3] 王瑾.基于Unity3D手機(jī)游戲性能優(yōu)化技術(shù)的研究 [J].現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化,2015,5(22):94-96.
[4] 劉文韜.Blender 3D渲染機(jī)制研究 [D].南京:南京郵電大學(xué),2016.
[5] 陳宇,韓久江,劉建,等.云環(huán)境下面向“虛實(shí)融合”網(wǎng)絡(luò)的SDN構(gòu)建方法 [J].計(jì)算機(jī)工程與應(yīng)用,2023,59(3):234-243.
[6] 符永銓,趙輝,王曉鋒,等.網(wǎng)絡(luò)行為仿真綜述 [J].軟件學(xué)報(bào),2022,33(1):274-296.
[7] 鄭健平.三維顯示中圖像生成技術(shù)的研究 [D].北京:北京郵電大學(xué),2021.
[8] 任曉鵬,李偉華.基于Packet Tracer構(gòu)建虛擬網(wǎng)絡(luò)實(shí)訓(xùn)平臺(tái) [J].中國職業(yè)技術(shù)教育,2006(27):44+46.
[9] 陳曦,吳濤.輕量級(jí)虛擬化技術(shù)在計(jì)算機(jī)網(wǎng)絡(luò)教學(xué)中的應(yīng)用研究 [J].教育教學(xué)論壇,2020(38):371-372.
作者簡介:向雨馨(2002—),女,漢族,四川綿陽人,本科在讀,研究方向:軟件定義網(wǎng)絡(luò);陸淵祖(2002—),男,漢族,廣西南寧人,本科在讀,研究方向:計(jì)算機(jī)科學(xué)與技術(shù);馬天闊(2000—),男,蒙古族,河北承德人,本科在讀,研究方向:軟件工程;蔣煒樂(2001—),男,漢族,福建泉州人,本科在讀,研究方向:深度學(xué)習(xí);通訊作者:陳曦(1985—),男,漢族,重慶永川人,副教授,博士,主要研究方向:無線網(wǎng)絡(luò)、軟件定義網(wǎng)絡(luò)、網(wǎng)絡(luò)虛擬化、人工智能。