RTP定議
RTP(RealTimeTransportProtocol )實時傳輸協(xié)議的縮寫定義了用于通過Internet傳輸音頻和視頻的標準數(shù)據包格式。它在RFC1889中定義。它由音頻視頻傳輸工作組開發(fā),并于1996年首次發(fā)布。RTP廣泛用于涉及流媒體的通信和娛樂系統(tǒng),例如電話,視頻電話會議應用程序,電視服務和基于Web的一鍵通功能。
RTP與RTP控制協(xié)議(RTCP)結合使用。RTP承載媒體流(例如,音頻和視頻),RTCP用于監(jiān)控傳輸統(tǒng)計信息和服務質量(QoS),并幫助同步多個流。RTP在偶數(shù)端口號上發(fā)起和接收,關聯(lián)的RTCP通信使用下一個更高的奇數(shù)端口號。RTP是VoIP的基礎之一,它與SIP結合使用,SIP有助于通過網絡建立連接。
RTP的歷史:
該協(xié)議由四名成員組成的互聯(lián)網工程任務組(IETF)開發(fā):
S.Casner(PacketDesign)
V.雅各布森(數(shù)據包設計)
H.舒爾茨林(哥倫比亞大學)
R.Frederick(BlueCoatSystemsInc.)
RTP于1996年首次發(fā)布,稱為RFC1889。接下來,它于2003年發(fā)布,名稱為RFC3550。
RTP的應用:
RTP主要有助于媒體混合,排序和時間戳。
互聯(lián)網協(xié)議語音(VoIP)
通過互聯(lián)網進行視頻電話會議。
互聯(lián)網音頻和視頻流。
RTP報頭格式:
RTP報文的報頭格式圖示如下圖所示:
RTP的標頭格式非常簡單,它涵蓋了所有實時應用程序。標題格式的每個字段的說明如下:
版本:
此2位字段定義版本號。當前版本為2。
P–此字段的長度為1位。如果值為1,則表示數(shù)據包末尾存在填充,如果值為0,則沒有填充。
X–此字段的長度也是1位。如果此字段的值設置為1,則它表示數(shù)據和基本標頭之間有一個額外的擴展標頭,如果值為0,則沒有額外的擴展名。
參與者計數(shù)–此4位字段指示參與者數(shù)。此處,最大可能的貢獻者數(shù)為15,因為4位字段可以允許數(shù)字形式為0到15。
M–此字段的長度為1位,應用程序將其用作結束標記以指示其數(shù)據的結束。
負載類型–此字段的長度為7位,用于指示負載類型。我們列出了一些常見類型的有效載荷的應用。
負載類型
編碼名稱
0
微音頻
1
1016
2
G721音頻
3
GSM音頻
5-6
DV14音頻
7
液晶屏音頻
8
PCMAAudio
9
G722音頻
10-11
L16音頻
14
MPEG音頻
15
G728音頻
26
運動JPEG
31
H.216
32
MPEG1視頻
33
MPEG2視頻
有效負載類型是一個唯一的數(shù)字,以RTP標頭格式以7位表示。每個有效負載類型都指示音頻/視頻媒體的特定編碼。允許RTP源在給定時間發(fā)送單個有效負載類型。此字段主要指定媒體流中使用的編解碼器類型。
例如,如果我們使用“1”作為編碼名稱為1016的有效負載類型,則意味著它將對媒體流使用FS-1016語音編碼。
如果我們使用編碼名稱為H.261的“31”有效載荷類型,則意味著它將使用ITU-T視頻壓縮標準。同樣,每個有效負載類型的數(shù)量都表示用于音頻/視頻流的特定編碼類型。
序列號–此字段的長度為16位。它用于為RTP數(shù)據包提供序列號。它有助于排序。第一個數(shù)據包的序列號被賦予一個隨機數(shù),然后每個下一個數(shù)據包的序列號遞增1。此字段主要有助于檢查丟失的數(shù)據包和順序不匹配。
時間戳–此字段的長度為32位。它用于查找不同RTP數(shù)據包的時間之間的關系。第一個數(shù)據包的時間戳是隨機給出的,然后是下一個數(shù)據包的時間戳,由上一個時間戳和生成當前數(shù)據包的第一個字節(jié)所花費的時間之和給出。1時鐘周期的值因應用而異。
同步源標識符–這是一個32位字段,用于標識和定義源。此源標識符的值是由源本身選擇的隨機數(shù)。這主要有助于解決當兩個源以相同的序列編號開始時出現(xiàn)的沖突。
參與者標識符–這也是一個32位字段,用于在會話中存在多個源的源標識中?;旌掀髟词褂猛皆礃俗R符,其他剩余源(最多15個)使用參與者標識符。
通過RTP協(xié)議傳輸?shù)臄?shù)據如下所示:
增補噪聲