實時傳輸協(xié)議(RTP),實時傳輸協(xié)議(RTP)是什么意思
實時傳輸協(xié)議(RTP),實時傳輸協(xié)議(RTP)是什么意思
RTP簡介
RTP是一種提供端對端傳輸服務的實時傳輸協(xié)議,用來支持在單目標廣播和多目標廣播網(wǎng)絡服務中傳輸實時數(shù)據(jù),而實時數(shù)據(jù)的傳輸則由RTCP協(xié)議來監(jiān)視和控制。
RTP定義在RFC
使用RTP協(xié)議的應用程序運行在RTP之上,而執(zhí)行RTP的程序運行在UDP的上層,目的是為了使用UDP的端口號和檢查和。如圖1所示,RTP可以看成是傳輸層的子層。由多媒體應用程序生成的聲音和電視數(shù)據(jù)塊被封裝在RTP信息包中,每個RTP信息包被封裝在UDP消息段中,然后再封裝在IP數(shù)據(jù)包中。
信息包的結構包含廣泛用于多媒體的若干個域,包括聲音點播(audio-on-demand)、影視點播(video on demand)、因特網(wǎng)電話(Internet telephony)和電視會議(videoconferencing)。RTP的規(guī)格沒有對聲音和電視的壓縮格式制定標準,它可以被用來傳輸普通格式的文件。例如,WAV或者GSM(Global System for Mobile communications)格式的聲音、MPEG-1和MPEG-2的電視,也可以用來傳輸專有格式存儲的聲音和電視文件。
從應用開發(fā)人員的角度來看,可把RTP執(zhí)行程序看成是應用程序的一部分,因為開發(fā)人員必需把RTP集成到應用程序中。在發(fā)送端,開發(fā)人員必需把執(zhí)行RTP協(xié)議的程序寫入到創(chuàng)建RTP信息包的應用程序中,然后應用程序把RTP信息包發(fā)送到UDP的套接接口(socket interface),如圖2所示;同樣,在接收端,RTP信息包通過UDP套接接口輸入到應用程序,因此開發(fā)人員必需把執(zhí)行RTP協(xié)議的程序寫入到從RTP信息包中抽出媒體數(shù)據(jù)的應用程序。
現(xiàn)以用RTP傳輸聲音為例來說明它的工作過程。假設音源的聲音是64 kb/s的PCM編碼聲音,并假設應用程序取20毫秒的編碼數(shù)據(jù)為一個數(shù)據(jù)塊(chunk),即在一個數(shù)據(jù)塊中有160個字節(jié)的聲音數(shù)據(jù)。應用程序需要為這塊聲音數(shù)據(jù)添加RTP標題生成RTP信息包,這個標題包括聲音數(shù)據(jù)的類型、順序號和時間戳。然后RTP信息包被送到UDP套接接口,在那里再被封裝在UDP信息包中。在接收端,應用程序從套接接口處接收RTP信息包,并從RTP信息包中抽出聲音數(shù)據(jù)塊,然后使用RTP信息包的標題域中的信息正確地譯碼和播放聲音。
如果應用程序不使用專有的方案來提供有效載荷類型(payload type)、順序號或者時間戳,而是使用標準的RTP協(xié)議,應用程序就更容易與其他的網(wǎng)絡應用程序配合運行,這是大家都希望的事情。例如,如果有兩個不同的公司都在開發(fā)因特網(wǎng)電話軟件,他們都把RTP合并到他們的產品中,這樣就有希望:使用不同公司電話軟件的用戶之間能夠進行通信。
這里需要強調的是,RTP本身不提供任何機制來確保把數(shù)據(jù)及時遞送到接收端或者確保其他的服務質量,它也不擔保在遞送過程中不丟失信息包或者防止信息包的次序不被打亂。的確,RTP的封裝只是在系統(tǒng)端才能看到,中間的路由器并不區(qū)分那個IP數(shù)據(jù)報是運載RTP信息包的。
RTP允許給每個媒體源分配一個單獨的RTP信息包流,例如,攝像機或者麥克風。例如,有兩個團體參與的電視會議,這就可能打開4個信息包流:兩臺攝像機傳送電視流和兩個麥克風傳送聲音流。然而,許多流行的編碼技術,包括MPEG-1和MPEG-2在編碼過程中都把聲音和電視圖像捆綁在一起以形成單一的數(shù)據(jù)流,一個方向就生成一個RTP信息包流。
RTP信息包沒有被限制只可應用于單目標廣播,它們也可以在一對多(one-to-many)的多目標廣播樹或者在多對多(many-to-many)的多目標廣播樹上傳送。例如,多對多的多目標廣播,在這種應用場合下,所有發(fā)送端通常都把他們的RTP信息包流發(fā)送到具有相同多目標廣播地址的多目標廣播樹上。
RTP信息包標題域
RTP標題由4個信息包標題域和其他域組成:有效載荷類型(payload type)域,順序號(sequence number)域,時間戳(timestamp)域和同步源標識符(Synchronization Source Identifier)域等。RTP信息包的標題域的結構如下圖所示:
1. 有效載荷類型
RTP信息包中的有效載荷域(Payload Type Field)的長度為7位,因此RTP可支持128種不同的有效載荷類型。對于聲音流,這個域用來指示聲音使用的編碼類型,例如PCM、自適應增量調制或線性預測編碼等等。如果發(fā)送端在會話或者廣播的中途決定改變編碼方法,發(fā)送端可通過這個域來通知接收端。表1列出了目前RTP所能支持的聲音有效載荷類型。
表1 目前RTP所能支持的聲音有效載荷類型
對電視流,有效載荷類型可以用來指示電視編碼的類型,例如motion JPEG, MPEG-1,MPEG-2或者H.231等等。發(fā)送端也可以在會話或者期間隨時改變電視的編碼方法。表16-02列出了目前RTP所能支持的某些電視有效載荷類型。
表2 目前RTP所能支持的聲音有效載荷類型
2. 順序號
順序號(Sequence Number Field)域的長度為16位。每發(fā)送一個RTP信息包順序號就加1,接收端可以用它來檢查信息包是否有丟失以及按順序號處理信息包。例如,接收端的應用程序接收到一個RTP信息包流,這個RTP信息包在順序號86和89之間有一個間隔,接收端就知道信息包87和88已經丟失,并且采取措施來處理丟失的數(shù)據(jù)。
3. 時間戳
時間戳(Timestamp)域的長度為32字節(jié)。它反映RTP數(shù)據(jù)信息包中第一個字節(jié)的采樣時刻(時間)。接收端可以利用這個時間戳來去除由網(wǎng)絡引起的信息包的抖動,并且在接收端為播放提供同步功能。
4. 同步源標識符
同步源標識符(Synchronization Source Identifier,SSRC)域的長度為32位。它用來標識RTP信息包流的起源,在RTP會話或者期間的每個信息包流都有一個清楚的SSRC。SSRC不是發(fā)送端的IP地址,而是在新的信息包流開始時源端隨機分配的一個號碼。
非常好我支持^.^
(6) 100%
不好我反對
(0) 0%
相關閱讀:
- [電子說] 用于監(jiān)測RTP快速退火爐氧含量的高溫氧氣分析儀 2023-10-18
- [電子說] rtp流廣播網(wǎng)絡有源吸頂喇叭SIP-7043介紹 2023-09-26
- [電子說] 基于GPU的多波束相控陣雷達系統(tǒng)介紹 2023-08-04
- [電子說] 使用Keil5運行ARTPI blink led例程 2023-08-03
- [接口/總線/驅動] ARTPI測試PIN所有接口 2023-08-02
- [電子說] 請問ARTPI是怎樣使用軟件I2C讀取mpu6050的? 2023-08-02
- [電子說] 西門子200smartPLC定時器的用法 2023-07-24
- [電子說] 西門子200smartPLC讀取絕對值編碼器的數(shù)據(jù) 2023-07-20
( 發(fā)表人:admin )