• 沒有找到結果。

Real-Time Transport Protocol

在文檔中 安全的視訊會議 (頁 17-20)

第二章 影音撥放與影音傳輸的概念及應用

2.2 RTP 的基本概念與運用

2.2.2 Real-Time Transport Protocol

圖 2-7 RTP 結構

由圖 2-6 可以知道,RTP 屬於獨立的通訊協定,它通常建立在 UDP 之上,並提供即時資料傳輸的點對點(end-to-end)傳送服務。基本上 RTP 擁有 unicast 以及 multicast 的網路功能,當使用 unicast 方式 傳送資料時,資料會被拷貝成 N 份並且傳給 N 個目的端,而使用 multicast 時傳送端只送一次,接著由 network 負責把資料分送給多 個位址。

RTP 的專有名詞:

• RTP packet:一個開頭有 RTP header 的 packet。通常在底 層 protocol 中,一個 packet 只包含一個 RTP packet,

但透過一些特別的 encapsulation 方法,底層 packet 也 可以含一個以上的 RTP packet。

• RTP payload:在 RTP packet 中,真正要傳送的資料。例如 在視訊會議中,影像資料就是 RTP payload。

• RTCP packet:一個開頭是 RTCP header,後面接著控制資 料的 packet。通常許多 RTCP packet 會被結合,再加上 底層的 header,而結合後的 RTCP packet 長度會被紀錄 在 RTCP header 中的 length 欄位。

Real-Time Media Frameworks and Applications

Real-Time Control Protocol (RTCP) Real-Time Transport Protocol (RTP)

Other Network and

Transport Protocols (TCP,ATM,ST-II,etc.)

UDP IP

• Port:當 RTP 想傳送 RTP packet 與 RTCP packet 到同一個 IP Address 時,port 就可以用來區分目的地的不同。

• RTP session:對於每一個 RTP 使用者而言,RTP session 是由一對 destination transport address 定義而成(一 個為了 RTP,另一個為了 RTCP)。要注意的是,一個多媒 體會議中,不同的媒體資料最好在不同的 RTP session 中傳送。

• Synchronization source (SSRC):SSRC 是一個隨機選取的 識別值,用意是使一個 RTP session 中的 participant 都有獨一無二的識別資訊。但是同一個使用者在不同的 RTP session 中,並不一定要用同一個 SSRC。

• Contributing source (CSRC): mixer 可以將不同來源的 RTP packet 混和放到同一個 RTP packet 中。此時,RTP 也會 在 RTP header 中紀錄與這個 packet 有關的 SSRC,而這 (quality of service),因此它還需要另一個協定 RTCP(Real time control protocol)來對 RTP 進行品質的監視並提供 RTP 額外的控制與識別機制。

RTP 的架構:

RTP session,包含了一個 address 和一對 port,一個 port 用在 media data,另一個則用在控制 media data(RTCP),

除此之外,在整個 session 中,單一主機(參與傳送或接收 的遠端主機)被稱為 participant,它可以被動的接收資料

(成為接收端),或是主動傳送資料(成為傳送端),或是兩者 行為同時存在,另外,不同型態的 media data 必須在不同 的 session 傳送,例如在視訊會議中,一個 participant 一 定會送出影像及聲音,而這兩種型態的 media data 須放在 不同的 session 中,換句話說,影像與聲音不是在同一 port 上傳送的,然而,如此做法是要讓低頻寬的 participant 能 有彈性的選擇所需的 media data,它可以只接收聲音並捨棄 影像,以適應低頻寬的環境。接下來我們將說明 RTP 資料封 包(Data Packet)。

在 RTP 裡,media data 是以一序列的封包在傳送的,每 個封包都包含了兩個部分,header 以及實體資料(packet's payload)。

圖 2-8 RTP data-packet header format

•Version (V):說明 RTP 的版本。

•Padding (P):如果這個欄位被設定,RTP packet 尾端將 會包含一個以上的 padding octets,但它們並不是 RTP payload 的一部份,而在 padding 的最後一個 octet 會記 錄在這個 RTP packet 中有多少個 octet。在某些壓縮演

算法,或是底層的通訊協定,padding 有可能會被用到。

•Extension (X):如果這個欄位被設定,在固定的 RTP header 後還要加上一個 header extension。

•CSRC count (CC):紀錄 CSRC 的個數。

•Marker (M):用作重要事件,像是影像中 frame 的界限識 別值。這個值的解釋是留給 application 去處理。

•Payload type (PT):用來定義 RTP payload 的 format,

而 format 的解釋則是留給 application 去處理。

•Sequence number:每送出一個 RTP packet 之後,sequence number 就會增加 1。Sequence number 也可以被 receiver 用來偵測封包遺失,以及恢復 packet 的順序。

•Timestamp:記錄 RTP packet 第一個 octet 被讀取的取樣 時間。

•SSRC:如同前面的定義。要注意的是,如果一個 source 改變它的 source transport address,它必須選擇一個 新的 SSRC。

•CSRC list:如同前面的定義。要注意的是,如果一個 RTP packet 包含 15 個以上的 CSRC,只有 15 個 CSRC 可以被識 別。

在文檔中 安全的視訊會議 (頁 17-20)

相關文件