多媒體、即時通訊與服務品質

即時傳輸協定(RTP)

/ are-tee-PEE /

UDP 是一個極薄的信封——它把封包送到正確的程式,再多就沒有了。對語音與視訊來說那幾乎夠用,但少了兩樣東西:接收端需要知道封包的順序,以及每一塊聲音或畫面究竟該在何時播放。RTP,即時傳輸協定,正是在 UDP 之上加上這兩項資訊。把它想成在每個媒體封包上蓋上一個曲目編號與一個時鐘讀數,好讓對端能以正確的順序、正確的步調重組這場演出。

具體來說,RTP 為每個媒體封包加上一個小標頭,其中帶有(諸多欄位中的)一個序號與一個時間戳。序號每個封包遞增一,所以接收端能把封包重新排序並察覺空缺(少了一個號碼就代表一個封包遺失——這是啟動隱藏的訊號)。時間戳記錄了那段媒體被取樣的時間,這正是讓播放緩衝區能不管抵達多抖動、都以穩定時鐘排定每個封包播放時刻的依據。RTP 本身不加任何可靠性、不加密、也不給品質保證——它是一個框架化與計時的層,幾乎總是搭配一個叫 RTCP 的控制伴侶,後者定期把遺失率與抖動之類的統計回報給發送端,好讓它能調適(例如,降低位元率)。

為什麼重要:RTP 是幾乎所有網際網路語音與視訊底下的主力格式——網路電話、視訊會議、直播串流。一個常見的誤解是 RTP「提供服務品質」。它並不提供:它給接收端應付局面所需的計時與排序資訊,但那些位元仍乘著盡力而為的 UDP,仍可能延遲或遺失。RTP 描述如何替即時媒體貼標籤;它並不會讓網路更善待那些媒體。加密是另外加上的(例如 SRTP,RTP 的安全設定檔)。

一個網路電話發送端送出序號 100、101、102、103、時間戳相隔 20 毫秒的封包。接收端收到 100、102、103——序號 101 不見了,於是它確知恰好遺失一個封包並予以隱藏,而時間戳仍告訴它何時該播放 102 與 103。

RTP 的序號揭露遺失;它的時間戳驅動平順播放。

RTP 不保留頻寬、不保證傳遞、本身也不加密任何東西。它只替媒體貼上排序與計時的標籤;底下的網路依舊是盡力而為,安全則來自另外的安全設定檔。

又称
Real-time Transport ProtocolRTCP即時傳輸協定即時運輸協定