IPの上位層でパケットの転送を担うプロトコルには,先月まで学んだTCP以外にUDP(user datagram protocol)があります。UDPはTCPとは異なる性質を持ち,違う用途で使われています。今回はUDPについて見ていきましょう。

上位と下位で機能を分担

 TCP/IPネットワークの通信機能で特徴的なのは,上位プロトコル(TCPやUDP)と下位プロトコル(IP)で通信に必要な機能を分担している点です。IPの役割はパケットの搬送です。指定されたあて先の場所を調べながら送信元から受信者へパケットを届けます。通信にあたって送信者と受信者の間でコネクションを確立しませんから,IPはコネクションレス型プロトコルと呼ばれます。一方,上位プロトコルであるTCPは,送信者と受信者の間にコネクションを確立して,通信に信頼性を与えています。TCPはコネクション型プロトコルです。

 つまりTCP/IPでは,信頼性のある通信に必要なコネクションの機能をTCPが提供するように役割を分担しています。TCPを利用するアプリケーションは,パケットの紛失や順番の間違い,重複といったエラーへの対応を考える必要がなく,アプリケーションが本来提供する通信機能だけに注力できます。

 TCP/IPの通信機能の構成および機能分担は,必要と思われる機能を下のレイヤーに持たせるボトムアップの考え方で設計され,アプリケーションの負担を軽くしています。しかしこれとは逆にトップダウンの考え方もあります。アプリケーションが十分な通信機能を備えていればその下のレイヤー,つまりIPの上位層プロトコルにそうした機能は必要ありません。また厳密な信頼性を必要としないアプリケーションもあり得ます。UDPはこうした要請から生まれました。

 信頼性を提供するためにTCPの処理は重くなります。それに比べてUDPは,処理が軽いのが特徴です(pict.1[拡大表示])。