rtp协议分析

网络模型:

网络通信分为7层(OSI),是一个理论模型,由高到低分别是:

应用层:文件传输,电邮,文件服务等。HTTP,Telnet,DNS, FTP等协议

表示层:数据格式化,代码转换,数据加密等

会话层:解除或建立与别的接点的联系

传输层:提供端到端的接口   TCP UDP  RTP

网络层:为数据包选择路由    IP ICMP RIP

数据链路层:传输有地址的帧以及错误检测功能     

物理层:以二进制数据形式在物理媒体上传输数据 


TCP/IP五层模型:应用层,传输层,网络层,数据链路层,物理层。


TCP/IP与低层次的数据链路层和物理层无关,这是其重要特点。


流媒体:

在Internet上传输音频和视频有两种方式:下载和流式传输。下载就是将文件下载到本地,才能播放,这是有延迟的,不能实现直播。流式传输是实现流媒体的关键,使用流式传输可以边下载边观看视频。由于Internet是基于分组传输的,所以客户端接收到的数据包会有延迟和乱序。为了降低延迟,在发送端往往采用降低质量或者高效压缩的方式进行处理,在接收端为了恢复时序,往往采用接收缓冲。

接收缓冲的意思就是先将接收到的数据缓存起来,然后根据数据包的封装信息,如包序号或者时间戳等,将乱序的包重新排序,然后将重新排序的包放入播放缓存进行播放。


RTP:全名实时传输协议(Real-time Transport protocol),顾名思义就是用来进行流媒体传输的,因而可以看成传输层的一个子层。

一个典型的协议体系结构如图一:


RTP建立在UDP之上,应用层之下,RTP用来为端到端的实时传输提供时间信息和流同步,但并不保证服务质量,服务质量由RTCP保证。

RTP与其他协议的关系:


应用层的一部分:

但是也有人讲RTP看做应用层的协议,这是站在了开发者的角度。TCP/IP提供的是我们最常用的服务,但是RTP需要应用者自己去开发,从开发者的角度讲,

RTP的实现和应用层的协议的实现没不同,所以可以将RTP看成是应用层的协议。


RTP的封装:

一个协议的封装满足协议的功能的需求,RTP的封装如图所示:



版本号(V):2比特,用来标志使用RTP版本。

填充位(P):1比特,如果该位置位,则该RTP包的尾部就包含填充的附加字节。

扩展位(X):1比特,如果该位置位,则该RTP包的固定头部后面就跟着一个扩展头部。

CSRC技术器(CC):4比特,含有固定头部后面跟着的CSRC的数据

标记位(M):1比特,该位的解释由配置文档来承担。

载荷类型(PT):7比特,标识了RTP载荷的类型。

序列号(SN):16比特,发送方在每发送完一个RTP包后就将该域的值增加1,可以由该域检测包的丢失及恢复包的序列。序列号的初始值是随机的。

时间戳:32比特,记录了该包中数据的第一个字节的采样时刻。在一次会话开始时,时间戳初始化为一个初始值。即使

在没有信号发送时,时间戳的值也要随时间的不断的增加而增加。时间戳是去除抖动和实现同步不可缺少的。

同步源标识符(SSRC):32比特,同步源就是RTP包源的来源。在同一个RTP会话中不能有两个相同的SSRC值。该标识符是

随机获取的RFC1889推荐了MD5随机算法。

贡献源列表(CSRC List):0-15项,每项32比特,用来标志对一个RTP

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值