RTP(实时传输协议)
目录
1概述
2 RTP使用场景
3 RTP详解
4 RTP控制协议RTCP
1概述
RTP(real-time transport protocol),实时传输协议。RTP在多点传送(多播)或单点传送(单播)的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据,如:音频,视频或者仿真数据。RTP没有为实时服务提供资源预留的功能,也不能保证QoS(服务质量)。数据传输功能由一个控制协议(RTCP)来扩展,通过扩展,可以用一种方式对数据传输进行监测控制,该协议(RTCP)可以升级到大型的多点传送(多播)网络,并提供最小限度的控制和鉴别功能。RTP和RTCP被设计成和下面的传输层和网络层无关。协议支持RTP标准的转换器和混合器的使用。
RTP由IETF的多媒体传输工作小组1996年在RFC 1889中公布,现行版本为RFC3550,详见:
https://tools.ietf.org/html/rfc3550
RFC3550的大多数内容和旧版的RFC1889相同。在线路里传输的数据包格式没有改变,唯一的改变是使用协议的规则和控制算法。为了最小化传输,发送RTCP数据包时超过了设定的速率,而在这时,很多的参与者同时加入了一个会话,在这样的情况下,一个新加入到(用于计算的可升级的)计时器算法中的元素是最大的改变。
2 RTP使用场景
- 简单多播音频会议( Simple Multicast Audio Conference)
- 音频和视频会议(Audio and Video Conference)
- 混频器和转换器(Mixers and Translators)
- 分层编码(Layered Encodings)
3 RTP详解
RTP头有以下格式(RFC 3550 Page 12):
0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|V=2|P|X| CC |M| PT | sequence number |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| timestamp |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| synchronization source (SSRC) identifier |+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+| contributing source (CSRC) identifiers || .... |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
版本号(V):2比特,此域定义了RTP的版本。此协议定义的版本是2。
填充位(P):1比特,如果该位置位,则该RTP包的尾部就包含附加的填充字节。
扩展位(X):1比特,如果该位置位的话,RTP固定头部后面就跟有一个扩展头部。
CSRC计数器(CC):4比特,含有固定头部后面跟着的CSRC的数目。
标记位(M):1比特,该位的解释由配置文档(Profile)来承担.
载荷类型(PT):7比特,标识了RTP载荷的类型。
序列号(SN):16比特,发送方在每发送完一个RTP包后就将该域的值增加1,接收方可以由该域检测包的丢失及恢复包序列。序列号的初始值是随机的。
时间戳:32比特,记录了该包中数据的第一个字节的采样时刻。在一次会话开始时,时间戳初始化成一个初始值。即使在没有信号发送时,时间戳的数值也要随时间而不断地增加(时间在流逝嘛)。时间戳是去除抖动和实现同步不可缺少的。
同步源标识符(SSRC):32比特,同步源就是指RTP包流的来源。在同一个RTP会话中不能有两个相同的SSRC值。该标识符是随机选取的 RFC1889推荐了MD5随机算法。
贡献源列表(CSRC List):0~15项,每项32比特,用来标志对一个RTP混合器产生的新包有贡献的所有RTP包的源。由混合器将这些有贡献的SSRC标识符插入表中。SSRC标识符都被列出来,以便接收端能正确指出交谈双方的身份。
RTP扩展头(RFC 3550 Page 18):
0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| defined by profile | length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| header extension || .... |
若 RTP 固定头中的扩展比特位置 1(注意:如果有CSRC列表,则在CSRC列表之后),则一个长度可变的头扩展部分被加到 RTP 固定头之后。头扩展包含 16 比特的长度域,指示扩展项中 32 比特字的个数,不包括 4 个字节扩展头(因此零是有效值)。
RTP 固定头之后只允许有一个头扩展。为允许多个互操作实现独立生成不同的头扩展,或某种特定实现有多种不同的头扩展,扩展项的前 16 比特用以识别标识符或参数。这 16 比特的格式由具体实现的上层协议定义。基本的 RTP 说明并不定义任何头扩展本身。
4 RTP控制协议RTCP
RTP控制协议(RTCP)向会议中所有成员周期性发送控制包。它使用与数据包相同的传输机制。底层协议必须提供数据包和控制包的复用,例如用不同的UDP端口。RTCP提供以下四个功能:
○基本功能是提供数据传输质量的反馈。这是RTP作为一种传输协议的主要作用,它与其他协议的流量和拥塞控制相关。反馈可能对自适应编码有直接作用,并且IP组播的实验表明它对于从接收端得到反馈信息以诊断传输故障也有决定性作用。向所有成员发送接收反馈可以使"观察员"评估这些问题是局部的还是全局的。利用类似多点广播的传输机制,可以使某些实体,诸如没有加入会议的网络业务观察员,接收到反馈信息并作为第三方监视员来诊断网络故障。反馈功能通过RTCP发送者和接收者报告实现。
○RTCP为每个RTP源传输一个固定的识别符,称为规范名(CNAME)。由于当发生冲突或程序重启时SSRC可能改变,接收者要用CNAME来跟踪每个成员。接收者还要用CNAME来关联一系列相关RTP会话中来自同一个成员的多个数据流,例如同步语音和图像。
○前两个功能要求所有成员都发送RTCP包,因此必须控制速率以使RTP成员数可以逐级增长。通过让每个成员向所有成员发送控制包,各个成员都可以独立地观察会议中所有成员的数目。此数目可以用来估计发包速率。
○第四个可选的功能是传输最少的会议控制信息,例如在用户接口中显示参与的成员。这最可能在"松散控制"的会议中起作用,在"松散控制"会议里,成员可以不经过资格控制和参数协商而加入或退出会议。RTCP作为一个延伸到所有成员的方便通路,必须要支持具体应用所需的所有控制信息通信。
○在RTP用于IP多点广播时,功能1-3是强制的,在所有情况下都推荐使用。建议RTP应用开发商避免使用只能用于单向广播而不能扩充到多用户的方法。
RTP(实时传输协议)相关推荐
- rtp 实时传输协议
实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的. 国际电信联盟ITU-T ...
- 实时传输协议(RTP)
RTP简介 RTP是一种提供端对端传输服务的实时传输协议,用来支持在单目标广播和多目标广播网络服务中传输实时数据,而实时数据的传输则由RTCP协议来监视和控制. RTP定义在RFC 使用RTP协议的应 ...
- rtp 多媒体流同步控制 实时传输协议 简介
RTP(Real-time Transport Protocol)是由IETF开发的实时传输协议,可以在面向连接或无连接的下层协议上工作,通常和UDP协议一起使用.RTP的工作机理与RSVP不同,主要 ...
- 实时传输协议:RTP、RTCP、RTSP介绍
http://blog.csdn.net/heanyu/article/details/6202500 RTP(Real Time Transport Protocol) RTP是针对Internet ...
- 实时传输协议——RTP协议
随着以太网音视频桥接(AVB)技术的引入,汽车可支持各种基于音频.视频的流媒体服务.在流媒体数据传输过程中,为保障音视频流的实时传输,需采用RTP和RTCP协议.接下来,我们一起来了解下实时传输协议吧 ...
- 实时传输协议---RTP【详解】
目录 一.RTP简介 二.RTP的工作机制 三.RTP协议解析 一.RTP简介 RTP全名是Real-time Transport Protocol(实时传输协议).RTP用来为IP网上的语音.图像. ...
- 安全可靠的SRT实时传输协议
Secure Reliable Transport(SRT)是安全.可靠.低延时的多媒体实时传输协议.SRT协议使用AES进行数据加密,运用FEC进行前向纠错,并且有流量控制.拥塞控制.类似于QUIC ...
- IP实时传输协议RTP/RTCP详解
1.简介 目前,在IP网络中实现实时语音.视频通信和应用已经成为网络应用的一个主流技术和发展方向,本文详细介绍IP协议族中用于实时语音.视频数据传输的标准协议RTP( Real-time Transp ...
- RTP实时传送协议(Real-time Transport Protocol或简写RTP)
RTP ●实时传送协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的. RTP协议详 ...
最新文章
- Go 知识点(14) — Go 多协程(单个协程触发panic会导致其它所有协程挂掉,每个协程只能捕获到自己的 panic 不能捕获其它协程)
- ThinkPHP 3.2 vendor()方法的深入研究及Phpqrcode的正确扩展
- 数据中心网络组网的不同方案
- 使用nodejs消费SAP Cloud for Customer上的Web service
- 【Go语言】面向对象扩展——接口
- jeecg输入中文查询导表为空_简单查询
- 如何绘制逻辑图 — 6.要素的属性:内聚与解耦
- poj3279 反转 挑战程序设计竞赛
- Qt总结之十四:uint8_t / uint16_t / uint32_t /uint64_t数据类型详解
- debian 11安装微信
- HP服务器虚拟IP,HP Jetdirect 打印服务器 - 用于 TCP/IP(UDP)连接的 HP Jetdirect 端口号...
- Linux运维工程师发展
- 【Redis】Linux安装Redis步骤详细讲解,以及make、make install区别
- (翻译自用)TG^2———IJDAR杂志论文
- 计算机丢失mfc140ud.dll,mfc140ud.dll
- 计算机ppt制作培训心得体会,制作ppt学习心得体会.doc
- Excel文件显示“文件已损坏,无法打开”情况的解决办法
- js绑定事件和解绑事件的方法
- Web TOP10漏洞之sql注入
- 对未来的打算和本专业的认识
热门文章
- hdu 1849 Rabbit and Grass Nim博弈
- 用Python对PDF去水印(终极版)原则上所有水印都可去除(Pdftron)
- Python 的 AIML
- 全志H6 Android 7.0 平台 修改横竖屏显示
- python文件处理方式
- 基于MIMO的滤波器组多载波调制技术(后期将附上MATLAB代码)
- css背景透明(css背景透明度怎么设置)
- 视频教程:嵌入式stm32项目开发之心率检测仪的设计与实现
- HDMI2.0RE驱动控制方案AG7120和AG7220性能参数对比
- multi-angle cosine and sines