CSeq: 954
Session: 12345678
Conference: 128.16.64.19/32492374
10.12 Embedded (Interleaved) Binary Data
可能某些防火墙设计和环境会强制服务器交叉RTSP方法和媒体流数据。这种交叉增加了客户端和服务器操作的复杂性,带来了额外的开销,因此通常情况下应该避免;除非必须交叉。只有RTSP在TCP上运载时,交叉的二进制数据才能使用。
媒体流数据,如RTP包,被封装成下列形式:ASCII的美元符(十进制数24),一个字节的通道标志符(channel identifier),被封装的二进制数据的长度,以网络字节顺序编码的2字节整数。紧接着的是上层的协议头。每个$块都正确地包含了一个上层协议数据 单元,比如一个RTP包。
通道标志符使用交叉参数定义在传输头。
当使用实时传输协议传输时,RTP和RTCP消息也会在TCP连接上相互交叉。默认情况下,RTCP包会在第一个可用的通道上发送,高于RTP通道。而客户端可能在另一个通道显式地请求RTCP包。在传输头的交叉参数中指定两个通道可解决此问题。
C->S: SETUP rtsp://foo.com/bar.file RTSP/1.0
CSeq: 2
Transport: RTP/P/TCP;interleaved=0-1
S->C: RTSP/1.0 200 OK
CSeq: 2
Date: 05 Jun 1997 18:57:18 GMT
Transport: RTP/P/TCP;interleaved=0-1
Session: 12345678
C->S: PLAY rtsp://foo.com/bar.file RTSP/1.0
CSeq: 3
Session: 12345678
S->C: RTSP/1.0 200 OK
CSeq: 3
Session: 12345678
Date: 05 Jun 1997 18:59:15 GMT
RTP-Info: url=rtsp://foo.com/bar.file;
seq=232433;rtptime=972948234
S->C: $/000{2 byte length}{"length" bytes data, w/RTP header}
S->C: $/000{2 byte length}{"length" bytes data, w/RTP header}
S->C: $/001{2 byte length}{"length" bytes RTCP packe
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-47670-24.html
先进些
那我应该死了很久了
时刻准备着