VTVジャパン テレビ会議教科書

テレビ会議教科書 VTVジャパン株式会社

コラム9-2 TCP対UDP

 H.323システムでは,IP層の上のトランスポート層プロトコルとしてTCP (Transport Control Protocol)[9-106]とUDP (User Datagram Protocol)[9-107]を使い分けています.上位からのデータを宛先に届けることは共通ですが,両者の適用領域には違いがあります.それぞれのヘッダを図C9-1に示します.

図C9-1 TCPとUDPのヘッダ
図C9-1 TCPとUDPのヘッダ

TCPヘッダは伝送時の誤りが見つかったときに再送制御ができるよう多くのフィールドを設けています.これに対しUDPのヘッダは簡単です.

 TCPの役割は,連続したオクテットのストリームを適当な大きさのセグメントにしてインターネットを通じて転送することです.どのタイミングでストリームを区切るかはTCPの都合によります.このことは,ヘッダにデータ長を示すフィールドがないことでも分かります.またTCPは上位層からのデータを誤り無く転送することが役割です.このため,ヘッダにはSequence Number,Acknowledgement NumberとChecksumのフィールドが設けられ,これらに異常があれば,ネットワークを通過する間に何らか誤りがあったことを示しますので,そのセグメントは再送します.ここでChecksumとは,送信データを一定の規則で足し合わせた結果のことで,受信側でも受信データについて同じ計算をした結果と突き合わせ,違っていれば途中で誤りが生じたと判定します.再送が行われるため,TCPでは受信セグメントの到着タイミングは送信タイミングとは非同期です.TCPはテレビ会議メディアのようなリアルタイムのデータを送るには適していません.
 UDPの役割は,ネットワークでIPパケットの損失があろうが,パケット内にビット誤りがあろうが,送信側上位層のデータをそのまま受信側の上位層に渡すことです.再送の処理はなく,データの受け渡しは同期的ですので,テレビ会議メディアのようなリアルタイムのデータを送るには適しています.伝送途中のデータ損失,誤りがあった場合の上位層における処理を支援するため,UDPではヘッダにLengthとChecksumのフィールドがあります.
 プロトコル処理の点では,TCPは重くUDPは軽いので,サーバで数多くの呼処理をする場合,UDPが選ばれることもあります.その場合は誤り対策は上位層で行われます.
 TCPでは一度の接続で双方向の通信路が設定されますが,UDPは一度の接続で片方向しか用意されませんので,双方向通信にはもう一方の接続が必要になります.
 TCPは誤りがあったとき再送処理をしますので,1対多の通信(マルチキャスト)はできません.これに対しUDPではマルチキャストが可能ですので,H.225.0 RASのGRQ (Gatekeeper Request)やLRQ(Location Request)のように「この指止まれ」形のメッセージに適用されます.