好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

RTP RTCP协议简介.docx

11页
  • 卖家[上传人]:1980****057
  • 文档编号:273471434
  • 上传时间:2022-04-06
  • 文档格式:DOCX
  • 文档大小:16.71KB
  • / 11 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • RTP RTCP协议简介 即時傳輸協議RTP(Realtime Transport Protocol):是針對Internet上多媒體資料 流程的一個傳輸協定, 由IETF(Internet工程任務組)作為RFC1889發佈RTP被定義為在一對一或一對多的傳輸情況下工作,其目的是提供時間資訊和實現流同步RTP的典型應用建立在UDP上,但也可以在TCP或ATM等其他協議之上工作RTP本身只保證即時資料的傳輸,並不能為按順序傳送資料包提供可靠的傳送機制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務 即時傳輸控制協議RTCP(Realtime Transport Control Protocol):負責管理傳輸品 質在當前應用進程之間交換控制資訊在RTP會話期間,各參與者週期性地傳送RTCP包,包中含有已發送的資料包的數量、丟失的資料包的數量等統計資料, 因此,伺服器可以利用這些資訊動態地改變傳輸速率,甚至改變有效載荷類型RTP和RTCP配合使用,能以有效的回饋和最小的開銷使傳輸效率最佳化,故特 別適合傳送網上的即時資料 RTCP主要有4個功能: (1)用回饋資訊的方法來提供分配資料的傳送品質,這種回饋可以用來進行流量的擁塞控制,也可以用來監視網路和用來診斷網路中的問題; (2)為RTP源提供一個永久性的CNAME(規範性名字)的傳送層標誌,因為在發現衝突或者程式更新重啟時SSRC(同步源標識)會變,需要一個運作痕跡,在一組相關的會話中接收方也要用CNAME來從一個指定的與會者得到相聯繫的資料流程(如音頻和視頻); (3)根據與會者的數量來調整RTCP包的發送率; (4)傳送會話控制資訊,如可在用戶介面顯示與會者的標識,這是可選功能。

      4.2 RTP/RTCP工作過程 工作時,RTP協議從上層接收流媒體資訊碼流(如H.263),裝配成RTP資料包發送給下層,下層協定提供RTP和RTCP的分流如在UDP中,RTP使用一個偶 數號埠,則相應的RTCP使用其後的奇數號埠RTP資料包沒有長度限制,它的 最大包長只受下層協議的限制 4.3 伺服器的演算法 伺服器軟體模型主要有兩種,即併發伺服器和迴圈伺服器迴圈伺服器(Iterative Server)是指在一個時刻只處理一個請求的伺服器併發伺服器(Concurrent Server)是指在一個時刻可以處理多個請求的伺服器事實上,多數伺服器沒有用於同時處理多個請求的冗餘設備,而是提供一種表面上的併發性,方法是依靠執行多個線程,每個線程處理一個請求,從客戶的角度看,伺服器就像在併發地與多個客戶通信 由於流媒體服務時間的不定性和資料交互即時性的請求,流媒體伺服器一般採用併發伺服器演算法本文構建了一個基本的流媒體伺服器,能夠同時響應多個用戶的請求,把本地硬碟流媒體檔或即時資料流(H.263格式)發送給用戶在應用中,把客戶分為請求即時資料的即時客戶和請求檔資料的檔客戶兩類。

      主要演算法為: (1)打開設備,分配資源當設備準備好時,創建一個RTP即時服務線程和一個RTCP即時服務線程 (2)創建一個UDP套接字並將其綁定到所提供服務的位址之上 (3)反復調用接收模組,接收來自客戶的RTCP報告,根據其類型做出回應對新即時客戶的請求,把客戶位址添加到即時服務的客戶列表中,對新檔客戶的請求,則創建一個新RTP檔服務線程和一個新RTCP檔服務線程;對已經在服務中的客戶則根據RTCP報告的內容調整服務 RTP即時服務線程1:初始化客戶列表和RTP首部 RTP即時服務線程2:從設備讀取媒體資料,把資料發送給即時服務列表中的客戶 RTP即時服務線程3:更新RTP首部和統計資料 RTP即時服務線程4:計算延時,重複第二步 RTCP即時服務線程1:初始化RTCP首部 RTCP即時服務線程2:發送發送方報告給即時服務列表中的客戶 RTCP即時服務線程3:計算延時,重複第二步 RTP檔服務線程1:初始化RTP首部 RTP檔服務線程2.:從檔讀取媒體資料,把資料發送給客戶 RTP檔服務線程3:更新已發送資料的統計資訊,為生成發送方報告做準備。

      RTP檔服務線程4:計算延時,調整發送速度,正常情況下開始重複第二步 RTCP檔服務線程1:初始化RTCP首部,發送一個源描述(SDES)報文給客戶 RTCP檔服務線程2:根據已發送資料的統計資訊生成發送方報告,發送給客戶 RTCP檔服務線程3:計算延時,正常情況下開始重複第一步 5 流媒體伺服器實現中應注意的問題 5.1 會話和流的兩級分用 一個RTP會話(Session)包括傳給某個指定目的地對(Destination Pair)的所有通信量,發送方可能包括多個而從同一個同步源發出的RTP分組序列稱為流(Stream), 一個RTP會話可能包含多個RTP流一個RTP分組在伺服器端發送出去的時候 總是要指定屬於哪個會話和流,在接收時也需要進行兩級分用,即會話分用和流分用只有當RTP使用同步源標識(SSRC)和分組類型(PTYPE)把同一個流中的分 組組合起來,才能夠使用序列號(Sequence Number)和時間戳(Timestamp)對分組 進行排序和正確重播 5.2 多線程的管理 併發伺服器模式要求用多線程來提供服務,所以多線程的管理十分重要。

      在本文構建的伺服器中,不同客戶的請求和回饋都由伺服器的主線程處理,由於即時資料的獨有性,不同即時客戶可以共用一個RTP即時服務線程和一個RTCP即時服務線程,這樣可以大大減小伺服器的負擔,而每個檔客戶由於請求的檔不同,相應地對速度和開始時間的要求都可能不同,所以需要有自己獨有的RTP檔服務線程和RTCP檔服務線程 RTP服務線程負責把即時資料流發送給客戶,RTCP服務線程根據RTP線程的統計資料,產生發送方報告給客戶RTP線程和RTCP線程之間通過一段共用記憶 體交互統計資料,對共用記憶體必須設置互斥體進行保護,防止出現錯誤讀寫在這種方式下,伺服器可以根據每個用戶的不同請求和具體情況方便地提供不同的服務 5.3 時間戳的處理 時間戳欄位是RTP首部中說明資料包時間的同步資訊,是資料能以正確的時間順序恢復的關鍵時間戳的值給出了分組中資料的第一個位元組的採樣時間(Sampling Instant),要求發送方時間戳的時鐘是連續、單調增長的,即使在沒有資料登錄或發送資料時也是如此在靜默時,發送方不必發送資料,保持時間戳的增長,在接收端,由於接收到的資料分組的序號沒有丟失,就知道沒有發生資料丟失,而且只要比較前後分組的時間戳的差異,就可以確定輸出的時間間隔。

      RTP規定一次會話的初始時間戳必須隨機選擇,但協議沒有規定時間戳的單位,也沒有規定該值的精確解釋,而是由負載類型來確定時鐘的顆粒,這樣各種應用類型可以根據需要選擇合適的輸出計時精度 在RTP傳輸音頻資料時,一般選定邏輯時間戳速率與採樣速率相同,但是在傳輸視頻資料時,必須使時間戳速率大於每幀的一個滴答如果資料是在同一時刻採樣的,協議標準還允許多個分組具有相同的時間戳值 5.4 媒體資料發送速度的控制 由於RTP協議沒有規定RTP分組的長度和發送資料的速度,因而需要根據具體情況調整伺服器端發送媒體資料的速度對來自設備的即時資料可以採取等時間間隔訪問設備緩衝區,在有新資料登錄時發送資料的方式,時間戳的設置相對容易對已經錄製好的本地硬碟上的媒體檔,以H.263格式的檔為例,由於檔本身不包含幀率資訊,所以需要知道錄製時的幀率或者設置一個初始值,在發送資料的時候找出發送資料中的幀數目,根據幀率和預置值來計算時延,以適當的速度發送資料並設置時間戳資訊 5.5 多種流同步 RTCP的一個關鍵作用就是能讓接收方同步多個RTP流,例如:當音頻與視頻一起傳輸的時候,由於編碼的不同,RTP使用兩個流分別進行傳輸,這樣兩個流的時間戳以不同的速率運行,接收方必須同步兩個流,以保證聲音與影像的一致。

      為能進行流同步,RTCP要求發送方給每個傳送一個唯一的標識資料源的規範名(Canonical Name),儘管由一個資料源發出的不同的流具有不同的同步源標識 (SSRC),但具有相同的規範名,這樣接收方就知道哪些流是有關聯的而發送方報告報文所包含的資訊可被接收方用於協調兩個流中的時間戳值發送方報告中含有一個以網路時間協定NTP(Network Time Protocol)格式表示的絕對時間值,接著RTCP報告中給出一個RTP時間戳值,產生該值的時鐘就是產生RTP分組中的TimeStamp欄位的那個時鐘由於發送方發出的所有流和發送方報告都使用同一個絕對時鐘,接收方就可以比較來自同一資料源的兩個流的絕對時間,從而確定如何將一個流中的時間戳值映射為另一個流中的時間戳值 6 結論 流媒體技術的應用日益廣泛,對流媒體技術的研究具有很大的實際意義,本文通過對RTP/RTCP協議的研究,分析流媒體伺服器的一般功能和結構,給出構建一個基本的流媒體伺服器的實現方案,實驗證明可以同時滿足多個即時和檔客戶的要求,並已經應用于一個遠端監控系統中 Application (Layer 7) This layer supports application and end-user processes. Communication partners are identified, quality of service is identified, user authentication and privacy are considered, and any constraints on data syntax are identified. Everything at this layer is application-specific. This layer provides application services for file transfers, e-mail, and other network software services. Telnet and FTP are applications that exist entirely in the application level. Tiered application architectures are part of this layer. Presentation (Layer 6) This layer provides independence from differences in data representation (e.g., encryption) by translating from application to network format, and vice versa. The presentation layer works to transform data into the form that the application layer can accept. This layer forma。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.