RTSP协议解析-概述

协议简介

RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议。RTSP对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,数据的传输通过rtp协议。RTSP的作用相当于流媒体服务器的远程控制。服务器端可以自行选择使用TCP或UDP来传送串流内容该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。

RTSP协议解析-概述_第1张图片

RTSP使用场景安防监控摄像头。在监控领域中RTSP使用比较广泛,监控摄像头相当于一个RTSP服务器,App是一个RTSP客户端,这样我们可以通过手机实时查看摄像头信息。同时还可以通过RTSP协议实现暂停、录制功能。

客户端-服务端协议交互

RTSP协议解析-概述_第2张图片

上图描述了客户端-服务端RTSP交互中必须的流程,还有些可选的方法像PAUSE、RECORD、REDIRECT、SET_PARAMETER等方法也可以在我们需要的时候调用。

客户端-服务端交互抓包

rtsp协议交互抓包图:
RTSP协议解析-概述_第3张图片

rtp抓包图:
RTSP协议解析-概述_第4张图片

上面介绍了rtsp 客户端-服务端交互的过程及抓包分析。这里的抓包软件使用的是WireShark; 像我们平常使用更多的是Charles,它在抓取Http、Https协议挺不错的,但Charles在抓取流媒体协议RTMP、RTSP、RTP等的时候就不是很方便了。
了解一个协议,核心就是掌握其消息格式以及协议交互流程。上面介绍了RTSP协议的交互流程,下面重点分析下每一步的消息格式。

RTSP协议格式

RTSP中所有的操作都是通过服务器和客户端的消息应答机制完成的,其中消息包括请求和应答两种,RTSP是对称的协议,客户机和服务器都可以发送和回应请求。RTSP是一个基于文本的协议,它使用UTF -8编码(RFC2279)和ISO10646字符序列,采用RFC882定义的通用消息格式,每个语句行由CRLF结束。RTSP的消息包括请求和应答两类。

请求消息

RTSP协议解析-概述_第5张图片

消息说明:请求消息包括请求行、请求头、请求体;与Http的消息格式类似;RTSP的请求体部分很少使用,这里不再进行讲解,后面我们抓包分析的时候也会看到请求体基本都是无数据的。
方法:表示RTSP的请求方法OPIONS、DESCRIBE、SETUP、PLAY、TEARDOWN等。
URL:表示接收方地址。例如:rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov
版本:RTSP的版本号,一般为 RTSP/1.0
CR:表示回车
LF:表示换行
请求头:以key:value 的形式封装请求头数据;
我们通过ffplay播放 rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.m,wireshark 抓包一个请求消息:

这里就简单分析下文本部分,16进制数据等后面再详细分析。
消息行:

  1. 方法:OPTIONS
  2. URL:rtsp://wowzaec2demo.streamlock.net:554/vod/mp4:BigBuckBunny_115k.mov
  3. 版本:RTSP/1.0
    消息头:
    CSeq: 表示序列号,由于OPTIONS方法是RTSP请求的第一个方法,所以序列号为1;
    user-Agent: 表示代理;

回应消息

回应消息的格式如下图所示:
RTSP协议解析-概述_第6张图片

消息说明:回应消息也是包括回应行、回应头、回应体;与Http的回应消息格式也是类似;RTSP的回应体部分很少使用,这里不再进行讲解,后面我们抓包分析的时候也会看到回应体基本都是无数据的。
版本:RTSP的版本号,一般为 RTSP/1.0
状态码:表示请求状态,同http的返回状态,如200,表示OK。
状态码由三位数组成,表示方法执行的结果,定义如下:

  1. 1XX:保留,将来使用;
  2. 2XX:成功,操作被接收、理解、接受(received,understand,accepted);
  3. 3XX:重定向,要完成操作必须进行进一步操作;
  4. 4XX:客户端出错,请求有语法错误或无法实现;
  5. 5XX:服务器出错,服务器无法实现合法的请求。
    短语:就是状态码的解释;
    回应头:以key:value 的形式封装回应头数据;
    wireshark 抓包一个OPTIONS回应消息:
    RTSP协议解析-概述_第7张图片

OPTIONS回应消息参考上面的介绍自行分析。

总结
文章主要是介绍了RTSP消息格式以及协议交互流程,并通过抓包的方式分析RTSP具体的交互过程及交互协议的分析。后面有时间再具体分析每一个具体RTSP消息协议、SDP、RTP、RTCP及场景实践。

你可能感兴趣的:(多媒体协议,udp,tcp/ip,http)