Wireshark的RTP流分析功能实战。

在VOIP协议的分析过程中,常常会遇到一些标准协议承载的语音传输,如以SIP、H.323为控制协商协议,RTP为语音数据协议的VOIP传输情况。

在语音协议的分析过程中,需要提取的一个重要项是语音内容,但是,语音内容不像文本那样,在流量中可以肉眼观察到,而是需要使用耳朵的听来进行语音内容的判断,有没有便捷的工具,来完成二进制流到声音的转换呢?有,协议分析常用的工具Wireshark就具备这个功能。

Wireshark已经很好地对标准协议进行了支持,并且支持了部分标准的音频编码格式,所以当VOIP的控制协商协议为SIP、H.323等,数据协议为RTP时,可以直接使用Wireshark的相关功能,将语音流播放,或者导出成可播放的音频文件。

下面将使用实例说明如何使用Wireshark对VOIP通话中RTP承载的音频流进行解码及提取。

首先,我们得准备一个含音频流的pcap文件,可以到Wireshark官网去下载,然后使用Wireshark打开这个pcap。

第二步,点击菜单“电话-->RTP-->RTP流”。

如果我们的Wireshark焦点刚好在一个RTP报文上,则可以直接使用“RTP流”下的“流分析”菜单,二者最终目的是一致的。

第三步,选中要分析的RTP流,一般语音都是双向的,因此我们可以点击按钮“查找反向流”来选中另一个方向的RTP流,这在一个pcap中有很多条RTP流的情况下能很大地提高分析效率。选中流后,点击按钮“分析”进入下一步RTP流分析界面。

第四步,在RTP流分析界面,界面左侧可见RTP的数据情况分析,右侧则为RTP报文的列表,上下行的RTP报文列表各占一个tab页。在这个界面下方点击按钮“播放流”,即可进入RTP播放器,在播放器中可对RTP流进行播放。

第五步,在RTP播放器中,可点击“播放图像”按钮进行播放,就能听到音频数据的实际内容了。

在RTP播放器界面的上方,为上下行两个方向的音频波形图,界面中间则为两个方向的RTP报文情况。两个方向音频的播放是按照RTP的时序进行的。

如果仅仅能进行播放,这是不够的,我们还能将RTP音频数据导出。

在RTP流分析界面内,下方的按钮“save”包含一系列功能菜单,可以将RTP流内的音频按不同要求保存,如上下行存为同一个文件,存为不同文件等,之间的区别可以逐个实操体会。

选中一项菜单,如“不同步的正向音频”菜单,则进入保存界面,和其他软件的保存功能用法相同,这里可以存为.au音频格式和.raw原始数据两种文件格式,当然,原始数据是没法直接播放的,而au格式是可以播放的。保存之后,到目的路径就能看见结果了。

这里只介绍了使用Wireshark的RTP音频分析功能的一条路径。在菜单“电话”下,还有很多路径可以达到对RTP音频流进行分析的功能,如“VOIP通话”:

这些功能,可以举一反三,都有待大家去发掘。

Wireshark提取音频流的功能就介绍到这里了,学习协议分析的知识和工具使用,关注公众号《协议分析与还原》准没错。

长按进行关注。

接下来,该过节了,明年再在这里相聚,在此提前给各位兄弟姐妹拜个早年,祝各位技术精进,工资翻番,事业顺利,阖家幸福。

最新文章

  1. [LeetCode] Range Sum Query 2D - Mutable 二维区域和检索 - 可变
  2. Vue.JS 对比其他框架
  3. 【翻译】如何给tomcat配置memcached-session-manager
  4. Java UDP 数据报
  5. 苹果应用 Windows 申请 普通证书 和Push 证书 Hbuilder 个推
  6. HDU 1505 City Game
  7. TweenMax动画库学习(一)
  8. MapReduce中的排序
  9. Python的迭代器(iterator)和生成器(constructor)
  10. C#使用Windows API 隐藏/显示 任务栏 (FindWindowEx, ShowWindow)
  11. VMware三种链接方式
  12. Union 与 Union all 区别
  13. java 视频中截图
  14. ajax-jquery方法-初步入门01(整理)
  15. CCF-201503-2-数字排序
  16. 解决使用BottomSheetDialog时状态栏变黑的问题
  17. JAVA IO流编程 实现文件的写入、写出以及拷贝
  18. linux下read命令详解
  19. appJar 界面效果
  20. hdu (kruska and prime) 继续畅通工程

热门文章

  1. 面试:Stream#foreach方法摸底三问,你都了解吗
  2. c#中的Nullable(可空类型)
  3. Tuple<T1,T2,.........T> 元组简单使用
  4. 爬虫selenium中动作链接ActionChains
  5. 简约清新日系你好五月通用PPT模板推荐
  6. JQuery iframe宽高度自适应浏览器窗口大小的解决方法
  7. Servlet 使用介绍(2)
  8. DevOps VS 职责分离
  9. 程序运行时间测试 - 使用libc 中 time 函数 实现秒级的运行时间检测
  10. I2C协议学习笔记