基于Wireshark的轨道故障分析与研究
李祥博
摘要:文章提出使用Wireshark工具解决轨道通信中常出现的故障,利用Wireshark的数据包撷取能力分析与排查网络故障的原因,并给出相应的解决方案。实验主要是通过搭建实验环境,模拟实际场景,设计故障点并利用Wireshark工具抓包,分析解决具体故障。实验结果表明,使用Wireshark工具解决轨道通信中常出现的问题,对开辟一条新的故障解决道路具有借鉴意义。
关键词:Wireshark;轨道通信;数据包;故障
随着城市轨道交通的迅速发展,传统的程控交换机通信模式已经不能满足发展需求,因此目前城市轨道交通普及了IP电话的通信方式。基于IP的数据通信虽然有着比程控交换机更好的速率和效率,但在实际使用过程中也存在诸多问题。IP数据通信的实质是将数据信息或视频信息在压缩后通过IP网络进行网络数据包的双向传输,但IP网络传输经常会出现网络堵塞、传输延迟、丢包和抖动等问题,影响通话质量甚至掉话。
为解决这一类故障问题,轨道通信设备的维护通常采用换新的方法。这种方法固然可以在一定程度上解决一些问题,但也只是一种治标不治本的方法。简单来说,换单板、设备终端这种换新的方法不仅不能准确地定位到故障问题,而且效益不高,同时也耗费了大量的时间和人力。Wireshark是一款网络数据包分析软件,有着抓取数据包进行解析的功能。本文提出将Wireshark应用于轨道通信,利用Wireshark的捕捉、标记、过滤、统计等功能,从源头进行数据包解析,以此来解决轨道通信中可能会出现的诸多通信故障。
1.Wireshark
1.1Wireshark工具
Wireshark是一款开源免费的网络嗅探工具,是用来做网络数据抓包用的。使用这个工具,可以直接查看网络上流通的数据原始情况。此外,它还具有很强的过滤功能。Wireshark这个工具最主要的功能是用来分析流程、功能、数据以便制定有针对性的计划,另外它也是一种分析缺陷原因的工具。
1.2Wireshark常用功能
Wireshark是一款很实用的数据包抓取软件,其丰富的功能能够满足众多需求。Wireshark的常用功能如下:
(1)可选择性数据接口捕获;(2)标记过滤数据包;(3)实时捕获并详细显示数据包;(4)通过多种方式过滤查找包;(5)进行多种统计分析。
1.3Wireshark与轨道通信
在此之前,Wireshark已经被广泛应用于各个网络领域。比如,基于Wireshark的对两端进程的通信分析,运用Wireshark工具对设备性能进行检测,还有使用Wireshark进行协议解析器的研发等。Wireshark在通信方面的使用已经越来越广泛。
相对于传统的轨道通信故障处理方式,使用Wireshark可以更有效率、更经济地解决故障问题。通信故障发生后,传统的方法是更换单板或者整个设备,或者将设备重新启动。这种方式不仅找不到问题的源头,还有可能造成不必要的浪费,将好的设备也替换掉,经济和效率方面都得不到保证。但是如果引用Wireshark,在网络中抓包进行分析,找到是对端还是自身的问题,或者是设备还是网络的问题,这样就能准确定位故障点,并且提高工作效率。
Wireshark从应用至今,已有众多基于wireshark的研究与开发,将Wireshark应用于轨道通信系统中,利用它解决通信中出现的一些常見问题,是一条实验可行的道路。除此之外,甚至还可以基于其他的研究成果,对铁路通信的性能作出检测,保障网络的稳定性。
2.轨道通信故障的产生和解决方法
2.1实例分析
造成轨道通信故障原因有很多种:
(1)带宽占据过大;(2)延时抖动;(3)通信信令不通;(4)数据包在通话过程中出现丢包;等。
本文以延时抖动和信令不通故障为案例,详细介绍使用wireshark解决故障的方法。
2.2延时抖动
延时和抖动可以分为两个部分,延时是数据包传输的延迟,而抖动则表示这个延迟的程度。造成延时的源头主要是编码、打包、网络传输、jitter butter等。在双向通话过程中,延时会影响通话效果。对于抖动,举例来说,网络传输时,每个RTP包的不同延迟造成接收端接收时间的不均匀,UDP包的单独路由也可导致后发送的RTP包被收到,从而产生不同的延迟。抖动的产生结果是接收端听到的声音难以理解。
轨道通信中,话音质量的要求是相对较高的,其中调度是核心组成部分,而一旦调度出现问题,整个运输系统会将受到影响甚至瘫痪,所以解决这一问题是保证轨道运输系统稳定的一大关键。
通俗来说,多个数据包集合在一起便是语音,通话中的语音数据包每一个都是80 ms的语音数据包,VOIP中设置的循环buffer用于缓存收到的数据包,收到的数据包是乱序的,在缓存中排序后再解包还原原始语音。但是当网络中存在网络阻塞,数据包等待的时间超过数据的缓存时间就会产生网络延时,时间过长还会造成数据的丢失。
分析延时抖动问题需要用到Wireshark软件的图形分析工具RTP Stream Analysis和10 Graph。利用Wireshark的10 Graph和RTP Stream Analysis图形分析工具能够直观地发现链路的拥塞状况。网络中链路的阻塞势必会引起过高的延时和抖动,从而对通信的质量产生影响甚至是网络中断。此外,还可以通过在网络的两端利用ping命令来验证网络中是否存在延时和抖动或者丢包,只是这种方法相对于Wireshark来说没有那么便捷和直观。
运用Wireshark来分析,不仅可以看到是否存在这种情况,而且还能看到延时抖动的影响程度。
10 Graph如图1所示,配合显示过滤器可以测算筛选出两IP话机间交互的IP流量,从而判断当前网络性能好坏。
当网络通信质量没有出现异常时,在用户间进行视频或语音的通信时仍然存在质量问题可以通过使用RTP Stream Analysis分析图形得出结论抖动是否复合规范,若分析得出抖动在标准范围之内且网络状况良好,这说明延时抖动不是出现问题的原因,则需要检查通信设备配置和运行的好坏。
Wireshark通过这类方法来查找问题的所在,从而定位到故障点进行排查。当网络出现解决方案是可以通过延长循环buffer缓存长度如翻倍至160 ms,通过ONU外部界面中的“自适应”菜单项进行修改,以解决出现的延时抖动问题。
2.3信令不通
判断网络是否中断首先需要对网络的连通性和网络运行环境进行检查,以SIP信令消息的传递为例,SIP信令中断如图2所示。使用Wireshark抓取数据包,通过对保存的捕获包文件进行过滤,分析数据包显示通话过程中的SIP信令通话流程。
可以从图2中看出,在37.72秒时,被叫信令信息发过请求,而通过与图3完整的通话流程作比较发现此信息没有被回复,这说明通话过程SIP信令不完整,再接下去的信令消息因此没有被继续传递,从而导致整个通话没有建立而产生的网络中断。
问题的初步已经被找到,接下来就是进一步排查。为什么会发生这样的情况呢?是主叫方的信息丢失或者配置错误的原因,还是被叫方的网络不通的阻塞的原因?利用Wireshark~ji次抓取数据包,主叫故障如图4所示。
如何判断信令中断故障原因是在主叫方还是被叫方,通过Wireshark抓取的数据包来分析一下。如圖4所示,在46.43秒前后存在地址为192.168.2.100主叫地址为192.168.2.99的用户(7001)未响应信令消息的情况,由此判断出故障的产生原因是在主叫方。Wireshark通过这样的数据“提取”可以快速地定位出问题的所在。那么,接下来就是主叫方检查软交换ss的信令配置,看是否在信令配置方面发生了错误。
上述就是使用Wireshark工具来解决实际问题的案例。从找到问题所在,到最后对症下药,解决问题,整个过程显得更加科学合理。另外,这种方法排除了一些不确定因素,从而提高了效率,降低了经济成本,并且使得故障的查找更具有规律性。
3.故障定位扩展
轨道通信的设备比较复杂,对于故障设备的定位有一定的难度。端点与对话窗口在通信故障问题定位中起很重要的作用,特别是想要找出在网络中是哪台设备占据了带宽或者是网络堵塞。
对于这项功能,可以在电脑上进行简单的验证。打开Wireshark,配置好抓包接口进行抓包,一段时间后打开statistic,点击Endpoints,可以进行分析。
如图5所示,通过对话框可以看到多个客户端进行数据通信产生的大量HTTP数据流量。
查看IPv4,如图5所示。可以看到以字节数排列的第一个地址是本机地址,也就是在这个网络中,这个主机(192.168.43.247)是数据最集中的设备,也就是进行了最多通信的主机。通过地址的数据包流量分析,可以对通信的情况一目了然。
而通过这种方法,也可以简单地判断是哪个通信设备的发生了故障,然后对其中的嫌疑端口进行数据抓包,协议分析,判断故障发生的原因。
4.结语
轨道通信中的数据要经过长距离的传输和交换,故障出现的原因多种多样,而使用Wireshark解决问题就是一个方便可行的选择。Wireshark使用简单方便,使用时只需制定一个接口就可以进行抓包,通过你对网络中使用的一些协议的认知,设置你想抓到的协议数据包,就可以抓到你想找到的数据包。使用抓包软件可以很好地理解网络的运行机制,通过协议经过的路由就可以对故障进行定位了,从而更加简便地解决轨道通信故障问题。