延時和抖動是相互關(guān)聯(lián)的兩個東西,但是它們并不相同。延時是網(wǎng)絡(luò)中的一個重要指標(biāo),它由四個關(guān)鍵部分組成:處理延時(processing delay),排隊延時(queueing delay),傳輸延時(transmission delay)和傳播延時(propagation delay)。它會影響用戶體驗,并可能因多種因素而發(fā)生變化。抖動是基于延時產(chǎn)生的—具體而言,就是前后延時的值不一致。抖動是兩個數(shù)據(jù)包延時值之間的差異。它通常會導(dǎo)致丟包和網(wǎng)絡(luò)擁塞。雖然延時和抖動有很多共同點和關(guān)聯(lián),但是它們并不相同。
1. 什么是延時(delay)?
延時是網(wǎng)絡(luò)中的一項重要指標(biāo),可衡量數(shù)據(jù)從一個端點移動到另一個端點所需的時間。網(wǎng)絡(luò)延時通常在幾秒鐘的時間范圍內(nèi),并且可以更具許多因素進行更改,包括端點的位置,數(shù)據(jù)包的大小以及流量大小。
1.1延時(delay)與延遲(latency)有何不同
延遲和延時相互聯(lián)系緊密,并且很多時候可以混用。但是,他們并不總是相同的。延時是數(shù)據(jù)從一個端點傳輸?shù)搅硪粋€端點所花費的時間。然而,延遲可以表示兩個量。
延遲有時被認(rèn)為是數(shù)據(jù)包從一個端點傳輸?shù)搅硪粋€端點所用的時間,這與單向延時是一樣的。
但更多的情況,延遲表示的是往返時間。往返時間包括發(fā)送數(shù)據(jù)包所需的時間加上它返回所需的時間。這不包括在目的地處理數(shù)據(jù)包所需的時間。
網(wǎng)絡(luò)監(jiān)控工具可以確定給定網(wǎng)絡(luò)上的精確往返時間??梢詮陌l(fā)送處計算往返時間,因為它跟蹤數(shù)據(jù)包發(fā)送的時間,并在確認(rèn)返回時計算差值。但是,兩個端點之間的延時可能難以確定,因為發(fā)送端沒有到達接收端的時間信息。
1.2 延時的組成
延時可以理解為四個關(guān)鍵延時部分的組合:處理延時,排隊延時,傳輸延時和傳播延時。
處理延時:處理延時是系統(tǒng)分析數(shù)據(jù)包報頭并確定數(shù)據(jù)包必須發(fā)送到何處的時間。這很大程度上取決于路由表中的條目,系統(tǒng)中數(shù)據(jù)結(jié)構(gòu)的執(zhí)行以及硬件實現(xiàn)。
排隊延時:排隊延時是數(shù)據(jù)包排隊和發(fā)送之間的時間。這取決于數(shù)據(jù)流量的大小,流量類型以及實現(xiàn)哪些路由器隊列算法。不同的算法可以調(diào)整系統(tǒng)偏好的延時,或者對所有流量要求相同的延時。
傳輸延時:傳輸延時是將數(shù)據(jù)包的數(shù)據(jù)推入線路所需的時間。這會根據(jù)數(shù)據(jù)包的不同大小和帶寬大小而不同。這并不取決于傳輸線的距離,因為它僅僅是將包中數(shù)據(jù)推入傳輸線的時間,而不是沿著傳輸線到達接收端的時間。
傳播延時:傳播延時是與從發(fā)送端傳輸?shù)浇邮斩说臄?shù)據(jù)包的第一個比特相關(guān)的時間。這通常被稱為距離延時,并且因此數(shù)據(jù)比特受到傳播距離和傳播速度的影響。
這些延時組合在一起構(gòu)成網(wǎng)絡(luò)中的總延時。往返時間由這些延時和接收端到發(fā)送端之間的時間組成。
時延:是數(shù)據(jù)(一個報文或分組,甚至比特)從網(wǎng)絡(luò)或鏈路的一段傳送到另一端所需要的時間。
發(fā)送時延:是從發(fā)送數(shù)據(jù)幀的第一個比特算起,到該幀的最后一個比特發(fā)送完畢所需的時間。
發(fā)送時延=數(shù)據(jù)幀長度(b) /信道帶寬(b/s) [信道帶寬就是數(shù)據(jù)率]
傳播時延:電磁波在信道中需要傳播一定的距離而花費的時間。
傳播時延=信道長度(m)/電磁波在信道上的傳播速率(m/s)
處理時延:主機或路由器處理所收到的分組的時間。
排隊時延:分組在輸入隊列中排隊等待處理,在輸出隊列中等待轉(zhuǎn)發(fā),就形成了排隊時延。
總時延=發(fā)送時延+傳播時延+處理時延+排隊時延
示例1:
試在下列條件下比較電路交換和分組交換。要傳送的報文共x(bit)。從源點到終點共經(jīng)過k段鏈路,每段鏈路的傳播時延為d(s),數(shù)據(jù)率為b(b/s)。在電路交換時電路的建立時間為s(s)。在分組交換時分組長度為p(bit),且各結(jié)點的排隊等待時間可忽略不計。問在怎樣的條件下,分組交換的時延比電路交換的要小?(提示:畫一下草圖觀察k段鏈路共有幾個結(jié)點。)
解析:在電路交換中,電路的建立時延是s,報文的發(fā)送時延是x/b,報文的傳播時延是:kd,故總時延為:x/b+kd+s;
在分組交換中,報文的發(fā)送時延是(x/p)(p/b); K段傳輸中,有(k-1)次的儲存轉(zhuǎn)發(fā)延遲,(p/b)(k-1);傳播時延是kd;故總時延是:(x/p)(p/b)+ (p/b)(k-1)+kd=x/b+kd+(p/b)*(k-1);
當(dāng)s>(k-1)*(p/b)時,電路交換的時延比分組交換的時延大,當(dāng)x>>p,相反。
示例2:
在上題的分組交換網(wǎng)中,設(shè)報文長度和分組長度分別為x和(p+h)(bit),其中p為分組的數(shù)據(jù)部分的長度,而h為每個分組所帶的控制信息固定長度,與p的大小無關(guān)。通信的兩端共經(jīng)過k段鏈路。鏈路的數(shù)據(jù)率為b(b/s),但傳播時延和結(jié)點的排隊時間均可忽略不計。若打算使總的時延為最小,問分組的數(shù)據(jù)部分長度p應(yīng)取為多大?(提示:參考圖1-12的分組交換部分,觀察總的時延是由哪幾部分組成。)
解析:總時延:y=(x/p)((p+h)/b)+(k-1) ((p+h)/b)+kd
兩邊求導(dǎo),并令其值為0得p=[(xh)/(k-1)]^0.5
1.3 延時的影響
延時主要會影響用戶體驗。在嚴(yán)格的音頻通話中,150毫秒的延時是非常明顯的并且會影響用戶。在嚴(yán)格的視頻通話中,認(rèn)為400毫秒是可辨識的。將這兩種呼叫功能集中在一起后,聯(lián)合的音頻和視頻呼叫應(yīng)該保持同步,并且延時要少于150毫秒以不影響用戶。但是,一般來說,延時盡可能低是非常重要的。無論如何,ITU建議將網(wǎng)絡(luò)延時保持在100毫秒以下。
2. 什么是抖動?
在網(wǎng)絡(luò)上連續(xù)傳輸?shù)臄?shù)據(jù)包即便使用相同的路徑,也會有不同的延時。這是由于分組交換網(wǎng)絡(luò)固有的兩個關(guān)鍵原因造成的。第一,數(shù)據(jù)包被單獨路由。第二,網(wǎng)絡(luò)設(shè)備接收隊列中的數(shù)據(jù)包,因此無法保證延時調(diào)度不變。
每個數(shù)據(jù)包之間的這種延時不一致稱為抖動。對于實時通信而言,這可能是一個相當(dāng)大的問題,包括IP電話,視頻會議和虛擬桌面基礎(chǔ)架構(gòu)。抖動可能由網(wǎng)絡(luò)上的許多因素引起,并且每個網(wǎng)絡(luò)都有延時時間變化。
2.1 抖動會導(dǎo)致什么后果?
丟包:當(dāng)數(shù)據(jù)包不是均勻的到達接收端時,接收端必須進行彌補并嘗試更正。在某些情況下,接收端無法進行適當(dāng)?shù)母?,并丟失數(shù)據(jù)包。就最終用戶體驗而言,這可以有多種呈現(xiàn)出的形式。比如,如果用戶正在觀看視頻并且畫面變成像素化,這就是潛在抖動的指示。
網(wǎng)絡(luò)擁塞:網(wǎng)絡(luò)設(shè)備無法發(fā)送相同數(shù)據(jù)的流量,因此他們的數(shù)據(jù)包緩沖區(qū)已滿并開始丟棄數(shù)據(jù)包。如果端點上的網(wǎng)絡(luò)沒有干擾,則每個數(shù)據(jù)包都會到達。但是,如果端點緩沖區(qū)滿了,會使數(shù)據(jù)包到達的越來越晚,導(dǎo)致抖動。這被稱為初期擁塞(incipient congestion)。通過監(jiān)視抖動,可以觀察到初期擁塞。同樣,如果出現(xiàn)初期網(wǎng)絡(luò)擁塞,則說明抖動正在迅速變化。
當(dāng)網(wǎng)絡(luò)設(shè)備開始丟棄數(shù)據(jù)包,并且端點沒有收到數(shù)據(jù)包時就會發(fā)生擁塞。終端可能會要求重發(fā)丟失的數(shù)據(jù)包,這會導(dǎo)致?lián)砣罎ⅰ?/p>
需要注意的是接收端不會直接導(dǎo)致?lián)砣?,也不會丟棄數(shù)據(jù)包。請想象一條高速公路,其中有旅店A和旅店B。旅店B擁擠不是由于B沒有足夠的停車位而造成的。擁擠是由A引起的,所以它會不斷地將公路上的騎車送到B旅店。
2.2我該如何補償抖動?
為了彌補抖動,在連接的接收端使用抖動緩沖區(qū)。抖動緩沖區(qū)收集并存儲傳入數(shù)據(jù)包,以便它可以確定如何以一致的間隔發(fā)送它們。
靜態(tài)抖動緩沖—其在系統(tǒng)的硬件中實現(xiàn),并且通常由制造商配置。
動態(tài)抖動緩沖—其在系統(tǒng)軟件中實現(xiàn),并由管理員進行配置。他們可對緩沖進行調(diào)整以適應(yīng)網(wǎng)絡(luò)變化。
3. 播放延時
播放延時是數(shù)據(jù)包到達時和播放時間之間的延時。當(dāng)抖動緩沖區(qū)存儲傳入數(shù)據(jù)包并等待以均勻間隔分配它們時,這會增加數(shù)據(jù)包到達時間與播放時間之間的時間,也被稱為播放延時。這個延時是由抖動緩沖區(qū)引入的,因為它負責(zé)規(guī)定傳入數(shù)據(jù)包何時分發(fā)。
總結(jié)
延時和抖動天生就緊密相連,但它們其實并不同。延時是數(shù)據(jù)從網(wǎng)絡(luò)上的一個端點移動到另一個端點所花費的時間。這是一個受多種因素影響的復(fù)雜的值。另一方面,抖動是兩個數(shù)據(jù)包之間的延時差異。同樣,它也可能是由網(wǎng)絡(luò)上的幾個因素造成的。盡管抖動和延時有相似之處,但是抖動僅僅是基于延時產(chǎn)生的而已,但不等于它。