Network

2018-03-27 RTSP详解

2018-03-27  本文已影响0人  HaloMartin

在开发者交流或者面试中,经常会涉及到RTSP、RTP、RTCP、TCP、UDP等一些概念,这些虽然属于计算机网络中的基本概念,但是更多的人知道的其实就是TCP和UDP,对RTP、RTCP和RTSP,反而会陌生。

在OSI(开放系统互连)七层模型中,RTP/RTCP,TCP,UDP同属传输层,而RTSP则应属于应用层,这样就可以想到,RTSP是使用传输层协议实现的,而RTP较为特殊,可以看作传输层的字层,可以基于TCP也可以基于UDP实现,所以有时候也会被理解为应用层的协议,为区别于RTSP协议,我比较认同把它定义为传输层协议。


Figure-1 RTSP和RTP/RTCP应用图解
Figure-2 RTP/RTCP与其他协议关系

RTP

Figure-3 RTP数据报格式

以下数据报字段说明:

以下图片中为RTP基于TCP的传输实例


Figure-4 RTP基于TCP的实例(1)
Figure-4 RTP基于TCP的实例(2)

RTCP

RTCP协议的功能是通过不同的RTCP数据报来实现的,如图5:


Figure-5 RTCP协议数据类型

主要有如下几种类型:

不同类型对应不同的数据报格式,因为不是很了解,所以不展开,感兴趣的话可以参考文末链接

RTSP

RTSP,是为有效地在IP网络上传输流媒体数据而提出的应用层协议。RTSP提供一种可扩展的框架,能够提供可控制的,按需传输的实时数据,比如音频和视频文件。源数据可以包括现场数据的反馈和存储的文件。RTSP对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数 据,RTSP的作用相当于流媒体服务器的远程控制。传输数据可以通过传输层的TCP/UDP协议,RTSP也提供了基于RTP传输机制的一些有效的方法。
RTSP通常工作于可靠的传输协议TCP上,用于发起/结束流媒体传输,而RTP一般工作于UDP上,利用的是UDP低延时的特点,UDP不是可靠传输,可以使用RTCP来实时监控数据传输和服务质量。

RTSP消息格式:

RTSP的消息有两大类,一是请求消息(request),一是回应消息(response),两种消息的格式不同。

以下是抓包实例,返回一个错误码401,Unauthorized(未授权),因为在发送DESCRIBE消息时,没有携带用户名密码


Figure-7 消息方法DESCRIBE消息回应实例

RTSP客户端与服务端交互过程可以参考雷大神的博文,RTSP协议学习笔记

RTSP(Real Time Streaming Protocol,即实时码流协议)
RTP(Real-time Transport Protocol,即实时传输协议)
RTCP(Real-time Transport Control Protocol,即实时传输控制协议),RTP的配套协议,服务于RTP

1.RTCP数据报
2.Wireshark 抓包分析 RTSP/RTP/RTCP 基本工作过程
3.RTP基于UDP和TCP分别实现的解析
4.流媒体协议RTSP、HTTP、HTTPS、SDP四种区别解析
5.RTSP协议学习笔记

上一篇 下一篇

猜你喜欢

热点阅读