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

網路電話(VoIP)

/ VOY-pee /

一個世紀以來,一通電話走的是專用電路:當你撥號時,網路會為你的聲音保留一條端到端、私有、像導線一樣的路徑,整通電話都歸你。網路電話把這套丟掉。它把你的聲音數位化成一串小封包,丟進普通、共享、盡力而為的網際網路——就是那個承載網頁與電子郵件的同一個網路——和其他所有人的流量並肩而行。沒有保留的路徑;你的語音封包像其他一切一樣去爭奪路面空間。網路電話,是 Voice over IP 的簡稱,就是把電話通話當成資料、透過 IP 網路承載。

用平白的步驟看一個來回。你麥克風的聲音被取樣,並由編解碼器壓縮成一串資料,切成小塊(常是每 20 毫秒一個封包)。每一塊被包進 RTP 標頭(帶著時間戳與序號,好讓對端能重建時序並偵測遺失),再包進 UDP,再包進 IP,然後送出。在另一端,封包以不一的延遲抵達;一個播放緩衝區短暫地保留它們,再以穩定的節拍釋放,遺失的封包被隱藏,音訊被解碼並播放。另外,在這一切之前,像 SIP 這樣的信令協定先找到對方並建立了通話——就像在交談前的撥號與響鈴。

為什麼重要:今天幾乎所有的電話通訊都靠網路電話運作,從應用程式通話到企業電話系統,因為重用資料網路遠比維護一個獨立的語音網路便宜。代價是誠實的:保留的電路給了有保證的品質,而網路電話繼承了網際網路盡力而為的本性,必須用緩衝與遺失隱藏去對抗延遲、遺失與抖動。它通常夠好,因為業者超額配置、也因為這些技巧運作良好——但在壅塞或遙遠的連結上,一通網路電話仍可能變得斷續,那是舊式電路交換電話從不會有的毛病。

你的手機把語音封裝成 20 毫秒的小塊:每一塊變成一個 RTP-over-UDP-over-IP 的封包。每秒五十個封包送往對端。若有一個遺失了,接收端不會要求它回來——它會把空缺隱藏起來,因為等重送可能到達時,那個音節早就太遲了。

網路電話把語音以 RTP/UDP/IP 封裝,並以隱藏遺失取代重送。

網路電話刻意跑在 UDP 而非 TCP 上。TCP 那種可靠、依序的傳遞在這裡是錯的工具:一個完美重送卻遲到的封包對即時對話毫無用處,而為了等它還會卡住排在後面的一切。

又称
Voice over IPVoice over Internet ProtocolInternet telephony網路電話IP 語音