• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于libpcap的無線網(wǎng)絡(luò)數(shù)據(jù)分解與重構(gòu)技術(shù)研究

      2014-09-24 21:23:29袁澤宇肖慶正
      無線互聯(lián)科技 2014年7期
      關(guān)鍵詞:數(shù)據(jù)分析

      袁澤宇 肖慶正

      摘要:針對(duì)網(wǎng)絡(luò)數(shù)據(jù)包的捕獲,分析了基于libpcpap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲應(yīng)用流程,研究了網(wǎng)絡(luò)數(shù)據(jù)分解與重構(gòu)的工作流程:通過對(duì)實(shí)時(shí)/離線數(shù)據(jù)的分析,對(duì)各個(gè)應(yīng)用層協(xié)議進(jìn)行還原,并基于還原出的信息進(jìn)行數(shù)據(jù)挖掘和行為回放。

      關(guān)鍵詞:libpcap;數(shù)據(jù)分析;協(xié)議還原1引言

      當(dāng)前的社會(huì)是一個(gè)信息的社會(huì),網(wǎng)絡(luò)信息是社會(huì)活動(dòng)的重要資源,對(duì)政治、經(jīng)濟(jì)和文化有著深遠(yuǎn)影響。由于移動(dòng)通信技術(shù)的不斷發(fā)展,探索無線網(wǎng)絡(luò)信息監(jiān)聽與還原技術(shù)有助于信息安全體系的發(fā)展,對(duì)于維護(hù)社會(huì)政治穩(wěn)定和國家信息安全具有重要的現(xiàn)實(shí)意義。

      無線網(wǎng)絡(luò)數(shù)據(jù)分解與重構(gòu)主要基于捕獲到的無線局域網(wǎng)數(shù)據(jù)幀,采用分層協(xié)議還原技術(shù),并基于各層的信息實(shí)現(xiàn)重點(diǎn)目標(biāo)識(shí)別和網(wǎng)絡(luò)行為威脅等級(jí)分析。在無線局域網(wǎng)中采用靜默偵聽和存儲(chǔ)轉(zhuǎn)發(fā)兩種工作模式,實(shí)現(xiàn)監(jiān)聽、存儲(chǔ)并自動(dòng)準(zhǔn)實(shí)時(shí)持續(xù)恢復(fù)網(wǎng)絡(luò)用戶的傳輸信息。

      2libpcap應(yīng)用流程

      libpcap主要由兩部分組成:網(wǎng)絡(luò)分接頭(Network Tap)和數(shù)據(jù)過濾器(Packet Filter)。網(wǎng)絡(luò)分接頭從網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序中收集數(shù)據(jù)拷貝,過濾器決定是否接收該數(shù)據(jù)包。Libpcap利用BSD Packet Filter(BPF)算法對(duì)網(wǎng)卡接收到的鏈路層數(shù)據(jù)包進(jìn)行過濾。BPF算法的基本思想是在有BPF監(jiān)聽的網(wǎng)絡(luò)中,網(wǎng)卡驅(qū)動(dòng)將接收到的數(shù)據(jù)包復(fù)制一份交給BPF過濾器,過濾器根據(jù)用戶定義的規(guī)則決定是否接收此數(shù)據(jù)包以及需要拷貝該數(shù)據(jù)包的那些內(nèi)容,然后將過濾后的數(shù)據(jù)給與過濾器相關(guān)聯(lián)的上層應(yīng)用程序。

      libpcap的包捕獲機(jī)制就是在數(shù)據(jù)鏈路層加一個(gè)旁路處理。當(dāng)一個(gè)數(shù)據(jù)包到達(dá)網(wǎng)絡(luò)接口時(shí),libpcap首先利用已經(jīng)創(chuàng)建的Socket從鏈路層驅(qū)動(dòng)程序中獲得該數(shù)據(jù)包的拷貝,再通過Tap函數(shù)將數(shù)據(jù)包發(fā)給BPF過濾器。BPF過濾器根據(jù)用戶已經(jīng)定義好的過濾規(guī)則對(duì)數(shù)據(jù)包進(jìn)行逐一匹配,匹配成功則放入內(nèi)核緩沖區(qū),并傳遞給用戶緩沖區(qū),匹配失敗則直接丟棄。如果沒有設(shè)置過濾規(guī)則,所有數(shù)據(jù)包都將放入內(nèi)核緩沖區(qū),并傳遞給用戶層緩沖區(qū)。

      libpcap主要函數(shù)如下:

      pcap_findalldevs()函數(shù)用查找機(jī)器的所有可用的網(wǎng)絡(luò)接口,用一個(gè)網(wǎng)絡(luò)接口鏈表示返回。

      pcap_lookupdev()函數(shù)用于查找網(wǎng)絡(luò)設(shè)備,返回可被pcap_open_live()函數(shù)調(diào)用的網(wǎng)絡(luò)設(shè)備名指針。

      pcap_open_live()函數(shù)用于打開網(wǎng)絡(luò)設(shè)備,并且返回用于捕獲網(wǎng)絡(luò)數(shù)據(jù)包的數(shù)據(jù)包捕獲描述字。對(duì)于此網(wǎng)絡(luò)設(shè)備的操作都要基于此網(wǎng)絡(luò)設(shè)備描述字。

      pcap_lookupnet()函數(shù)獲得指定網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)號(hào)和掩碼。

      pcap_compile()函數(shù)用于將用戶制定的過濾策略編譯到過濾程序中。

      pcap_setfilter()函數(shù)用于設(shè)置過濾器。

      pcap_loop()函數(shù)或pcap_dispatch()函數(shù)用于捕獲數(shù)據(jù)包,捕獲后還可以進(jìn)行處理,此外pcap_next()和pcap_next_ex()兩個(gè)函數(shù)也可以用來捕獲數(shù)據(jù)包。

      pcap_close()函數(shù)用于關(guān)閉網(wǎng)絡(luò)設(shè)備,釋放資源。

      3基于libpcap的數(shù)據(jù)包捕獲流程

      首先,調(diào)用Open_pcap函數(shù)對(duì)網(wǎng)卡進(jìn)行初始化設(shè)置,使網(wǎng)卡工作在混雜模式,以監(jiān)聽網(wǎng)絡(luò)上的所有數(shù)據(jù)包。當(dāng)有數(shù)據(jù)包到達(dá)時(shí),網(wǎng)卡上的DMA引擎將包放入到內(nèi)核rx_ring空間,同時(shí)向CPU發(fā)起中斷服務(wù)請(qǐng)求,進(jìn)入中斷服務(wù)程序,然后調(diào)用網(wǎng)卡驅(qū)動(dòng)程序中的函數(shù)將數(shù)據(jù)包封裝成sk_buff結(jié)構(gòu),并脫離驅(qū)動(dòng)程序,轉(zhuǎn)到通用的處理函數(shù)netif_rx中。netif_rx函數(shù)將數(shù)據(jù)包傳入等待隊(duì)列,并置軟中斷標(biāo)志位,其目的是使上層的處理采用軟中斷(do_softirq)來提高CPU的處理效率。在軟中斷中調(diào)用net_rx_action()函數(shù)輪詢backlog隊(duì)列,調(diào)用ip_rev()函數(shù)對(duì)每個(gè)數(shù)據(jù)包做進(jìn)一步處理,完成將數(shù)據(jù)傳送到上層協(xié)議[1]。

      4網(wǎng)絡(luò)數(shù)據(jù)分解與重構(gòu)流程描述

      網(wǎng)絡(luò)數(shù)據(jù)分解與重構(gòu)的工作流程如下圖所示:通過對(duì)實(shí)時(shí)/離線數(shù)據(jù)的分析,對(duì)各個(gè)應(yīng)用層協(xié)議進(jìn)行還原,并將還原出的信息存儲(chǔ)至數(shù)據(jù)庫和磁盤,并基于還原出的信息進(jìn)行數(shù)據(jù)挖掘和行為回放。

      4.1 數(shù)據(jù)流重組

      數(shù)據(jù)流重組過程將原始的單個(gè)數(shù)據(jù)包重組為數(shù)據(jù)流。其主要是根據(jù)各報(bào)文的包序號(hào)、各個(gè)標(biāo)識(shí)位的狀態(tài),丟棄重傳,處理亂序,將所有相關(guān)聯(lián)的報(bào)文重組為有序的會(huì)話流。

      TCP協(xié)議采用了大量的機(jī)制保證數(shù)據(jù)的可靠傳輸,但在實(shí)際采集到的數(shù)據(jù)包中,將會(huì)采集到一些無用的數(shù)據(jù)包,例如重傳報(bào)文和亂序報(bào)文。因此,數(shù)據(jù)流重組模塊必須對(duì)這類數(shù)據(jù)包進(jìn)行處理。

      4.1.1 將無序的數(shù)據(jù)片流有序化

      為了方便應(yīng)用層數(shù)據(jù)的還原,需要將無序的數(shù)據(jù)片流有序化,使其排序?yàn)橐粋€(gè)有序的數(shù)據(jù)片流。在實(shí)現(xiàn)數(shù)據(jù)片有序化時(shí),設(shè)置了一個(gè)緩沖隊(duì)列,該緩沖隊(duì)列的最大空間設(shè)置為滑動(dòng)窗口的最大值。當(dāng)接收到一個(gè)數(shù)據(jù)片段時(shí)。首先比較其數(shù)據(jù)片序號(hào)和應(yīng)獲得的數(shù)據(jù)片序號(hào),假如兩者相同,則將其歸人已收的數(shù)據(jù)行列,并從緩沖隊(duì)列中將滿足出隊(duì)條件的數(shù)據(jù)出隊(duì)。若沒有,將其納人緩沖隊(duì)列中,并比較應(yīng)獲得的數(shù)據(jù)片序號(hào)和已獲得的數(shù)據(jù)片,判斷還需要何種數(shù)據(jù)片。

      4.1.2 判斷應(yīng)用數(shù)據(jù)的起始和結(jié)束數(shù)據(jù)包

      為了確定一個(gè)應(yīng)用層數(shù)據(jù)的起點(diǎn)和終點(diǎn),必須研究對(duì)應(yīng)的應(yīng)用層數(shù)據(jù)格式。對(duì)于HTTP數(shù)據(jù),其有兩種數(shù)據(jù)內(nèi)容,一種為請(qǐng)求數(shù)據(jù)(Request),一種為響應(yīng)數(shù)據(jù)(Response)。對(duì)于請(qǐng)求數(shù)據(jù)來說,可以認(rèn)為數(shù)據(jù)內(nèi)容以“GET”、“POST”、“HEAD”、“HTTP”開頭的即為起始數(shù)據(jù)片。對(duì)于請(qǐng)求信息結(jié)束的判定方法有兩種情況:若請(qǐng)求信息中含有Content-Length域,則可根據(jù)其值依次取出規(guī)定數(shù)目的內(nèi)容,即可確定結(jié)束數(shù)據(jù)片;若請(qǐng)求信息中不含Content-Length域,則可以以兩個(gè)CRLF作為結(jié)束標(biāo)志。對(duì)于響應(yīng)數(shù)據(jù)來說,在設(shè)計(jì)時(shí)可以認(rèn)為數(shù)據(jù)內(nèi)容為“HTTP”的即為起始數(shù)據(jù)片。對(duì)于響應(yīng)信息結(jié)束的判定方法同樣也有兩種情況:若響應(yīng)信息中含有Content-Length域,則可根據(jù)其值依次取出規(guī)定數(shù)目的內(nèi)容,即可確定結(jié)束數(shù)據(jù)片;若響應(yīng)信息中不含Content-Length域,則可根據(jù)該數(shù)據(jù)片是否是FIN片來確定。

      如圖3展示了數(shù)據(jù)包重組的流程,數(shù)據(jù)流重組模塊從數(shù)據(jù)采集模塊的緩沖區(qū)讀取數(shù)據(jù)報(bào),如果該數(shù)據(jù)包是第一個(gè)數(shù)據(jù)報(bào),則插入List結(jié)構(gòu)體的第一個(gè)位置,否則逆序根據(jù)其報(bào)文序列號(hào)(Sequence Number)尋找插入位置。如果該序列號(hào)的報(bào)文已存在,則說明該數(shù)據(jù)報(bào)為重傳,將其丟棄。

      4.2 應(yīng)用層協(xié)議還原

      信息還原模塊的主要職責(zé)是根據(jù)不同的應(yīng)用層協(xié)議,按照特定的邏輯還原出數(shù)據(jù)流中負(fù)載的具體數(shù)據(jù)。

      實(shí)現(xiàn)本模塊時(shí)首先需要研究各種常見的應(yīng)用層協(xié)議,整理其工作流程,然后還原出其中負(fù)載的數(shù)據(jù)。

      4.2.1 HTTP

      HTTP協(xié)議是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)。此協(xié)議是Web的核心。HTTP還原模塊還原了HTTP請(qǐng)求報(bào)文與響應(yīng)報(bào)文,從報(bào)文中得到通信信息。

      4.2.2 FTP

      FTP協(xié)議是TCP/IP網(wǎng)絡(luò)上兩臺(tái)計(jì)算機(jī)傳送文件的協(xié)議,F(xiàn)TP是在TCP/IP網(wǎng)絡(luò)和INTERNET上最早使用的協(xié)議之一,它屬于網(wǎng)絡(luò)協(xié)議組的應(yīng)用層。FTP客戶機(jī)可以給服務(wù)器發(fā)出命令來下載文件,上載文件,創(chuàng)建或改變服務(wù)器上的目錄。通過解析FTP控制流進(jìn)而得到數(shù)據(jù)流,最終從數(shù)據(jù)流中還原出傳輸?shù)奈募?/p>

      數(shù)據(jù)存儲(chǔ)負(fù)責(zé)存儲(chǔ)重組及還原出的數(shù)據(jù)。此模塊又分為兩大子模塊,分別是數(shù)據(jù)庫存儲(chǔ)模塊和文件存儲(chǔ)模塊。其中,數(shù)據(jù)庫存儲(chǔ)模塊負(fù)責(zé)將數(shù)據(jù)包信息、流信息、HTTP信息、FTP信息和MSN信息存入數(shù)據(jù)庫;文件存儲(chǔ)模塊負(fù)責(zé)和文件相關(guān)的操作,如保存HTTP網(wǎng)頁文件,F(xiàn)TP文件等。

      5結(jié)束語

      本文首先對(duì)基于libpcap的數(shù)據(jù)包捕獲流程進(jìn)行了分析,通過對(duì)TCP/IP協(xié)議棧進(jìn)行研究,結(jié)合軟件逆向技術(shù),對(duì)HTTP、FTP語音協(xié)議進(jìn)行分析,提出網(wǎng)絡(luò)數(shù)據(jù)還原方法;與此同時(shí),通過對(duì)機(jī)器學(xué)習(xí)方法的研究,實(shí)現(xiàn)了網(wǎng)絡(luò)行為回放;根據(jù)理論研究并實(shí)際進(jìn)行系統(tǒng)的研發(fā)和測試,實(shí)現(xiàn)了網(wǎng)絡(luò)數(shù)據(jù)分解與重構(gòu)。

      [參考文獻(xiàn)]

      [1] 周照峰.高速網(wǎng)絡(luò)數(shù)據(jù)包捕獲技術(shù)方法研究[J].科技經(jīng)濟(jì)市場,2009.

      [2]畢學(xué)堯.高速網(wǎng)絡(luò)的數(shù)據(jù)獲取與分析研究[J].北京;中國科學(xué)院高能物理,2003.

      [3]汪世義,秦品樂.基于Linux的高速網(wǎng)絡(luò)包捕獲技術(shù)研究[J].微型電腦應(yīng)用,2006.

      [4]李芳馨,劉嘉勇.網(wǎng)絡(luò)數(shù)據(jù)流還原重組技術(shù)研究[J].通信技術(shù),2011.

      猜你喜歡
      數(shù)據(jù)分析
      電子物證檢驗(yàn)的數(shù)據(jù)分析與信息應(yīng)用研究
      基于matlab曲線擬合的數(shù)據(jù)預(yù)測分析
      商情(2016年40期)2016-11-28 11:28:07
      分眾媒體趨勢(shì)下場景營銷的商業(yè)前景
      商(2016年32期)2016-11-24 17:39:41
      佛山某給水管線控制測量探討
      科技資訊(2016年18期)2016-11-15 18:05:53
      SPSS在環(huán)境地球化學(xué)中的應(yīng)用
      考試周刊(2016年84期)2016-11-11 23:57:34
      大數(shù)據(jù)時(shí)代高校數(shù)據(jù)管理的思考
      科技視界(2016年18期)2016-11-03 22:51:40
      我校如何利用體育大課間活動(dòng)解決男生引體向上這個(gè)薄弱環(huán)節(jié)
      Excel電子表格在財(cái)務(wù)日常工作中的應(yīng)用
      淺析大數(shù)據(jù)時(shí)代背景下的市場營銷策略
      新常態(tài)下集團(tuán)公司內(nèi)部審計(jì)工作研究
      中國市場(2016年36期)2016-10-19 04:31:23
      正镶白旗| 平安县| 黄龙县| 吕梁市| 隆尧县| 车险| 布拖县| 云霄县| 天津市| 武宣县| 雅江县| 石门县| 汝城县| 西宁市| 宁安市| 镇原县| 江西省| 西青区| 得荣县| 镇江市| 普定县| 商河县| 方正县| 贞丰县| 大理市| 保定市| 隆化县| 筠连县| 聊城市| 竹北市| 南丰县| 宜君县| 化德县| 平谷区| 富平县| 海淀区| 伊宁县| 两当县| 桐庐县| 商城县| 师宗县|