目前还没有具体的 RTSP 连接概念,取而代之的是由服务器维持携带标识符的会话。RTSP 会话没有绑定到传输层连接,如 TCP。在 RTSP 会话期间,RTSP 用户可打开或关闭多个对服务器的可靠传输连接以发出 RTSP 请求。此外,可使用无连接传输协议,如 UDP。
RTSP 流控制的流可能用到 RTP,但 RTSP 操作并不依赖用于携带连续媒体的传输机制。实时流协议在语法和操作上与 HTTP/1.1 类似,因此 HTTP 的扩展机制大都可加入 RTSP。尽管如此,在很多重要方面 RTSP 仍不同于 HTTP:
- RTSP 引入了大量新方法并具有一个不同的协议标识符:
- 在大多数情况下,RTSP 服务器需要维持缺省状态,与的无状态相对;
- RTSP 中媒体用户和服务器都可以发出请求;
- 在多数情况下,由不同的协议传送数据;
- RTSP 被定义来使用 ISO 10646(UTF-8)而并非 ISO 8859-1,与当前的国际标准 HTML 相一致;
- URI 请求一直包含完全的 URI。由于与历史错误的相互兼容,HTTP/1.1 只在请求过程中传送完全的路径并将主机名置于单个的头字段。
该协议支持如下操作:
- 从媒体服务器上检索媒体:用户可通过 HTTP 或其它方法提交一个演示描述;
- 媒体服务器邀请进入会议:媒体服务器可被邀请参加正进行的会议,或回放媒体,或记录其中一部分,或全部;
- 将媒体加到现成讲座中:如服务器告诉用户可获得附加媒体内容,对现场讲座显得尤其有用。
协议结构 |
RTSP 是一种文本协议,UTF-8 编码采用 ISO 10646 字符设置。通过 CRLF 终止线路,但接收端需要做好转换 CR 和 LF 的准备。关于头字段概述如下: |
Header |
Type |
Support |
Methods |
Accept |
R |
opt. |
entity |
Accept-Encoding |
R |
opt. |
entity |
Accept-Language |
R |
opt. |
all |
Allow |
R |
opt. |
all |
Authorization |
R |
opt. |
all |
Bandwidth |
R |
opt. |
all |
Blocksize |
R |
opt. |
All but OPTIONS, TEARDOWN |
Cache-Control |
G |
opt. |
SETUP |
Conference |
R |
opt. |
SETUP |
Connection |
G |
req. |
all |
Content-Base |
E |
opt. |
entity |
Content-Encoding |
E |
req. |
SET_PARAMETER |
Content-Encoding |
E |
req. |
DESCRIBE, ANNOUNCE |
Content-Language |
E |
req. |
DESCRIBE, ANNOUNCE |
Content-Length |
E |
req. |
SET_PARAMETER, ANNOUNCE |
Content-Length |
E |
req. |
entity |
Content-Location |
E |
opt. |
entity |
Content-Type |
E |
req. |
SET_PARAMETER, ANNOUNCE |
Content-Type |
R |
req. |
entity |
CSeq |
G |
req. |
all |
Date |
G |
opt. |
all |
Expires |
E |
opt. |
DESCRIBE, ANNOUNCE |
From |
R |
opt. |
all |
If-Modified-Since |
R |
opt. |
DESCRIBE, SETUP |
Last-Modified |
E |
opt. |
entity |
Proxy-Authenticate |
|
|
|
Proxy-Require |
R |
req. |
all |
Public |
R |
opt. |
all |
Range |
R |
opt. |
PLAY, PAUSE, RECORD |
Range |
R |
opt. |
PLAY, PAUSE, RECORD |
Referer |
R |
opt. |
all |
Require |
R |
req. |
all |
Retry-After |
R |
opt. |
all |
RTP-Info |
R |
req. |
PLAY |
Scale |
Rr |
opt. |
PLAY, RECORD |
Session |
Rr |
req. |
All but SETUP, OPTIONS |
Server |
R |
opt. |
all |
Speed |
Rr |
opt. |
PLAY |
Transport |
Rr |
req. |
SETUP |
Unsupported |
R |
req. |
all |
User-Agent |
R |
opt. |
all |
Via |
G |
opt. |
all |
WWW-Authenticate |
R |
opt. |
all |
Type "g" 表示请求和响应中的通用请求头;Type "R" 表示请求头;Type "r" 表示响应头;Type "e" 表示实体头字段。注有"support"标签的"req."必须由接收者以特殊的方法实现;而"opt."的实现具有多个选择。注意,不是所有"req."字段在该类型的每个请求中都会被发送。"req."只表示客户机(支持响应头)和服务器(支持请求头)必须执行该字段。最后一栏列出了关于头字段产生作用的方法;其中"entity"针对于返回一个信息主体的所有方法。 |
相关协议 | UDP、TCP、HTTP、S-HTTP、RTP |
组织来源 | RTSP 由 IETF(www.ietf.org)定义在 RFC 2326中。 |
相关链接 | http://www.javvin.com/protocol/rfc2326.pdf: Real Time Streaming Protocol |