live555抓包实例

相对于看RTSP协议,直接抓包分析会对该协议有一个简单的认知。本文在Windows下使用Wireshark抓包,live555服务器使用前些日子搞的工程。

一、RTSP包

RTSP包基于TCP传输。下面按照使用live555的h264测试工程,使用单播方式,按顺序列出RTSP包的格式。先打开Wireshark工具进行抓包,然后用vlc连接,这样才会出现rtsp包。播放地址为:

1、OPTION

客户端(vlc)发送OPTION请求:
Request: OPTIONS rtsp://192.168.18.18:8554/h264ESVideo RTSP/1.0\r\n
CSeq: 2\r\n
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)\r\n
\r\n

服务器回应包:
Response: RTSP/1.0 200 OK\r\n
CSeq: 2\r\n
Date: Sun, Jan 03 2016 11:57:35 GMT\r\n
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER\r\n
\r\n

发送option获取服务器支持的方法有哪些。

2、DESCRIBE

客户端发送DESCRIBE,请求RTSP服务器描述自身有哪些资源,对应的抓包结果:
Request: DESCRIBE rtsp://192.168.18.18:8554/h264ESVideo RTSP/1.0\r\n
CSeq: 3\r\n
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)\r\n
Accept: application/sdp\r\n
\r\n
服务器回应包:
Response: RTSP/1.0 200 OK\r\n
CSeq: 3\r\n
Date: Sun, Jan 03 2016 11:57:35 GMT\r\n
Content-Base: rtsp://192.168.18.18:8554/h264ESVideo/\r\n
Content-type: application/sdp
Content-length: 515
\r\n
回应同时有SDP(会话描述协议),SDP内容较多较复杂,不在本文详述。抓包结果如下图所示:


3、SETUP

SETUP命令用于确定转输机制,建立RTSP会话。客户端发的包如下:

Request: SETUP rtsp://192.168.18.18:8554/h264ESVideo/track1 RTSP/1.0\r\n
CSeq: 4\r\n
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)\r\n
Transport: RTP/AVP/TCP;unicast;client_port=64328-64329
\r\n

服务器回应:
Response: RTSP/1.0 200 OK\r\n
CSeq: 4\r\n
Date: Sun, Jan 03 2016 11:57:35 GMT\r\n
Transport: RTP/AVP/TCP;unicast;destination=192.168.18.1;source=192.168.18.18;client_port=64328-64329;server_port=6970-6971
Session: 735B75BD;timeout=65
\r\n
Transport的值表示传输协议,如为“Transport: RTP/AVP/TCP”表示RTP使用TCP来传输。如果是 “RTP/AVP/UDP”则表示使用UDP传输。后面接着的值表示单播(unicast)、多播(multicast)。以及端口号范围。回应包除了上述内容,还有IP地址。

4、PLAY

PLAY即开始播放视频,客户端发包:

Request: PLAY rtsp://192.168.18.18:8554/h264ESVideo/ RTSP/1.0\r\n
CSeq: 5\r\n
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)\r\n
Session: 735B75BD
Range: npt=0.000-\r\n
\r\n

服务器回应:
Response: RTSP/1.0 200 OK\r\n
CSeq: 5\r\n
Date: Sun, Jan 03 2016 11:57:35 GMT\r\n
Range: npt=0.000-\r\n
Session: 735B75BD
RTP-Info: url=rtsp://192.168.18.18:8554/h264ESVideo/track1;seq=33054;rtptime=859736117\r\n
\r\n

5、GET_PARAMETER

获取参数命令,客户端发包:

Request: GET_PARAMETER rtsp://192.168.18.18:8554/h264ESVideo/ RTSP/1.0\r\n
CSeq: 6\r\n
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)\r\n
Session: 735B75BD
\r\n

服务器回应:
Response: RTSP/1.0 200 OK\r\n
CSeq: 6\r\n
Date: Sun, Jan 03 2016 11:57:35 GMT\r\n
Session: 735B75BD
Content-length: 10
\r\n

6、TEARDOWN 

关闭播放,VLC发TEARDOWN命令:
Request: TEARDOWN rtsp://192.168.18.18:8554/h264ESVideo/ RTSP/1.0\r\n
CSeq: 7\r\n
User-Agent: LibVLC/2.1.3 (LIVE555 Streaming Media v2014.01.21)\r\n
Session: 735B75BD
\r\n

服务器回应:
Response: RTSP/1.0 200 OK\r\n
CSeq: 7\r\n
Date: Sun, Jan 03 2016 11:57:38 GMT\r\n
\r\n

RTSP还有很多其它的命令,可以参考其它资料,本文不涉及。

二、RTP包

RTP包基于UDP或TCP传输。VLC发PLAY命令就会播放视频,接着就是连续不断的RTP包。下图是一个RTP协议截图:

三、RTCP包

RTP包基于UDP传输。会话参与者会定期发送RTCP包。RTCP包有不同的类型:


Goodbyte包


李迟 2016.1.3 晚

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值