DNS またはその他のサービスは、TCP と UDP の両方で動作します

この記事では、一部のサービスでプロトコル TCP と UDP の両方を使用する理由について説明します。

適用対象: Windows Server 2003
元の KB 番号: 556000

概要

DNS とその他のサービスは両方のプロトコルで動作します。 DNS サービスの例を示します。 2 つのプロトコルが互いに異なります。 TCP は接続指向のプロトコルであり、宛先でデータの整合性を確保する必要があり、UDP は接続レス プロトコルであり、データの整合性を確保する必要はありません。また、データの整合性を確保するためにホストとの接続を確立する必要はありません。

UDP パケットのサイズは小さくなります。 UDP パケットは 512 バイトを超えることはできません。 そのため、アプリケーションで 512 バイトを超えるデータを転送するには、TCP が必要です。 たとえば、DNS では、次に説明する正当な理由から TCP と UDP の両方が使用されます。 UDP メッセージは 512 バイトより大きくなく、このサイズより大きい場合は切り捨てられます。 DNS はゾーン転送に TCP を使用し、名前には UDP を使用し、通常 (プライマリ) または逆引きのいずれかをクエリします。 UDP を使用して小さな情報を交換できます。一方、TCP を使用して 512 バイトを超える情報を交換する必要があります。 クライアントが DNS から応答を受け取らない場合は、3 秒から 5 秒後に TCP を使用してデータを再送信する必要があります。

DNS ゾーン データベースには整合性が必要です。 これを行うために、TCP は常に TCP を使用してゾーン データを転送します。TCP は信頼性が高く、データを要求した他の DNS サーバーにフル ゾーンを転送することでゾーン データの一貫性を確保します。

この問題は、Windows 2000 サーバーと Advanced Server 製品で 1023 以上のすべての動的ポートが使用されている場合に発生します。 この場合、DNS サーバーはインターネットに接続する必要はありません。つまり、ネットワーク上のクライアント マシンに対するすべての標準クエリを実行します。 ルーター (ACL) は、機能するために、すべての UDP 受信トラフィックが高い UDP ポートにアクセスすることを許可する必要があります。

LDAP では常に TCP が使用されます。これは true であり、データを送信するためにクライアントとサーバーの間にセキュリティで保護された接続が確立され、UDP ではなく TCP のみを使用して行うことができるため、UDP ではない理由です。 UDP は、認証のためにドメイン コントローラー (Kerberos) を見つける場合にのみ使用されます。 たとえば、DNS を使用してドメイン コントローラーを検索するドメイン クライアントなどです。

Community ソリューション コンテンツの免責事項

Microsoft の企業および/またはそれぞれのサプライヤーは、ここに含まれる情報および関連するグラフィックスの適合性、信頼性、または正確性について何ら表明を行いません。 このような情報および関連するグラフィックスはすべて、いかなる種類の保証も行わずに「as is」 で提供されます。 Microsoft および/またはそれぞれのサプライヤーは、この情報および関連グラフィックに関して、商品性、特定の目的に対する適性、作業マンライクな努力、タイトルおよび非侵害に関する黙示の保証と条件を含む、すべての保証および条件を放棄します。 お客様は、いかなる場合も、Microsoft および/またはサプライヤーが直接、または 間接的、懲罰的、偶発的、特別な、結果的な損害、または、Microsoft またはサプライヤーが損害の可能性について助言を受けた場合でも、契約、不法、過失、厳格な責任など、ここに含まれる情報および関連するグラフィックの使用または使用に関連する、または使用できない方法に関連するいかなる方法であれ、使用の損失、データまたは利益に対する損害を含むがこれらに限定されない損害。