• 
    

    
    

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

      IP報(bào)文的一種簡(jiǎn)便捕獲方法

      2015-12-27 04:15:30李山松
      關(guān)鍵詞:網(wǎng)卡緩沖區(qū)報(bào)文

      李山松

      (河北遠(yuǎn)東通信系統(tǒng)工程有限公司 河北 石家莊 050200)

      IP報(bào)文的一種簡(jiǎn)便捕獲方法

      李山松

      (河北遠(yuǎn)東通信系統(tǒng)工程有限公司 河北 石家莊 050200)

      通過軟件編程,將網(wǎng)卡置于混雜工作模式,可以方便地捕獲IP層的數(shù)據(jù)報(bào)文。在數(shù)據(jù)捕獲過程中,網(wǎng)絡(luò)程序可以正常進(jìn)行IP報(bào)文的收發(fā),Socket套接字的工作不會(huì)受到影響。在此基礎(chǔ)之上,針對(duì)具體項(xiàng)目編程,可以實(shí)現(xiàn)IP數(shù)據(jù)的高效捕獲和分析,此方法已成功應(yīng)用于GPS車輛管理系統(tǒng)的工程調(diào)試。在此項(xiàng)目中,此方法的運(yùn)用,縮短了項(xiàng)目的調(diào)試周期,提高了工作效率。

      IP報(bào)文 數(shù)據(jù)捕獲 混雜模式 簡(jiǎn)便方法

      1 引言

      以太網(wǎng)的使用越來越廣泛,眾多系統(tǒng)開始采用以太網(wǎng)方式進(jìn)行開發(fā),大量的數(shù)據(jù)通過網(wǎng)卡進(jìn)行傳送。掌握網(wǎng)卡數(shù)據(jù)的捕獲方法,可以加速相關(guān)系統(tǒng)的調(diào)試速度,快速解決系統(tǒng)之間的互聯(lián)互通問題。要實(shí)現(xiàn)網(wǎng)卡數(shù)據(jù)的在線捕獲功能,首先要把網(wǎng)卡的工作模式設(shè)定到混雜模式。

      2 網(wǎng)卡混雜模式

      混雜模式[1](Promiscuous Mode)是指一臺(tái)機(jī)器的網(wǎng)卡能夠接收所有經(jīng)過它的數(shù)據(jù)流,而不論其目的地址是否是它。一般計(jì)算機(jī)網(wǎng)卡都工作在非混雜模式下,此時(shí)網(wǎng)卡只接受來自網(wǎng)絡(luò)端口的目的地址指向自己的數(shù)據(jù)。當(dāng)網(wǎng)卡工作在混雜模式下時(shí),網(wǎng)卡將來自接口的所有數(shù)據(jù)都捕獲并交給相應(yīng)的驅(qū)動(dòng)程序進(jìn)行處理。

      3 如何進(jìn)入混雜模式[2]

      要進(jìn)入混雜模式,可以參照流程圖進(jìn)行編程,如圖1所示。

      圖1 進(jìn)入混雜模式流程圖

      在將網(wǎng)卡置于混雜模式的過程中,需注意每次函數(shù)調(diào)用的返回值,及時(shí)進(jìn)行錯(cuò)誤處理。當(dāng)完成以上操作后,就可以通過編寫代碼讀取網(wǎng)卡上傳輸?shù)臄?shù)據(jù)。

      4 數(shù)據(jù)的捕獲和處理

      設(shè)置網(wǎng)卡為混雜模式后,就可以使用網(wǎng)絡(luò)數(shù)據(jù)的接收函數(shù)對(duì)網(wǎng)卡上傳輸?shù)臄?shù)據(jù)進(jìn)行捕獲和處理,其流程如圖2所示。

      圖2 數(shù)據(jù)捕獲和處理流程圖

      網(wǎng)絡(luò)數(shù)據(jù)的接收函數(shù)原型[3]為:

      s是上面創(chuàng)建的SOCK_RAW類型的套接字。

      buf是用來存放數(shù)據(jù)的緩沖區(qū)。

      len是buf緩沖區(qū)的長度。

      flags是函數(shù)的調(diào)用方式。

      from指向存放源地址的緩沖區(qū)。

      fromlen是from緩沖區(qū)的長度。

      通過調(diào)用本函數(shù),可以將接收到的數(shù)據(jù)存入預(yù)先申請(qǐng)好的內(nèi)存緩沖區(qū)。之后捕獲的數(shù)據(jù)可以在緩沖區(qū)內(nèi)進(jìn)行實(shí)時(shí)分析,也可以保存到數(shù)據(jù)文件內(nèi),供后續(xù)分析。

      5 在實(shí)際項(xiàng)目中的應(yīng)用

      在進(jìn)行某GPS車輛管理系統(tǒng)的調(diào)試時(shí),為了確認(rèn)GPS回送的數(shù)據(jù)是否正確,使用上述方法編寫了一個(gè)數(shù)據(jù)捕獲軟件,將此軟件運(yùn)行于GPS接收服務(wù)器上,所有從GPS回傳的數(shù)據(jù)都將被此程序記錄。同時(shí),捕獲軟件并沒有影響原有系統(tǒng)運(yùn)行,原來運(yùn)行于服務(wù)器上的服務(wù)端軟件也在正常處理數(shù)據(jù)。最后,通過對(duì)比服務(wù)端程序的統(tǒng)計(jì)結(jié)果和捕獲下的原始數(shù)據(jù),實(shí)現(xiàn)了對(duì)系統(tǒng)的修正和優(yōu)化。下面是程序的一些主要代碼,使用開源軟件Code::Blocks進(jìn)行編譯。

      5.1 Socket初始化[4]

      本函數(shù)主要實(shí)現(xiàn)網(wǎng)絡(luò)套接字Socket運(yùn)行環(huán)境的建立,進(jìn)行相關(guān)環(huán)境的初始化。依據(jù)函數(shù)的返回值,可以判定初始化工作是否順利完成。

      5.2 RAW套接字的創(chuàng)建

      本操作的目的是創(chuàng)建一個(gè)RAW類型的套接字實(shí)例。創(chuàng)建實(shí)例的過程,將為套接字分配所需的內(nèi)存。

      5.3 本地IP的綁定

      將創(chuàng)建的套接字與本地的網(wǎng)卡地址進(jìn)行綁定。

      5.4 將網(wǎng)卡置為混雜模式

      通過使用SIO_RCVALL參數(shù)調(diào)用套接字的控制函數(shù),將網(wǎng)卡的工作方式置為混雜模式。

      5.5 數(shù)據(jù)的接收

      通過recvfrom網(wǎng)絡(luò)數(shù)據(jù)接收函數(shù),對(duì)流經(jīng)網(wǎng)卡的所有數(shù)據(jù)進(jìn)行接收。所接收到的數(shù)據(jù)被保存在程序申請(qǐng)的內(nèi)存緩沖區(qū)內(nèi),以方便進(jìn)行處理。在原程序中,接收到的GPS數(shù)據(jù)被進(jìn)行了實(shí)時(shí)處理,并轉(zhuǎn)化為便于閱讀的文本格式存儲(chǔ)在計(jì)算機(jī)硬盤內(nèi)。進(jìn)行文本存儲(chǔ)時(shí),每條記錄單獨(dú)成行,使用逗號(hào)或者制表符分割行內(nèi)的數(shù)據(jù)域。這樣得到的數(shù)據(jù)可以直接導(dǎo)入EXCEL表格,方便進(jìn)行篩選和統(tǒng)計(jì)。

      5.6 捕獲到的數(shù)據(jù)及分析方法

      下面是捕獲到的GPS終端發(fā)回的原始數(shù)據(jù):

      以上捕獲到的數(shù)據(jù)是基于IP層的,其結(jié)構(gòu)可以表示為:DATA=[IP頭][IP數(shù)據(jù)]。

      IP頭[5]可以用下面的結(jié)構(gòu)體表示:

      分析這個(gè)結(jié)構(gòu),主要關(guān)心2個(gè)參數(shù),一個(gè)是sourceIPAddress,從這個(gè)參數(shù)可以看出數(shù)據(jù)是哪個(gè)GPS終端回傳的;另外一個(gè)參數(shù)是Protocol,從這個(gè)參數(shù)可以看出IP數(shù)據(jù)包里面封裝了哪種業(yè)務(wù)協(xié)議。知道了協(xié)議類型后,可以對(duì)數(shù)據(jù)進(jìn)行更詳細(xì)的解讀。分析從GPS終端返回的原始數(shù)據(jù)可以知道,Protocol=06,說明GPS終端使用TCP協(xié)議進(jìn)行數(shù)據(jù)收發(fā)。通過這樣一層層對(duì)數(shù)據(jù)進(jìn)行剝離,可以得到GPS終端發(fā)送到服務(wù)器的所有信息。通過和服務(wù)器上服務(wù)端軟件記錄的信息進(jìn)行對(duì)比,可以進(jìn)一步確認(rèn)故障點(diǎn):是服務(wù)端軟件BUG?還是GPS終端本身發(fā)送的數(shù)據(jù)就有問題?在工程實(shí)施過程中,快速判明責(zé)任方可以加快問題的處理速度。

      6 優(yōu)缺點(diǎn)分析

      6.1 優(yōu)點(diǎn)

      這種數(shù)據(jù)捕獲方式的優(yōu)點(diǎn)是使用方便,不需要額外添加硬件,不需要在計(jì)算機(jī)上加載底層驅(qū)動(dòng),對(duì)計(jì)算機(jī)上運(yùn)行的原有程序沒有影響,可以方便地實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)捕獲和分析。同時(shí),捕獲和分析可以在一個(gè)程序上實(shí)現(xiàn),制作成一個(gè)高度定制的捕獲分析軟件。

      6.2 缺點(diǎn)

      通過這種方式捕獲到的數(shù)據(jù)只能是IP層和IP層以上的,不能實(shí)現(xiàn)數(shù)據(jù)鏈路層的數(shù)據(jù)捕獲。如果有分析數(shù)據(jù)鏈路層的需求,可以使用WinPcap等第三方軟件實(shí)現(xiàn)[6],這些軟件一般需要在計(jì)算機(jī)上掛載自己的驅(qū)動(dòng)程序,以實(shí)現(xiàn)底層數(shù)據(jù)的捕獲功能。

      7 結(jié)束語

      IP報(bào)文的捕獲方法有很多,這里介紹的是一種針對(duì)網(wǎng)絡(luò)層的數(shù)據(jù)捕獲程序的編寫方法。其核心技術(shù)是通過軟件設(shè)置,將網(wǎng)卡的工作模式設(shè)定為混雜模式來實(shí)現(xiàn),這種IP報(bào)文的捕獲方法是一種低成本、可定制和易實(shí)現(xiàn)的IP報(bào)文捕獲方式,可以在一些沒有條件使用協(xié)議分析儀的場(chǎng)合發(fā)揮出其小、快和省的特點(diǎn)。

      [1]郭華.IP數(shù)據(jù)包截獲原理的研究與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2009,4(305):94-95.

      [2]尤文堅(jiān).利用RAW SOCKET捕獲網(wǎng)絡(luò)底層數(shù)據(jù)包的方法[J].廣西輕工業(yè),2007,11(108):56-56.

      [3]STEVENS W R.UNIX網(wǎng)絡(luò)編程[M].北京:人民郵電出版社,2010:187-187.

      [4]QUINN B,SHUTE D.Windows Sockets網(wǎng)絡(luò)編程[M].北京:機(jī)械工業(yè)出版社,2012:89-92.

      [5]羅軍舟,等.TCP/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù)[M].北京:清華大學(xué)出版社,2004:20-22.

      [6]STEVENS W R.TCP/IP詳解[M].北京:機(jī)械工業(yè)出版社, 2007:371-372.

      A Simple Capture Method of IP Message

      LI Shan-song

      (Hebei Far-east Communications System Engineering Co.,Ltd,Shijiazhuang Hebei 050200,China)

      The network adapter is put in promiscuous work mode by using software programming in order to easily capture the data message at the IP level.In the process of data capture,the network program can normally receive and send the IP message,the operation of Sockets are not affected.On this basis,aiming at the specific project programming,the high effective capture and analysis of IP data can be implemented.This method is successfully applied to the engineering commissioning of GPS vehicle management system.In this project,the application of this method shortens the debugging cycle of project and improves the work efficiency.

      IP message;data capture;promiscuous mode;simple method

      TP311

      A

      1008-1739(2015)02-67-3

      定稿日期:2014-12-26

      猜你喜歡
      網(wǎng)卡緩沖區(qū)報(bào)文
      嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計(jì)與實(shí)現(xiàn)
      在DDS 中間件上實(shí)現(xiàn)雙冗余網(wǎng)卡切換的方法
      基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
      汽車電器(2022年9期)2022-11-07 02:16:24
      CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
      淺析反駁類報(bào)文要點(diǎn)
      中國外匯(2019年11期)2019-08-27 02:06:30
      Server 2016網(wǎng)卡組合模式
      ATS與列車通信報(bào)文分析
      挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
      關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
      地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計(jì)與實(shí)現(xiàn)
      布尔津县| 东乡县| 大宁县| 赤峰市| 镶黄旗| 雷州市| 宣武区| 镇宁| 甘德县| 天镇县| 喀喇| 浪卡子县| 蓬安县| 丹寨县| 新郑市| 卓资县| 宿州市| 海兴县| 霍山县| 库尔勒市| 稷山县| 肥城市| 新泰市| 柯坪县| 保康县| 呼玛县| 武山县| 高邮市| 宿松县| 伊吾县| 乐昌市| 扎兰屯市| 三原县| 东平县| 临高县| 仙居县| 华阴市| 哈尔滨市| 青州市| 凤冈县| 兴安盟|