RTP/RTSP/RTCP 协议详解

上次说到了XMPP协议,这个遇到了另一个协议RTP。XMPP:http://blog.csdn.net/shinichr/article/details/23832157

概念:

RTP英文名是Real-Time Stream Protocol,顾名思义是一种实时性很高的协议。这种协议和http协议很类似,都是纯文本来发送消息的,不同的是rtp是有状态的,http是没有状态的。怎么理解呢?http协议发了之后,连接就断开了,而且下一次发与上一次没有什么依赖关系,而RTP协议需要知道现在是个什么状态,可以发送什么消息...

RTP用来为IP网上的语音、图像、传真等多种需要实时传输的多媒体数据提供端到端的实时传输服务。RTP为Internet上端到端的实时传输提供时间信息和流同步,但并不保证服务质量,服务质量由RTCP来提供。

RTP: Real-time Transport Protocol,实时传输协议,一般用于多媒体数据的传输

RTCP: RTP Control Protocol,实时传输控制协议,同RTP一起用于数据传输的监视,控制功能

RTSP: Real Time Streaming Protocol,实时流协议,用于多媒体数据流的控制,如播放,暂停等。

RTP/RTCP相对于底层传输层,和RTSP,SIP等上层协议一起可以实现视频会议,视频直播等应用。

为什么要搭配这些协议呢?RTP位于传输层(通常是UDP)之上,应用程序之下,实时语音、视频数据经过模数转换和压缩编码处理后,先送给RTP封装成为RTP数据单元,RTP数据单元被封装为UDP数据报,然后再向下递交给IP封装为IP数据包。这么说RTP是没有保证传输成功的,

那怎么保证呢?就要用到rtcp。

RTCP消息含有已发送数据的丢包统计和网络拥塞等信息,服务器可以利用这些信息动态的改变传输速率,甚至改变净荷的类型。RTCP消息也被封装为UDP数据报进行传输。


RTP的应用:

    RTP用于在单播或多播网络中传送实时数据。

1:简单的多播音频会议.语言通信通过一个多播地址和一对端口实现,一个用于音频数据rtp,一个用于控制包rtcp

2:音频视频会议.这两种媒体将分别在不同的RTP会话中传送,同步的话就需要根据RTCP包中的计时信息了(network time protocol)

3:翻译器或混合器:

曾经不知边下边播是怎么实现的,不知道现在为止你看了RTP后是怎么想的了?

当前在internet上传送音频和视频等信息主要有两种方式:一是下载,二是流式传输.

在下载情况下,我们都知道,要下完了,才能播放。在视频会议中这显然是不对的。流式传输才是实现流媒体的关键技术.

使用流式传输才能边下载边看流媒体节目。由于internet是基于分组传输的,就是一块一块的传的。所以传递的包会有你先到,或者我先到的情况。

为了降低延迟和恢复数据包时序,在发送端,我们需要对数据进行尽可能的压缩,在接收端,为了恢复时序,就需要一个缓冲区了。对缓冲的数据进行排序就可以恢复数据包时序了。

将排好序的的数据再放入播放缓冲,为什么还要一个播放缓冲呢?这是因为,如果网络不理想(我们国家的网速,就不用贴数据了),我们得到排序好的数据包时间间隔是不等的。如果没有播放缓冲,播放就会出现时延抖动.使用播放缓冲,在开始播放时,花费几十秒钟先将播放缓冲填满,可以有效地消除时延抖动,从而在不太损失实时性的前提下实现流媒体的顺畅播放.


发布了15 篇原创文章 · 获赞 7 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览