2020年10月13日 星期二

[暂存]網路應用層的RTSP即時串流協定(Real Time Streaming Protocol)

RTSP發起/終結流媒體、RTP傳輸流媒體資料 、RTCP對RTP進行控制,同步。



RTSP 它被設計出來是為了可以控制串流媒體伺服器的協議 (所以他是 C/S 架構),例如我們先發送一個觀看影片的請求給 Server,然後它就開始以串流型式來傳輸影片,然後這時我們可以用 RTSP 所提供的一些方法,來進行影片的快轉或暫停,為了能控制串流就是它被設計出來的原理。

HTTP 與RTSP相比,HTTP傳送HTML,而RTP傳送的是多媒體數據。 HTTP請求由客戶機發出,服務器作出響應;使用RTSP時,客戶機和服務器都可以發出請求,即RTSP可以是雙向的。

RTP簡介

RTP(Real Time Transport Protocol)是針對Internet上多媒體資料流的一個傳輸協議,由IETF(Internet工程任務組)作為RFC1889釋出。RTP被定義為在一對一或一對多的傳輸情況下工作,其目的是提供時間資訊和實現流同步。RTP的典型應用建立在UDP上,但也可以在TCP或ATM等其他協議之上工作。RTP本身只保證實時資料的傳輸,並不能為按順序傳送資料包提供可靠的傳送機制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務。

RTP工作機制

多媒體資料傳輸的一個尖銳的問題就是不可預料資料到達時間。但是流媒體的傳輸是需要資料的適時的到達用以播放和回放。rtp協議就是提供了時間標籤,序列號以及其它的結構用於控制適時資料的流放。在流的概念中”時間標籤”是最重要的資訊。傳送端依照即時的取樣在資料包裡隱蔽的設定了時間標籤。在接受端收到資料包後,就依照時間標籤按照正確的速率恢復成原始的適時的資料。不同的媒體格式調時屬性是不一樣的。

但是rtp本身並不負責同步,rtp只是傳輸層協議,為了簡化運輸層處理,提高該層的效率。將部分運輸層協議功能(比如流量控制)上移到應用層完成。同步就是屬於應用層協議完成的。它沒有運輸層協議的完整功能,不提供任何機制來保證實時地傳輸資料,不支援資源預留,也不保證服務質量。rtp報文甚至不包括長度和報文邊界的描述。同時rtp協議的資料報文和控制報文使用相鄰的不同埠,這樣大大提高了協議的靈活性和處理的簡單性。

rtp協議和udp二者共同完成運輸層協議功能。udp協議只是傳輸資料包,不管資料包傳輸的時間順序。 rtp的協議資料單元是用udp分組來承載的。在承載rtp資料包的時候,有時候一幀資料被分割成幾個包具有相同的時間標籤,則可以知道時間標籤並不是必須的。而udp的多路複用讓rtp協議利用支援顯式的多點投遞,可以滿足多媒體會話的需求。

 rtp協議雖然是傳輸層協議但是它沒有作為osi體系結構中單獨的一層來實現。rtp協議通常根據一個具體的應用來提供服務,rtp只提供協議框架,開發者可以根據應用的具體要求對協議進行充分的擴充套件。

一篇文章讀懂流媒體傳輸協議RTP、RTCP、RTSP、SRTP&SRTCP

RTSP 傳輸協議

沒有留言:

張貼留言