提问人:Eljah 提问时间:9/22/2013 更新时间:9/24/2013 访问量:12988
如果 wireshark 无法识别某些类型的协议(RTSP、RTP、RTCP),我该如何强制它破译它们?
How can I force wireshark to decipher some types of protocols if it doesn't recognize them (RTSP,RTP, RTCP)?
问:
我正在尝试根据 http://www.csee.umbc.edu/~pmundur/courses/CMSC691C/lab5-kurose-ross.html 示例在 Java 中实现 RTSP 协议;我已经成功地通过 RTSP 请求和流式 RTP 数据包与 VLC 成功通信;VLC 无法很好地识别具有 JPEG 有效负载的 RTP 数据包;这就是为什么我应该发送格式错误的 RTP。我用 wireshark 嗅探它们,并将它们与数据包进行比较,这些数据包是从 gstreamer RTSP streamer 和 VLc 的成功 RTSP 通信中嗅探的。令我惊讶的是,我的应用程序和 VLC 的 RTSP 和 RTP 请求在 wireshark UI 中都被标记为简单的 TCP 和 UDP 数据包,而 gstreamer&VLC 的请求被标记为 RTSP、RTP、RTCP,甚至 RTSP/SDP。
我真的很困惑,我不明白为什么 VLC 的请求在某些情况下被 wireshark 解析为纯 RTSP/RTP,而我的情况是纯 TCP/UDP 数据。至少,VLC 的请求没有格式错误,即使我的请求是格式错误的。
如何强制 wireshark 将该请求识别为某些特定协议?
答:
右键单击数据包,然后选择“解码为...”。然后在“传输”协议列表中选择“RTP”。
如果你想解码一些定制的协议,你必须获取或编译一个解剖器,这可能非常麻烦......幸运的是,PCAP格式很简单,直接插入它也很容易(我上周刚做了一个,如果我的老板同意,我可能会把它开源)。
感谢@GuyHarris,当检测到启动 RTP 会话的 SDP 数据包时,将执行自动 RTP 解码。在“编辑>首选项”菜单中还有一个选项,在“协议”树下选择“RTP”:“尝试在对话之外解码RTP”。
评论