RTP協議詳解

1)RTP是實時數據傳輸協議。它提供時間標誌,序列號以及其它能夠保證在實時數據傳輸時處理時間的方法;它是依靠RVSP保證服務質量標準的。

2)RTCP是RTP的控制部分,是用來保證服務質量和成員管理的。

3)RTSP是開始和指引流媒體數據從流媒體服務器。它又可叫做"網上錄像機控制協議".它是提供遠程的控制,具體的數據傳輸是交給RTP的。

2.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數據報進行傳輸。

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。

 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章