专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VOIP

rtp协议的一些有关问题

发布时间:2011-07-03 07:04:17 文章来源:www.iduyao.cn 采编人员:星星草
rtp协议的一些问题。
rtp是通过udp承载的,怎么养判断 udp承载的数据是rtp的?

------解决方案--------------------
RTP定义在RFC1889中,每个RTP信息包被封装在UDP消息段中,然后再封装在IP数据包中。
其中RTP信息包标题域包含:
Payload Type Field,Sequence Number Field,Timestamp Field 和 Synchronization Source Identifier Field 等,具体可以参考RFC1889
根据这些值,可以判断出UDP消息段是否为RTP消息。

------解决方案--------------------
以下讨论基于使用SIP+RTP的情况:

通信双方在发RTP包前,先会发SIP INVITE消息, 
这个INVITE消息里面一般会在数据尾部加上SDP(Session Description Protocol)信息,
INVITE消息用来描述会话的主叫者,被叫者,callid, 时间戳等等,
而SDP用来描述或约定owner,用来传送音频的RTP端口号,用来传送视频的RTP端口号,支持的媒体类型等等。

可见,只要通过SIP INVITE消息中的SDP信息, 就可以确定双方约定好的下面将要开始传送RTP报文的端口号了。

打个比方, 如果发送INVITE消息的源IP为aaa, 目的IP为bbb, owner地址为ccc, 音频RTP端口是pa, 视频RTP端口是pv,
那么接下来你应该对UDP报文进行过滤了,
如果符合:
源IP=ccc, 目的IP=bbb, UDP源端口=pa/pv, 那么, 那就是你要的RTP报文了。

说的可能不太清楚,你可以结合 wireshark来分析的,它的statistic菜单中有VoIP和RTP的分析,很不错。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: