目录
1,rtsp是什么意思
rtsp是实时流传输协议(Real Time Streaming Protocol,RTSP),是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。 RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。HTTP与RTSP相比,HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。RTSP是用来控制声音或影像的多媒体串流协议。 并允许同时多个串流需求控制,传输时所用的网络通讯协定并不在其定义的范围内,服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。 而前面提到的允许同时多个串流需求控制(Multicast),除了可以降低服务器端的网络用量,更进而支持多方视讯会议(Video Conference)。因为与HTTP1.1的运作方式相似,所以代理服务器〈Proxy〉的快取功能〈Cache〉也同样适用于RTSP,并因RTSP具有重新导向功能,可视实际负载情况来转换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。
2,rtp和rtcp协议详解
RTP被定义为传输音频、视频、模拟数据等实时数据的传输协议,与传统的注重的高可靠的数据传输的传输层协议相比,它更加侧重的数据传输的实时性,此协议提供的服务包括数据顺序号、时间标记、传输控制等。
RTP一般与传输控制协议RTCP一块工作,RTP只负责实时数据的传输,RTCP负责对RTP的通讯和会话进行带外管理(如流量控制、拥塞控制、会话源管理等)。
RTP使用一个偶数端口号,而相应RTCP流使用下一个(奇数,递增)端口号。
先来看一下rtp和rtcp网络结构图:
RTP的数据包由RTP Header + RTP Playload组成,其中RTP固定头如下图所示,字段如下:
再看一下RTP完整的报文格式:
再来看看RTCP协议,RTCP协议将控制包周期发送给所有连接者,主要功能如下:
RTCP协议包括五种类型,这里只讨论SR和RR包。
SR包(SenderReport):发送者报告,当前活动发送者发送、接收统计;所谓发送端是指发出RTP数据报的应用程序或者终端,发送端同时也可以是接收端。由三部分组成,也可能还有第四个特定设置扩展部分。
第一部分为头:8个字节,如下:
第二部分为发送者信息:20个字节,如下:
第三部分包含接收报告快,大小不固定。每个接收报告块传送单个同步源接收RTP包的统计。发生冲突,当源改变SSRC标识时,接收者并不继续统计。这些统计包括:
RR包(ReceiverReport):接收者报告,非活动发送者接收统计,仅作为接收者(只接收rtp包)发送出去的包;所谓接收者是指仅接收但不发送RTP数据报的应用程序或者终端。包类型包含常数201,并删除发送者信息的20个字节。
各个字段解释如下:
最后通过LSR,DLSR可以计算RTT:
3,RTP的介绍
三角科技园(Research Triangle Park简写RTP)1959年创办的美国三角园位于美国北卡罗来纳州三所名校之间,是美国发展历史最久,规模最大,吸引国内外创新和研发机构最多、在世界科技园区领域享有很高声誉的科技园。