この記事では、一部のサービスがプロトコル 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 ゾーン データベースには一貫性が必要です。 これを行うために、DNS は常に TCP を使用してゾーン データを転送します。TCP は信頼性が高く、データを要求した他の DNS サーバーにフル ゾーンを転送することでゾーン データの一貫性を確保します。
この問題は、Windows 2000 サーバーおよび Advanced Server 製品で、上記のすべての 1023 の動的ポートが使用されている場合に発生します。 この場合、DNS サーバーはインターネットに接続しないでください。つまり、ネットワーク上のクライアント マシンに対するすべての標準クエリを実行します。 ルーター (ACL) は、すべての UDP 受信トラフィックが機能するために、高い UDP ポートへのアクセスを許可する必要があります。
LDAP では常に TCP が使用されます。これは、データを送信するためにクライアントとサーバーの間にセキュリティで保護された接続が確立され、UDP ではなく TCP のみを使用して行うことができるため、これは正しく、UDP ではない理由です。 UDP は、認証用のドメイン コントローラー (Kerberos) を見つける場合にのみ使用されます。 たとえば、DNS を使用してドメイン コントローラーを見つけるドメイン クライアントなどです。
Community ソリューション コンテンツの免責事項
Microsoft の企業および/またはそれぞれのサプライヤーは、ここに含まれる情報および関連するグラフィックスの適合性、信頼性、または正確性について何ら表明を行いません。 このような情報および関連するグラフィックスはすべて、いかなる種類の保証も行わずに「as is」 で提供されます。 Microsoft および/またはそれぞれのサプライヤーは、この情報および関連グラフィックに関して、商品性、特定の目的に対する適性、作業マンライクな努力、タイトルおよび非侵害に関する黙示の保証と条件を含む、すべての保証および条件を放棄します。 お客様は、いかなる場合も、Microsoft および/またはサプライヤーが直接、または 間接的、懲罰的、偶発的、特別な、結果的な損害、または、Microsoft またはサプライヤーが損害の可能性について助言を受けた場合でも、契約、不法、過失、厳格な責任など、ここに含まれる情報および関連するグラフィックの使用または使用に関連する、または使用できない方法に関連するいかなる方法であれ、使用の損失、データまたは利益に対する損害を含むがこれらに限定されない損害。