日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

服務質量分析模型有什么 服務質量的五個標準( 四 )


6.5 NACK適合使用的場景

服務質量分析模型有什么 服務質量的五個標準


當然,通過NACK重傳,會產生一定的延時,該延時包括:等待發(fā)送NACK的時間(10或20ms),NACK經過網絡的時延以及RTP的網絡時延和重傳RTP包的網絡時延,即1.5RTT+10或20ms 。通過這個公式我們可以知道,如果RTT時延比較大,比如200ms,那么1.5RTT就是300ms 。通過前面講述的實時傳輸延時指標我們可以知道,端到端實時傳輸的時延需要控制在500ms之內,如果僅數據的網絡傳輸就占了300ms,那數據再經過采集、編碼、解碼、渲染等流程,這些處理時間加在一起很有可能就超過500ms 。
所以可以得出結論,丟包重傳僅適用于網絡傳輸時延比較小的情況,如果RTT比較大時,就不適合使用丟包重傳來保障網絡質量了 。
6.6 FEC

服務質量分析模型有什么 服務質量的五個標準


FEC的作用是通過冗余數據解決丟包 。實際上,它就是一個異或操作 。如圖所示,假設傳輸的數據是Data1和Data2,這兩個數據如果在傳輸的過程中沒有FEC進行保護,其中一個數據丟失了,那只能通過NACK重新找回 。那么,能否在傳輸過程中加一些冗余數據,以保證接收時,當某一個數據丟失后,不經過重傳就可以將丟失的包找回來呢?這就是FEC 。
在圖中我們可以看到,Data1和Data2同時發(fā)送到對端,在發(fā)送時對它們做一下異或操作,即Data1的最后一位0與Data2的最后一位0異或為0,Data1的倒數第二位1與 Data2的倒數第二位1異或為0,依次類推,最后就產生了冗余數據R,同時將三個包從一端傳輸到另一端 。傳輸過程中,如果Data1丟失,通過Data2和冗余包R就可以將Data1找回來 。找回包的算法也是異或操作,即在接收端將Data2的每一位與冗余包中的相同位進行異或操作就算出了Data1 。這就保證了不用重新請求,就將丟失包找回的作用 。
而且異或具有傳遞性,A、B、C三個包可以同時異或得到D,如果其中任意一個包丟失,可以通過D和其它包找回丟失的包 。
6.7 ULPFEC

服務質量分析模型有什么 服務質量的五個標準


對于WebRTC來說,它默認使用的是ULPFEC 。其原理是,將要傳輸的數據包先進行分組,如將三個包分為一組,然后為這一組包產生一個冗余包,如果這一組中某個包丟失了,就可以通過冗余包和其它包的異或操作將其找回 。從圖中第一行可以看到1和2到了,3丟了,通過R1可以找回3,第三行同樣可以找回9 。其缺點是,如果連續(xù)的兩個包都丟失了,這種算法就失效了,比如第二行4和5丟失后,通過6和R2無法找回它們 。
6.8 FlexFEC

服務質量分析模型有什么 服務質量的五個標準


于是就有了改進的FlexFEC,它做了雙向冗余處理,不僅橫向做了冗余,而且縱向也做了冗余 。
此時,當4和5同時丟失時,通過1、7和C1可以找到4,2、8和C2可以找到5,這樣就可以找回連續(xù)的兩個丟包 。當然它也有弊端,其弊端是無法處理批量的連續(xù)丟包,例如連續(xù)丟失了10個包,F(xiàn)lexFEC對這種情況也無能為力 。
以上就是WebRTC對于丟包的解決方法,通過“NACK+FEC”防止丟包 。
6.9 如何解決抖動和亂序

服務質量分析模型有什么 服務質量的五個標準


下面來說說抖動和亂序 。抖動的意思是,一會兒來了很多包,一會兒又一個沒有,包是一波一波的來,包到達的時間很不平均;而亂序指的是先發(fā)的包后到了,后發(fā)的包先到了 。
WebRTC處理抖動和亂序使用的是JitterBuffer和NetEQ 。JitterBuffer用于處理視頻包,NetEQ用于處理音頻包 。它們的原理大致相同(NetEQ更為復雜一些),都是通過一個隊列(緩存區(qū))對接收到的數據做下緩沖,然后再從隊列的另一端將數據包一個個均勻的取出,這樣取出的數據就是平滑的了 。

推薦閱讀