RTP/RTCP/RTSP协议初探

From:http://apps.hi.baidu.com/share/detail/24794429





一.产生的背景

随着互连网的发展,人们已经不满足于传统的HTTP,FTP和电子邮件等文本信息和服务,而对内容丰富多彩的多媒体信息,服务以及多媒体通信方式提出了需求,包括声音,图象,图形,视频信息等等,而这些不但传输的数据量大而且对交互性和实时性要求很高。

这时,基于HTTP的TCP协议无法达到要求,故产生RTP协议来进行多媒体数据实时传输.



二.RTP/RTCP/RTSP协议与TCP/IP协议对比

那么,现在有个疑问是:为什么TCP/IP协议就不能满足多媒体通信的要求呢?

这是因为TCP有以下4个特点:

1.TCP重传机制

2.TCP拥塞控制机制

3.TCP报文头比UDP保文头要大

4.TCP的启动速度慢



RTP 由IETF(Internet Engineering Task Force,互联网工程任务组)的音频/视频传输工作组制定,主要实现实时数据的传输,它在包头中提供编码类型,包中数据的采样时刻和数据包的序号,根据 这些信息发送和接受方可以协商编码类型,可以对接收到的数据包进行排序等工作;RTCP主要负责传输质量的监控以及传送发送者的一些标志信息。试验和研究 表明,RTP/RTCP所提出的实时数据的传输机制是行之有效的。



对比记忆

IP:数据传输  RTP:多媒体数据实时传输

TCP:保证数据传输可靠  RTCP:保证多媒体数据传输的可靠



三.RTP/RTCP,RTSP协议说明

RTP:Realtime Transport Potocol 实时传输协议

RTCP:Realtime Transport Control Potocol 实时传输控制协议

RTSP:RealTime Streaming Potocol 实时流协议

RSVP:Resource Reserve Potocol 资源预留协议



1.RTP提供时间标志,序列号以及其他能够保证在实时数据传输时处理时间的方法

2.RTCP是RTP的控制部分,是用来保证服务质量和成员管理的

3.RTSP具体数据传输交给RTP,提供对流的远程控制

4.RSVP预留带宽,提高QoS(Quality of Sever)

RTP为实时应用提供端到端的运输,但不提供任何服务质量的保证。多媒体数据块经过压缩编码处理后,先送给RTP封装成为RTP分组,RTP分组再装入UDP用户数据报,然后再向下地交给IP层。RTP是一个协议框架,因为它只包含了实时应用的一些共同的功能。

RTP分组只包含RTP数据,而控制是由另一个配套协议RTCP提供。
RTP在端口号1025到65535之间选择一个未使用的偶数UDP端口号,而在同一次会话中的RTCP则使用下一个奇数UDP端口号。但端口号5004和5005则分别用作RTP和RTCP的默认端口号。
RTP位于传输层(通常是UDP)之上,应用程序之下。它提供同步播放媒体数据所需要的时间戳和序列号,并不具有差错和流量控制机制,这些需要应用程序实现。
RTCP通常和RTCP一起提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期的发送RTCP数据报。RTCP数据报含有已发送数据的数量丢失的数据报的数量等统计资料,因此,服务器可以利用这些信息动态的改变传输速率,甚至改变净荷的类型。
(照我目前的理解是:RTP和RTCP提供了这些信息给应用程序,但是RTP和RTCP并不定义根据这些信息的动作,
就像TCP的重发和滑动窗口等都是协议自己完成的。但是RTP并不自己做这些事情。)


RTSP(Real Time Streaming Protocol)是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制,传输时所用的网络通讯协定并不在其定义的范围内,服务器端可以自 行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。而前面提到的允许同时多个串流需求控制


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406251.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c mysql ssh_c ssh mysql数据库

快速搭建LAMP环境1.打开打开系统自带的终端工具 CMD:winR,输入cmd Powershell:winX→C2.输入ssh -V检查是否安装ssh3.连接命令ssh root弹性IP4.输入yes5.输入密码,连接成功会显示安装Apache服务6.执行命令yum -y install httpd h.…

zip (ICSharpCode.SharpZipLib.dll文件需要下载)

ZipClass zcnew ZipClass (); zc.ZipDir("E:\1\新建文件夹", "E:\1\新建文件夹.zip", 1);//压缩 zc.UnZip("E:\1\新建文件夹.zip","E:\1\2222");//解压cs 1 class ZipClass2 {3 public void UnZip(string zipFilePath, string unZipDi…

WORD关于论文格式设置

现今的论文格式要求越来越无语,封面页 摘要页 目录页 正文页,封面页 摘要页 不能有页眉页脚 目录页 要求倒是不算高,整出个目录就行 正文页 页眉无所谓,但是页脚要显示页码 1 不设置就好,但是有时候设置了页眉又删除了的话,会出现一个横线,这个横线是由 页眉 的样式所定义的,这…

秒杀系统 mysql_秒杀系统-介绍

秒杀系统秒杀系统其实是针对库存做的系统。用户成功秒杀商品,对于我们系统的操作就是减库存和记录用户的购买明细。用户的购买明细包括记录谁购买成功、购买成功的时间和付款信息。而对于减库存操作,需要考虑到以下两个问题:(1)若是用户成功秒…

MOSS中自定义WebService

(转http://tech.ddvip.com/2008-10/122527111786701.html,更详细见msdn:http://msdn.microsoft.com/zh-cn/library/ms464040.aspx) MOSS中已经提供的webservice都放在虚拟目录_vti_bin中,对应的物理目录为c:Program FilesCommon FilesMicroso…

执行execute时对象名 retime_record 无效_MyBatis 的执行流程怎么可以讲的这么透彻

前言MyBatis可能很多人都一直在用,但是MyBatis的SQL执行流程可能并不是所有人都清楚了,那么既然进来了,通读本文你将收获如下:1、Mapper接口和映射文件是如何进行绑定的2、MyBatis中SQL语句的执行流程3、自定义MyBatis中的参数设置…

WCF安全之ASP.NET兼容模式

本文是利用ASP.NET兼容模式实现WCF安全的一个完整示例,其中用到了ASP.NET的Forms身份验证及Membership,并启用了角色管理。 由于整套安全方案完全利用ASP.NET相关功能实现,而未用到WCF安全策略相关的包括WCF身份验证、WCF授权及WCF传输安全等…

javase基础复习攻略《七》

容器是什么?通俗的讲容器指可以装其它东西的器皿,前面我们提到的数组便是容器的一种,容器的概念在JAVA中便可以理解为用来存储其它对象的器皿。本篇就让我们一起来认识一下JAVA为我们提供的容器类。 1、容器API: J2SDK提供的容器A…

mysql2000数据库四合一_MSSQL2000四合一

MSSQL2000四合一是包含了MS Sql Server 2000 DEVELOPER、ENTERPRISE、PERSONAL、STANDARD 四个版本。在解压目录下有 SQL2000-KB884525-SP4-x86-CHS.EXE 这是SQL 2000 的 sp4 补丁。记录安装完后一定要安装上。个人版、企业版、专业版、开发版SQL Server 2000 是 Microsoft .NE…

jms mysql_JMS学习九(ActiveMQ的消息持久化到Mysql数据库)

1、将连接Mysql数据库的jar文件,放到ActiveMQ的lib目录下2、修改ActiveMQ的conf目录下的active.xml文件,修改数据持久化的方式2.1 修改原来的kshadb的持久化数据的方式2.2 连接Mysql的配置(注意配置文件放置的位置)3、将数据持久化Mysql的运行截图3.1 …

看完这篇不要告诉我不会封装ant design弹框组件了

我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号关注前端小歌谣 获取前端学习知识 1设计需求 封装一个弹框组件 直接调用接口 2技术栈 ant designreact 设计第一步 绘制样式 <ModalmaskClosable{false}visible{visible}title{签收协议}onOk{this.handleSignFor}onCancel…

mysql 报错3534_win7下安装MYSQL报错:MYSQL 服务无法启动的3534问题

win7下安装MYSQL,只到“net start mysql”这一步报错:3534的错误&#xff1a;是直接官网下载的压缩文件.不是安装文件.解决方法:1:环境变量PATH添加完成(例如&#xff1a;h:\mysql\\bin2:在mysql目录下&#xff0c;新建data目录。3:在mysql目录下 新建新建一个默认配置文件my.i…