延時和抖動是相互關聯的兩個東西,但是它們並不相同。延時是網路中的乙個重要指標,它由四個關鍵部分組成:處理延時(processing delay),排隊延時(queueing delay),傳輸延時(transmission delay)和傳播延時(propagation delay)。它會影響使用者體驗,並可能因多種因素而發生變化。抖動是基於延時產生的—具體而言,就是前後延時的值不一致。抖動是兩個資料報延時值之間的差異。它通常會導致丟包和網路擁塞。雖然延時和抖動有很多共同點和關聯,但是它們並不相同。
什麼是延時(delay)?
延時是網路中的一項重要指標,可衡量資料從乙個端點移動到另乙個端點所需的時間。網路延時通常在幾秒鐘的時間範圍內,並且可以更具許多因素進行更改,包括端點的位置,資料報的大小以及流量大小。
延時(delay)與延遲(latency)有何不同
延遲和延時相互聯絡緊密,並且很多時候可以混用。但是,他們並不總是相同的。延時是資料從乙個端點傳輸到另乙個端點所花費的時間。然而,延遲可以表示兩個量。
延遲有時被認為是資料報從乙個端點傳輸到另乙個端點所用的時間,這與單向延時是一樣的。
但更多的情況,延遲表示的是往返時間。往返時間包括傳送資料報所需的時間加上它返回所需的時間。這不包括在目的地處理資料報所需的時間。
網路監控工具可以確定給定網路上的精確往返時間。可以從傳送處計算往返時間,因為它跟蹤資料報傳送的時間,並在確認返回時計算差值。但是,兩個端點之間的延時可能難以確定,因為傳送端沒有到達接收端的時間資訊。
延時的組成
延時可以理解為四個關鍵延時部分的組合:處理延時,排隊延時,傳輸延時和傳播延時。
1. 處理延時:處理延時是系統分析資料報報頭並確定資料報必須傳送到何處的時間。這很大程度上取決於路由表中的條目,系統中資料結構的執行以及硬體實現。
2. 排隊延時:排隊延時是資料報排隊和傳送之間的時間。這取決於資料流量的大小,流量型別以及實現哪些路由器佇列演算法。不同的演算法可以調整系統偏好的延時,或者對所有流量要求相同的延時。
3. 傳輸延時:傳輸延時是將資料報的資料推入線路所需的時間。這會根據資料報的不同大小和頻寬大小而不同。這並不取決於傳輸線的距離,因為它僅僅是將包中資料推入傳輸線的時間,而不是沿著傳輸線到達接收端的時間。
這些延時組合在一起構成網路中的總延時。往返時間由這些延時和接收端到傳送端之間的時間組成。
延時的影響
什麼是抖動?
在網路上連續傳輸的資料報即便使用相同的路徑,也會有不同的延時。這是由於分組交換網路固有的兩個關鍵原因造成的。第一,資料報被單獨路由。第二,網路裝置接收佇列中的資料報,因此無法保證延時排程不變。
抖動會導致什麼後果?
2. 網路擁塞:網路裝置無法傳送相同資料的流量,因此他們的資料報緩衝區已滿並開始丟棄資料報。如果端點上的網路沒有干擾,則每個資料報都會到達。但是,如果端點緩衝區滿了,會使資料報到達的越來越晚,導致抖動。這被稱為初期擁塞(incipient congestion)。通過監視抖動,可以觀察到初期擁塞。同樣,如果出現初期網路擁塞,則說明抖動正在迅速變化。
當網路裝置開始丟棄資料報,並且端點沒有收到資料報時就會發生擁塞。終端可能會要求重發丟失的資料報,這會導致擁塞崩潰。
需要注意的是接收端不會直接導致擁塞,也不會丟棄資料報。請想象一條高速公路,其中有旅店a和旅店b。旅店b擁擠不是由於b沒有足夠的停車位而造成的。擁擠是由a引起的,所以它會不斷地將公路上的騎車送到b旅店。
我該如何補償抖動?
為了彌補抖動,在連線的接收端使用抖動緩衝區。抖動緩衝區收集並儲存傳入資料報,以便它可以確定如何以一致的間隔傳送它們。
1. 靜態抖動緩衝—其在系統的硬體中實現,並且通常由製造商配置。
2. 動態抖動緩衝—其在系統軟體中實現,並由管理員進行配置。他們可對緩衝進行調整以適應網路變化。
總結
延時和抖動天生就緊密相連,但它們其實並不同。延時是資料從網路上的乙個端點移動到另乙個端點所花費的時間。這是乙個受多種因素影響的複雜的值。另一方面,抖動是兩個資料報之間的延時差異。同樣,它也可能是由網路上的幾個因素造成的。儘管抖動和延時有相似之處,但是抖動僅僅是基於延時產生的而已,但不等於它。
延遲和抖動的區別
延時和抖動是相互關聯的兩個東西,但是它們並不相同。延時是網路中的乙個重要指標,它由四個關鍵部分組成 處理延時 processing delay 排隊延時 queueing delay 傳輸延時 transmission delay 和傳播延時 propagation delay 它會影響使用者體驗,...
Unity FMOD音效抖動和延遲問題解決方案
我們的專案之前使用fmod移植到android平台上時,有非常嚴重的延遲問題,之後通過更新新外掛程式版本以及針對個別手機進行特殊設定解決了音效的延遲問題。下面來講述聲音延遲問題的 和相應設定。這個可以參考 的介紹,因為android系統預設使用opensl進行音訊輸出,而各個廠商對opensl的支援...
new String和「「之間的區別
1.new string 與 建立物件的區別 string s1 new string 123 string s2 123 第乙個建立1 2個,第二個建立0 1個,當常量池中沒有123時,第乙個會在堆中和常量池中各建立乙個,當常量池中存在123時,第乙個則只會在堆中建立,而第二個則直接指向常量池中的...