VoIP
音声をデジタルデータに変換してパケットに詰め、IPネットワークで送る技術。IP電話の基盤となる。
イマシルちゃんの解説
昔の電話は、話している間ずっと1本の回線を独り占めしてたんだ。
VoIPでは、声を細かく切ってデジタルデータにして、小さな小包(パケット)に詰めて送るよ。
インターネットやメールと同じネットワークに声を流せるから、
回線を共有できて、とっても経済的なんだ!
ただ、声はリアルタイムで届かないと会話にならないから、遅れや途切れには特に気をつけないといけないんだよ。
より深い解説
定義
VoIP(Voice over Internet Protocol)は、音声信号を符号化(デジタル化・圧縮)し、IPパケットに載せて伝送する技術の総称である。VoIPを使って提供される電話サービスがIP電話である。
音声がパケットになるまで
- マイクから入ったアナログの音声を、コーデック(G.711、G.729など)でデジタルデータに符号化する
- 一定の時間(パケット化周期、一般的に20ミリ秒)ごとに符号化データを区切る
- 区切ったデータ(音声ペイロード)にRTPヘッダー、UDPヘッダー、IPヘッダーを付けて送る
- 受信側は、ジッタバッファで到着間隔のばらつきを吸収してから、音声に戻して再生する
音声ペイロードの計算
1パケットに入る音声データの量は、次の式で求められる。
音声ペイロード[ビット] = 符号化速度[ビット/秒] × パケット化周期[秒]
| コーデック | 符号化速度 | 20ミリ秒あたりのペイロード |
|---|---|---|
| G.711 | 64kビット/秒 | 64,000 × 0.02 = 1,280ビット = 160バイト |
| G.729(CS-ACELP) | 8kビット/秒 | 8,000 × 0.02 = 160ビット = 20バイト |
ビットとバイトの換算(8で割る)を忘れないことが計算のポイントである。
ヘッダーのオーバーヘッド
VoIPのパケットには、音声ペイロードのほかに、次のヘッダーが付く。
| ヘッダー | 長さ |
|---|---|
| RTP | 12バイト |
| UDP | 8バイト |
| IPv4 | 20バイト |
| 合計 | 40バイト |
G.729の20バイトのペイロードに40バイトのヘッダーが付くと、パケットの3分の2がヘッダーになる。さらにイーサネットのヘッダーなども加わるため、G.729を使っても実際の帯域は8kビット/秒より大きくなる。パケット化周期を長くすればヘッダーの割合は減るが、そのぶん遅延が増える。
1通話あたりの帯域の計算例
G.711、パケット化周期20ミリ秒の場合(IPレベル、片方向)
- 1秒あたりのパケット数:1 ÷ 0.02 = 50パケット
- 1パケットの大きさ:160 + 40 = 200バイト
- 帯域:200バイト × 8 × 50 = 80kビット/秒
VoIPゲートウェイ
VoIPゲートウェイは、従来の電話網(アナログ回線、ISDN、PBX)とIPネットワークの間に置き、音声信号とVoIPパケットを相互に変換する装置である。符号化・パケット化と、呼制御(SIPなどの信号と電話網の信号の変換)を行う。
品質に影響する要因
| 要因 | 内容 | 主な対策 |
|---|---|---|
| 遅延 | 符号化、パケット化、伝送、バッファリングでかかる時間 | 優先制御(QoS) |
| ジッタ | パケットの到着間隔のゆらぎ | ジッタバッファ |
| パケット損失 | 途中で失われたパケット | 帯域の確保、損失を補う処理 |
| エコー | 自分の声が遅れて返ってくる現象 | エコーキャンセラ |
これらを総合した品質の指標として、主観評価に基づくMOS値や、客観的な要素から計算するR値が使われる。
関連するプロトコル
| プロトコル | 役割 |
|---|---|
| SIP | 呼の開始・終了などの呼制御(シグナリング) |
| RTP | 音声データそのものの伝送 |
| RTCP | RTPの通信品質の報告 |