DNS服务器使用哪些算法来加快查找速度?

时间:2009-10-18 16:51:38

标签: algorithm caching dns lookup

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

2 个答案:

答案 0 :(得分:8)

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

当DNS服务器响应查询时,答案会以TTL(生存时间)返回。 TTL值告诉查询服务器缓存响应的时间。 TTL值由区域的权威服务器设置。通常大约一天,但可能会有所不同,具体取决于管理员认为DNS条目可能发生变化的频率。

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

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

答案 1 :(得分:4)

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

  1. 使用BGP建立地理位置分散的服务器网络,可通过Anycast访问。这可以减少DNS查询数据包必须遍历的平均跳数。

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

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

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