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

對話式即時媒體(conversational real-time media)

看一場錄好的節目和跟人即時交談,是天差地別的兩件事。看節目時,播放開始前幾秒的延遲是看不見的。但當你在交談時,延遲卻很殘酷:對方停下來後你停頓太久,於是你們同時開口,接著同時停,又同時開。對話式即時媒體就是雙向、互動的音訊與視訊——一通透過網際網路的電話(網路電話)或一場視訊會議——人們在即時地彼此回應,所以它的時間預算是所有媒體類別中最緊的。

它之所以如此苛求,是因為你無法靠緩衝來脫困。在儲存式串流中你可以囤積十秒;但在對話中,你每緩衝一秒,就是對方多等一秒才聽到你說話,所以播放緩衝區必須維持很小——通常是數十毫秒,而非數秒。一個粗略的經驗法則:單向「嘴到耳」延遲在約 150 毫秒以內,對話感覺自然;150 到 400 之間就明顯尷尬;超過 400 就會崩壞成搶話與「你說——不,你先」的笨拙場面。遺失也很重要,但因為沒有時間要求重送,遺失的封包通常是被隱藏或直接略過,而非重傳。

為什麼重要:這一類驅動了大部分服務品質的思考,因為它正是盡力而為的傳遞最可能讓人感覺糟糕的情況。它幾乎總是透過 UDP(藉由 RTP)承載,而非 TCP,原因很直接:TCP 的重送會送來一份雖晚卻完美、但其實早已無用的聲音複本,同時還卡住排在它後面的一切。在這裡,及時勝過完整。誠實的提醒:即使協定再完美,你也無法打敗傳播延遲——一通繞著地球路由的電話,有一個由光速設下、無法避免的物理下限。

在一通橫越大西洋的視訊通話中,光在光纖中單程就要約 30 毫秒;再加上交換、播放緩衝區與編解碼處理,單向可能達到 200 毫秒。這就是為什麼洲際通話會有那種輕微的「你先請」遲疑,任何軟體都無法消除。

對話需要低於 150 毫秒的延遲;物理與處理把長途通話推過了這個門檻。

違反直覺的是,重送遺失的封包(TCP 那一套)對一通即時通話是有害而非有益的:等重送的資料到了,那一刻的音訊早已成為過去。這就是為什麼對話式媒體偏好 UDP 與遺失隱藏,而非可靠傳遞。

又称
interactive real-time mediatwo-way real-time media對話式即時媒體互動式即時媒體