RTSP协议分析(1)

RTSP协议的Proposed Standard在RFC 2326中定义, 是一个被广泛支持的处理流媒体传输的。目前real , quicktime的流媒体解决方案并都支持rtsp。

个人觉得,RTSP 在设计的时候参考了HTTP的内容, RTSP同其下的RTP/RTCP的关系类似于HTTP同TCP的关系。但是仍然有许多差异。

RTSP是一个持久的连接,即在整个流媒体点播和回放过程中,Client同Server一直保持着连接,因此,无论Client和Server都可以是有状态的;而HTTP则是无状态,HTTP的状态信息需要由其他辅助信息,如Cookie等来实现。

RTSP并不使用RTP/RTCP,而是操纵他们,本身仍然使用TCP协议。而HTTP则使用TCP传输。

可以认为在整个媒体点播和回放过程是一个Session,Session体现了一个状态机,Client和Server各有一个状态机

Client之状态机如下,其接收的事件源自用户输入

                                        EVENT                                          TARGET

   Init                                SETUP                                         Ready
                                         TEARDOWN                               Init
   Ready                          PLAY                                             Playing
                                         RECORD                                     Recording
                                         TEARDOWN                                Init
                                         SETUP                                          Ready
   Playing                        PAUSE                                           Ready
                                        TEARDOWN                                 Init
                                         PLAY                                              Playing
                                         SETUP                                          Playing 
   Recording                   PAUSE                                          Ready
                                        TEARDOWN                                  Init
                                         RECORD                                      Recording
                                         SETUP                                           Recording 
Serve的状态机同样包含以上4个状态,状态转换规则也相同,但是其对象和语义有差别

由于借鉴HTTP , RTSP的协议文本格式同HTTP相似,  准确的说应该是使用了rfc822.  每行文本由CRLF隔开.

第一行是Request/ Response Line. Request Line同样是由 组成. Response Line 则是 .  Request中Method表示着请求的动作. 主要有SETUP, PLAY, PAUSE, TEARDOWN等, Server当收到来自Client的请求是可以根据提供的方法名做动作. 有的动作对Server/Client的状态有影响, 有的则没有. 关于每个方法的语义描述构成了RTSP协议的主要内容,将在第二部分详述。

第一行以下的部分是Entity(RFC822中定义), 包括Header和Body部分.  同HTTP中一样,这里就不重复了.

  

      

你可能感兴趣的:(泛技术,server,session,tcp,header)