網路協議之rtp h264的rtp網路協議實現

2022-02-02 23:53:19 字數 1218 閱讀 6730

一方面,如果每個ip分組都填滿1500位元組,那麼協議頭的開銷為2.7%,如果rtp載荷的長度為730位元組,協議頭的開銷仍達到5.3%,而假設 rtp載荷的長度不到40位元組,那麼將有50%的開銷用於頭部,這將對網路造成嚴重資源浪費。另一方面,如果將要封裝進rtp載荷的資料大於1460字 節,並且我們沒有在應用層資料裝載迸rtp包之前進行載荷分割,將會產生大於mtu的包。在ip層其將會被分割成幾個小於mtu尺寸的包, 這樣將會無法檢測資料是否丟失。因為ip和udp協議都沒有提供分組到達的檢測,如果分割後第乙個包成功接收而後續的包丟失,由於只有第乙個包中包含有完 整的rtp頭資訊,而rtp頭中沒有關於載荷長度的標識,因此判斷不出該rtp包是否有分割丟失,只能認為完整的接收了。並且在ip層的分割無法在應用層 實現保護從而降低了非平等包含方案的效果。由於udp資料分組小於64k位元組,而且乙個片的長度對某些應用場合來說有點太小,所以應用層的打包也是rtp打包機制的乙個必要部分。最新的rfc3984標準中提供了針對h.246**流的rtp負載格式,主要有三種: 單個nal單元分組、聚合分組、片分組。

nal單元單一打包

將乙個nal單元封裝進乙個包中,也就是說rtp負載中只包含乙個nal單元,nal頭部兼作rtp頭部。rtp頭部型別即nal單元型別1-23,如下圖所示:

rtcp包的封裝設計

rtcp報文封裝在udp資料報中進行傳輸,傳送時使用比它所屬的rtp流的埠號大1的協議號(rtp使用偶數號,rtcp使用奇數號)。以下是rtcp頭部資料結構:

Linux網路程式設計網路基礎之網路 協議的概念

計算機聯網的目的 資訊資源 硬體資源 軟體資源以及通訊資源的共享,建立人與人之間更廣泛的溝通渠 協議 網路上的計算機之間又是如何交換資訊的呢?就像我們說話用某種語言一樣,在網路上的各台計算機之間也有一種語言,這就是 網路協議,3 不同的計算機之間必須使用相同的網路協議才能進行通訊。網路協議是網路上所...

十七 網路協議之Http協議的應用初體驗

下面的示例程式是http協議使用httpclient介面的應用示例,其用意是將請求裡的資料封裝後,通過http協議提交請求。先寫下了備用。public class invokeexternal 將引數放入namevaluepair陣列 postmethod.setrequestbody parame...

網路協議之資料的封裝和解封裝

當我們通過軟體傳送乙個請求的時候 往往是如下格式 方法 url http協議頭 在七層網路中是如何封裝傳送的呢?如下圖以hello代替軟體的http資料報 在實際資料傳輸中每一層都有相應的協議,但是其中的表示層和會話層的協議 傳輸資料的時候不會對資料做任何操作 於是將這兩層合併到應用層,也稱為tcp...