標籤:
http://www.chinaitlab.com/cisco/RIP/832426.html
1、簡介
目前,在IP網路中實現即時語音、視頻通訊和應用已經成為網路應用的一個主流技術和發展方向,本文詳細介紹IP協議族中用於即時語音、視頻資料轉送的標準協議RTP( Real-time Transport Protocol)和RTCP(RTP Control Ptotocol)的主要功能。
2、RTP/RTCP協議簡介
RTP 由 IETF(www.ietf.org)定義在 RFC 3550和3551中。
RTP被定義為傳輸音頻、視頻、類比資料等即時資料的傳輸協議,與傳統的注重的高可靠的資料轉送的運輸層協議相比,它更加側重的資料轉送的即時性,此協議提供的服務包括資料順序號、時間標記、傳輸控制等。
RTP通常與輔助控制協議RTCP一起工作,RTP只負責即時資料的傳輸,RTCP負責對RTP的通訊和會話進行頻外管理(如流量控制、擁塞控制、會話源管理等)。
3、RTP/RTCP協議層次和封裝
RTP位於傳輸層(通常是UDP)之上,應用程式之下,即時語音、視頻資料經過模數轉換和壓縮編碼處理後,先送給RTP封裝成為RTP資料單元,RTP資料單元被封裝為UDP資料報,然後再向下遞交給IP封裝為IP資料包。
RTP分組只包含RTP資料,而控制是由另一個配套協議RTCP提供。RTP在連接埠號碼1025到65535之間選擇一個未使用的偶數UDP連接埠號碼,而在同一次會話中的RTCP則使用下一個奇數UDP連接埠號碼。
RTP通常和RTCP一起工作,在RTP會話期間,各參與者周期的發送RTCP訊息。RTCP訊息含有已發送資料的丟包統計和網路擁塞等資訊,伺服器可以利用這些資訊動態改變傳輸速率,甚至改變淨荷的類型。RTCP訊息也被封裝為UDP資料報進行傳輸。
4、RTP/RTCP協議頭資訊
version (V): 2 bits
標明RTP版本號碼。協議初始版本為0,RFC3550中規定的版本號碼為2。
padding (P): 1 bit
如果該位被設定,則在該packet末尾包含了額外的附加資訊,附加資訊的最後一個位元組表示額外附加資訊的長度(包含該位元組本身)。該欄位之所以存在是因為一些加密機制需要固定長度的資料區塊,或者為了在一個底層協議資料單元中傳輸多個RTP packets。
extension (X): 1 bit
如果該位被設定,則在固定的頭部後存在一個擴充頭部,格式定義在RFC3550 5.3.1節。
CSRC count (CC): 4 bits
在固定頭部後存在多少個CSRC標記。
marker (M): 1 bit
該位的功能依賴於profile的定義。profile可以改變該位的長度,但是要保持marker和payload type總長度不變(一共是8 bit)。
payload type (PT): 7 bits
標記著RTP packet所攜帶資訊的類型,標準類型列出在RFC3551中。如果接收方不能識別該類型,必須忽略該packet。
sequence number: 16 bits
序號,每個RTP packet發送後該序號加1,接收方可以根據該序號重新排列資料包順序。
timestamp: 32 bits
時間戳記。反映RTP packet所攜帶資訊包中第一個位元組的採樣時間。
SSRC: 32 bits
資料來源標識。在一個RTP Session其間每個資料流都應該有一個不同的SSRC。
CSRC list: 0 to 15 items, 每個源標識32 bits
貢獻資料來源標識。只有存在Mixer的時候才有效。如一個將多聲道的語音流合并成一個單聲道的語音流,在這裡就列出原來每個聲道的SSRC。
5、RTCP協議
RTCP協議處理機根據定義了五種類型的報文:
RR: receiver report
SR: sender report
SDES: source description items.
BYE: indicates end of participation.
APP: application specific functions
它們完成接收、分析、產生和發送控制報文的功能。
RTCP可以說是控制交通的協議,它提供了:
1)SR寄件者報告分組:用來使發送端周期的向所有接收端用多播方式進行報告。內容包括:
該RTP流的SSRC;該RTP流中最新產生的RTP分組的時間戳記和絕對時鐘時間(或稱牆上時間:wall clock time);該RTP流包含的分組數;該RTP流包含的位元組數。
絕對時鐘時間是必要的。因為RTP要求每一種媒體使用一個流。有了絕對時鐘時間就可以進行圖形和聲音的同步。
2)RR接收者報告分組:用來使接收端周期性的向所有的點用多播方式進行報告。內容包括
所接收到的RTP流的SSRC;該RTP流的分組丟失率;在該RTP流中的最後一個RTP分組的序號;分組到達時間間隔的抖動等。
發送RR分組有兩個目的。第一,可以使所有的接收端和發送端瞭解當前網路的狀態。
第二,可以使所有發送RTCP分組的網站自適應的調整自己發送RTCP分組的速率,RTCP分組的通訊量不超過網路中的資料分組的通訊量的5%,而接收端分組報告分組的通訊量又應小於所有RTCP分組的通訊量的75%。
3)SDES源描述分組:給出會話中參與者的描述,包括參與者的規範名(CNAME)
4)BYE分組:關閉一個資料流。
5)APP分組:應用程式能夠定義新的分組類型。
6、即時資料流通訊協定RTSP協議
1) RTSP協議
RTSP(Real Time Streaming Protocol)協議定義了如何有效地通過IP網路傳送多媒體資料,是一種用戶端到伺服器端的多媒體描述協議,詳見RFC2326。
RTSP是一個非常類似於HTTP的應用程式層協議。每個發布和媒體檔案也被定義為RTSP UPL。而媒體檔案的發布資訊被書寫進一個被稱為媒體發布檔案裡,這個檔案在後面會說明。在這個檔案說明的包括編碼器,語言,RTSP ULS,地址,連接埠號碼以幾其它參數。這個發布檔案可以在用戶端通過EMAIL形式或者HTTP形式獲得。
2) RTSP協議的特點:
RTSP是應用程式層協議,與RTP、RSVP一起設計來完全流式服務。
RTSP有很大的靈活性,可被用在多種作業系統上,它允許用戶端和不同廠商的服務平台互動。
RTSP在體繫結構上位於RTP和RTCP之上,它使用RTP完成資料轉送。它將流式媒體資料可控制的通過網路傳輸到用戶端。
RTSP可以保持使用者電腦與傳輸串流商務服務器之間的固定串連,用於觀看者與單播(Unicast)伺服器通訊並且還允許雙向通訊,觀看者可以同流媒體伺服器通訊.
提供類似“VCR”形式的例如暫停、快進、倒轉、跳轉等操作。操作的資來源物件可以是直播流也可以是儲存片段。
RTSP是設還提供了選擇傳輸通道,如使用UDP還是多點UDP或是TCP。
7、資源預留協議RSVP
1) RSVP協議:
RSVP (Resorce reSerVation Protocol) 資源預留協議並不是一個路由協議,而是一種IP網路中的信令協議,它與路由協議相結合來實現對網路傳輸服務品質(QoS)的控制。RSVP是為支援網際網路綜合業務而提出的。這是解決IP通訊中QoS(服務品質)問題的一種技術,用來保證點端到端的傳輸頻寬。
2) RSVP協議是如何工作:
RSVP使用控制資料報,這些資料報在向特定地址傳輸時包括了需要由路由器檢查(有些時候需要更新)的資訊,如果路由器需要決定是不是要檢查資料報的內容的時候對上層資料內容進行文法分析。這種分析的代價可不小。現在的情況是,網路終端利用它向網路申請資源,在這種表明“申請” 的訊號中,包含著如下的資訊:業務的種類? 使用者類型? 什麼時間? 需要多大頻寬? 其他參考資訊? 網路在接收到上類資訊後,會根據實際情況為此次串連分配一個優先代碼,使用者利用優先代碼進行資訊傳遞時,網路不需重新對業務進行分析與判別,從另外一個角度來說,利用RSVP 能從一定程度上減少網路對資訊處理的時延,提高網路節點的工作效率,改善資訊傳輸的服務品質(QoS)。即時應用用RSVP是為了在傳輸路徑中保持必要的資源以保證請求能確保到達。
RSVP是IP路由器為提供更好的服務品質向前邁進的具有深刻意義的一步。傳統上IP路由器只負責分組轉寄,通過路由協議知道鄰近路由器的地址。而RSVP則類似於電路交換系統的信令協議一樣,為一個資料流通知其所經過的每個節點(IP路由器),與端點協商為此資料流提供品質保證。
8、結束語
在前面我們討論了一些與即時資料傳輸相關的四個協議:
1)RTP是即時資料傳輸協議。它提供時間標誌,序號以及其它能夠保證在即時資料傳輸時處理時間的方法;它是依靠RVSP保證服務品質標準的。
2)RTCP是RTP的控制部分,是用來保證服務品質和成員管理的。
3)RTSP是開始和指引流媒體資料從流媒體伺服器。它又可叫做"網上錄影機控制協議".它是提供遠端控制,具體的資料轉送是交給RTP的。
4)RSVP是Internet上的資源預訂協議,使用RSVP預留一部分網路資源(即頻寬),能在一定程度上為流媒體的傳輸提供QoS。就像TCP的重發和滑動視窗等都是
【轉載】 IP即時傳輸協議RTP/RTCP詳解