rtp(real-timetransportprotocol)是用于internet上針對多媒體數(shù)據(jù)流的一種傳輸協(xié)議。rtp被定義為在一對一或一對多的傳輸情況下工作,其目的是提供時間信息和實現(xiàn)流同步。rtp通常使用udp來傳送數(shù)據(jù),但rtp也可以在tcp或atm等其他協(xié)議之上工作。當應用程序開始一個rtp會話時將使用兩個
端口:一個給rtp,一個給rtcp。rtp本身并不能為按順序傳送數(shù)據(jù)包提供可靠的傳送機制,也不提供流量控制或擁塞控制,它依靠rtcp提供這些服務。通常rtp算法并不作為一個獨立的網絡層來實現(xiàn),而是作為應用程序代碼的一部分。實時傳輸控制協(xié)議rtcp。rtcp(real-timetransportcontrolprotocol)和rtp一起提供流量控制和擁塞控制服務。在rtp會話期間,各參與者周期性地傳送rtcp包。rtcp包中含有已發(fā)送的數(shù)據(jù)包的數(shù)量、丟失的數(shù)據(jù)包的數(shù)量等統(tǒng)計資料,因此,服務器可以利用這些信息動態(tài)地改變傳輸速率,甚至改變有效載荷類型。rtp和rtcp配合使用,它們能以有效的反饋和最小的開銷使傳輸效率最佳化,因而特別適合傳送網上的實時數(shù)據(jù)。
6.2.1 rtp數(shù)據(jù)傳輸協(xié)議
rtp提供端對端網絡傳輸功能,適合通過組播和點播傳送實時數(shù)據(jù),如視頻、音頻和仿真數(shù)據(jù)。rtp沒有涉及資源預訂和質量保證等實時服務,rtcp擴充數(shù)據(jù)傳輸以允許監(jiān)控數(shù)據(jù)傳送,提供最小的控制和識別功能。rtp與rtcp設計成獨立傳輸和網絡層。
2.1.1 rtp固定頭
rtp 頭格式如下:
-----------------------------------------------------------------------------------------------
|v=2|p|x| cc |m| pt | 系列號 |
-----------------------------------------------------------------------------------------------
| 時標 |
-----------------------------------------------------------------------------------------------
| 同步源標識(ssrc) |
-----------------------------------------------------------------------------------------------
| 作用標識 (csrc) |
| .... |
-----------------------------------------------------------------------------------------------
開始12個八進制出現(xiàn)在每個rtp包中,而csrc標識列表僅出現(xiàn)在混合器插入時。
2.1.2 復用 rtp 連接
為使協(xié)議有效運行,復用點數(shù)目應減至最小。rtp中,復用由定義rtp連接的目的傳輸?shù)刂罚ňW絡地址與
端口號)提供。例如,對音頻和視頻單獨編碼的遠程會議,每個媒介被攜帶在單獨rtp連接中,具有各自的目的傳輸?shù)刂贰D繕瞬辉趯⒁纛l和視頻放在單一rtp連接中,而根據(jù)ssrc段載荷類型進行多路分解。使用同一ssrc ,而具有不同載荷類型的交叉包將帶來幾個問題:
如一種載荷類型在連接期間切換,沒有辦法識別新值將替換那一個舊值。
ssrc定義成用于標識單個計時和系列號空間。如媒體時鐘速率不同,而要求不同系列號空間以說明那種載荷類型有丟包,交叉復用載荷類型將需要不同計時空間。
rtcp發(fā)送和接收報告可能僅描述每個ssrc的計時和系列號空間,而不攜帶載荷類型段。
rtp混合器不能將不兼容媒體流合并成一個流。
在一個rtp連接中攜帶多個媒介阻止幾件事:使用不同網絡路徑或網絡資源分配;接受媒介子集。
對每種媒介使用不同ssrc,但以相同rtp連接發(fā)送可避免前三個問題,但不能避免后兩個問題。
2.1.3 對rtp頭特定設置的修改
可以認為,現(xiàn)用rtp數(shù)據(jù)包頭對rtp支持的所有應用類共同需要的功能集是完整的。然而,為維持alf設計原則,頭可通過改變或增加設置來裁剪,并仍允許設置無關監(jiān)控和記錄工具起作用。標記位與載荷類型段攜帶特定設置信息,但由于很多應用需要它們,否則要容納它們,就要增加另外32位字,故允許分配在固定頭中。包含這些段的八進制可通過設置重新定義以適應不同要求,如采用更多或更少標記位。如有標記位,既然設置無關監(jiān)控器能觀察包丟失模式和標記位間關系,我們就可以定位八進制中最重要的位。
其它特殊載荷格式(視頻編碼)所要求的信息應該攜帶在包的載荷部分??沙霈F(xiàn)在頭,總是在載荷部分開始處,或在數(shù)據(jù)模式的保留值中指出。如特殊應用類需要獨立載荷格式的附加功能,應用運行的設置應該定義附加固定段跟隨在現(xiàn)存固定頭ssrc之后。這些應用將能迅速而直接訪問附加段,同時,與監(jiān)控器和記錄器無關設置仍能通過僅解釋開始12個八進制處理rtp包。如證實附加功能是所有設置共同需要的,新版本rtp應該對固定頭作出明確改變