999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于HOOK的通信系統數字模擬器設計

2019-05-05 07:49:54劉存才
無線電工程 2019年5期
關鍵詞:信息系統

劉存才,梁 禹,袁 舒

(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081;2.中國人民解放軍32180部隊,北京 100072)

0 引言

在數字通信領域中,信息與通信網絡發揮著重要的作用。隨著信息戰的快速發展,數字通信網的組成越來越復雜,對網絡類復雜系統的依賴性越來越大,時延精度要求越來越高[1]。然而,一般實驗室里的通信環境缺少對實際通信拓撲的模擬,而且實裝通信設備對實時性要求非常高,因此亟需一種通信系統模擬器[2]來對數字通信網進行合理的模擬,在不改變實裝通信設備的設計基礎上,提供高精度的時延服務[3]。

目前,大部分針對數字通信系統的模擬器都是同實裝通信設備一起研制[4],在需求上統一進行分析論證,或多或少都需要在實裝通信設備中進行相關設計[5],而且同實裝通信綁定的模擬器往往局限于特定的適用場景,很難擴展到其他領域[6]。因此需要設計一種通用的適用于定型之后的通信設備且對實裝通信設備無感的通信系統模擬器。

本文針對數字通信系統設計了一種數字模擬器,能夠模擬數字通信基礎網的能力,為網絡信息體系各通信設備節點之間通過不同介質、不同帶寬和不同背景流量情況下傳輸信息提供時間延遲等通信效果支持,模擬通信傳輸全流程,支撐數字通信網絡信息體系全數字仿真。同時提出了一種基于HOOK[7]SOCKET[8]的設計,不對實裝通信設備進行任何更改,使得通信設備間進行無感操作,提供通信設備間按需按時的業務傳輸服務。

1 通信系統數字模擬器總體設計

1.1 系統組成

通信系統數字模擬器包括主機和端機兩部分,其中,主機指通信系統數字模擬器的主體軟件部分,部署在獨立的服務器上,用于提供通信網絡模擬服務。端機指分布在各模擬通信節點上的通信模擬代理軟件,主要用于為實裝通信設備間的信息傳輸提供通信延遲。通信模擬器主機、端機以及模擬通信節點之間的連接關系如圖1所示。

通信系統數字模擬器系統運行在由交換機、路由器等構成的綜合試驗床網絡環境中,其中主機通過試驗網絡與所有模擬通信節點相連,端機軟件嵌入到每個模擬通信節點設備中。

圖1 通信系統數字模擬器系統組成

1.2 功能組成

通信系統數字模擬器功能組成如圖2所示。

圖2 通信系統數字模擬器功能組成

1.2.1 模擬器主機

模擬器主機用于模擬數字通信網絡,為模擬通信節點之間的信息傳輸提供通信延遲、界面顯示以及數據統計。主要包括:配置與初始化、業務生成、通信路由、時延計算、資源管理、數據處理、統計評估和通信[9]。

配置與初始化模塊:基于想定和模擬通信節點的部署情況,配置通信網絡[10],包括骨干網拓撲、模擬通信節點接入點與接入方式等;設置各種參數[11],包括位置、帶寬、背景流量、節點地址、模擬通信節點接入時延、用于離線工作方式時的業務流量矩陣和業務分布等參數等初始化操作。

業務生成模塊:該模塊用于離線工作方式,在離線工作方式時,模擬器的業務生成模塊按想定生成模擬通信節點之間的通信業務,驅動通信模擬器運行[12],模擬結果存入數據庫;而在在線工作方式時,模擬通信節點實時發送待傳信息的摘要信息完成業務驅動,模擬結果實時反饋給目的端機。

通信路由模塊:基于SPF路由算法[13]對每個節點產生到所有其他節點的初始化備選路由[14],同時基于當前數據包的源和目的地址、鏈路資源狀態等,動態計算出通信路由[15]。

時延計算模塊:基于通信業務信息和通信路由,模擬產生通信延遲τ,該通信延遲涵蓋排隊時延、傳輸時延、傳播時延和處理時延[16]。

通信資源管理模塊:實現網絡資源的占用與釋放等動態變化與記錄,主要為節點隊列資源管理[17]。

數據處理模塊:完成數據存儲功能,對通過通信系統數字模擬器主機的信息交互內容按格式進行記錄并保存,包括業務摘要、主機發送消息及返回消息;匹配端機返回的時間信息,判斷時序關系并分支處理。

統計評估模塊:統計各種數據,包括業務傳輸成功率、時序判斷和平均通信時延等等,進行通信評估。

通信顯示模塊:提供可視化的通信網模擬界面功能,顯示網絡拓撲、路由信息、狀態輸出信息、業務信息以及統計評估數據等信息。

1.2.2 模擬器端機

模擬器端機用于為模擬通信節點之間的信息傳輸提供通信效果加載。主要包括參數管理、收發代理、消息映射以及時序處理模塊。

參數管理模塊:負責端機軟件部分的諸如主機/端機IP地址、端口號和在線離線工作方式等參數配置。

收發代理模塊:實現模擬通信節點的真實信息的收發和信息緩存處理。即在信源端,模擬通信節點生成真實數據時,將提取并產生的摘要信息傳給通信模擬器主機;在信宿端,接收信源模擬通信節點發送的真實數據包并進行緩存。

消息映射模塊:接收到主機發送的通信時延值時,根據主機傳遞的通信信息與緩存數據進行匹配,實現該時延值與某緩存數據包的映射。

時序處理模塊:根據映射結果,判斷時序關系并進行分支處理。時序正常時,在相應時間點將真實數據包遞交給模擬通信節點;時序關系不滿足時,立即遞交真實數據包給目的通信節點,并且記錄異常時序信息。

1.3 系統流程

通信系統數字模擬器系統流程主要分為試驗準備、試驗執行以及結果展示與分析3個階段,由模擬通信節點、模擬器主機以及端機共同完成全流程,如圖3所示。

圖3 通信系統數字模擬器系統流程

1.3.1 試驗準備階段

在試驗準備階段,通信系統數字模擬器系統中的主機和端機分別進行相應的初始化工作。主機按照初始化配置文件中的試驗想定內容完成通信網絡想定編輯(包括網絡拓撲、模擬通信節點部署與接入等),并進行相關屬性配置(包括帶寬、背景流量、路由協議、接入時延和地址信息等各種參數和屬性),端機通過讀取試驗運控臺下發的初始化配置文件完成地址設置等初始化工作。

1.3.2 試驗執行階段

待系統初始化運行后進行業務驅動,各模擬通信節點開始進行各自數據的發送與接收,模擬通信節點在發送數據的同時將摘要信息發送給通信系統數字模擬器主機。

通信系統數字模擬器主機接收到待傳輸信息的摘要信息后,映射到邏輯拓撲的源和目的并作為一條邏輯業務驅動通信網模擬運行,自動尋找通信路由,結合需傳輸信息情況、路由、當前背景流量和信道特性等,計算得出該信息傳輸所需要的延時,并將時延消息打包發送給目的通信節點的端機軟件。同時,在該業務驅動過程中管理網絡節點、鏈路等通信資源的占用與釋放,最后通信系統數字模擬器主機將相關資源信息進行存儲。

模擬目的通信節點的端機軟件收到模擬源通信節點發送的業務信息后首先進行緩存,待收到主機發送的通信時延消息后,與緩存的業務信息進行映射,找到與之匹配的業務信息,進行時序判斷與處理,等滿足延時要求后將該業務信息遞交給目的模擬通信節點。

1.3.3 結果展示與分析

根據存儲的試驗運行資源數據信息,一方面,能夠進行數據展示和通信顯示;另一方面,能夠對相關信息進行統計、分析與評估,得到本次試驗任務的分析評估結果。

2 HOOK SOCKET設計

實驗室里的模擬通信節點大部分為實裝通信設備,這些設備經過試驗定型后是不能夠對其代碼設計進行任何的更改,為了達到目的通信設備在相應的延時值收到業務信息,需要將發出的業務進行截取以及緩存,而HOOK(掛鉤)能夠做到通信設備間的無感操作,能夠有效地截取源通信設備發出的業務包。

截取發送業務包的關鍵在于鉤取SOCKET信息,由于WINDOWS預設的消息類型中沒有直接有關SOCKET的鉤子定義,因此,需要對SOCKET的HOOK進行相應的設計。一種可行的思想是將socket api的函數入口與所要截取處理的函數入口進行替換,即系統檢測到發送socket消息時,首先進入自己的處理函數中,等待處理完畢后,再調用真正的底層socket api的函數發送該消息。

2.1 DLL加載設置

HOOK程序需要放到動態鏈接庫中進行執行,在動態鏈接庫DLL[18]的DLL_PROCESS_ATTACH初始化中,需要將socket api的函數入口與自處理程序入口進行替換。

以UDP[19]的發送消息為例,需要執行函數hookapi(“ws2_32.dll”,“sendto”,(DWORD)MySendto,&sendtoapi)。其中,hookapi函數以及MySendto函數為自定義函數,調用系統GetProcAddress、OpenProcess以及WriteProcessMemory等函數將“ws2_32.dll”中的“sendto”函數入口替換為MySendto函數入口。這樣一旦系統檢測到調用sendto函數時,就會首先跳轉到自定義的MySendto函數中進行處理。

2.2 開啟鉤子

只有當用戶手動選擇開啟鉤子時,才會對發送的業務進行截取,此時調用系統函數g_hHook=SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)Hook,g_hinstDll,0),開始安裝SOCKET鉤子。其中g_hHook為鉤子過程的句柄;WH_GETMESSAGE表示安裝一個鉤子過程對發送到消息隊列的消息進行監視;HOOK為自定義的鉤子過程,在該過程中只需要調用系統函數CallNextHookEx(g_hHook,nCode,wParam,lParam)直接將鉤子信息傳遞給鉤子鏈中下一個等待接收的信息即可[20];g_hinstDll為指向鉤子過程所在的DLL句柄,該值在DLL初始化時賦值為安裝鉤子過程的代碼所在的DLL的句柄;由于要截取所有進程發送的業務消息,因此,需要將該鉤子程序設置為全局鉤子,即將指定與鉤子過程相關的線程標識設置為0。

只有調用SetWindowsHookEx函數安裝鉤子后,系統才會開始監視所有的隊列消息,而且只有當該隊列消息為SOCKET發送消息時,才會進行函數入口替換處理,開始進行HOOK操作。

2.3 HOOK處理操作

每當系統調用sendto函數時,由于進行了函數入口轉換,業務截取會首先在自定義函數MySendto函數中進行操作。對鉤住的業務包進行分析,如果符合相關的解包協議,那么進行下一步的業務解析,否則直接調用底層真正的sendto api直接發送該原始業務消息。

針對本文的通信系統模擬器來說,如果截取的業務包符合相關解包協議,那么會對該業務包進行兩部分的處理:① 直接將該業務包發送至目的端機緩存起來;② 抽取該業務包的摘要信息發送給主機。對原始業務包進行相關操作后,統一調用底層真正的sendto api發送函數。

由于對系統sendto函數進行了函數入口替換,為了防止在調用底層api發送函數時出現死循環,需要在解析該業務包前進行判斷。如果該業務包為本鉤子DLL發送或者目的接收通信設備同本鉤子DLL部署在同一臺計算機上,那么不執行后續的解包操作,直接調用底層真正的sendto api函數發送該業務包。

2.4 關閉鉤子

在退出鉤子程序前,需要將sendto函數的入口還原為ws2_32.dll中sendto api函數的真正入口,然后調用系統函數UnhookWindowsHookEx將已經安裝的鉤子進行移除。在關閉鉤子程序后,系統將不會對socket函數進行監測。

3 基于HOOK的通信信息流程

為了更好地說明基于HOOK的通信系統數字模擬器的信息流程,特定義術語:

τ0: 節點接入時延值,該值為可設置的固定值;

τ: 通信模擬器主機計算出的邏輯通信時延值(包括了兩端通信節點的接入時延值);

T0:源模擬通信節點發送數據的時刻;

T1:目的端機接收完原始業務數據的時刻;

T2:目的端機得知τ(即接收到主機發送的τ)的時刻;

t3:該數據的最大可接受延遲值。

由于端機與模擬通信節點配置在同一臺計算機上,所以端機可以HOOK住這臺機子里系統發出的所有消息,包括模擬通信節點發送的SOCKET消息。在端機中設置相應的鉤子程序,每當源模擬通信節點向目的節點發送信息時,在SOCKET消息發送出去之前,端機就可以HOOK該信息,通過相關協議解析該業務,封裝新的業務發送目的地址為目的模擬通信節點處的端機,同時抽取出相關摘要信息發送給主機。目的端機接收到信息后進行緩存,當接收到主機發送的時延消息后,通過源和業務序列號進行匹配,進行時序處理之后將原業務信息按時發送給目的通信節點。基于HOOK的通信信息流程如圖4所示。

由源模擬通信節點經由端機和主機發送業務信息至目的模擬通信節點的詳細流程步驟如下:

① 源模擬通信節點向目的模擬通信節點發送真實業務信息;

② 部署于源模擬通信節點的端機使用HOOK截取該真實業務信息,并且對該業務信息進行封裝與抽取處理,生成封裝以及摘要兩條業務信息;

③ 部署于源模擬通信節點的端機將封裝有原始業務信息的包發送給部署于目的模擬通信節點的端機,由目的端機將該業務包進行緩存;

④ 部署于源模擬通信節點的端機同時向主機發送待傳輸信息的摘要信息,包括信息源、信息目的、待傳信息大小、業務序列號、待傳信息時間發送時間T0和最遲可接受延時t3等;

⑤ 主機根據摘要信息自動尋找通信路由,結合需傳輸信息情況、當前背景流量、信道特性等,計算得出該信息傳輸所需要的通信延時τ;

⑥ 主機將τ,T0,t3值等時延信息包發送給部署于目的模擬通信節點的端機;

⑦ 目的端機將業務信息與時延信息進行映射并且判斷時間關系,當T1≤T0+τ且T2≤T0+τ且τ≤t3時,目的端機等待到T0+τ時刻將真實業務信息遞交給目的模擬通信節點;當時間關系不滿足以上要求時,在目的端機收到主機發來的時延信息時立即將真實業務數據遞交給目的模擬通信節點,并且記錄該異常時序信息[21];

⑧ 目的端機將映射信息反饋給主機,主機同步判斷時間關系,當滿足T1≤T0+τ且T2≤T0+τ且τ≤t3時,主機正常記錄并且顯示該業務的傳輸信息,當不滿足上述時間關系時,主機記錄該異常時序信息。

圖4 基于HOOK的通信信息流程

4 通信模擬器軟件界面展示

基于HOOK的通信系統數字模擬器設計,本文研發了一款通信模擬器軟件,其軟件界面示意如圖5所示。

模擬器主機采用MAPX[22]插件展示通信以及通信設備節點拓撲信息,能夠進行地圖的縮放、移動、拖拽和單擊雙擊等操作。每當模擬通信節點發送一條信息時,在地圖上動態顯示該業務信息的傳輸路徑,在業務信息輸出窗口顯示該業務信息的摘要信息、時延、路由以及傳輸成功與否等信息,在左側的統計評估窗口顯示鏈路利用率、傳輸成功率和通信時延等相關統計信息。

模擬器端機利用HOOK機制截取以及緩存相關業務信息,在相應的時刻值將業務信息遞交給目的模擬通信節點。

圖5 通信系統數字模擬器界面示意圖

5 結束語

針對實驗室里的局域網缺少實際的數字通信網絡拓撲以及實裝通信設備在不能更改設計的前提下,需要高可靠延遲傳輸的要求,本文提出了一種基于HOOK SOCKET的通信系統數字模擬器設計,能夠模擬按需的數字通信網絡,提供業務生成、通信路由、時延計算、資源管理、數據處理、統計評估和通信顯示等功能設計,能夠使通信設備間進行無感操作,為傳輸信息提供時間延遲等通信效果支持,能夠較好地支撐數字通信網絡全數字仿真。

本文基于數字通信系統中特定協議應用,按照文中的設計思想,研制通信模擬器并在試驗床上經過全面驗證,能夠可靠有效地滿足數字通信網絡業務傳輸的要求。本文提出的通信系統數字模擬器設計方法對進一步研究數字網絡信息體系提供了一定的思路。由于數字通信系統是非常復雜的系統,全面合理、高可信的全系統仿真還存在著許多困難,還有許多工作需繼續深入地研究。

猜你喜歡
信息系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 国产91精选在线观看| 人妻免费无码不卡视频| 九九热视频在线免费观看| 亚洲黄色网站视频| 中文字幕av无码不卡免费| 成人在线观看一区| 国产91麻豆免费观看| 欧美精品二区| 国产亚洲精品97在线观看| 少妇精品网站| 国产精品七七在线播放| 亚洲色图欧美在线| 91青青视频| 亚洲中文字幕97久久精品少妇| 无码网站免费观看| 色综合五月婷婷| 久久亚洲国产视频| 久久亚洲精少妇毛片午夜无码| 美女一级免费毛片| 亚洲人成网线在线播放va| 国产凹凸视频在线观看| 国产精品亚洲αv天堂无码| 国产一级小视频| 日本不卡在线播放| 亚洲精品视频免费| 午夜免费小视频| 九九九精品视频| 欧美成一级| 人妻丰满熟妇AV无码区| 欧美成人午夜视频| 人人爱天天做夜夜爽| 精品国产黑色丝袜高跟鞋| 日本一区二区三区精品国产| 欧美激情视频在线观看一区| 国产18在线播放| 无码在线激情片| 中文字幕调教一区二区视频| 国产高清无码麻豆精品| 999在线免费视频| 欧美日本一区二区三区免费| 2018日日摸夜夜添狠狠躁| 久久毛片网| 最新无码专区超级碰碰碰| 57pao国产成视频免费播放| 老汉色老汉首页a亚洲| 无码啪啪精品天堂浪潮av| 国产99久久亚洲综合精品西瓜tv| 亚洲精品视频免费观看| 国产玖玖视频| 日本一本在线视频| 国产第二十一页| 欧美国产日韩在线| 国产第八页| 欧美日一级片| 久久不卡国产精品无码| 日韩无码黄色| 欧美色香蕉| 91福利一区二区三区| 亚洲欧美一区二区三区图片| 国产福利影院在线观看| 激情午夜婷婷| 国产午夜福利亚洲第一| 成年人国产视频| 99re热精品视频中文字幕不卡| 国产最新无码专区在线| 尤物精品国产福利网站| 国产国语一级毛片在线视频| 日韩毛片基地| 亚洲第一在线播放| 亚洲视频a| 在线无码九区| 亚洲成综合人影院在院播放| 久久久久久久97| 永久免费av网站可以直接看的| 欧美国产日本高清不卡| 丝袜国产一区| 中文字幕欧美成人免费| 一本色道久久88亚洲综合| 在线亚洲小视频| 福利在线不卡一区| 国产性生大片免费观看性欧美| 国产在线98福利播放视频免费|