我正在尝试根据http://www.csee.umbc.edu/~pmundur/courses/CMSC691C/lab5-kurose-ross.html示例在Java中实现RTSP协议;通过RTSP请求和流式RTP数据包,我成功地与VLC进行了通信; VLC无法识别具有JPEG有效载荷的RTP数据包;这就是为什么我认为我发送格式错误的RTP。我用wireshark嗅探它们并将它们与数据包进行比较,从gstreamer RTSP流媒体和VLc的成功RTSP通信中嗅出。我很惊讶,我的应用程序和VLC的RTSP和RTP请求都在wireshark UI中标记为TCP和UDP数据包,而gstreamer& VLC的标记为RTSP,RTP,RTCP甚至RTSP / SDP。
我真的很困惑,我不明白为什么在某些情况下VLC的请求被wireshark解析为纯RTSP / RTP,而我的情况就是普通的TCP / UDP数据。至少,VLC的请求不会格式错误,即使我是。
如何强制wireshark将请求识别为某些特定协议?
答案 0 :(得分:5)
右键单击数据包并选择“解码为...”。然后在“传输”协议列表中选择“RTP”。
如果你想解码一些定制的协议,你必须得到或编译一个解剖器,这可能很麻烦...幸运的是,PCAP格式很简单,直接插件很容易(我碰巧如果我的老板同意,我可能会在上周制作一个。)
感谢@GuyHarris,他说当检测到启动RTP会话的SDP数据包时,会执行自动RTP解码。 “编辑>偏好设置”菜单中还有一个选项,在“协议”树下选择“ RTP ”:“尝试在会话之外解码RTP “。