多媒體、即時通訊與服務品質

抖動(jitter)

想像一位朋友每天寄給你一張明信片。即使遞送很慢,只要每天到一張,你就能以穩定的節奏閱讀。但若某天一口氣到三張、隔天卻一張也沒有,你的閱讀節奏就被毀了——儘管平均下來你每天還是收到一張。抖動之於封包正是如此:重點不是它們花多久,而是它們抵達得多麼不均勻。它是逐個封包之間端到端延遲的變異。發送端或許每 20 毫秒平順地送出一個語音封包,但網路可能把它們擠成一團、拉得很開、或打亂了送達。

延遲為什麼會變動?主要禍首是路由器中的佇列延遲。一個遇到路由器佇列是空的封包能一路通行;下一個若在佇列滿時抵達,就得排在許多封包後面等待。因為佇列長度時刻在波動,同一條串流接連的封包會經歷不同的延遲,於是抵達之間的間隔不再和發送端的間隔相符。接收端可以藉由比較每個封包的時間戳(帶在它的 RTP 標頭裡)與它實際抵達的時間,並觀察這個差值如何擺盪,來量測抖動。穩定的抵達代表低抖動;爆發、不規則的抵達代表高抖動。

為什麼重要:抖動比起單純的延遲,更是讓即時音訊與視訊頓挫的元兇。固定的延遲只是把整段對話往後挪一點——超過某個程度雖然惱人,但仍是順暢的。抖動若不處理,會讓播放忽快忽慢、出現空檔。標準的解方是播放緩衝區,它刻意把抵達的媒體保留一小段時間,好讓即使遲到的封包,在輪到它播放時通常也已就位——以一點額外的啟動延遲換取平順的輸出。一個常見的混淆:抖動講的是變異,不是大小;一條連結可能平均延遲很高卻抖動很低,也可能平均延遲很低卻抖動很高。

一位說話者在 0、20、40、60 毫秒送出封包。它們在 35、50、90、100 抵達。原本 20 毫秒的間隔變成了 15、40、10——不均勻的抵達。那個變異,而不是 35 毫秒的基礎延遲,才是播放緩衝區必須撫平的抖動。

均勻送出、不均勻收到:那份不均勻就是抖動。

別把抖動和延遲混為一談。延遲是封包花多久;抖動是這個時間在封包之間變動了多少。一條高延遲的連結可以完全順暢;一條低延遲但佇列爆發的連結卻可能聽起來很糟。

又称
delay variationpacket delay variationPDV抖動延遲變異