DNSの名前解決時に発生することのある「TCPフォールバック」について解説する。
名前解決において、DNSサーバーの応答が512バイトを超えた場合、DNSサーバーはDNSメッセージを512バイト以下に切り詰める。その際、切り詰めが発生したことを示す「TCビット」をセットした応答を返す。TCビットがセットされた応答を受け取ると、問い合わせ送信元は同じ問い合わせをTCPで再送する。この一連のやり取りを「TCPフォールバック」と呼ぶ。これにより、65535バイトまでのDNSメッセージの受信が可能となる。
DNSでは、TCPの使用によって発生するコストと遅延を避けるため、いきなりTCPで問い合わせるのではなく、UDPでの試行の後にTCPを利用すべきであると定められている(RFC 5966で定義)。
Copyright © ITmedia, Inc. All Rights Reserved.