DNSがUDPを使うのはなぜですか?

松浦 孝康(JPRS)
2003/12/3

 DNSにおける名前解決では、やりとりされるデータが小さいことから原則として問い合わせ・応答ともに1パケットのUDPで行えるように設計されています。これはTCPに比べてUDPはプロトコルオーバヘッド※1が小さいという利点があるからです。

※1プロトコルオーバヘッドとは、通信におけるさまざまな処理を行うために費やすコスト時間のことを指します

 TCPでは、実際にデータを送信するまでに、セッション確立のための処理を行ったり、送信したデータが受信されたかどうかのチェック、受信されなかった場合は再送要求を出すなど、通信の信頼性を確保するためにさまざまな処理を行っています。そのため、クライアントおよびサーバ上での処理に掛かるプロトコルオーバヘッドはUDPに比べて大きくなります。また、小さなデータをやりとりするときでも、TCPはこれらの一連の処理をしなければならず、非効率的です。

 これに対してUDPは、TCPのような通信の信頼性確保のための処理がなく、その分クライアントおよびサーバ上でのプロトコルオーバヘッドは小さくなります。

 このことからDNSのような小さなデータをやりとりするときにおいては効率的、かつ高速に動作します。なお、UDPで信頼性が必要な場合はアプリケーション側(ここではDNSサーバ、およびリゾルバ)で再送要求を出すなどの処理が必要になります。

関連記事 DNSにおけるUDPの制限って何ですか?

DNS Tips Index

「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間