4

我正在尝试根据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通信中嗅探。我很惊讶,我的 app&VLC 的 RTSP 和 RTP 请求在 Wireshark UI 中都被标记为简单的 TCP 和 UDP 数据包,而 gstreamer&VLC 的请求被标记为 RTSP、RTP、RTCP 甚至 RTSP/SDP。

我真的很困惑,我不明白为什么在某些情况下 VLC 的请求会被wireshark 解析为纯 RTSP/RTP,而我的情况是纯 TCP/UDP 数据。至少,即使我的请求格式不正确,VLC 的请求也是如此。

如何强制wireshark 将该请求识别为某些特定协议?

4

1 回答 1

7

右键单击一个数据包并选择“解码为...”。然后在“传输”协议列表中选择“RTP”。

如果你想解码一些定制的协议,你必须得到或编译一个解析器,这可能很麻烦......幸运的是,PCAP格式很简单,直接插入它很容易(我恰好做了上周,如果我的老板同意,我可能会将其开源)。

感谢@GuyHarris,他说当检测到启动 RTP 会话的 SDP 数据包时会执行自动 RTP 解码。在“ Edit > Preferences ”菜单中还有一个选项,在“ Protocols ”树下选择“ RTP ”:“ Try to decode RTP outside of conversations ”。

于 2013-09-21T18:33:32.897 回答