RTP-RTCP协议
- 格式:doc
- 大小:536.50 KB
- 文档页数:8
RTP/RTCP协议分析摘要本文主要介绍了RTP/RTCP协议组成,在详细了解和分析RFC3550协议和阅读目前国内外在RTP协议研究成果上给出了使用协议的要求及使用过程中需要注意的问题。
前言RTP/RTCP协议是IETF的音视频传输工作组提出的在Internet和现有局域网上传输实时信息的一个新型协议,是实现实时通信不可缺少的协议。
该协议是专门为交互的音频、视频等实时性数据而设计的。
RTP/RTCP协议由实时传输协议RTP和实时传输控制协议RTCP两部分组成。
RTP负责实时性数据的传输,它工作于UDP和IP多点传送的顶层,用于处理IP网上的视频和音频流。
每个UDP 包均加上一个包含时间标志和符号化方式识别码后发送出去,接收端配以适当的缓冲区,它就可以利用时间标志和序号信息“复原再生”数据包、记录顺序、同步音频、视频和数据以及改善接收端连接重放效果。
RTCP监测数据传输并管理控制信息,它监视迟滞和带宽,并将其通知发送端。
一旦可用带宽变窄,RTCP 立刻将该信息通知发送端,发送端根据此信息,变更符号化方式识别码,继续进行多媒体通信。
RTP/RTCP充分考虑所给定的网络,实现传送质量与给定网络相适应的多媒体通信。
协议提供端到端的实时数据流传输业务,可以满足实时通信的基本要求,但协议本身并不提供对实时应用的服务质量标准,需要有下层的协议提供服务支持。
RTP/RTCP可以满足实时通信的基本要求,但如果要想保证实时应用的带宽,还需要利用RSVP协议。
RSVP装在端系统和路由器中,用以确保端对端的传输带宽。
它能够在数据网络上为实时性音频和视频业务实现带宽预留并设置队列管理方法,尽量减少实时通信中的时间延迟和延时抖动。
使用RTP/RTCP协议之前要对协议进行说明,以符合各种不同的要求,对RTP/RTCP的说明随应用程序而不同,但至少应包括以下两个文件:框架文件:定义净荷类型的代码,并将这些代码映射到净荷的格式之中;定义对RTP/RTCP的扩充或修改以满足特殊应用的需要。
即時傳輸協議RTP(Realtime Transport Protocol):是針對Internet上多媒體資料流程的一個傳輸協定, 由IETF(Internet工程任務組)作為RFC1889發佈。
RTP被定義為在一對一或一對多的傳輸情況下工作,其目的是提供時間資訊和實現流同步。
RTP的典型應用建立在UDP上,但也可以在TCP或ATM等其他協議之上工作。
RTP本身只保證即時資料的傳輸,並不能為按順序傳送資料包提供可靠的傳送機制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務。
即時傳輸控制協議RTCP(Realtime Transport Control Protocol):負責管理傳輸品質在當前應用進程之間交換控制資訊。
在RTP會話期間,各參與者週期性地傳送RTCP包,包中含有已發送的資料包的數量、丟失的資料包的數量等統計資料,因此,伺服器可以利用這些資訊動態地改變傳輸速率,甚至改變有效載荷類型。
RTP和RTCP配合使用,能以有效的回饋和最小的開銷使傳輸效率最佳化,故特別適合傳送網上的即時資料。
RTCP主要有4個功能:(1)用回饋資訊的方法來提供分配資料的傳送品質,這種回饋可以用來進行流量的擁塞控制,也可以用來監視網路和用來診斷網路中的問題;(2)為RTP源提供一個永久性的CNAME(規範性名字)的傳送層標誌,因為在發現衝突或者程式更新重啟時SSRC(同步源標識)會變,需要一個運作痕跡,在一組相關的會話中接收方也要用CNAME來從一個指定的與會者得到相聯繫的資料流程(如音頻和視頻);(3)根據與會者的數量來調整RTCP包的發送率;(4)傳送會話控制資訊,如可在用戶介面顯示與會者的標識,這是可選功能。
4.2 RTP/RTCP工作過程工作時,RTP協議從上層接收流媒體資訊碼流(如H.263),裝配成RTP資料包發送給下層,下層協定提供RTP和RTCP的分流。
如在UDP中,RTP使用一個偶數號埠,則相應的RTCP使用其後的奇數號埠。
图16-12 RTP是传输层上的协议从应用开发人员的角度来看,可把RTP执行程序看成是应用程序的一部分,因为开发人员必需把RTP集成到应用程序中。
在发送端,开发人员必需把执行RTP协议的程序写入到创建RTP信息包的应用程序中,然后应用程序把RTP信息包发送到UDP的套接接口(socket interface),如图16-13所示;同样,在接收端,RTP信息包通过UDP套接接口输入到应用程序,因此开发人员必需把执行RTP协议的程序写入到从RTP 信息包中抽出媒体数据的应用程序。
图16-13 RTP和UDP之间的接口现以用RTP传输声音为例来说明它的工作过程。
假设音源的声音是64 kb/s的PCM编码声音,并假设应用程序取20毫秒的编码数据为一个数据块(chunk),即在一个数据块中有160个字节的声音数据。
应用程序需要为这块声音数据添加RTP标题生成RTP信息包,这个标题包括声音数据的类型、顺序号和时间戳。
然后RTP信息包被送到UDP套接接口,在那里再被封装在UDP信息包中。
在接收端,应用程序从套接接口处接收RTP信息包,并从RTP信息包中抽出声音数据块,然后使用RTP信息包的标题域中的信息正确地译码和播放声音。
如果应用程序不使用专有的方案来提供有效载荷类型(payload type)、顺序号或者时间戳,而是使用标准的RTP协议,应用程序就更容易与其他的网络应用程序配合运行,这是大家都希望的事情。
例如,如果有两个不同的公司都在开发因特网电话软件,他们都把RTP合并到他们的产品中,这样就有希望:使用不同公司电话软件的用户之间能够进行通信。
这里需要强调的是,RTP本身不提供任何机制来确保把数据及时递送到接收端或者确保其他的服务质量,它也不担保在递送过程中不丢失信息包或者防止信息包的次序不被打乱。
的确,RTP的封装只是在系统端才能看到,中间的路由器并不区分那个IP数据报是运载RTP信息包的。
RTP允许给每个媒体源分配一个单独的RTP信息包流,例如,摄像机或者麦克风。
RTP与RTCP协议介绍转⾃:/113473/25481/本⽂主要介绍RTP与RTCP协议。
author: ZJ 06-11-17Blog:1.流媒体( Streaming Media)1.1流媒体概念流媒体技术是⽹络技术和多媒体技术发展到⼀定阶段的产物。
术语流媒体既可以指在⽹上传输连续时基媒体的流式技术,也可以指使⽤流式技术的连续时基媒体本⾝。
在⽹上传输⾳频、视频等多媒体信息⽬前主要有两种⽅式:下载和流式传输。
采⽤下载⽅式,⽤户需要先下载整个媒体⽂件,然后才能进⾏播放。
由于⽹络带宽的限制,下载常常要花很长时间,所以这种处理⽅式延迟很⼤。
⽽流媒体实现的关键技术是流式传输。
传输之前⾸先对多媒体进⾏预处理(降低质量和⾼效压缩) ,然后使⽤缓存系统来保证数据连续正确地进⾏传输。
使⽤流式传输⽅式,⽤户不必像采⽤下载⽅式那样要等到整个⽂件全部下载完毕,⽽是只需经过⼏秒到⼏⼗秒的启动延时即可在客户端进⾏播放和观看。
此时媒体⽂件的剩余部分将在后台继续下载。
与单纯的下载⽅式相⽐,这种对多媒体⽂件边下载边播放的流式传输⽅式不仅使启动延时⼤幅度地缩短,⽽且对系统缓存容量的需求也⼤⼤降低。
使⽤流式传输的另⼀个好处是使传输那些事先不知道或⽆法知道⼤⼩的媒体数据(如⽹上直播、视频会议等) 成为可能。
到⽬前为⽌,Internet 上使⽤较多的流式视频格式主要有以下三种:RealNetworks 公司的RealMedia ,Apple 公司的QuickTime 以及Microsoft 公司的Advanced Streaming Format (ASF) 。
1.2⽀持流媒体的协议多媒体应⽤的⼀个显著特点是数据量⼤,并且许多应⽤对实时性要求⽐较⾼。
传统的TCP 协议是⼀个⾯向连接的协议,它的重传机制和拥塞控制机制都是不适⽤于实时多媒体传输的。
RTP 是⼀个应⽤型的传输层协议,它并不提供任何传输可靠性的保证和流量的拥塞控制机制。
RTP 位于UDP(User Datagram Protocol) 之上。
RTP、RTCP协议学习总结RTP、RTCP与其他协议的关系:从上图中可以看出,RTP被划分在传输层,建立于UDP上。
一、RTP协议:RTP协议是实时传输协议,主要用于VOIP、视频等实时媒体传输的协议,为这些实时媒体数据提供端到端的传送服务。
但是RTP协议没有提供任何确保按时传送数据的机制,也没有提供任何质量保证的机制,因而要实现服务质量必须由下层网络来提供保证。
也就是说RTP协议只管传输,不管传输的视频或者语音质量是否良好也不管对端是否收到。
那么传输的视频质量和语音质量由谁来控制呢??这就要用到和RTP 协议关系非常密切的子协议,RTCP协议。
RTP数据报文每一个RTP数据报文都由头部和负载两个部分组成,其中头部前12个字节的含义是固定的,而负载则可以是音频或者视频数据。
RTP报头的报文格式各字段的含义如下:版本(V):2 个比特,表示RTP 的版本号。
填充(P):1 个比特,置“1”表示用户数据最后加有填充位,用户数据中最后一个字节是填充位计数,它表示一共加了多少个填充位。
在两种情况下可能需要填充,一是某些加密算法要求数据块大小固定;二是在一个低层协议数据包中装载多个RTP 分组。
扩展(X):1 个比特,置“1”表示RTP 报头后紧随一个扩展报头。
CSRC 计数(CC):4 个比特,表示CSRC 标识符的数量。
CSRC标识紧跟在RTP固定头部之后,用来表示RTP数据包的来源;RTP协议允许在同一个会话中存在多个数据源,它们可以通过RTP混合器合并为一个数据源。
标记(M):1 个比特,其具体解释由应用文档来定义。
例如,对于视频流,它表示一帧的结束,而对于音频,则表示一次谈话的开始。
载荷类别(PT):7 个比特,标明RTP负载的格式,包括所采用的编码算法、采样频率、承载通道等。
序列号(SN):2 个字节,每发送一个RTP 数据包该序号增加1。
用来为接收方提供探测数据丢失的方法,但是如何处理丢失的数据则是应用程序自己的事情,RTP协议本身并不负责数据的重传。
RTP与RTCP协议在实时音视频传输中的作用与优化策略实时音视频传输(Real-time Audio and Video Transport)是指通过网络传输实时音频和视频数据的过程。
在这个过程中,RTP(Real-time Transport Protocol)和RTCP(Real-time Transport Control Protocol)这两个协议起到了重要的作用。
本文将探讨RTP与RTCP协议在实时音视频传输中的作用,并提出一些优化策略。
一、RTP协议的作用与优化策略RTP协议是实时音视频传输的关键组件,它负责将音频和视频数据进行分组,并在传输过程中提供时序和同步的功能。
RTP协议的作用主要包括以下几个方面:1.数据分组:RTP将音频和视频数据按照一定的策略进行分组,每个数据包都包含了一个序列号和时间戳。
这些信息可以帮助接收方对数据进行重组和同步。
2.时序与同步:RTP协议通过序列号和时间戳等机制,确保接收方可以按照正确的顺序和时间播放音频和视频数据,从而保持音视频的同步性。
3.传输控制:RTP协议可以通过调整传输速率和丢包恢复等机制,控制音视频数据在网络上的传输质量。
这对于实时音视频传输来说非常关键,可以保证音视频的流畅性和稳定性。
为了优化RTP协议的性能和传输效果,可以采取以下策略:1.选择合适的编解码算法:不同的音频和视频编解码算法对传输带宽的要求不同。
选择适合网络条件的编解码算法可以降低传输延迟,提高数据传输效率。
2.优化数据分组策略:合理设置RTP数据包的大小和分组方式,可以降低网络传输的延迟和丢包率。
例如,将音频和视频数据进行合理的拆分和分组,避免大的数据包对网络传输造成的负担。
3.动态调整传输速率:根据网络带宽和质量的变化,采用自适应的传输速率控制策略。
例如,可以根据网络拥塞程度和接收端的缓冲状态来调整传输速率,以达到最优的传输效果。
二、RTCP协议的作用与优化策略RTCP协议是RTP协议的补充,主要用于实现音视频传输过程中的控制和反馈。
Southwest university of science and technology视频信息处置与传输实验报告报告名称RTP-RTCP协议专业班级电子1002班学生姓名学号指导教师实验四RTP-RTCP协议一、实验目的一、了解实时传输协议RTP和实时传输操纵协议RTCP的大体原理;二、学习利用RTP数据报发送实时数据,并接收重组;3、学会利用Wireshark进行抓包,并分析数据。
二、实验内容一、RTP协议报文段的说明语句RTP(Real-time Transport Protocol,实时传输协议)是一个网络传输协议。
RTP报文由两部份组成:报头和有效载荷。
RTP报头格式如图1所示,其中:图1 RTP报头格式V:RTP协议的版本号,占2位,当前协议版本号为2。
P:填充标志,占1位,假设是P=1,那么在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部份。
X:扩展标志,占1位,假设是X=1,那么在RTP报头后跟有一个扩展报头。
CC:CSRC计数器,占4位,指示CSRC 标识符的个数。
M: 标记,占1位,不同的有效载荷有不同的含义,关于视频,标记一帧的终止;关于音频,标记会话的开始。
PT: 有效载荷类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM音频、JPEM图像等。
序列号:占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。
接收者通过序列号来检测报文丢失情形,从头排序报文,恢复数据。
时戳(Timestamp):占32位,时戳反映了该RTP报文的第一个八位组的采样时刻。
接收者使历时戳来计算延迟和延迟抖动,并进行同步操纵。
同步信源(SSRC)标识符:占32位,用于标识同步信源。
该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。
特约信源(CSRC)标识符:每一个CSRC标识符占32位,能够有0~15个。
每一个CSRC标识了包括在该RTP报文有效载荷中的所有特约信源。
实时传输协议RTP(Real time Transport Protocol)被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。
RTP通常使用UDP来传送数据,也可以在TCP或ATM等其他协议上工作。
当应用程序开始一个RTP会话时将使用两个端口:一个给RTP,一个给RTCP。
RTP不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。
通常RTP算法并不作为一个独立的网络层来实现,而是应用程序代码的一部分。
实时传输控制协议RTCP(Realtime Transport Control Protocol)和RTP一起提供流量控制和拥塞控制服务。
在RTP会话期间,各参与者周期性地传送RTCP包。
RTCP包中含有已发送的数据包数量、丢失的数据包数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。
RTP和RTCP的配合使用能以有效的反馈和最小的开销使传输速率最佳化,因而特别适合传送网上的实时数据。
rtp(real-timetransportprotocol)是用于internet上针对多媒体数据流的一种传输协议。
rtp被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。
rtp通常使用udp来传送数据,但rtp也可以在tcp或atm等其他协议之上工作。
当应用程序开始一个rtp会话时将使用两个端口:一个给rtp,一个给rtcp.rtp本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠rtcp提供这些服务。
通常rtp算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。
实时传输控制协议rtcp.rtcp(real-timetransportcontrolprotocol)和rtp一起提供流量控制和拥塞控制服务。
在rtp会话期间,各参与者周期性地传送rtcp包。
RTP、RTCP、RTSP协议详解一、 RTP协议实时传输协议(RTP)为数据提供了具有实时特征的端对端传送服务,如在组播或单播网络服务下的交互式视频音频或模拟数据。
应用程序通常在 UDP 上运行RTP以便使用其多路结点和校验服务;这两种协议都提供了传输层协议的功能。
但是RTP可以与其它适合的底层网络或传输协议一起使用。
如果底层网络提供组播方式,那么RTP可以使用该组播表传输数据到多个目的地。
RTP本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于低层服务去实现这一过程。
RTP协议并不保证传送或防止无序传送,也不确定底层网络的可靠性。
RTP实行有序传送, RTP中的序列号允许接收方重组发送方的包序列,同时序列号也能用于决定适当的包位置,例如:在视频解码中,就不需要顺序解码。
RTP协议由两个紧密链接部分组成:RTP―传送具有实时属性的数据;RTP控制协议(RTCP)―监控服务质量并传送正在进行的会话参与者的相关信息。
RTCP 第二方面的功能对于“松散受控”会话是足够的,也就是说,在没有明确的成员控制和组织的情况下,它并不非得用来支持一个应用程序的所有控制通信请求。
协议结构1238916bitVPXCSRC CountMPayload TypeSequence numberTimestampSSRCCSRC (variable 0 –15 items 32bits each) V ―版本。
识别RTP版本。
P ―间隙(Padding)。
设置时,数据包包含一个或多个附加间隙位组,其中这部分不属于有效载荷。
X ―扩展位。
设置时,在固定头后面,根据指定格式设置一个扩展头。
CSRC Count ―包含 CSRC 标识符(在固定头后)的编号。
M ―标记。
标记由 Profile 文件定义。
允许重要事件如帧边界在数据包流中进行标记。
Payload Type ―识别RTP有效载荷的格式,并通过应用程序决定其解释。
几种常见音视频传输协议使用总结音视频传输协议是指用于传输音频和视频数据的通信协议,其主要功能是将音视频信号编码、压缩、分包并传输到网络中,然后在接收端将其解包、解码并还原成音视频信号。
目前比较常见的音视频传输协议包括RTP/RTCP、RTSP、SIP、H.323、WebRTC等。
下面将对这几种协议进行总结。
一、 RTP/RTCPRTP(Real-time Transport Protocol)和RTCP(Real-time Transport Control Protocol)是一对用于音视频传输的协议,是IETF制定的标准协议之一。
RTP主要负责传输音视频数据,而RTCP则是对RTP传输的控制协议,用于传输控制信息。
RTP/RTCP主要用于实时通信场景下,如视频会议、IP电话等。
RTP/RTCP协议优点是实时性好,支持多种编码算法。
缺点是协议复杂,需要采用其他协议结合使用,比如RTSP。
二、RTSPRTSP(Real-time Streaming Protocol)是一种实时流媒体协议,是由IETF标准化的。
RTSP协议本身不传输音视频数据,而是传输对音视频数据进行控制的命令和参数。
RTSP 主要用于流媒体服务中,如监控摄像头、直播等场景下。
RTSP 协议优点是控制协议比较简单,可扩展性好,能够支持多种流媒体格式。
缺点是实时性相比RTP较差,需要使用其他协议结合使用。
三、 SIPSIP(Session Initiation Protocol)是一种会话初始化协议,是由IETF标准化的。
SIP主要用于会话管理,如呼叫建立、振铃、通话呼叫、目的地传递等。
SIP通常与其他协议如RTP、RTCP一起使用。
SIP协议优点是扩展性好,能够支持多种呼叫场景。
缺点是需要与其他协议结合使用,复杂度较高。
四、 H.323H.323是ITU-T定义的多媒体通信协议,主要用于实现视频会议、IP电话等场景下的音视频传输。
网络协议知识:RTP协议和RTCP协议的联系与区别RTP协议和RTCP协议是网络传输中的两个独立的协议,用于实时传输音视频数据。
RTP协议的主要作用是传输音视频数据,而RTCP协议则负责传输音视频数据的质量和统计信息。
RTP协议是Real-time Transport Protocol的简称,是一种在网络上传输实时媒体数据的协议。
它的主要作用是将音频和视频数据打包成分组,按照网络传输的要求进行传输,确保数据能够及时地传到接收端。
RTP协议有两个主要的特点,一是它标记了媒体数据的时序和同步信息,以便在接收端对其进行正确的重构和处理;另一个特点是它支持多种类型的数据格式和编解码器。
与RTP协议相比,RTCP协议则是一种基于RTP协议的控制协议。
它主要用于向发送端和接收端提供音视频传输的统计和控制信息,以便更好地掌握音视频传输的质量和性能。
RTCP协议有三个主要的特点,一是它提供了控制信息,包括网络连接和质量,以及控制音视频带宽的分配;二是它提供了需要进行修正和校准的时序信息,保证多媒体数据的同步播出;三是RTCP协议还能支持多种类型的传输标志和质量报告。
RTP协议和RTCP协议之间有着密切的联系,是紧密结合在一起的。
RTP协议将音视频数据传输到接收端,而RTCP协议则获取该数据传输信息,可进行控制、标记、校准和统计等操作。
通过使用RTCP控制协议,实现视频质量的维护、协调和控制。
RTCP控制协议主要依靠传输过程中两个对等的手动识别目标进行维护。
每个发送者和接收者都可以通过RTCP控制协议对带宽进行监控、调控和管理,从而实现网络通信的可行性和性能。
虽然RTP协议和RTCP协议在音视频的传输和控制方面起到了重要的作用,但需要注意的是,它们并不是解决媒体流传输的唯一方法,同时也存在一些问题和困难。
例如,我们在使用RTP/RTCP协议进行多媒体传输时,可能会遇到数据带宽不足,网络拥堵,延迟过高等问题。
此时,我们可以通过适当的优化和调整,来降低RTP/RTCP协议带来的负面影响,提高传输的质量和性能。
信令与协议分册目录目录第2章RTP与RTCP协议...................................................................................................... 2-12.1 概述................................................................................................................................... 2-12.2 RTP/RTCP协议应用.......................................................................................................... 2-12.3 报文格式和含义................................................................................................................. 2-22.3.1 RTP报头的格式 ...................................................................................................... 2-22.3.2 RTCP包格式........................................................................................................... 2-32.3.3 RTCP的主要功能.................................................................................................... 2-32.3.4 RTCP发送间隔 ....................................................................................................... 2-4第2章 RTP与RTCP协议2.1 概述基于IP承载的语音业务流是在UDP上传输的,而UDP协议是用于专门传输数据流,设计时并没有考虑实时业务传输的特殊要求,如媒体流的同步等。
一. 概述实时传输协议(RTP,Real Time Transport Protocol)由RFC 1889定义,主要用于网络上各种实时应用(Real-time applications)。
现在实时应用非常热(图14-02-1)。
图14-02-1 网络实时应用例为什么不采用TCP?众所周知,Web网页传输是建立在HTTP协议的基础上的,但是HTTP有着自己的局限性:1.HTTP是无连接协议,限制了每次连接只处理一个请求,服务器处理完客户的请求,收到应答后,即断开连接,虽然这种方式可以节省时间,但却无法实现广播。
2.HTTP是无状态协议,所谓的无状态协议是指协议对于事件处理无记忆能力,这就意味着如果后续处理需要前面的信息,则必须重传,如果采用HTTP则必须重传,从而导致传输数据量增大,带宽浪费。
存在4个问题:o 不需要100% 的可靠性o 重发延迟o 窗口后退o N 参与者-> N*N 连接实时传输协议提供了支持这些要求的功能:·丢失,顺序混乱:序列号·丢失,不稳定:时间戳·数据源/有效载荷认定·速率控制: 服务质量反馈(QoS feedback)RTP用于一对多传输情况下,提供时间信息和实现媒体同步。
此外,实时传输控制协议(RTCP,Real Time Transport Control Protocol)与RTP一起提供流量控制和拥塞控制服务。
在RTP会话期间,各参与者周期性地传送RTCP包,RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此服务器可利用这些信息动态地改变传输速率,甚至改变有效载荷类型。
RTP和RTCP 配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合网上的实时数据。
RTP和其他熟悉的协议如HTTP、FTP等类似,但是根据实时流的特定要求作了剪裁。
和HTTP、FTP不同,RTP并不下载整个视频到客户计算机上,而是用固定的数据速率传输一个细的单向数据流,使其实时播放广播(在很短的初始化握手和数据缓冲之后)。
网络协议知识:RTP协议和RTCP协议的应用场景和优缺点RTP协议和RTCP协议是实时传输协议中的两个关键协议。
RTP全称为Real-time Transport Protocol(实时传输协议),是一个为互联网上数据传输提供实时传输服务的协议;RTCP全称为Real-time Transport Control Protocol(实时传输控制协议),是RTP协议的重要补充,用于在传输过程中监管传输的质量,并提供反馈信息,以便根据这些反馈信息进行控制和适应。
RTP和RTCP协议一起使用并提供了广泛的应用程序和系统的实时传输功能。
下面本文将详细介绍RTP 和RTCP的应用场景、优缺点及未来发展。
一、RTP协议的应用场景RTP主要应用于对实时性要求较高的音视频传输场景。
这些场景包括视频会议、互动课堂、监控录像、直播、视频通话、IP电话等,并且被广泛应用于各种应用领域,如医疗、教育、娱乐、通信等。
由于这些应用程序需要实时传输功能,因此RTP协议被广泛应用。
在RTP的应用场景中,主要包括以下几个方面:1.视频会议视频会议需要将来自不同位置的多个音视频流混合在一起,同时需要在传输过程中保证时间同步,确保会议的实效性。
RTP被用于为音频和视频会议提供端到端的传输服务。
2.监控录像监控录像是可以长时间记录视频,然后存放在本地或云端,用于安防系统下发自动报警或进行查询回放的场景。
RTP保证了在任何情况下都能够传输实时视频数据,以确保实时快速的响应。
3.直播对于直播应用场景,RTP协议可以提供实时的传输服务,支持高质量的音视频传输。
4.视频通话RTP可以为大多数的实时视频通话应用程序提供实时传输功能。
二、RTP协议的优缺点RTP协议在实时传输应用场景下存在如下优缺点1.优点:(1)高实时性:RTP协议能够运行在UDP协议之上,因此在传输数据的时候可以减少网络延迟和其他网络问题的影响,从而支持实时传输,有效提高了传输质量和传输速度。
RTPRTCP协议深度解析实时传输协议的特点与应用RTP/RTCP协议深度解析实时传输协议(RTP)以及其伴随的实时传输控制协议(RTCP)是用于在网络中传输实时音视频数据的重要协议。
本文将深入解析RTP/RTCP协议的特点和应用。
一、RTP协议的特点RTP协议是一种面向数据包的协议,它具有以下特点:1.1 建立在UDP协议之上RTP协议使用UDP协议作为传输层协议。
相比于TCP协议,UDP 协议在保证实时传输的同时,减少了数据交互的延迟,因此更适合实时音视频传输。
1.2 应用层协议RTP协议在OSI模型中位于应用层,并且通过RTP数据包封装音视频数据。
它不仅仅是一个传输协议,还提供了一系列的特性,如时间戳、序列号和负载类型等,以便在接收端正确地还原音视频数据。
1.3 支持多种编码格式RTP协议可以适应多种音视频编码格式,如G.711、H.264等。
它使用负载类型字段来标识不同的编码格式,以便在接收端正确解码数据。
1.4 支持传输控制RTP协议通过协商和传输控制协议(RTCP)实现了传输的质量控制。
RTCP会定期发送控制包,以便收集网络传输的相关信息,在需要时调整传输参数,如带宽、延迟和抖动等。
二、RTCP协议的特点RTCP协议是RTP协议的伴随协议,它具有以下特点:2.1 用于反馈和控制RTCP协议通过反馈报文,向发送端提供网络传输的相关信息。
接收端可以通过RTCP报文向发送端反馈接收数据的情况,如丢包率、延迟和抖动等。
发送端可以根据这些信息调整自己的传输策略。
2.2 建立及维护连接RTCP协议可以用于RTP会话的建立及维护。
在RTP会话开始前,RTCP可以协商传输参数及传输质量要求。
同时,RTCP也负责记录参与会话的成员信息,如IP地址、端口号和同步源等。
2.3 支持多播和单播RTCP协议既支持多播传输,也支持单播传输。
对于多播传输,RTCP能够协调各个接收端的状态信息,以便在多播组中实现有效的传输控制。
Southwest university of science and technology 视频信息处理与传输实验报告报告名称RTP-RTCP协议专业班级电子1002班学生姓名学号指导教师实验四RTP-RTCP协议一、实验目的1、了解实时传输协议RTP和实时传输控制协议RTCP的基本原理;2、学习使用RTP数据报发送实时数据,并接收重组;3、学会使用Wireshark进行抓包,并分析数据。
二、实验内容1、RTP协议报文段的说明语句RTP(Real-time Transport Protocol,实时传输协议)是一个网络传输协议。
RTP报文由两部分组成:报头和有效载荷。
RTP报头格式如图1所示,其中:图1 RTP报头格式V:RTP协议的版本号,占2位,当前协议版本号为2。
P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。
X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。
CC:CSRC计数器,占4位,指示CSRC 标识符的个数。
M: 标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。
PT: 有效载荷类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM 音频、JPEM图像等。
序列号:占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。
接收者通过序列号来检测报文丢失情况,重新排序报文,恢复数据。
时戳(Timestamp):占32位,时戳反映了该RTP报文的第一个八位组的采样时刻。
接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。
同步信源(SSRC)标识符:占32位,用于标识同步信源。
该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。
特约信源(CSRC)标识符:每个CSRC标识符占32位,可以有0~15个。
每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。
2、RTCP协议报文段的说明语句RTCP(RTP Control Protocol,控制协议)——监控服务质量并传送正在进行的会话参与者的相关信息。
RTCP包括五种数据包类型(RFC3550 Page69):表1 RTCP的五种分组类型第二部分是长度为20个字节的发送端信息,每个SR都含有这部分信息。
它对发送端传输的数据进行计数。
每个字段的含义如下:NTP时间标志:64位。
表示SR的发送时间。
它与从接收端返回的时间标志配合用来计算在发送端和接收端间的数据传输时间。
RTP时间标志:32位。
与NTP时间标志对应的时间值。
它用于同步与NTP 时间标志同步的数据源。
也可用于接收端估算RTP时钟频率。
发送端数据包计数:32位。
从开始传输到产生SR数据包这段时间内由发送端发送的RTP数据包。
发送端改变其SSRC标识符时重新设置该计数值。
第三部分是0个或多个RR数据块。
数据块的数量由接收最后一个报告以来该发送端所收听的其它数据源的数量确定。
每个RR数据块通过接收来自单同步源的RTP数据包传输统计信息。
由于冲突而使数据源改变其SSRC标识符时,接收端不改变其统计信息。
统计信息有:SSRC_n(数据源标识符):32位。
SSRC标识符,在RR数据块中与数据源有关的信息。
丢失率:8位。
发送前一个SR或RR数据包后来自数据源SSRC_ n的RTP三、实验过程1、完成RTP报文段的说明语句struct RTP_PDU {unsigned short Version:2; /* protocol version */unsigned short P:1; /* padding flag */unsigned short X:1; /* header extension flag */unsigned short CC:4; /* CSRC count */unsigned short M:1; /* marker bit */unsigned short PT:7; /* payload type */u_int16 SEQ; /* sequence number */u_int32 TS; /* timestamp */u_int32 SSRC; /* synchronization source */u_int32 CSRC[1]; /* optional CSRC list */}2、完成RTCP报文段的说明语句struct RTCP_PUD {unsigned short Version:2; /* protocol version */unsigned short P:1; /* padding flag */unsigned short Count:5; /* varies by packet type */unsigned short PT:8; /* RTCP packet type */u_int16 Length; /* pkt len in words, w/o this word */ }3、用Wireshark软件抓取视频和音频网络数据报,并给出RTP和RTCP数据报的分析结果。
在用Wireshark进行抓包实验中,首先是对其进行软件设置。
我在实验过程中的设置如图2。
图2 软件设置在Capture Options的设置中,将Interface设置为图上所示。
该字段指定我想用于进行捕捉的接口。
一次只能使用一个接口。
我的IP address是:192.168.0.100。
Capture Filter是捕捉过滤器,我只是选择抓取UDP的包。
进行简单的设置之后,点击开始进行抓包,等待几秒后,停止抓包,得到如图3所示。
图3 抓包四、数据结果分析整个窗口被分成三个部分:最上面为数据包列表,用来显示截获的每个数据包的总结性信息;中间为协议树,用来显示选定的数据包所属的协议信息;最下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。
使用Wireshark可以很方便地对截获的数据包进行分析,包括该数据包的源地址、目的地址、所属协议等。
选取第一个包进行分析:帧号时间源地址目的地址高层协议包内信息概况No. Time Source Destination Protocol Info1 0.000000 218.0.156.24 192.168.0.100 UDP 62 Source port: 31843 Destination port:64512 源端口目的端口以下为物理层的数据帧概况,如图4所示:图4 物理层的数据帧Frame 1: (62 bytes on wire, 62 bytes captured) 1号帧,线路62字节,实际捕获62字节Arrival Time: NOV 11, 2013 09:49:10.062652000 捕获日期和时间Epoch Time: 1384134550.062652000 seconds 捕获时间[Time delta from previous captured frame:0.00000 seconds]此包与前1个捕获帧的时间间隔[Time delta from previous displayed frame:0.00000 seconds] 此包与前1个显示帧的时间间隔[Time since reference or first frame: 0.00 seconds]此包与第1帧的间隔时间Frame Number: 1 帧序号Packet Length: 62 bytes 帧长度Capture Length: 62 bytes 捕获长度[Frame is marked: False] 此帧是否做了标记:否[Protocols in frame: eth:ip:udp:data] 帧内封装的协议层次结构以下为数据链路层以太网帧头部信息,如图5所示:图5 数据链路层Ethernet II, Src: Tp-LinKT_6d:05:86 (00:21:27:6d: 05:86), Dst: ControlR _00: d2:16 (00:e0:80:00:d2:16)以太网协议版本II,源地址:厂名_序号(网卡地址),目的:厂名_序号(网卡地址)Destination: ControlR_00:d2:16(00:e0:80:00:d2:16)目的:厂名_序号(网卡地址)Source: Tp-LinKT_6d:05:86 (00:21:27:6d:05:86) 源:厂名_序号(网卡地址)Type: IP (0x0800) 帧内封装的上层协议类型为IP(十六进制码0800)以下为互联网层IP包头部信息,如图6所示:图6 互联网层IP包Internet Protocol, Src: 218.30.118.189 (192.168.0.100) , Dst: 192.168.0.100(192.168.0.100) 互联网协议,源IP地址,目的IP地址Version: 4 互联网协议IPv4Header length: 20 bytes IP包头部长度Differentiated Services Field:0x00(DSCP 0x00:Default;ECN:0x00)差分服务字段Total Length: 48 IP包的总长度Identification:0xb7cd (47051) 标志字段Flags:0x00 记字段Fragment offset: 0 分段偏移量(将一个IP包分段后传输时,本段的标识)Time to live: 52 生存期TTLProtocol: UDP (17) 此包内封装的上层协议为UDPHeader checksum:0x97cc[correct] 头部数据的校验[正确的] Source: 218.30.118.189 (192.168.0.100) 源IP地址Destination: 192.168.0.100(192.168.0.100) 目的IP地址以下为传输层TCP数据段头部信息,如图7所示:图7User Datagram Protocol, Src Port: 31843 (31843), Dst Port:64512(64512) 传输控制协议UDP的内容Source port: 31843 (31843) 源端口名称(端口号)Destination port: 64512(64512) 目的端口名称(端口号)Length: 28 长度Checksum: 0x0000 UDP数据段的校验和(由于选取的第一个目的地址是本机)Data: (20 bytes) 可选项五、实验中遇到的问题本次实验的主要问题在于文献的阅读和软件的使用,由于知识面的限制,对RTP和RTCP协议的了解和认识比较浅显,对于文献的阅读能力还需进一步提高;另外对于软件的使用和数据的分析,还是需要熟读协议的手册,对照抓包软件抓到数据进行分析和理解。