6

DNS サーバーは、遅延を回避するために高速である必要があります。待ち時間を短縮するために DNS サーバーが使用するアルゴリズムは何ですか? 速度を向上させるために効果的に使用できるキャッシュメカニズムはありますか?

4

2 に答える 2

8

遅延は DNS の大きな問題です。DNS の最も遅い部分は、「ネットを越えて到達し、他のサーバーにクエリを実行することです。クライアントまたはサーバーがキャッシュを行うと、プロセスが高速化されます。実際、まさにそれが起こります。

DNS サーバーがクエリに応答すると、応答が TTL (time-to-live) と共に返されます。TTL 値は、応答をキャッシュする期間をクエリ サーバーに伝えます。TTL 値は、ゾーンの権限のあるサーバーによって設定されます。通常は約 1 日ですが、DNS エントリが変更される可能性があると管理者が考える頻度によって異なります。

DNS クライアント (エンド ユーザーに代わって動作する別のサーバーである可能性があります) は応答をキャッシュし、TTL を超えると応答をキャッシュからフラッシュします。それまでは、その特定のホスト名に対する後続のクエリはキャッシュから出てきます。

LAN 上のすべてのコンピューターがローカル キャッシュを利用できるように、自宅で独自の DNS サーバーを実行していました。しかし、ISP の DNS サーバーを使用する方がよいことがわかりました。彼らは何千もの顧客のクエリから恩恵を受け、私のサーバーよりも多くのキャッシュされた回答を持っている可能性がはるかに高かった.

于 2009-10-18T17:04:35.813 に答える
4

この質問にはすでに受け入れられている回答があることは知っていますが、キャッシュ以外にもできることはたくさんあります。例えば:

  1. BGP を使用して、エニーキャスト経由で到達可能な、地理的に分散したサーバーのネットワークを確立します。これにより、DNS クエリ パケットが通過する平均ホップ数を減らすことができます。

  2. レイテンシを含むインフラストラクチャを排除します。たとえば、WAN のスロー エンドではなく、ISP または大規模なインターネット ピアリング ポイントで DNS サーバーをホストします。

  3. CNAME レコードは避けてください。代わりに A レコードを優先します。CNAME を解決するには、多くの場合、複数のクエリが必要です。

  4. UltraDNS などの堅牢で高性能な商用サービスを使用します。

于 2009-11-23T02:13:16.300 に答える