rtp头的获取问题

cs74184235 2012-08-27 03:53:49
我用winpcap获取数据包之后用偏移找到了udp头但是再往后偏移的话不知道是否是rtp头还是数据了,过滤函数中写的是ip and udp 我查过说明书没有看到直接过滤出rtp的方法。请问应该如何判断rtp的存在?或者过滤出rtp呢?
...全文
230 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cs74184235 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
RTP位于传输层(通常是UDP)之上,应用程序之下,实时语音、视频数据经过模数转换和压缩编码处理后,先送给RTP封装成为RTP数据单元,RTP数据单元被封装为UDP数据报,然后再向下递交给IP封装为IP数据包。
所以UDP头之后,就是UDP数据(包含了RTP头+RTP数据)
[/Quote]

你说的我明白,但我接收的数据不全是实时视频通信,udp之后不一定就是rtp也肯能是其他协议,我的问题就是要判断,udp之后是否是rtp头?
cs74184235 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
找到RTP协议的RFC对比一下你的数据部分就知道是否是RTP数据格式定义。但是RTP应该是封装在UDP的外层,你既然已经提取了UDP头,那么我认为你看到的数据不是RTP。
[/Quote]

ip——》udp——》rtp ,rtp 头应该就在udp头之后的吧,你说的外层具体指什么呢?
Gloveing 2012-08-29
  • 打赏
  • 举报
回复
Gloveing 2012-08-29
  • 打赏
  • 举报
回复
RTP位于传输层(通常是UDP)之上,应用程序之下,实时语音、视频数据经过模数转换和压缩编码处理后,先送给RTP封装成为RTP数据单元,RTP数据单元被封装为UDP数据报,然后再向下递交给IP封装为IP数据包。
所以UDP头之后,就是UDP数据(包含了RTP头+RTP数据)
dahualyh 2012-08-29
  • 打赏
  • 举报
回复
找到RTP协议的RFC对比一下你的数据部分就知道是否是RTP数据格式定义。但是RTP应该是封装在UDP的外层,你既然已经提取了UDP头,那么我认为你看到的数据不是RTP。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧