手撕RTSP协议系列(9)——TEARDOWN

天大地大妈咪最大 提交于 2020-10-23 02:58:44

点击上方「蓝字」关注我们



上一篇我们讲了RTSP PAUSE消息,本篇我们来看下RTSP TEARDOWN消息!




TEARDOWN作用 




TEARDOWN是拆卸的意思,对于RTSP而言,就是结束流传输,同时释放与之相关的资源,TEARDWON之后,整个RTSP连接也就结束了!好了,接下来我们来仔细看一下:




TEARDOWN格式




首先还是看一下TEARDOWN请求的消息格式:
如图中, TEARDOWN 消息中,指定了 URI ,不用多说了; RTSP版本号 也是我们的老朋友了; CSeq 表示序列号; Authorization 表示认证信息; User-Agent 是用户代理; Session 表示会话ID(SETUP消息请求之后RTSP sever返回的会话id)。
感觉不够直观,哈哈,来来来,抓包献上,分析协议没有抓包总感觉像缺了灵魂:
该TREADOWN消息中,消息序列号为10,用户代理为LibVLC/3.0.11,这是我们使用VLC播放器rtsp流的一个代理,消息序列号为10, Session为之前SETUP请求后服务端返回的session字段的值,用于表示此次会话连接!
发出去请求后,服务端同样也会回馈response的消息,response的格式如下:
回复消息中包含 RTSP 版本号 状态码 以及针对 状态码的描述 ;同时返回消息的 序列号 (对应请求序列号)以及 session id ;另外还返回 日期 信息!服务端正常返回该消息,则此次RTSP连接消息结束!
我们来看一个抓包文件:
从抓包文件中可以看出,服务端回复200 Ok的消息,表示正常回复;同时也返回CSeq和Session,CSeq和Session的值与TEARDOWN请求中的值是一致的;另外返回了结束的日期和时间!




TEARDOWN示例




好了,老规矩,最后再来一个完整TEARDWON请求和回复的例子:

TEARDOWN请求

TEARDOWN rtsp://192.17.1.73:554/Streaming/Channels/101/?transportmode=unicast&profile=Profile_1 RTSP/1.0\r\n
CSeq: 10\r\n
Authorization: Digest username="admin", realm="bcad28138995", nonce="a1a5b9d3865180dccbaffb1cb2eb2a27", uri="rtsp://192.17.1.73:554/Streaming/Channels/101/", response="c5c005ef16638dfa326dcfc0c3f54aab"\r\n
User-Agent: LibVLC/3.0.11 (LIVE555 Streaming Media v2016.11.28)\r\n
Session: 1659421772\r\n\r\n

TEARDOWN的回复

RTSP/1.0 200 OK\r\n
CSeq: 10\r\n
Session: 1659421772\r\n
Date: Thu, Aug 27 2020 18:31:13 GMT\r\n\r\n

关于TEARDOWN就介绍到这里了,TEARDOWN之后,整个RTSP连接就结束了。不过RTSP还有一些其他常见的OPTION,如SET_PARAMETER,GET_PARAMETER,接下来我们就简单介绍一下这些指令!下一篇见了,老铁们!

往期推荐


手撕RTSP协议系列(1)——Rtsp基本流程

手撕RTSP协议系列(2)——Rtsp消息格式

手撕RTSP协议系列(3)——sdp格式详解

手撕RTSP协议系列(4)——OPTION

手撕RTSP协议系列(5)——DESCRIBE

手撕RTSP协议系列(6)——SETUP

手撕RTSP协议系列(7)——PLAY

手撕RTSP协议系列(8)——PAUSE




 


 

扫码关注了解更多,迷路了,请星标



交流群已开启,有需要的朋友,公众号后台回复“交流群”,获取入群方式!


 



点亮 ,告诉大家你也在看


本文分享自微信公众号 - 视界音你而不同(WorldOfVideoAndAudio)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!