繁体   English   中英

如何将RTP数据包与其余数据分开

[英]How separate RTP packets from the rest

我有一个带有voip对话的pcap文件,如何将RTP数据包与其他数据包分开?

我可以获得sip数据包,但我无法区分其余的RTP数据包。

在文件中搜索RFC3550中定义的RTP标头。 或者更好地使用pcap-filter,例如使用这个 wiki(查找“Q:什么是仅用于捕获SIP和RTP数据包的好过滤器?”)。

如果你想在wireshark中看到RTP流量,那么:

  1. 选择分析 - >显示过滤器...
  2. 选择“UDP”,确定
  3. 右键单击任何UDP数据包,然后选择“解码为...”
  4. 从列表中选择“RTP”,确定
  5. 现在您可以看到所有RTP数据包。

希望有所帮助。 :)

ps编辑注意这是针对Wireshark的。 感谢评论员指出了这一点!

检查有关PCap过滤器的@macs建议。 如果这不能满足您的需求(例如,您需要过滤掉特定SIP会话的RTP数据包),则没有简单的方法。 您需要解析SIP消息,检索RTP端口号,在特定时间段内接收来自/来自这些端口的数据包,并(可选)通过检查其标头(标头中的magic number )来检查这些数据包是否为RTP

从pcap文件中提取RTP / RTCP数据包的开源软件包括:

  • rtpbreak: http ://dallachiesa.com/code/rtpbreak/doc/rtpbreak_en.html
  • xplico: http ://www.xplico.org

从源代码中,您可以查看和理解所使用的方法。

我可以获得sip数据包,但我无法区分其余的RTP数据包。

如果您能够解码SIP,那么您可以找到(在INVITE消息内)SDP消息。 如果你解码它,你可以找到RTP“流”的IP和PORT(和RTCP =>端口+ 1)。 通过这些信息,您可以唯一地识别RTP和RTCP数据包。 请记住,STUN协议通常包(具有相同的IP-PORT)必须与RTP分开。 您必须考虑数据包捕获的位置(网络上下文和约束),您可以考虑NAT。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM