RTSP/RTP/RTCP协议流程及分析

RTSP(实时流协议)

RTSP中使用会话概念代替连接,由于它本身不与传输层绑定,因此RTSP会话在传输层支持TCP与UDP协议发送请求。RTSP客户机和服务器都可以发出请求,本身并不携带传输的媒体数据,而是控制RTP协议进行媒体数据传输。由于RTSP控制通过单独协议发送流,与控制通道无关,因此RTSP会话状态标记了服务器流资源的分配情况,如果对数据进行提取数据,需要同时进行流媒体数据传输协议(RTP协议)的解析。

一、RTSP消息

RTSP基于文本协议,行以CRLF中断。消息类型包含请求(Request)和响应(Response)两种消息格式。两种消息都可能包括一个起始行,一个或多个标题域(headers),一个空行(用来表示标题域结束)和消息实体(message-body,可为空)

·1.1请求行格式

请求行格式为: 请求方法 SP 请求URI SP RTSP版本 CRLF

RTSP请求方法如下:

method

direction

object

requirement

DESCRIBE

C->S

P,S

recommended

ANNOUNCE

C->S, S->C

P,S

optional

GET_PARAMETER

C->S, S->C

P,S

optional

OPTIONS

C->S, S->C

P,S

required(S->C:optional)

PAUSE

C->S

P,S

recommended

PLAY

C->S

P,S

required

RECORD

C->S

P,S

optional

REDIRECT

S->C

P,S

optional

SETUP

C->S

S

required

SET_PARAMETER

C->S,S->C

P,S

optional

TEARDOWN

C->S

P,S

required

 

·1.2 状态行格式

状态行格式为: 协议版本 SP 状态码 SP 响应词语文本 CRLF

状态码格式为三位数字,形式如:1XX,2XX等

·1.3 消息实体

实体包含实体头和实体主体。所有HEAD请求方法的响应都不含实体主体。

·1.4 请求、响应、实体头域(标题域)

下表中列出了RTSP中使用到的头域,类型"g"表示通用头,类型"R"表示请求头,类型"r"表示回复头,类型"e"表示实体头。标记为"req."的头说明是必需的(required),标记为"opt."表示可选的(optional)。"entity"表示所有方法应当含有消息主体。

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

3

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.

entitiy

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

 

下面对常见的部分头域进行描述:

·1.4.1  Accept头域(请求头、可选、含实体可用的头域)

Accept请求头域可被用于指定回复中可被接受的呈现描述内容类型

·1.4.2  Allow头域(响应头、可选、所有可用的头域)

Allow回复头域中列出了请求URI中指定资源支持的所有方法,其目的是告知接收者资源相关的有效方法。Allow头域必须出现在

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值