定義
SIP
協(xié)議,即會(huì)話發(fā)起協(xié)議(Session Initiation Protocol
), 是一個(gè)應(yīng)用層的 點(diǎn)對(duì)點(diǎn)協(xié)議 ,用于初始、管理和終止網(wǎng)絡(luò)中的語(yǔ)音和視頻會(huì)話, 屬于 GB28181
的核心之一。
SIP
協(xié)議是由IETF
組織提出的IP
電話信令協(xié)議,IETFRFC2543
中對(duì)它的定義是一個(gè)基于文本的應(yīng)用層控制協(xié)議, 獨(dú)立于底層傳輸協(xié)議:TCP/UDP/SCTP
, 用于建立、修改和終止 IP
網(wǎng)上的雙方或多方多媒體會(huì)話。借鑒了 HTTP
、SMTP
等協(xié)議,支持代理、重定向及登記定位用戶等功能, 支持用戶移動(dòng)。
SIP
協(xié)議通過(guò)與 RTP/RTCP
、SDP
、RTSP
等協(xié)議及 DNS
配合, 從而支持語(yǔ)音、視頻、數(shù)據(jù)、E-mail
、 狀態(tài)、IM
、聊天、游戲等應(yīng)用場(chǎng)景。
它可在 TCP
或 UDP
之上傳送,由于 SIP
本身具有握手機(jī)制,一般情況下首選 UDP
傳輸協(xié)議。
從打電話的角度去理解
SIP
協(xié)議,推薦閱讀:深入淺出SIP協(xié)議
本篇文章針對(duì)sip
協(xié)議的應(yīng)用場(chǎng)景是建立在GB28181
協(xié)議的基礎(chǔ)上來(lái)進(jìn)行理解和解讀的,如果理解有誤,還請(qǐng)各位網(wǎng)友不吝指教!在評(píng)論區(qū)留下您的寶貴建議,謝謝!
基本流程
sip協(xié)議的網(wǎng)絡(luò)元素:
- 用戶代理
- 代理服務(wù)器
- 注冊(cè)服務(wù)器
- 重定向服務(wù)器
- 位置服務(wù)器
上圖簡(jiǎn)單的勾勒出了sip
協(xié)議網(wǎng)絡(luò)元素之間的關(guān)系,同時(shí)通過(guò)上圖也可以了解到sip
會(huì)話的基本呼叫流程:
- 用戶代理
B
向注冊(cè)服務(wù)器發(fā)送Register
請(qǐng)求,攜帶contact
地址; - 隨后注冊(cè)服務(wù)器將
B
的地址,記錄到位置服務(wù)器; - 用戶代理
A
向代理服務(wù)器發(fā)送invite
請(qǐng)求啟動(dòng)與用戶代理B
的會(huì)話; - 代理服務(wù)器會(huì)先向
A
發(fā)送響應(yīng)100 Trying
的信息以避免A
重傳invite
消息; - 然后代理服務(wù)器向位置服務(wù)器搜索
B
的地址,獲取到地址后會(huì)進(jìn)一步轉(zhuǎn)發(fā)A
的invite
請(qǐng)求; - 通過(guò)上一步代理服務(wù)器將
A
的請(qǐng)求轉(zhuǎn)發(fā)到B
,B
向代理服務(wù)器響應(yīng)180 Ringing
信息; - 代理服務(wù)器將
B
的響應(yīng)信息轉(zhuǎn)發(fā)給A
,B
向代理服務(wù)器響應(yīng)200 OK
信息; - 緊接著
A
給B
發(fā)送ACK
請(qǐng)求,一個(gè)會(huì)話至此建立完成。
關(guān)于GB28181
的"客戶端對(duì)實(shí)時(shí)音視頻點(diǎn)播"的流程,本質(zhì)除sip
服務(wù)器以外的都是sip
客戶端, 也可以理解為客戶端對(duì)媒體發(fā)送端的基本呼叫流程,如下圖:
在GB28181
標(biāo)準(zhǔn)中 中心信令服務(wù)器 (center control server
)就是一個(gè)基于sip
協(xié)議設(shè)計(jì)的負(fù)責(zé)核心sip
信令應(yīng)用處理的SIP服務(wù)器, 信令安全路由網(wǎng)關(guān) (secure signal routing gateway
)是一種具有安全功能的sip
服務(wù)器。
"組成中心信令控制的邏輯實(shí)體包括代理服務(wù)器、注冊(cè)服務(wù)器、重定向服務(wù)器、背靠背用戶代理等的一種或者幾種,是負(fù)責(zé)核心SIP信令應(yīng)用處理的SIP服務(wù)器" --引自《GB/T 28181-2016 公共安全視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng) 信息傳輸、交換、控制技術(shù)要求》
協(xié)議結(jié)構(gòu)
sip
協(xié)議包括六個(gè)主要請(qǐng)求和六類響應(yīng)消息:
請(qǐng)求:
INVITE
BYE
REGISTER
CANCEL
ACK
OPTIONS
響應(yīng):
1xx: 臨時(shí)/信息響應(yīng)
2xx: 成功響應(yīng)
3xx: 重定向響應(yīng)
4xx: 客戶端故障響應(yīng)
5xx: 服務(wù)器故障響應(yīng)
6xx: 全局故障響應(yīng)
下面是GB28181
協(xié)議標(biāo)準(zhǔn)下較常用的的sip
請(qǐng)求:
INVITE
INVITE
請(qǐng)求在GB28181
協(xié)議中是視頻點(diǎn)播(包括實(shí)時(shí)預(yù)覽和歷史回放)流程中最重要的一個(gè)環(huán)節(jié),在invite
請(qǐng)求中會(huì)包含SDP
協(xié)議的內(nèi)容。SDP
協(xié)議(Session Description Protocol
)是用來(lái)描述媒體數(shù)據(jù)是如何使用的,它由3個(gè)部分組成,可分為:
- 第1部分是Session description
v= (protocol version)
o= (owner/creator and session identification)
s= (session name)
i= (session information)
u= (URI of description)
e= (email address – contact detail)
p= (phone number – contact detail)
c= (connection information – not required if included in media description)
b= (session bandwidth information)
z= (time zone adjustments)
k= (encryption key)
a= (zero or more session attribute lines)
- 第2部分是Time description
t= (time the session is active)
r= (repeat times)
- 第3部分是Media description
m= (media name/ transport address)
i= (media title)
c= (connection information – not required if included in session description)
b= (bandwidth information)
k= (encryption key)
a= (zero or more media attribute lines)
sdp
字段的具體細(xì)節(jié)可參考鏈接:
sdp會(huì)話描述協(xié)議
sdp
協(xié)議參考文獻(xiàn):
《GB/T 28181-2016 公共安全視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng) 信息傳輸、交換、控制技術(shù)要求》附錄F
SDP
定義
下面是在GB28181
協(xié)議中視頻點(diǎn)播流程中的invite
數(shù)據(jù)包:
BYE
BYE
包是用來(lái)終止已經(jīng)建立的會(huì)話,通常出現(xiàn)BYE
包的場(chǎng)景是媒體接收端主動(dòng)發(fā)起實(shí)時(shí)音視頻點(diǎn)播流程時(shí)出現(xiàn)。它不能由代理服務(wù)器發(fā)送,也不能發(fā)送到掛起的INVITE
或者未建立的會(huì)話。
具體的數(shù)據(jù)包流程分析如下圖:
REGISTER
通過(guò)抓包可以查看到GB28181
一個(gè)完整的基本注冊(cè)流程:
在GB28181
中它是采用RFC 3261
規(guī)范中基于數(shù)字摘要的CRAM
機(jī)制來(lái)進(jìn)行注冊(cè),基本注冊(cè)流程如下圖:
具體的數(shù)據(jù)包分析如下圖:
CANCEL
主要是用來(lái)終止未建立的會(huì)話。用戶代理使用此請(qǐng)求取消之前發(fā)起的待處理的invite
。它可以由用戶代理或代理服務(wù)器發(fā)送。
ACK
ACK
在RFC-3262
規(guī)范中是一個(gè)請(qǐng)求,它只有在INVITE
請(qǐng)求中出現(xiàn),當(dāng)INVITE
請(qǐng)求響應(yīng)是200 OK
時(shí), 后續(xù)的ACK
則是一個(gè)獨(dú)立事務(wù)。
-
TCP
+關(guān)注
關(guān)注
8文章
1353瀏覽量
79077 -
UDP
+關(guān)注
關(guān)注
0文章
325瀏覽量
33941 -
傳輸協(xié)議
+關(guān)注
關(guān)注
0文章
78瀏覽量
11451 -
SCTP
+關(guān)注
關(guān)注
0文章
7瀏覽量
8143
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論