轉載--
RTP(Real Time Protocol):
RTP是在UDP之上的Protocol,當要傳送資料時,傳送端就會將media封包在一個RTP packet裡面,然後再把packet封包在一個UDP的segment中,再傳到接收端。而RTP只會存放media的資料或是內容,並不會做其他的控制,也就是說,RTP不會提供任何的技巧去確保資料遞送的時間或是提供其他服務品質的保證。RTP主要是在end system上面執行的,另外RTP packet也有提供三種不同的功能(因為在UDP之上,所以可以擴大UDP的功能):
(1)有效負荷(payload)類型的辨別(payload type identification)
(2)數據包(packet)連續編號(packet sequence numbering)
(3)timestamping RTP(Real Time Protocol):
RTP Packet Header的欄位:
RTP標頭的四個主要欄位分別為承載資料類型欄位(payload type)、序號欄位(sequence number)、時戳欄位(timestamp)、和來源端識別碼欄位(source identifier)。
Payload type |
Sequence number |
Timestamp |
Synchronization |
Miscellaneous |
- 負載類型(payload type):此欄位的長度為7個位元,指定封包資料的編碼方式。
- 序號欄位(Sequence number filed):此欄位的長度為16個位元,每傳送一個rtp封包,序號的數值就會加1,而接收端可以用它來偵測封包遺失和恢復封包順序。
- 時戳欄位(Timestamp):此欄位長度為32個位元。它代表對rtp資料封包第一個位元組取樣的瞬間時間。
- 同步來源端識別碼(Synchronization source indentifier,SSRC):此欄位長度為32個位元,它可以識別RTP串流的來源端。
- RTP 最常被使用在 Voice over IP ,屬於獨立的通訊協定,通常建立在 UDP 之上提供即時資料傳輸的點對點 (end-to-end) 傳送服務。
-
RTP 的網路功能:
• Unicast:
傳送資料時,資料會被拷貝成 N 份並且傳給 N 個目的端。
• Multicast:
傳送端只送一次,接著由 network 負責把資料分送給多個位址。
-
RTP enable us:
• 定義送出資料的資料型態。
• 決定封包的序列。
• 對不同來源的 media stream 進行同步化。
- RTP data packets are not guaranteed to arrive at all. Receiver must reconstruct the sender's packet
sequence and detect lost packets using the information provided in the packer header.
-
RTP data-packet header format:
-
Payload Type (PT):7 bits
紀錄後面資料用哪種 Codec , receiver 端找出相對應的 decoder 解碼出來。
常用 types:
Payload Type
Codec
0
PCM μ -Law
8
PCM-A Law
9
G..722 audio codec
4
G..723 audio codec
15
G..728 audio codec
18
G..729 audio codec
34
G..763 audio codec
31
G..761 audio codec
- Sequence Number:16 bits:
A packet number 用來標示 packet 在一連串資料中的位置 ( 順序 )。
- Timestamp:32 bits:
讓 receiver 端知道在正確的時間將資料播放出來 。
由上圖可知,如果只有 Sequence Number ,並不能完整照順序的將 data 播放出來,因為如果data中間有一段是沒有資料的,只有 Sequence Number 的話會造成錯誤,需搭配上讓它知道在哪個時間將 data 正確播放出來,如此我們才能播放出正確無誤的資訊。
留言列表