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

基于VxWorks的IP層數據包監聽技術研究*

2023-06-05 00:49:40張國超
艦船電子工程 2023年1期
關鍵詞:利用方法

張國超 周 暢

(上海船舶電子設備研究所 上海 201108)

1 引言

VxWorks 操作系統是美國風河(WindRiver)公司于1983年設計開發的一種嵌入式實時操作系統。它以其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中[1~2]。

隨著計算機技術的飛速發展和互聯網時代的到來,很多不法分子利用操作系統安全漏洞編寫計算機病毒、木馬等植入程序竊取、篡改設備中重要信息[3],對用戶造成不可估量的損失。近年來針對VxWorks 操作系統的漏洞展開的網絡攻擊頻現,VxWorks 操作系統是目前全球成熟度最高和應用最為廣泛的嵌入式實時操作系統之一,并且很多諸如醫療基礎設施、航空航天、船舶等關鍵基礎設施及軍事相關行業都對VxWorks 操作系統有著廣泛的應用,因此針對VxWorks操作系統的網絡安全研究迫在眉睫,而網絡攻擊的識別是網絡安全中重要的一個環節,數據包監聽技術是網絡攻擊檢測的較為有效手段之一。數據包監聽技術通過捕獲特定過濾條件的網絡數據包進行綜合分析實現對數據來源、流量、數據內容、時戳等重要信息全面監控的功能,是系統級網絡調試的重要技術手段之一,也是識別惡意網絡攻擊等網絡安全威脅的關鍵技術方法[4]。在Unix/Linux 類操作系統中,數據包監聽技術主要是基于開源軟件libpcap[5~6],在Windows類操作系統中,常用的網絡數據包監聽技術是基于WinPcap函數庫進行二次開發的,著名的Wireshark軟件就是基于該技術的具體實現[7],但目前libpcap和WinPcap 函數庫并不支持VxWorks 操作系統,為解決這一緊迫需求,本文提出了幾種基于MUX 接口、伯克利封包過濾器(BPF)和原始套接字三種技術方式實現VxWorks 操作系統網絡數據監聽和捕獲技術,并在本文最后給出了三種方式的實驗結果及結果分析情況。

2 VxWorks的網絡協議棧

VxWorks 中的網絡協議棧叫作SENS(Scalable Enhanced Network Stack),即可裁減增強網絡協議棧。SENS 是基于4.4 BSD TCP/IP 協議棧發展而來的,包含了許多4.4 BSD TCP/IP 協議棧沒的協議;而且SENS在實現一些協議功能時增加了許多新特性,如在IP 協議實現時增加了多播功能。SENS 的基本特征和傳統的TCP/IP 網絡協議棧相似,但SENS最大的特點是在數據鏈路層和網絡協議層之間多了MUX層。在SENS中,網絡接口的驅動程序是叫作END(Enhanced NetworkDriver),即增強型網絡驅動程序,它處于數據鏈路層。IP層和TCP/UDP層合稱為網絡協議層。在數據鏈路層和網絡協議層之間有應用程序接口(API),這個接口在SENS中叫作MUX(Multiplexer)接口[8]。MUX 接口的作用是分解協議和網絡驅動程序,從而增強獨立性,這種獨立性使得增加新的驅動程序和協議變得很簡單,可以利用這一機制,創建用戶自主協議棧,通過修改stackRcvRtn 函數,將網絡數據直接返回給用戶,實現數據包偵聽的功能[9]。

可以利用mux 層進行網絡數據的監聽和嗅探。首先可以利用VxWorks特有的mux 層,注冊一個自定義網絡驅動,直接截獲網絡數據,并根據過濾條件返回給用戶進程,達到報文捕獲的目的。其次,VxWorks 的TCP/IP 協議棧支持BPF 過濾器,可以利用BPF 技術進行報文捕獲。最后,VxWorks 的協議棧與BSD協議棧兼容,可以利用原始套接字進行報文捕獲。

3 MUX層抓包技術

Mux 層允許用戶自主開發協議棧,一個mux 網絡協議至少包括以下四個接口:協議棧卸載回調函數接口stackShutDownRtn,數據接收錯誤處理函數接口stackErrorRtn,數據接收回調函數接口stack-RcvRtn,重啟被協議棧函數接口stackTxRestartRtn。以上四個接口函數中,對于數據監聽最重要的函數是stackRcvRtn,網卡接收到的以太網數據時自動調用該函數,返回到系統內核,當該函數的返回值設置為FALSE 時,網絡協議棧接收到的數據直接返回給用戶,實現數據包的捕獲和偵聽的功能,用戶可以根據接收的數據頭部進行定制的數據報文的過濾和抓取。在設計好stackRcvRtn 等用戶自定義四個函數后,通過muxBind 系統接口進行協議的注冊,即可完成。可以利用這一機制,修改stackRcvRtn 函數,將網絡數據直接返回給用戶。具體流程如圖1所示。

圖1 Mux層數據包截取流程圖

muxBind 的第一個和第二個參數分別傳遞網卡的名稱和序號,例如pci0,接下來的四個函數指針分別指向回調函數,默認處理可傳遞NULL 指針。在捕獲數據幀應用時,只需要定義接收回調函數stackRcvRtn,該函數將從內存池中返回M_BLK結構體指針,通過解析MBLK 的mBlkHdr 數據段mData,完成數據包的過濾和捕獲。以太網數據類型報文是我們最為關心的報文類型,IP數據包報文頭部的組織格式如圖2所示。

圖2 數據鏈路層和IP層數據報頭部示意圖

4 BPF報文捕獲技術

伯克利封包過濾器(Berkeley Packet Filter,BPF)是類Unix 系統上數據鏈路層的一種原始接口,提供原始鏈路層數據包的收發,可以用于監聽鏈路層數據[10],如tcpdump 程序就是基于該技術進行開發的。應用進程通過系統調用open 創建并打開一個BPF設備,并利用若干ioctl命令配置BPF設備,把它關聯到某個網絡接口,并安裝過濾程序從而能夠選擇性地接收輸入的分組。BPF 設備經過適當配置,能夠根據過濾程序的定義丟棄或接收輸入的分組,過濾程序的定義類似于偽計算機指令。可以將網卡設置為混雜模式,這一可以收到網絡上所有經過交換機的數據包,不管它們的目的地址是不是所在主機,從而實現數據包偵聽的功能。除此之外,BPF 支持“包過濾”功能,可以將滿足過濾條件的數據包拷貝到應用層,避免從操作系統內核向用戶態復制不需要的數據包,降低抓包過程中CPU的負擔及所需的緩沖區空間,從而降低丟包率。

BPF 的過濾功能是以BPF 虛擬機機器語言的解釋器的形式實現的,這種語言的程序可以抓取封包數據,對封包中的數據采取算數操作,并將結果與常量或封包中的數據或結果中的測試位比較,根據比較結果決定是否拒絕封包。

BPF 實現數據包截取的流程如圖3所示。BPF過濾器寫法類似于匯編代碼,BPF 常用指令對照表如表1所示。BPF 過濾器的可能寫法是:使用BPF_LD 將k 值存入寄存器A 中,使用BPF_JMP 將A中的值與k進行比較,實現指令的跳轉,可以跳轉到下一步的過濾指令,或者跳轉到BPF_RET 進行截取包長度的限制,如果,截取包的長度為0,則代表未匹配。

表1 BPF過濾器指令對照表

圖3 數據鏈路層和IP層數據報頭部示意圖

5 原始套接字報文捕獲技術

vxWorks 網絡編程支持BSD4.4 TCP/IP 兼容的編程接口,在TCP/IP 網絡應用中,同通信的兩個任務間主要模式是客戶端/服務器模式(C/S),即客戶首先向服務器提出服務請求,服務器收到請求后,提供相應的服務。原始套接字(Raw socket),工作在數據鏈路層,而其他類型的套接字工作在傳輸層,只能進行傳輸層的數據收發,只接收目標地址是本機的數據包,而原始套接字可以通過設置網卡混雜模式,接收所有經過網卡的數據包,我們可以使用原始套接字這一特點進行數據監聽[11~12]。當網卡除以混雜模式下能夠接收包括廣播在內的所有經過網卡的數據包。使用原始套接字進行數據監聽的流程如下:

1)通過設置套接字類型為SOCK_RAW 創建原始套接字

2)通過ioctl指定網卡為混雜模式

3)通過recv()函數進行數據包的接收

4)針對接收到的數據包進行包頭判斷,拷貝滿足條件的報文到緩沖區。

6 試驗結果及分析

為了對比本文提出的三種報文捕獲方法,首先需要搭建軟件運行的目標環境,利用Vmware 虛擬機軟件創建VxWorks 操作系統虛擬機作為目標環境,然后分別設計良好網絡環境、中等網絡環境和擁堵網絡環境三種試驗條件下,測試本文提出方法的報文捕獲功能及性能。試驗環境搭建步驟如下:

1)利用Workbench3.2 創建并生成VxWorks6.8的引導文件和鏡像文件(需要配置網卡為lnPci);

2)在VMware虛擬機安裝dos6.22引導系統;

3)利用dos 引導并啟動步驟1)中編譯好的Vx-Works 鏡像,使用上述方法創建vxWorks6.8 虛擬機環境,并利用文中的三種方法進行IP 層數據包捕獲。為驗證三種方法的網絡數據抓包性能,使用VC6.0 編寫UDP 發送客戶端軟件,并分為以下三種網絡環境下進行試驗,幾組試驗場景:

(1)良好網絡環境:利用UDP 發送客戶端軟件以每包間隔1ms 的頻率發送10000 包長度為1400字節的測試數據,并利用共享內存方式統計接收到的數據包量;

(2)中等網絡環境:利用UDP 發送客戶端軟件不間斷的連續發送10000 包長度為1400 字節的測試數據,并利用共享內存方式統計接收到的數據包量;

(3)擁堵網絡環境:同時運行5 個UDP 發送客戶端軟件,分別不間斷的連續發送10000 包長度為1400 字節的測試數據,并利用共享內存方式統計接收到的數據包量。

利用蒙特卡洛算法針對上述三種網絡環境下分別對文中的三種方法進行50 次試驗統計,統計三種方法的實際報文接受速率的均值,統計結果如表2所示。

表2 BPF過濾器指令對照表

實驗結果表明三種方法在網絡流量不大的情況下都有較低的丟包率,當網絡出現擁塞時,MUX方法的丟包率最低,原始套接字方法丟包率最高;三種方法在網絡數據較多情況下,針對特定報文的抓包速率bpf 速度最快,原始套接字方法最慢。由于NET_ETH_P_ALL 選項目前只有在VxWorks6.x及以上版本才支持,目前不支持VxWorks5.x 版本,因此原始套接字方法只有在VxWorks6.x 及以上版本才有效,低版本的無法適配。

7 結語

數據包監聽技術是網絡數據監控、網絡功能調試以及網絡數據記錄等應用的重要基礎,一個重要的應用場景是報文的網絡數據記錄及回放功能,在一個復雜的網絡通信系統中,經常需要將經過網卡的數據包進行記錄存儲,便于后續的數據回放及復盤分析。可利用本文提出的方法進行基于Vx-Works 操作系統的IP 層數據記錄及過濾工作。本文提出的三種方法能夠實現VxWorks 操作系統下的IP 層數據包偵聽的基本功能,可以捕獲經過網卡的全部數據包,同時支持捕獲特定條件的數據包,例如指定源IP 地址、端口號、報文長度或者某些特定字段數值滿足要求的數據報文,具有較好的實用性。本文提出了基于VxWorks 操作系統的IP層數據包的三種方法的原理及關鍵技術細節,并在文中給出了試驗環境搭建的詳細步驟,提出了在不同網絡情況下測試報文捕獲功能性能的試驗方法,并給出了文中三種數據包捕獲的性能對比結果及結果分析,在工程應用中可以根據需要靈活選擇適合的方法進行報文捕獲。

猜你喜歡
利用方法
利用min{a,b}的積分表示解決一類絕對值不等式
中等數學(2022年2期)2022-06-05 07:10:50
利用倒推破難點
利用一半進行移多補少
學習方法
利用數的分解來思考
Roommate is necessary when far away from home
利用
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
主站蜘蛛池模板: 久久人搡人人玩人妻精品| 91成人在线免费视频| 国产国语一级毛片在线视频| 孕妇高潮太爽了在线观看免费| 在线中文字幕网| 中文成人在线视频| 久久久久无码精品国产免费| 色偷偷综合网| a毛片在线播放| 国产欧美日韩免费| 这里只有精品在线播放| 四虎精品国产AV二区| 国产精品无码一二三视频| a毛片在线播放| 国产真实乱子伦精品视手机观看| 热久久综合这里只有精品电影| 国产啪在线| 激情亚洲天堂| 无套av在线| 青青网在线国产| 丝袜久久剧情精品国产| 国产麻豆另类AV| 无码日韩人妻精品久久蜜桃| 色欲综合久久中文字幕网| 国产一区二区三区免费观看| 在线观看国产精美视频| 无码区日韩专区免费系列| 国产精品国产三级国产专业不| 在线a网站| 国产精品分类视频分类一区| 亚洲色图综合在线| 97视频免费看| 国产女人在线视频| 国产免费福利网站| 一级一级特黄女人精品毛片| 成人一级免费视频| 日韩国产精品无码一区二区三区| 国产色爱av资源综合区| 欧美精品伊人久久| 成人在线观看不卡| 亚洲啪啪网| 亚洲综合精品香蕉久久网| 人禽伦免费交视频网页播放| 久久综合九九亚洲一区| 中国特黄美女一级视频| 国产精品永久不卡免费视频| 亚洲欧美日韩色图| 欧美日韩久久综合| 午夜毛片免费观看视频 | 亚洲视频免费在线看| 国产精品美女免费视频大全| 亚洲色大成网站www国产| 国产色婷婷视频在线观看| 国产成在线观看免费视频| 99久久精品国产麻豆婷婷| 玖玖免费视频在线观看| 人人91人人澡人人妻人人爽| 亚洲经典在线中文字幕| 亚洲无码高清一区| 草草线在成年免费视频2| 8090午夜无码专区| 亚洲成A人V欧美综合| 特级毛片免费视频| 大香网伊人久久综合网2020| 欧美日本在线观看| 欧美成人影院亚洲综合图| 欧美精品不卡| 国产成人啪视频一区二区三区| 亚洲首页在线观看| 在线观看国产网址你懂的| 一级高清毛片免费a级高清毛片| 高清色本在线www| 婷婷开心中文字幕| 亚洲 成人国产| AV网站中文| 在线精品视频成人网| 国产手机在线ΑⅤ片无码观看| 国产美女在线免费观看| 99久久国产综合精品2023 | 亚洲水蜜桃久久综合网站| 无码不卡的中文字幕视频| 国产成人艳妇AA视频在线|