web-dev-qa-db-ja.com

DNSがトランスポート層プロトコルとしてUDPを使用する理由

DNSがトランスポート層プロトコルとしてUDPを使用する理由

19
Ada S
  • UDPははるかに高速です。 TCPは3ウェイハンドシェイクを必要とするため低速です。DNSサーバーの負荷も重要な要素です。DNSサーバーは(UDPを使用するため)接続を維持する必要はありません。
  • DNS要求は一般的に非常に小さく、UDPセグメントにうまく適合します。
  • UDPは信頼できませんが、アプリケーション層に信頼性を追加できます。アプリケーションはUDPを使用でき、タイムアウトを使用してアプリケーション層で再送信することで信頼性を高めることができます。
18
Matthias Hamann

UDPは安いです。 UDP自体は信頼できませんが、DNSなどの高レベルのプロトコルは信頼性を維持できます。応答がない場合にUDPデータグラムを繰り返すことにより。

しかし、最後はDNSの場合ではありません。 DNS自体は、UDPの他に(そのプライマリプロトコルとして)信頼性の高いTransmission Control ProtocolTCP)も使用する場合があります。

最後は、応答データのサイズが512バイト、および信頼できる配信を必要とするタスクの場合(例:ゾーン転送)。

さらに、allクエリにTCPを使用するリゾルバ実装がいくつかあります。

8
MarianD
5
alhelal