RTP/RTCP/RTSP/SIP/SDP 關係

RTP
sdfs

Real-time Transport Protocol)是用於Internet上針對多媒體數據流的一種傳輸層協議。RTP協議詳細說明了在互聯網上傳遞音頻和視頻的標準數據包格式。RTP協議常用於流媒體系統(配合RTCP協議),視頻會議和一鍵通(Push to Talk)系統(配合H.323或SIP),使它成爲IP電話產業的技術基礎。RTP協議和RTP控制協議RTCP一起使用,而且它是建立在UDP協議上的。
RTP 本身並沒有提供按時發送機制或其它服務質量(QoS)保證,它依賴於低層服務去實現這一過程。 RTP 並不保證傳送或防止無序傳送,也不確定底層網絡的可靠性。 RTP 實行有序傳送, RTP 中的序列號允許接收方重組發送方的包序列,同時序列號也能用於決定適當的包位置,例如:在視頻解碼中,就不需要順序解碼。
RTP 由兩個緊密鏈接部分組成: RTP ― 傳送具有實時屬性的數據;RTP 控制協議(RTCP) ― 監控服務質量並傳送正在進行的會話參與者的相關信息。

RTCP
實時傳輸控制協議(Real-time Transport Control Protocol或RTP Control Protocol或簡寫RTCP)是實時傳輸協議(RTP)的一個姐妹協議。RTCP爲RTP媒體流提供信道外(out-of-band)控制。RTCP本身並不傳輸數據,但和RTP一起協作將多媒體數據打包和發送。RTCP定期在流多媒體會話參加者之間傳輸控制數據。RTCP的主要功能是爲RTP所提供的服務質量(Quality of Service)提供反饋。

RTCP收集相關媒體連接的統計信息,例如:傳輸字節數,傳輸分組數,丟失分組數,jitter,單向和雙向網絡延遲等等。網絡應用程序可以利用RTCP所提供的信息試圖提高服務質量,比如限制信息流量或改用壓縮比較小的編解碼器。RTCP本身不提供數據加密或身份認證。SRTCP可以用於此類用途。
SRTP & SRTCP
安全實時傳輸協議(Secure Real-time Transport Protocol或SRTP)是在實時傳輸協議(Real-time Transport Protocol或RTP)基礎上所定義的一個協議,旨在爲單播和多播應用程序中的實時傳輸協議的數據提供加密、消息認證、完整性保證和重放保護。它是由David Oran(思科)和Rolf Blom(愛立信)開發的,並最早由IETF於2004年3月作爲RFC 3711發佈。

由於實時傳輸協議和可以被用來控制實時傳輸協議的會話的實時傳輸控制協議(RTP Control Protocol或RTCP)有着緊密的聯繫,安全實時傳輸協議同樣也有一個伴生協議,它被稱爲安全實時傳輸控制協議(Secure RTCP或SRTCP);安全實時傳輸控制協議爲實時傳輸控制協議提供類似的與安全有關的特性,就像安全實時傳輸協議爲實時傳輸協議提供的那些一樣。

在使用實時傳輸協議或實時傳輸控制協議時,使不使用安全實時傳輸協議或安全實時傳輸控制協議是可選的;但即使使用了安全實時傳輸協議或安全實時傳輸控制協議,所有它們提供的特性(如加密和認證)也都是可選的,這些特性可以被獨立地使用或禁用。唯一的例外是在使用安全實時傳輸控制協議時,必須要用到其消息認證特性。


RTSP
RTSP(Real Time Streaming Protocol)是用來控制聲音或影像的多媒體串流協議,並允許同時多個串流需求控制,傳輸時所用的網絡通訊協定並不在其定義的範圍內,服務器端可以自行選擇使用TCP或UDP來傳送串流內容,它的語法和運作跟HTTP 1.1類似,但並不特別強調時間同步,所以比較能容忍網絡延遲。而前面提到的允許同時多個串流需求控制(Multicast),除了可以降低服務器端的網絡用量,更進而支持多方視訊會議(Video Conference)。 因爲與HTTP1.1的運作方式相似,所以代理服務器《Proxy》的快取功能《Cache》也同樣適用於RTSP,並因RTSP具有重新導向功能,可視實際負載情況來轉換提供服務的服務器,以避免過大的負載集中於同一服務器而造成延遲。
RTSP 和RTP的關係


SIP


SIP 會話使用多達四個主要組件:SIP 用戶代理、SIP 註冊服務器、SIP 代理服務器和 SIP 重定向服務器。這些系統通過傳輸包括了 SDP 協議(用於定義消息的內容和特點)的消息來完成 SIP 會話。下面概括性地介紹各個 SIP 組件及其在此過程中的作用。

  • SIP 用戶代理 (UA) 是終端用戶設備,如用於創建和管理 SIP 會話的移動電話、多媒體手持設備、PC、PDA 等。用戶代理客戶機發出消息。用戶代理服務器對消息進行響應。
  • SIP 註冊服務器是包含域中所有用戶代理的位置的數據庫。在 SIP 通信中,這些服務器會檢索參與方的 IP 地址和其他相關信息,並將其發送到 SIP 代理服務器。
  • SIP 代理服務器接受 SIP UA 的會話請求並查詢 SIP 註冊服務器,獲取收件方 UA 的地址信息。然後,它將會話邀請信息直接轉發給收件方 UA(如果它位於同一域中)或代理服務器(如果 UA 位於另一域中)。
  • SIP 重定向服務器允許 SIP 代理服務器將 SIP 會話邀請信息定向到外部域。SIP 重定向服務器可以與 SIP 註冊服務器和 SIP 代理服務器同在一個硬件上。

下面是一個典型的SIP會話:

以下幾個情景說明 SIP 組件之間如何進行協調以在同一域和不同域中的 UA 之間建立 SIP 會話:

在同一域中建立 SIP 會話

下圖說明了在預訂同一個 ISP 從而使用同一域的兩個用戶之間建立 SIP 會話的過程。用戶 A 使用 SIP 電話。用戶 B 有一臺 PC,運行支持語音和視頻的軟客戶程序。加電後,兩個用戶都在 ISP 網絡中的 SIP 代理服務器上註冊了他們的空閒情況和 IP 地址。用戶 A 發起此呼叫,告訴 SIP 代理服務器要聯繫用戶 B。然後,SIP 代理服務器向 SIP 註冊服務器發出請求,要求提供用戶 B 的 IP 地址,並收到用戶 B 的 IP 地址。SIP 代理服務器轉發用戶 A 與用戶 B 進行通信的邀請信息(使用 SDP),包括用戶 A 要使用的媒體。用戶 B 通知 SIP 代理服務器可以接受用戶 A 的邀請,且已做好接收消息的準備。SIP 代理服務器將此消息傳達給用戶 A,從而建立 SIP 會話。然後,用戶創建一個點到點 RTP 連接,實現用戶間的交互通信。

 

在不同的域中建立 SIP 會話

本情景與第一種情景的不同之處如下。用戶 A 邀請正在使用多媒體手持設備的用戶 B 進行 SIP 會話時,域 A 中的 SIP 代理服務器辨別出用戶 B 不在同一域中。然後,SIP 代理服務器在 SIP 重定向服務器上查詢用戶 B 的 IP 地址。SIP 重定向服務器既可在域 A 中,也可在域 B 中,也可既在域 A 中又在域 B 中。SIP 重定向服務器將用戶 B 的聯繫信息反饋給 SIP 代理服務器,該服務器再將 SIP 會話邀請信息轉發給域 B 中的 SIP 代理服務器。域 B 中的 SIP 代理服務器將用戶 A 的邀請信息發送給用戶 B。用戶 B 再沿邀請信息經由的同一路徑轉發接受邀請的信息。

 

 

 

SDP
v=<version>

o=<username> <session id> <version> <network type> <address type> <address>
s=<session name>
i=<session description>
u=<URI>
e=<email address>
p=<phone number>
c=<network type> <address type> <connection address>
b=<modifier>:<bandwidth-value>
t=<start time> <stop time>
r=<repeat interval> <active duration> <list of offsets from start-time>
z=<adjustment time> <offset> <adjustment time> <offset> ....
k=<method>
k=<method>:<encryption key>
a=<attribute>
a=<attribute>:<value>
m=<media> <port> <transport> <fmt list>
v = (協議版本)
o = (所有者/創建者和會話標識符)
s = (會話名稱)
i = * (會話信息)
u = * (URI 描述)
e = * (Email 地址)
p = * (電話號碼)
c = * (連接信息)
b = * (帶寬信息)
z = * (時間區域調整)
k = * (加密密鑰)
a = * (0 個或多個會話屬性行)


時間描述:
t = (會話活動時間)
r = * (0或多次重複次數)


媒體描述:
m = (媒體名稱和傳輸地址)
i = * (媒體標題)
c = * (連接信息 — 如果包含在會話層則該字段可選)
b = * (帶寬信息)
k = * (加密密鑰)
a = * (0 個或多個媒體屬性行)

Summary

就如同它們的名字所表示的那樣,SIP用於初始化一個Session,並負責傳輸SDP包;而SDP包中描述了一個Session中包含哪些媒體數據,邀請的人等等;當需要被邀請的人都通過各自的終端設備被通知到後,就可以使用RTSP來控制特定Media的通信,比如RTSP控制信息要求開始Video的播放,那麼就開始使用RTP(或者TCP)實時傳輸數據,在傳輸過程中,RTCP要負責QoS等。

 

轉載:點擊打開鏈接

發佈了125 篇原創文章 · 獲贊 255 · 訪問量 154萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章