亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用Wireshark查找進(jìn)程間網(wǎng)絡(luò)通信問題

        2015-06-28 15:35:28雋,李
        關(guān)鍵詞:網(wǎng)絡(luò)通信進(jìn)程信息

        劉 雋,李 博

        (1.中國鐵道科學(xué)研究院 通信信號研究所, 北京 100081;2.中國鐵路總公司 科技管理部, 北京 100844)

        方法與應(yīng)用

        利用Wireshark查找進(jìn)程間網(wǎng)絡(luò)通信問題

        劉 雋1,李 博2

        (1.中國鐵道科學(xué)研究院 通信信號研究所, 北京 100081;2.中國鐵路總公司 科技管理部, 北京 100844)

        本文描述一個在實(shí)際應(yīng)用中遇到的進(jìn)程間網(wǎng)絡(luò)通信問題,介紹利用Wireshark對網(wǎng)絡(luò)通信數(shù)據(jù)進(jìn)行捕獲、分析,并定位出問題產(chǎn)生原因的過程。

        Wireshark;進(jìn)程間通信;UDP;網(wǎng)絡(luò)協(xié)議分析

        進(jìn)程間通信有多種機(jī)制,其中利用套接字(Socket)實(shí)現(xiàn)進(jìn)程間數(shù)據(jù)交換是比較通用的一種。由于通信的進(jìn)程之間隔著多層網(wǎng)絡(luò)協(xié)議以及設(shè)備,如果出現(xiàn)數(shù)據(jù)發(fā)送與接收方面的問題,就需要對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行捕獲與分析,弄清楚數(shù)據(jù)出處。

        1 問題描述

        在一臺主機(jī)上同時運(yùn)行A、B兩個軟件,A屬于3層架構(gòu)中的數(shù)據(jù)訪問層,B屬于業(yè)務(wù)邏輯層。B將業(yè)務(wù)邏輯信息發(fā)送給A,再由A通過局域網(wǎng)轉(zhuǎn)發(fā)給其它展現(xiàn)層終端軟件。A同時還要對B的運(yùn)行狀態(tài)進(jìn)行實(shí)時監(jiān)控,在一段時間內(nèi),例如5 s,如果無法收到B的任何信息,A將終止B的運(yùn)行并重新啟動B。A與B的開發(fā)及運(yùn)行環(huán)境如表1所示。

        在實(shí)際運(yùn)行過程中,A會不定期終止B進(jìn)程,而且頻率遠(yuǎn)超出了設(shè)計(jì)所允許的范圍。查看A的運(yùn)行日志,終止B的原因是A的信息接收計(jì)時器超時,而B的運(yùn)行日志則顯示已經(jīng)按時向A發(fā)送心跳信息。在排除了A、B信息發(fā)送與接收計(jì)時出錯的可能性之后,問題聚焦在A與B兩進(jìn)程之間的數(shù)據(jù)通信上。

        UDP是一種無連接的傳輸層協(xié)議,重效率輕可靠性,不提供數(shù)據(jù)包分組、組裝,不能對數(shù)據(jù)包進(jìn)行排序,因此當(dāng)報(bào)文發(fā)送之后,是無法得知其是否安全完整到達(dá)的。如此一來,就難以斷定到底是B進(jìn)程的發(fā)送出了問題,還是A進(jìn)程的接收出了問題,因而需要通過其它方法來獲得A、B之間實(shí)際的數(shù)據(jù)發(fā)送與接收情況,也就是要對網(wǎng)絡(luò)通信數(shù)據(jù)包進(jìn)行截獲與分析。

        表1 開發(fā)及運(yùn)行環(huán)境

        2 Wireshark

        Wireshark是一個遵循GNU GPL許可證的開源網(wǎng)絡(luò)協(xié)議分析軟件。Wireshark利用網(wǎng)卡的混雜模式,通過WinPcap接口直接獲取網(wǎng)絡(luò)數(shù)據(jù)包,不影響正常通信,并以易于理解的方式展現(xiàn)給用戶。

        Wireshark能夠在多種UNIX、Linux以及Windows操作系統(tǒng)上運(yùn)行,它的特點(diǎn)如下。

        (1)多協(xié)議支持:既支持TCP、UDP、HTTP等通用協(xié)議,也支持AppleTalk高級協(xié)議。(2)實(shí)時網(wǎng)絡(luò)數(shù)據(jù)分析:能夠獲取網(wǎng)絡(luò)上的實(shí)時數(shù)據(jù)流,并快速生成與數(shù)據(jù)相關(guān)的協(xié)議、傳輸介質(zhì)、通信通道等信息。(3)友好的用戶界面:具有交互式圖形界面,便于對獲取的數(shù)據(jù)包進(jìn)行分析。同時提供數(shù)據(jù)包過濾、導(dǎo)出、名稱解析等高級選項(xiàng)。(4)開源項(xiàng)目:全球近1 000位程序員參與軟件的開發(fā),每個用戶都可以依據(jù)各自的需求編寫代碼并將其加入到項(xiàng)目中。

        Wireshark擁有的強(qiáng)大而可靠的功能,利用它來分析A、B進(jìn)程間的實(shí)際通信情況是一個不錯的選擇。

        3 本機(jī)IP通信問題

        在Windows中發(fā)送網(wǎng)絡(luò)數(shù)據(jù)時,如果目的地址就是本機(jī)的IP地址,數(shù)據(jù)包經(jīng)過本機(jī)TCP/IP協(xié)議棧的傳輸層、互聯(lián)網(wǎng)層交給網(wǎng)絡(luò)訪問層內(nèi)的網(wǎng)卡驅(qū)動程序處理,隨后通過環(huán)回接口再返回到互聯(lián)網(wǎng)層,因此數(shù)據(jù)不會出現(xiàn)在相應(yīng)的網(wǎng)絡(luò)上。本文中A、B進(jìn)程之間的通信正是通過主機(jī)的實(shí)際IP地址192.168.1.16進(jìn)行的,因而正常情況下B發(fā)送的數(shù)據(jù)包不會被Wireshark所獲得。為了確保Wireshark能夠正常發(fā)揮作用,需要修改主機(jī)的路由表,增加一條從本機(jī)IP到默認(rèn)網(wǎng)關(guān)的路由。遵從這條路徑,B進(jìn)程發(fā)送的數(shù)據(jù)包就會由本機(jī)物理網(wǎng)卡發(fā)送給網(wǎng)關(guān),經(jīng)網(wǎng)關(guān)中轉(zhuǎn)回本機(jī)后再發(fā)給A進(jìn)程。數(shù)據(jù)包一經(jīng)過本機(jī)網(wǎng)卡,就能夠被Wireshark輕松獲取。

        增加路由的命令格式如下:

        route add <本機(jī)IP> mask 255.255.255.255 <默認(rèn)網(wǎng)關(guān)IP> metric 1

        4 使用Wireshark捕獲數(shù)據(jù)

        4.1 選擇目標(biāo)接口

        Wireshark具備同時對一臺主機(jī)上的多個不同類型網(wǎng)絡(luò)接口進(jìn)行數(shù)據(jù)捕獲的能力,為了避免有用的信息被淹沒在海量的數(shù)據(jù)中,需要將目標(biāo)接口限定在網(wǎng)卡上,也就是具有192.168.1.16地址的那個網(wǎng)卡。

        4.2 設(shè)置捕獲過濾器(Capture Filter)

        通過捕獲過濾器可以讓W(xué)ireshark只捕獲滿足條件的數(shù)據(jù)包。

        本文使用的捕獲過濾器表達(dá)式為:udp && host 192.168.1.16。其含義是:只捕獲UDP數(shù)據(jù)包,并且數(shù)據(jù)包的地址是192.168.1.16。

        4.3 設(shè)置顯示過濾器(Display Filter)

        通過顯示過濾器可以讓W(xué)ireshark對已捕獲的數(shù)據(jù)進(jìn)一步篩選,并顯示在用戶界面上。

        本文使用的顯示過濾器表達(dá)式為:eth.dst == 40:f2:e9:9d:b9:d4 && udp.dstport eq 1024。其含義是:顯示目標(biāo)網(wǎng)卡的MAC地址是“40:f2:e9:9d:b9:d4”(也就是192.168.1.16對應(yīng)的MAC地址),并且UDP目標(biāo)端口是1024的數(shù)據(jù)包。

        4.4 捕獲數(shù)據(jù)包

        Wireshark在執(zhí)行實(shí)時數(shù)據(jù)捕獲時,會將有效數(shù)據(jù)顯示在界面的數(shù)據(jù)包列表、數(shù)據(jù)包詳情、數(shù)據(jù)包字節(jié)3個區(qū)域中。數(shù)據(jù)包列表區(qū)中列出了所有符合過濾條件的數(shù)據(jù)包,內(nèi)容為序號、時間、源地址、目標(biāo)地址、協(xié)議類型等;數(shù)據(jù)包詳情區(qū)會將用戶在數(shù)據(jù)包列表區(qū)選中的某數(shù)據(jù)包的詳細(xì)信息展示出來,包括各層協(xié)議的字段內(nèi)容;數(shù)據(jù)包字節(jié)區(qū)以16進(jìn)制形式顯示出選中數(shù)據(jù)包的全部字節(jié)內(nèi)容。

        4.5 創(chuàng)建圖表

        本文中關(guān)心的是數(shù)據(jù)發(fā)送與時間的關(guān)系,數(shù)據(jù)統(tǒng)計(jì)圖能更加直觀的反映通信變化的趨勢。Wireshark提供了IO Graph來繪制這樣的統(tǒng)計(jì)圖。IO Graph的參數(shù)是可以定制的,例如:將X軸定義為實(shí)際時間軸,1 s/刻度,刻度間隔10像素;Y軸定義為數(shù)據(jù)包數(shù)量軸,1包/刻度,最大刻度為10;數(shù)據(jù)過濾器表達(dá)式與顯示過濾器表達(dá)式一致。

        4.6 完成捕獲

        如果捕獲到了足夠多的數(shù)據(jù)包,可以停止捕獲,并將全部的捕獲數(shù)據(jù)或者僅數(shù)據(jù)包列表區(qū)的數(shù)據(jù)保存成捕獲文件,以便于進(jìn)行后續(xù)的離線數(shù)據(jù)分析。

        5 數(shù)據(jù)分析

        通過查看A進(jìn)程的運(yùn)行日志,得知B進(jìn)程在19:06:35出現(xiàn)信息發(fā)送超時現(xiàn)象。利用Wireshark繪制的相應(yīng)時段IO Graph如圖1所示。

        圖1 B進(jìn)程數(shù)據(jù)發(fā)送IO Graph

        圖1 中先出現(xiàn)尖峰,隨后進(jìn)入波谷并探底,最后又恢復(fù)正常。再查看對應(yīng)時間段數(shù)據(jù)包列表區(qū)和數(shù)據(jù)包詳情區(qū)顯示的信息,B進(jìn)程在19:06:27~19:06:30發(fā)送大量的業(yè)務(wù)信息,1 s后停止發(fā)送信息,在大約4 s后的19:06:35恢復(fù)正常,繼續(xù)發(fā)送心跳信息。上述情況在后續(xù)長時間的捕獲與分析中也多次反復(fù)出現(xiàn),初步結(jié)論是業(yè)務(wù)信息的發(fā)送影響了心跳信息的按時發(fā)送。

        隨后通過復(fù)查B的源代碼印證結(jié)論。B采用兩個獨(dú)立的線程分別負(fù)責(zé)發(fā)送業(yè)務(wù)信息和心跳信息,線程間共用一個UdpClient通信對象。雖然在兩個線程間設(shè)置了同步鎖,但業(yè)務(wù)信息發(fā)送線程在完成發(fā)送任務(wù)后沒有及時釋放通信對象和同步鎖,進(jìn)而造成心跳發(fā)送線程等待時間過長,后續(xù)心跳發(fā)送超時。

        問題的根源找到了,解決方法就是在業(yè)務(wù)信息發(fā)送線程完成信息發(fā)送后迅速釋放通信對象,解除同步鎖。

        6 結(jié)束語

        Wireshark可以查找網(wǎng)絡(luò)通信的問題,本文捕獲、分析同主機(jī)進(jìn)程間網(wǎng)絡(luò)數(shù)據(jù)的過程就是Wireshark的基本應(yīng)用方法,這套方法同樣可以用來追蹤主機(jī)間,基于各種協(xié)議的網(wǎng)絡(luò)通信問題。

        [1]林沛滿. Wireshark網(wǎng)絡(luò)分析就這么簡單[M]. 北京:人民郵電出版社,2014.

        [2] Singh, Abhinav. Instant Wireshark Starter[M]. Birmingham: Packt Publishing, 2013.

        [3] Stevens, W.R. TCP/IP Illustrated, Volume 1: The Protocols[M]. Reading, Mass: Addison-Wesley, 1994.

        責(zé)任編輯 陳 蓉

        Solving inter-process network communication problem via Wireshark

        LIU Jun1, LI Bo2
        ( 1. Signal & Communication Research Institute, China Academy of Railway Sciences, Beijing 100081, China; 2. Department of Science and Technology, China Railway, Beijing 100844, China )

        This paper described an inter-process communication problem encountered in practical application scenario, and introduced in detail the trouble-shooting procedure, which included the capture and analysis of network communication data via Wireshark.

        Wireshark; inter-process communication; UDP; network protocol analysis

        U285.4∶TP39

        A

        1005-8451(2015)09-0030-03

        2015-01-06

        劉 雋,副研究員;李 博,工程師。

        猜你喜歡
        網(wǎng)絡(luò)通信進(jìn)程信息
        海上軍用網(wǎng)絡(luò)通信的安全控制技術(shù)
        債券市場對外開放的進(jìn)程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        基于網(wǎng)絡(luò)通信的智能照明系統(tǒng)設(shè)計(jì)
        電子制作(2019年15期)2019-08-27 01:11:48
        網(wǎng)絡(luò)通信中信息隱藏技術(shù)的應(yīng)用
        談計(jì)算機(jī)網(wǎng)絡(luò)通信常見問題及技術(shù)發(fā)展
        電子制作(2017年17期)2017-12-18 06:41:06
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        社會進(jìn)程中的新聞學(xué)探尋
        我國高等教育改革進(jìn)程與反思
        Linux僵死進(jìn)程的產(chǎn)生與避免
        国产一级黄色性生活片| 亚洲碰碰人人av熟女天堂| 国产高潮精品久久AV无码| 久久精品国产亚洲av桥本有菜| 一本色道久久亚洲av红楼| 日韩av无码久久一区二区| 国产精品麻豆aⅴ人妻| 亚洲精品国产不卡在线观看| 快射视频网站在线观看| 欧美老肥妇做爰bbww| 亚洲av日韩av无码av| 亚洲日韩成人无码不卡网站| 中文字幕色资源在线视频| 十八禁视频网站在线观看| 亚洲精品久久久久久| 天堂Av无码Av一区二区三区| 久久精品亚洲94久久精品| 中文字幕乱码高清完整版| 亚洲av无码一区二区乱子伦| 中文字幕日韩人妻高清在线| 国产的自拍av免费的在线观看| 亚洲国产精品一区二区www| 亚洲熟妇少妇任你躁在线观看| 日韩在线手机专区av| 最新国产不卡在线视频| 免费a级作爱片免费观看美国| 真实国产乱视频国语| 精品日韩av专区一区二区| 国产av无码专区亚洲av果冻传媒 | 国产激情一区二区三区成人免费| 国产精品髙潮呻吟久久av | 九九精品国产亚洲av日韩| 国内精品一区二区2021在线| 亚洲一区域二区域三区域四| 精品国产综合区久久久久久| 人人妻人人澡av天堂香蕉| 97色人阁俺也去人人人人人| 亚洲免费国产中文字幕久久久| 少妇无码太爽了不卡视频在线看| 亚洲—本道中文字幕久久66| 高清国产亚洲精品自在久久|