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

?

基于Libnet的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)單元發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)

2014-09-11 18:23邢寶玉呂雪鳴孫朝宇
中國(guó)新通信 2014年11期
關(guān)鍵詞:函數(shù)庫(kù)句柄網(wǎng)絡(luò)接口

邢寶玉 呂雪鳴 孫朝宇

【摘要】Linux操作系統(tǒng)使用libnet函數(shù)庫(kù)和Qt函數(shù)庫(kù)設(shè)計(jì)的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)單元發(fā)生器。本項(xiàng)目的意義在于該系統(tǒng)提供了提供協(xié)議驗(yàn)證、協(xié)議分析等功能;為進(jìn)一步學(xué)習(xí)和理解TCP/IP協(xié)議族、模擬攻擊、威脅發(fā)現(xiàn)以及網(wǎng)絡(luò)故障定位等內(nèi)容提供實(shí)踐平臺(tái)。對(duì)非網(wǎng)絡(luò)專(zhuān)業(yè)的學(xué)生驗(yàn)證協(xié)議、對(duì)網(wǎng)絡(luò)工程專(zhuān)業(yè)學(xué)生深入理解協(xié)議、鍛煉協(xié)議分析能力起到重要作用。

【關(guān)鍵詞】libnet網(wǎng)絡(luò)協(xié)議PDU構(gòu)造

一、引言

Libnet是一個(gè)專(zhuān)業(yè)網(wǎng)絡(luò)安全構(gòu)造和發(fā)送數(shù)據(jù)包的一個(gè)高層次的API函數(shù)庫(kù),允許開(kāi)發(fā)者構(gòu)造和發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包。Libnet提供了一個(gè)對(duì)底層網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行構(gòu)造,修改和發(fā)送的高級(jí)接口。它隱藏了很多底層細(xì)節(jié),省去了很多麻煩,如多路技術(shù),緩沖區(qū)管理,網(wǎng)絡(luò)數(shù)據(jù)包頭信息,字節(jié)流順序,操作系統(tǒng)兼容性,以及校驗(yàn)和計(jì)算問(wèn)題等等。

二、設(shè)計(jì)思想

首先創(chuàng)建一個(gè)Libnet句柄,并將句柄初始化,為數(shù)據(jù)包分配存儲(chǔ)空間,確定Libnet的類(lèi)型。確定網(wǎng)絡(luò)接口,可以自己指定也可以Libnet自動(dòng)查詢(xún)搜索(將libnet_init()的參數(shù)device賦值NULL即可)。將校驗(yàn)和的參數(shù)設(shè)置為0,libnet就會(huì)自動(dòng)計(jì)算校驗(yàn)和。獲取libnet初始化后的句柄,構(gòu)造數(shù)據(jù)包,這里使用Qt Creator中的QLineEdit和QComboBox為libnet句柄所代表的數(shù)據(jù)包賦值,使用QPushButton執(zhí)行開(kāi)始發(fā)送和結(jié)束,通過(guò)Libnet定義的句柄返回值來(lái)判斷我們所構(gòu)造的數(shù)據(jù)包是否合法,如果合法就調(diào)用libnet_write()函數(shù)發(fā)送數(shù)據(jù)包。

三、程序流程

3.1構(gòu)造協(xié)議模塊流程

首先通過(guò)初始化函數(shù)libnet_init(),對(duì)內(nèi)存、網(wǎng)絡(luò)進(jìn)行初始化,再通過(guò)不同的libnet_build()函數(shù)構(gòu)造各種協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包,其中包括libnet_build_arp(),libnet_build_ip()等等。將網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造好后,通過(guò)libnet_write()函數(shù)將構(gòu)造好的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行發(fā)送,最后通過(guò)libnet_destroy()函數(shù)關(guān)閉網(wǎng)絡(luò)接口,釋放內(nèi)部?jī)?nèi)存空間,構(gòu)造結(jié)束。

3.2主函數(shù)流程

創(chuàng)建一個(gè)QThread 類(lèi)的子類(lèi)myThread,重載QThread 的run()函數(shù),run()函數(shù)中發(fā)射構(gòu)造相應(yīng)數(shù)據(jù)包的信號(hào)。實(shí)例化一個(gè)線(xiàn)程對(duì)象并調(diào)用QThread::start()函數(shù),開(kāi)始發(fā)送數(shù)據(jù)包,重載的run()函數(shù)將會(huì)在新建的獨(dú)立的線(xiàn)程中執(zhí)行。

選擇想要構(gòu)造的數(shù)據(jù)包,即跳轉(zhuǎn)到各自協(xié)議的數(shù)據(jù)包構(gòu)造函數(shù),檢查構(gòu)造的數(shù)據(jù)包是否合法,如果合法就調(diào)用libnet_write()函數(shù)發(fā)送數(shù)據(jù)包,否則,查看linux終端輸出的錯(cuò)誤信息,然后重新填寫(xiě)數(shù)據(jù)包,繼續(xù)執(zhí)行。

程序界面如圖1所示:

四、結(jié)束語(yǔ)

在實(shí)驗(yàn)室局域網(wǎng)環(huán)境中進(jìn)行測(cè)試并且結(jié)果表明系統(tǒng)能夠構(gòu)造不同協(xié)議數(shù)據(jù)包,可以通過(guò)Wireshark和Tcpdump網(wǎng)絡(luò)數(shù)據(jù)包捕獲工具捕獲成功。

參考文獻(xiàn)

[1]劉文濤. 網(wǎng)絡(luò)安全開(kāi)發(fā)包詳解[M]. 北京:電子工業(yè)出版社,2005.10

[2]黃俊杰,王建新,張靜. 基于Linux的網(wǎng)絡(luò)協(xié)議學(xué)習(xí)系統(tǒng)[J]. 中南大學(xué)碩士學(xué)位論文,2009.11

[3]布蘭切特(Jasmin Blanchette)(作者),薩默菲爾德(Mark Summerfield)(作者),閆鋒欣(譯者),等. C++ GUI Qt 4編程[M]. 第2版. 電子工業(yè)出版社,2013.5

猜你喜歡
函數(shù)庫(kù)句柄網(wǎng)絡(luò)接口
變電站網(wǎng)絡(luò)接口物理防護(hù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
用于優(yōu)化雷達(dá)信號(hào)處理的VSIPL函數(shù)庫(kù)
基于Python的開(kāi)源GIS應(yīng)用開(kāi)發(fā)
Scratch求最值和平均值
基于BB60C的IQ數(shù)據(jù)采集與存儲(chǔ)系統(tǒng)設(shè)計(jì)
高校圖書(shū)館持久標(biāo)識(shí)符應(yīng)用研究
編譯程序語(yǔ)法分析句柄問(wèn)題分析與探討
淺析CTC與GSM-R系統(tǒng)網(wǎng)絡(luò)接口及路由配置改進(jìn)措施
網(wǎng)絡(luò)設(shè)置管理
MFC應(yīng)用程序多線(xiàn)程混合顯示界面方法研究