官术网_书友最值得收藏!

3.2.4 提高網絡質量

接下來,我們來看一下如何提高網絡質量。提高網絡質量是有默認前提條件的,即網絡沒有發生擁塞時才能提高網絡質量,否則提高網絡質量無從談起。關于網絡防止擁塞的內容,將在第10章中詳細介紹。

在網絡上,有哪些問題會對網絡質量產生影響呢?其實就是三點:丟包、延遲、抖動。下面詳細介紹一下這三種情況:

·丟包,是網絡傳輸過程中網絡質量好壞的最重要標志,對網絡的影響是最大的。優質的網絡丟包率不超過2%。對于WebRTC而言,大于2%且小于10%的丟包率是正常的網絡。

·延遲,也是網絡質量的重要指標,但與丟包相比,其對網絡的影響要少一些。如果在兩端之間數據傳輸的延遲持續增大,說明網絡線路很可能發生了擁塞。

·抖動,對網絡質量的影響是最小的。一般情況下,網絡都會發生一些抖動,如果抖動很小的話,可以通過循環隊列將其消除;如果抖動過大,則將亂序包當作丟包處理。在WebRTC中,抖動時長不能超過10ms,也就是說,如果有包亂序了,最多等待該亂序包10ms,超過10ms就認為該包丟了(即使在第11ms時,亂序的包來了,也仍然認為它丟失了)。

下面我們來看一下有哪些方法可以解決上述問題(丟包、延遲、抖動)。這里總結了5種方法,分別是NACK/RTX、FEC前向糾錯、JitterBufer防抖動、NetEQ、擁塞控制。

·NACK/RTX,NACK是RTCP中的一種消息類型,由接收端向發送端報告一段時間內有哪些包丟失了;RTX是指發送端重傳丟失包,并使用新的SSRC(將傳輸的音視頻包與重傳包進行區分)。

·FEC前向糾錯,使用異或操作傳輸數據,以便在丟包時可以通過這種機制恢復丟失的包。FEC特別適合隨機少量丟包的場景。

·JitterBufer,用于防抖動,可以將抖動較小的亂序包恢復成有序包。

·NetEQ,專用于音頻控制,里面包括了JitterBufer。除此之外,它還可以利用音頻的變速不變調機制將積攢的音頻數據快速播放或將不足的音頻拉長播放,以實現音頻的防抖動。

·擁塞控制,這部分內容很豐富,將在第10章中詳細介紹。

主站蜘蛛池模板: 尼玛县| 东明县| 汝州市| 襄樊市| 洪湖市| 伊春市| 新龙县| 鲁甸县| 六盘水市| 白城市| 黄冈市| 岳普湖县| 牡丹江市| 邵阳县| 灵寿县| 五华县| 衡水市| 灵川县| 玉田县| 许昌县| 巴南区| 嫩江县| 镇雄县| 乡宁县| 西吉县| 双牌县| 商水县| 蛟河市| 武平县| 宁夏| 石楼县| 华坪县| 黄梅县| 洞头县| 平遥县| 松阳县| 西贡区| 鲁甸县| 鹤岗市| 资阳市| 长寿区|