1. 程式人生 > >視訊直播中抖動和延遲的區別

視訊直播中抖動和延遲的區別

作者 / ALEXANDREA MELLEN, BALÁZS KREITH

翻譯 / 小極狗

在視訊直播技術中,延遲和抖動是相互關聯的兩個概念,但它們並不相同。延遲是網路傳輸中的一個重要指標,它由四個關鍵部分組成:處理延遲、排隊延遲、傳輸延遲和傳播延遲。延遲會影響使用者體驗,同時可能會因為多種因素而發生變化。而抖動是基於延遲產生的——具體地說,它是延遲時間忽長忽短變化的表現形式。抖動是兩個資料包之間延遲時間的差異,通常會導致資料包丟失和網路擁塞。雖然延遲和抖動有一定的共同點和關聯性,但它們並不相同。

什麼是延遲?

延遲是網路傳輸中的一個重要指標,它測量了資料從一個端點傳輸到另一個端點所需的時間。在網路傳輸中,延遲通常是以毫秒為單位的,並且會因為多種因素而發生變化,包括端點的位置、資料包的大小和流量大小。

延遲(delay)和延時(latency)有何區別?

延遲和延時本質上是緊密聯絡的,有時甚至可以互換使用。然而,它們並不總是相同的。延遲(delay)是資料從一個端點傳輸到另一個端點所需的時間。然而,延時(latency)可能是以下兩種情況之一。

有時,延時(latency)會被認為是資料包從一個端點傳輸到另一個端點的時間,與單向延遲(delay)相同。

更常見的情況是,延時(latency)表示往返時間。往返時間包含了傳送資料包所需的時間,以及它返回的時間。但並不包括在目的地處理資料包所花費的時間。

通過網路監控工具,可以獲取在特定網路中資料往返的準確時間(延時latency)。具體方法是,通過跟蹤兩個時間點,一個是從傳送端傳送資料包的時間點,另一個是傳送端獲得接收端返回的確認結果的時間點,然後通過計算兩者的時間差異得到準確的往返時間(延時latency)。但是,兩個端點之間的(單向)延遲(delay)是很難確定的,因為在傳送端並沒有資料包到達接收端的時間資訊。

導致延遲的原因?

延遲可以理解為四個關鍵延遲成分的集合:處理延遲、排隊延遲、傳輸延遲和傳播延遲。

1. 處理延遲是指系統對資料包報頭進行分析和確定資料包被髮送到哪裡去所要花費的時間。這很大程度上取決於路由表中的條目數量、系統中資料結構的執行以及硬體的實現。

2. 排隊延遲是指資料包從進入傳送佇列到被髮送之間經過的時間。這取決於流量大小、流量型別以及具體實現中採用什麼路由器佇列演算法。不同的演算法效果不一樣,有的可以根據系統引數調整延遲時間,或者對所有流量設定相同的延遲時間。

3. 傳輸延遲是指將包中的資料位傳入線路所需要的時間。根據資料包的大小和頻寬的不同而有所變化。但並不取決於傳輸線路的距離,因為它僅僅是指將包的資料位傳入線路的時間,而不是沿傳輸線路到達接收端點的時間。

4. 傳播延遲是指資料包的第一個位元位從傳送端到達接收端的時間。通常也被稱為距離的延遲,受資料傳輸距離和傳播速度的影響。

這些延遲組合在一起構成了網路中的總延遲。而往返時間則是指這些延遲的組合,加上資料包從傳送端到達接收端的時間,和傳送端接收到終端的返回資訊的時間。

延遲的影響是什麼?

延遲主要影響使用者體驗。在嚴格的音訊通話中,當延遲達到150毫秒,延遲會變得很明顯並影響使用者體驗。在嚴格的視訊通話中,延遲達到400毫秒就很容易被使用者感知。如果將音訊和視訊兩種通話的功能結合在一起,音訊和視訊的通話應該保持同步,並保證低於150毫秒的延遲以保障使用者體驗。然而,一般來說,保持儘可能低的延遲是很重要的。國際電信聯盟ITU建議網路延遲應該保持在100毫秒以下。

什麼是抖動?

在網路上連續傳輸的資料包,即使選擇相同的路徑可能也會有不同的延遲。這是由分組交換網路中兩個內在的關鍵原因造成的。首先,在路由器中資料包是被單獨逐個傳輸的。第二,網路裝置從佇列中接收資料包,因此不能保證相同的延遲時間。

每個資料包之間的這種延遲的差異被稱為抖動。對於實時通訊領域,像IP電話、視訊會議和遠端桌面分享基礎服務等,抖動是一個相當大的問題。網路中的許多因素都可能導致抖動,而每個網路的延遲時間也不盡相同。

抖動有什麼影響?

1. 資料包丟失- 當資料包到達時間不一致時,接收端點必須進行時間補償並嘗試糾錯。在某些情況下,接收端沒辦法進行合適的糾錯,導致資料包丟失。對終端使用者體驗來說,有多種表現形式。例如,如果一個使用者正在觀看視訊,而視訊突然出現馬賽克,這就是一個網路抖動的跡象。

2. 網路擁塞 - 網路擁塞發生在傳輸網路上。網路裝置在接受資料後,由於無法傳送同等數量的資料,導致資料包緩衝區過滿,就開始丟棄資料包。如果在網路中的端點沒有遇到網路擾動,那麼每個資料包都會到達。但是,如果端點的緩衝區滿了,資料包的到達時間就會越來越遲,從而導致抖動。這被稱為早期擁塞。通過監測抖動,可以觀察到早期擁塞。類似地,如果出現網路擁塞,那麼表明抖動也在迅速改變。

當網路裝置開始丟棄資料包,導致端點沒有接收到資料包時,就會發生擁塞。端點可能會請求丟包重傳,這會導致網路崩潰式的網路擁塞。

關於擁塞,需要注意的是,端點不會直接引起擁塞,同時也不會丟棄資料包。就像高速公路兩端的送貨方A和收貨方B,擁堵不是收貨方B造成的,因為它只是沒有足夠的停車位。擁堵是由送貨方A造成的,因為它不斷地運送貨物到沒有足夠停車位的收貨方B處。

如何補償抖動?

為了彌補抖動,在接收端點使用抖動緩衝。抖動緩衝區收集並存儲傳入的資料包,以便確定何時以相同的時間間隔傳送它們(接收端會反饋給傳送端)。

-靜態抖動緩衝 - 靜態抖動緩衝是在系統的硬體中實現的,通常由製造商配置。

-動態抖動緩衝 - 動態抖動緩衝是在系統的軟體中實現的,由網路管理員配置。可以根據網路的變化進行調整。

播放延遲

播放延遲是指資料包到達後直到渲染播放的時間。當抖動緩衝區儲存傳入的資料包,並等待以均勻的時間間隔分發它們(給渲染緩衝區)時,會增加資料包到達和渲染播放的時間,也稱為播放延遲。這個延遲是由抖動緩衝區引入的,因為它負責指示新到達的資料包何時被分發(到渲染緩衝區)。

結論

雖然延遲和抖動是相互關聯的,但它們是不相同。延遲是資料從網路的一個端點傳輸到另一個端點所需的時間。這是一個受多種因素影響的複雜的度量指標。另一方面,抖動是兩個資料包之間延遲時間的差異。同樣,它也可能是由網路上的不同因素造成的。儘管抖動和延遲有相似之處,但抖動僅僅是基於延遲產生的,並不等同於它。