6

DNS 服务器必须快速以避免延迟。DNS 服务器使用什么算法来减少延迟?它们是否有任何可以有效用于提高速度的缓存机制?

4

2 回答 2

8

延迟是 DNS 的一个大问题。DNS 最慢的部分是通过“网络”访问并查询其他服务器。客户端或服务器所做的任何缓存都会加快该过程。事实上,这正是发生的事情。

当 DNS 服务器响应查询时,答案会返回一个 TTL(生存时间)。TTL 值告诉查询服务器缓存响应的时间。TTL 值由区域的权威服务器设置。通常大约需要一天,但可能会根据管理员认为 DNS 条目可能更改的频率而有所不同。

DNS 客户端(可能是代表最终用户的另一台服务器)缓存响应,并在超过 TTL 时将其从缓存中清除。在那之前,对该特定主机名的后续查询将从缓存中出来。

我曾经在家里运行自己的 DNS 服务器,因此我局域网上的所有计算机都可以利用本地缓存。但我发现最好使用我的 ISP 的 DNS 服务器。他们从成千上万客户的查询中受益,并且比我的服务器更有可能获得更多的缓存答案。

于 2009-10-18T17:04:35.813 回答
4

我知道这个问题已经有了一个公认的答案,但除了缓存之外,您还可以做更多的事情。例如:

  1. 使用 BGP 建立地理分布的服务器网络,可通过任播访问。这可以减少 DNS 查询数据包必须遍历的平均跃点数。

  2. 消除包含延迟的基础设施。例如,将您的 DNS 服务器托管在您的 ISP 或大型 Internet 对等点上,而不是在 WAN 的慢端。

  3. 避免 CNAME 记录;更喜欢 A 记录。CNAME 通常需要多个查询来解析。

  4. 使用强大的高性能商业服务,例如 UltraDNS。

于 2009-11-23T02:13:16.300 回答