1. 程式人生 > >抖動和延遲之間的區別

抖動和延遲之間的區別

延時和抖動是相互關聯的兩個東西,但是它們並不相同。延時是網路中的一個重要指標,它由四個關鍵部分組成:處理延時(processing delay),排隊延時(queueing delay),傳輸延時(transmission delay)和傳播延時(propagation delay)。它會影響使用者體驗,並可能因多種因素而發生變化。抖動是基於延時產生的—具體而言,就是前後延時的值不一致。抖動是兩個資料包延時值之間的差異。它通常會導致丟包和網路擁塞。雖然延時和抖動有很多共同點和關聯,但是它們並不相同。

什麼是延時(delay)?

延時是網路中的一項重要指標,可衡量資料從一個端點移動到另一個端點所需的時間。網路延時通常在幾秒鐘的時間範圍內,並且可以更具許多因素進行更改,包括端點的位置,資料包的大小以及流量大小。

延時(delay)與延遲(latency)有何不同

延遲和延時相互聯絡緊密,並且很多時候可以混用。但是,他們並不總是相同的。延時是資料從一個端點傳輸到另一個端點所花費的時間。然而,延遲可以表示兩個量。

延遲有時被認為是資料包從一個端點傳輸到另一個端點所用的時間,這與單向延時是一樣的。

但更多的情況,延遲表示的是往返時間。往返時間包括髮送資料包所需的時間加上它返回所需的時間。這不包括在目的地處理資料包所需的時間。

網路監控工具可以確定給定網路上的精確往返時間。可以從傳送處計算往返時間,因為它跟蹤資料包傳送的時間,並在確認返回時計算差值。但是,兩個端點之間的延時可能難以確定,因為傳送端沒有到達接收端的時間資訊。

延時的組成

延時可以理解為四個關鍵延時部分的組合:處理延時,排隊延時,傳輸延時和傳播延時。

1. 處理延時:處理延時是系統分析資料包報頭並確定資料包必須傳送到何處的時間。這很大程度上取決於路由表中的條目,系統中資料結構的執行以及硬體實現。

2. 排隊延時:排隊延時是資料包排隊和傳送之間的時間。這取決於資料流量的大小,流量型別以及實現哪些路由器佇列演算法。不同的演算法可以調整系統偏好的延時,或者對所有流量要求相同的延時。

3. 傳輸延時:傳輸延時是將資料包的資料推入線路所需的時間。這會根據資料包的不同大小和頻寬大小而不同。這並不取決於傳輸線的距離,因為它僅僅是將包中資料推入傳輸線的時間,而不是沿著傳輸線到達接收端的時間。

4. 傳播延時:傳播延時是與從傳送端傳輸到接收端的資料包的第一個位元相關的時間。這通常被稱為距離延時,並且因此資料位元受到傳播距離和傳播速度的影響。

這些延時組合在一起構成網路中的總延時。往返時間由這些延時和接收端到傳送端之間的時間組成。

延時的影響

延時主要會影響使用者體驗。在嚴格的音訊通話中,150毫秒的延時是非常明顯的並且會影響使用者。在嚴格的視訊通話中,認為400毫秒是可辨識的。將這兩種呼叫功能集中在一起後,聯合的音訊和視訊呼叫應該保持同步,並且延時要少於150毫秒以不影響使用者。但是,一般來說,延時儘可能低是非常重要的。無論如何,ITU建議將網路延時保持在100毫秒以下。

什麼是抖動?

在網路上連續傳輸的資料包即便使用相同的路徑,也會有不同的延時。這是由於分組交換網路固有的兩個關鍵原因造成的。第一,資料包被單獨路由。第二,網路裝置接收佇列中的資料包,因此無法保證延時排程不變。

每個資料包之間的這種延時不一致稱為抖動。對於實時通訊而言,這可能是一個相當大的問題,包括IP電話,視訊會議和虛擬桌面基礎架構。抖動可能由網路上的許多因素引起,並且每個網路都有延時時間變化。

抖動會導致什麼後果?

1. 丟包:當資料包不是均勻的到達接收端時,接收端必須進行彌補並嘗試更正。在某些情況下,接收端無法進行適當的更正,並丟失資料包。就終端使用者體驗而言,這可以有多種呈現出的形式。比如,如果使用者正在觀看視訊並且畫面變成畫素化,這就是潛在抖動的指示。

2. 網路擁塞:網路裝置無法傳送相同資料的流量,因此他們的資料包緩衝區已滿並開始丟棄資料包。如果端點上的網路沒有干擾,則每個資料包都會到達。但是,如果端點緩衝區滿了,會使資料包到達的越來越晚,導致抖動。這被稱為初期擁塞(incipient congestion)。通過監視抖動,可以觀察到初期擁塞。同樣,如果出現初期網路擁塞,則說明抖動正在迅速變化。

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

需要注意的是接收端不會直接導致擁塞,也不會丟棄資料包。請想象一條高速公路,其中有旅店A和旅店B。旅店B擁擠不是由於B沒有足夠的停車位而造成的。擁擠是由A引起的,所以它會不斷地將公路上的騎車送到B旅店。

我該如何補償抖動?

為了彌補抖動,在連線的接收端使用抖動緩衝區。抖動緩衝區收集並存儲傳入資料包,以便它可以確定如何以一致的間隔傳送它們。

1. 靜態抖動緩衝—其在系統的硬體中實現,並且通常由製造商配置。

2. 動態抖動緩衝—其在系統軟體中實現,並由管理員進行配置。他們可對緩衝進行調整以適應網路變化。

播放延時

播放延時是資料包到達時和播放時間之間的延時。當抖動緩衝區儲存傳入資料包並等待以均勻間隔分配它們時,這會增加資料包到達時間與播放時間之間的時間,也被稱為播放延時。這個延時是由抖動緩衝區引入的,因為它負責規定傳入資料包何時分發。

總結

延時和抖動天生就緊密相連,但它們其實並不同。延時是資料從網路上的一個端點移動到另一個端點所花費的時間。這是一個受多種因素影響的複雜的值。另一方面,抖動是兩個資料包之間的延時差異。同樣,它也可能是由網路上的幾個因素造成的。儘管抖動和延時有相似之處,但是抖動僅僅是基於延時產生的而已,但不等於它。