李祥博
摘要:文章提出使用Wireshark工具解決軌道通信中常出現(xiàn)的故障,利用Wireshark的數(shù)據(jù)包擷取能力分析與排查網(wǎng)絡(luò)故障的原因,并給出相應(yīng)的解決方案。實(shí)驗(yàn)主要是通過搭建實(shí)驗(yàn)環(huán)境,模擬實(shí)際場(chǎng)景,設(shè)計(jì)故障點(diǎn)并利用Wireshark工具抓包,分析解決具體故障。實(shí)驗(yàn)結(jié)果表明,使用Wireshark工具解決軌道通信中常出現(xiàn)的問題,對(duì)開辟一條新的故障解決道路具有借鑒意義。
關(guān)鍵詞:Wireshark;軌道通信;數(shù)據(jù)包;故障
隨著城市軌道交通的迅速發(fā)展,傳統(tǒng)的程控交換機(jī)通信模式已經(jīng)不能滿足發(fā)展需求,因此目前城市軌道交通普及了IP電話的通信方式?;贗P的數(shù)據(jù)通信雖然有著比程控交換機(jī)更好的速率和效率,但在實(shí)際使用過程中也存在諸多問題。IP數(shù)據(jù)通信的實(shí)質(zhì)是將數(shù)據(jù)信息或視頻信息在壓縮后通過IP網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包的雙向傳輸,但I(xiàn)P網(wǎng)絡(luò)傳輸經(jīng)常會(huì)出現(xiàn)網(wǎng)絡(luò)堵塞、傳輸延遲、丟包和抖動(dòng)等問題,影響通話質(zhì)量甚至掉話。
為解決這一類故障問題,軌道通信設(shè)備的維護(hù)通常采用換新的方法。這種方法固然可以在一定程度上解決一些問題,但也只是一種治標(biāo)不治本的方法。簡(jiǎn)單來說,換單板、設(shè)備終端這種換新的方法不僅不能準(zhǔn)確地定位到故障問題,而且效益不高,同時(shí)也耗費(fèi)了大量的時(shí)間和人力。Wireshark是一款網(wǎng)絡(luò)數(shù)據(jù)包分析軟件,有著抓取數(shù)據(jù)包進(jìn)行解析的功能。本文提出將Wireshark應(yīng)用于軌道通信,利用Wireshark的捕捉、標(biāo)記、過濾、統(tǒng)計(jì)等功能,從源頭進(jìn)行數(shù)據(jù)包解析,以此來解決軌道通信中可能會(huì)出現(xiàn)的諸多通信故障。
1.Wireshark
1.1Wireshark工具
Wireshark是一款開源免費(fèi)的網(wǎng)絡(luò)嗅探工具,是用來做網(wǎng)絡(luò)數(shù)據(jù)抓包用的。使用這個(gè)工具,可以直接查看網(wǎng)絡(luò)上流通的數(shù)據(jù)原始情況。此外,它還具有很強(qiáng)的過濾功能。Wireshark這個(gè)工具最主要的功能是用來分析流程、功能、數(shù)據(jù)以便制定有針對(duì)性的計(jì)劃,另外它也是一種分析缺陷原因的工具。
1.2Wireshark常用功能
Wireshark是一款很實(shí)用的數(shù)據(jù)包抓取軟件,其豐富的功能能夠滿足眾多需求。Wireshark的常用功能如下:
(1)可選擇性數(shù)據(jù)接口捕獲;(2)標(biāo)記過濾數(shù)據(jù)包;(3)實(shí)時(shí)捕獲并詳細(xì)顯示數(shù)據(jù)包;(4)通過多種方式過濾查找包;(5)進(jìn)行多種統(tǒng)計(jì)分析。
1.3Wireshark與軌道通信
在此之前,Wireshark已經(jīng)被廣泛應(yīng)用于各個(gè)網(wǎng)絡(luò)領(lǐng)域。比如,基于Wireshark的對(duì)兩端進(jìn)程的通信分析,運(yùn)用Wireshark工具對(duì)設(shè)備性能進(jìn)行檢測(cè),還有使用Wireshark進(jìn)行協(xié)議解析器的研發(fā)等。Wireshark在通信方面的使用已經(jīng)越來越廣泛。
相對(duì)于傳統(tǒng)的軌道通信故障處理方式,使用Wireshark可以更有效率、更經(jīng)濟(jì)地解決故障問題。通信故障發(fā)生后,傳統(tǒng)的方法是更換單板或者整個(gè)設(shè)備,或者將設(shè)備重新啟動(dòng)。這種方式不僅找不到問題的源頭,還有可能造成不必要的浪費(fèi),將好的設(shè)備也替換掉,經(jīng)濟(jì)和效率方面都得不到保證。但是如果引用Wireshark,在網(wǎng)絡(luò)中抓包進(jìn)行分析,找到是對(duì)端還是自身的問題,或者是設(shè)備還是網(wǎng)絡(luò)的問題,這樣就能準(zhǔn)確定位故障點(diǎn),并且提高工作效率。
Wireshark從應(yīng)用至今,已有眾多基于wireshark的研究與開發(fā),將Wireshark應(yīng)用于軌道通信系統(tǒng)中,利用它解決通信中出現(xiàn)的一些常見問題,是一條實(shí)驗(yàn)可行的道路。除此之外,甚至還可以基于其他的研究成果,對(duì)鐵路通信的性能作出檢測(cè),保障網(wǎng)絡(luò)的穩(wěn)定性。
2.軌道通信故障的產(chǎn)生和解決方法
2.1實(shí)例分析
造成軌道通信故障原因有很多種:
(1)帶寬占據(jù)過大;(2)延時(shí)抖動(dòng);(3)通信信令不通;(4)數(shù)據(jù)包在通話過程中出現(xiàn)丟包;等。
本文以延時(shí)抖動(dòng)和信令不通故障為案例,詳細(xì)介紹使用wireshark解決故障的方法。
2.2延時(shí)抖動(dòng)
延時(shí)和抖動(dòng)可以分為兩個(gè)部分,延時(shí)是數(shù)據(jù)包傳輸?shù)难舆t,而抖動(dòng)則表示這個(gè)延遲的程度。造成延時(shí)的源頭主要是編碼、打包、網(wǎng)絡(luò)傳輸、jitter butter等。在雙向通話過程中,延時(shí)會(huì)影響通話效果。對(duì)于抖動(dòng),舉例來說,網(wǎng)絡(luò)傳輸時(shí),每個(gè)RTP包的不同延遲造成接收端接收時(shí)間的不均勻,UDP包的單獨(dú)路由也可導(dǎo)致后發(fā)送的RTP包被收到,從而產(chǎn)生不同的延遲。抖動(dòng)的產(chǎn)生結(jié)果是接收端聽到的聲音難以理解。
軌道通信中,話音質(zhì)量的要求是相對(duì)較高的,其中調(diào)度是核心組成部分,而一旦調(diào)度出現(xiàn)問題,整個(gè)運(yùn)輸系統(tǒng)會(huì)將受到影響甚至癱瘓,所以解決這一問題是保證軌道運(yùn)輸系統(tǒng)穩(wěn)定的一大關(guān)鍵。
通俗來說,多個(gè)數(shù)據(jù)包集合在一起便是語音,通話中的語音數(shù)據(jù)包每一個(gè)都是80 ms的語音數(shù)據(jù)包,VOIP中設(shè)置的循環(huán)buffer用于緩存收到的數(shù)據(jù)包,收到的數(shù)據(jù)包是亂序的,在緩存中排序后再解包還原原始語音。但是當(dāng)網(wǎng)絡(luò)中存在網(wǎng)絡(luò)阻塞,數(shù)據(jù)包等待的時(shí)間超過數(shù)據(jù)的緩存時(shí)間就會(huì)產(chǎn)生網(wǎng)絡(luò)延時(shí),時(shí)間過長(zhǎng)還會(huì)造成數(shù)據(jù)的丟失。
分析延時(shí)抖動(dòng)問題需要用到Wireshark軟件的圖形分析工具RTP Stream Analysis和10 Graph。利用Wireshark的10 Graph和RTP Stream Analysis圖形分析工具能夠直觀地發(fā)現(xiàn)鏈路的擁塞狀況。網(wǎng)絡(luò)中鏈路的阻塞勢(shì)必會(huì)引起過高的延時(shí)和抖動(dòng),從而對(duì)通信的質(zhì)量產(chǎn)生影響甚至是網(wǎng)絡(luò)中斷。此外,還可以通過在網(wǎng)絡(luò)的兩端利用ping命令來驗(yàn)證網(wǎng)絡(luò)中是否存在延時(shí)和抖動(dòng)或者丟包,只是這種方法相對(duì)于Wireshark來說沒有那么便捷和直觀。
運(yùn)用Wireshark來分析,不僅可以看到是否存在這種情況,而且還能看到延時(shí)抖動(dòng)的影響程度。
10 Graph如圖1所示,配合顯示過濾器可以測(cè)算篩選出兩IP話機(jī)間交互的IP流量,從而判斷當(dāng)前網(wǎng)絡(luò)性能好壞。
當(dāng)網(wǎng)絡(luò)通信質(zhì)量沒有出現(xiàn)異常時(shí),在用戶間進(jìn)行視頻或語音的通信時(shí)仍然存在質(zhì)量問題可以通過使用RTP Stream Analysis分析圖形得出結(jié)論抖動(dòng)是否復(fù)合規(guī)范,若分析得出抖動(dòng)在標(biāo)準(zhǔn)范圍之內(nèi)且網(wǎng)絡(luò)狀況良好,這說明延時(shí)抖動(dòng)不是出現(xiàn)問題的原因,則需要檢查通信設(shè)備配置和運(yùn)行的好壞。
Wireshark通過這類方法來查找問題的所在,從而定位到故障點(diǎn)進(jìn)行排查。當(dāng)網(wǎng)絡(luò)出現(xiàn)解決方案是可以通過延長(zhǎng)循環(huán)buffer緩存長(zhǎng)度如翻倍至160 ms,通過ONU外部界面中的“自適應(yīng)”菜單項(xiàng)進(jìn)行修改,以解決出現(xiàn)的延時(shí)抖動(dòng)問題。
2.3信令不通
判斷網(wǎng)絡(luò)是否中斷首先需要對(duì)網(wǎng)絡(luò)的連通性和網(wǎng)絡(luò)運(yùn)行環(huán)境進(jìn)行檢查,以SIP信令消息的傳遞為例,SIP信令中斷如圖2所示。使用Wireshark抓取數(shù)據(jù)包,通過對(duì)保存的捕獲包文件進(jìn)行過濾,分析數(shù)據(jù)包顯示通話過程中的SIP信令通話流程。
可以從圖2中看出,在37.72秒時(shí),被叫信令信息發(fā)過請(qǐng)求,而通過與圖3完整的通話流程作比較發(fā)現(xiàn)此信息沒有被回復(fù),這說明通話過程SIP信令不完整,再接下去的信令消息因此沒有被繼續(xù)傳遞,從而導(dǎo)致整個(gè)通話沒有建立而產(chǎn)生的網(wǎng)絡(luò)中斷。
問題的初步已經(jīng)被找到,接下來就是進(jìn)一步排查。為什么會(huì)發(fā)生這樣的情況呢?是主叫方的信息丟失或者配置錯(cuò)誤的原因,還是被叫方的網(wǎng)絡(luò)不通的阻塞的原因?利用Wireshark~ji次抓取數(shù)據(jù)包,主叫故障如圖4所示。
如何判斷信令中斷故障原因是在主叫方還是被叫方,通過Wireshark抓取的數(shù)據(jù)包來分析一下。如圖4所示,在46.43秒前后存在地址為192.168.2.100主叫地址為192.168.2.99的用戶(7001)未響應(yīng)信令消息的情況,由此判斷出故障的產(chǎn)生原因是在主叫方。Wireshark通過這樣的數(shù)據(jù)“提取”可以快速地定位出問題的所在。那么,接下來就是主叫方檢查軟交換ss的信令配置,看是否在信令配置方面發(fā)生了錯(cuò)誤。
上述就是使用Wireshark工具來解決實(shí)際問題的案例。從找到問題所在,到最后對(duì)癥下藥,解決問題,整個(gè)過程顯得更加科學(xué)合理。另外,這種方法排除了一些不確定因素,從而提高了效率,降低了經(jīng)濟(jì)成本,并且使得故障的查找更具有規(guī)律性。
3.故障定位擴(kuò)展
軌道通信的設(shè)備比較復(fù)雜,對(duì)于故障設(shè)備的定位有一定的難度。端點(diǎn)與對(duì)話窗口在通信故障問題定位中起很重要的作用,特別是想要找出在網(wǎng)絡(luò)中是哪臺(tái)設(shè)備占據(jù)了帶寬或者是網(wǎng)絡(luò)堵塞。
對(duì)于這項(xiàng)功能,可以在電腦上進(jìn)行簡(jiǎn)單的驗(yàn)證。打開Wireshark,配置好抓包接口進(jìn)行抓包,一段時(shí)間后打開statistic,點(diǎn)擊Endpoints,可以進(jìn)行分析。
如圖5所示,通過對(duì)話框可以看到多個(gè)客戶端進(jìn)行數(shù)據(jù)通信產(chǎn)生的大量HTTP數(shù)據(jù)流量。
查看IPv4,如圖5所示??梢钥吹揭宰止?jié)數(shù)排列的第一個(gè)地址是本機(jī)地址,也就是在這個(gè)網(wǎng)絡(luò)中,這個(gè)主機(jī)(192.168.43.247)是數(shù)據(jù)最集中的設(shè)備,也就是進(jìn)行了最多通信的主機(jī)。通過地址的數(shù)據(jù)包流量分析,可以對(duì)通信的情況一目了然。
而通過這種方法,也可以簡(jiǎn)單地判斷是哪個(gè)通信設(shè)備的發(fā)生了故障,然后對(duì)其中的嫌疑端口進(jìn)行數(shù)據(jù)抓包,協(xié)議分析,判斷故障發(fā)生的原因。
4.結(jié)語
軌道通信中的數(shù)據(jù)要經(jīng)過長(zhǎng)距離的傳輸和交換,故障出現(xiàn)的原因多種多樣,而使用Wireshark解決問題就是一個(gè)方便可行的選擇。Wireshark使用簡(jiǎn)單方便,使用時(shí)只需制定一個(gè)接口就可以進(jìn)行抓包,通過你對(duì)網(wǎng)絡(luò)中使用的一些協(xié)議的認(rèn)知,設(shè)置你想抓到的協(xié)議數(shù)據(jù)包,就可以抓到你想找到的數(shù)據(jù)包。使用抓包軟件可以很好地理解網(wǎng)絡(luò)的運(yùn)行機(jī)制,通過協(xié)議經(jīng)過的路由就可以對(duì)故障進(jìn)行定位了,從而更加簡(jiǎn)便地解決軌道通信故障問題。