Wireshark是网络协议分析必不可少的工具软件,熟练使用wireshark能在网络软件问题分析中起到事半功倍的效果。在VoIP领域中,Wireshark软件也是不可缺少的。无论是SIP协议分析、音视频问题定位、或是项目安装部署问题排查,都有它的一席之地。本文从以下几个方面介绍Wireshark在VoIP领域中的应用。
一、报文过滤
一般抓到的报文中都包含大量其它协议的网络包,为了更好的分析问题,需要输入合适的过滤条件。实际分析中过滤条件有以下几种:
- SIP
最常用的过滤条件
- SIP+RTP
分析音频问题时需要过滤RTP
- SIP+H264
分析H264视频问题时需要过滤H264
- IP
结合IP地址或端口进行过滤
二、报文查看
- 网络包结构
SIP请求报文:
SIP应答报文:
以上图中可以看到:帧编号,链路层的源、目的MAC地址,网络层的源、目的IP地址,传输层的协议及端口,应用层的SIP协议的请求行或应答状态行信息。每一层次的协议均可通过展开来查看更详细的信息
以请求报文为例, 请求报文由请求行+消息头+消息体(可选)组成。
- 请求行查看
请求行可以看到请求的方法(INVITE),请求的最终目的地址及使用的传输方式为UDP
- 消息头查看
From:请求的发起方
To: 目的方
Call-ID: 唯一标识
Contact: 请求方的联系地址
User-Agent: 请求方的代理名称
Content-Length: 消息体长度
- 消息体查看
Media Description: 媒体行,可以看到上图中有两个媒体行,分别为audio(音频)和video(视频),
音频RTP接收端口为10012, 视频RTP接收端口为10014
- 音频:
- 视频:
视频编码为H264, RTP负载类型为99
三、信令时序图
1. 选择菜单中的“电话”,再选择VoIP通话,弹出如下图:
图3.1
2. 选中图3.1中的通话,点击“准备过滤器”,可以过滤出该通话对应的信令报文和媒体报文,如下图:
过滤后的报文比较清晰,方便分析问题
3. 选中图3.1中的通话,点击“流序列”,可以得到信令序列图,方便从整体上查看信令交互,如下图:
4. 选中图3.1中的通话,点击“播放流”,可以查看音频波形,也可以播放,用来分析音频问题,如下图:
四、视频H264 导出及播放
需要在wireshark安装目录安装导出h264码流的lua脚本(一般为rtp_h264_extractor.lua)。安装成功后,可以通过”工具“中的导出h264选项导出h264码流。再使用h264播放软件进行视频播放。
五、RTP流分析
1. 选择“电话”,“RTP”, "RTP流“,如下图:
图5.1
2. 图5.1 中可以看出媒体流的源、目的地址和端口,载荷类型,丢包率,抖动等
3. 点击图5.1中的”分析“,可以看到更详细的信息,也可以点击下图中的”播放流“进行播放
六、重复报文过滤
使用editcap.exe命令可以将重复报文过滤
D:\Program Files\Wireshark>editcap.exe -d E:\input.pcapng E:\output.pcap
input.pcapng是输入文件
output.pcap是输出文件
示例:
过滤前:
过滤后: