如果无法识别wiredshark的某些类型的协议(RTSP,RTP,RTCP),我该如何强制它们解密?

Ily*_*iev 3 udp tcp rtp rtsp wireshark

我正在尝试根据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。

我真的很困惑,我不明白为什么在某些情况下,wireshark将VLC的请求解析为纯RTSP / RTP,而我的情况则解析为纯TCP / UDP数据。至少,即使我的请求,VLC的请求也没有格式错误。

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

Mat*_*ieu 5

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

如果要解码某些定制协议,则必须获取或编译解剖器,这可能会很麻烦。幸运的是,PCAP格式很简单,直接插入它很容易(我碰巧已经如果老板同意,我可以将其设为“开放源代码”)。

感谢@GuyHarris,他说在检测到启动RTP会话的SDP数据包时执行自动RTP解码。“ 编辑>首选项 ”菜单中还有一个选项,在“ 协议 ”树下选择“ RTP ” :“ 尝试在对话之外解码RTP ”。

  • “当数据包中有有效的SDP报头时自动解码”,或者,更确切地说,当捕获中较早的时候有SDP数据包时,将建立RTP会话。还有一个RTP首选项“尝试在对话之外解码RTP”(和相应的RTCP首选项),以使Wireshark尝试试探性地确定数据包是否为RTP(RTCP)。 (3认同)