【问题标题】:DNS second-level domain search efficiencyDNS二级域名搜索效率
【发布时间】:2012-02-08 04:12:05
【问题描述】:

DNS 二级域名查找的效率如何?例如,在 url web.example.com 中,顶级域是 .com,二级域是 .example。当我们查询 web.example.com 时,根服务器将为 .com 提供 gTLD 服务器。为 .com 选择 gTLD 服务器后,该服务器将返回 example.com 的名称服务器。一个 gTLD 怎么能知道所有可能的二级域(例如“example.com”)的名称服务器,因为可能有这么多可能的二级域?根据维基百科 (en.wikipedia.org/wiki/Domain_Name_System#Structure) 每个标签最多 63 个字符,所以如果我们限制为英文字母,这已经为我们提供了 26^63 个可能的二级域。

【问题讨论】:

    标签: dns web


    【解决方案1】:

    原因是 26^63 个域中实际使用的域非常少。

    此外,DNS 系统是分层的,因此一旦 ISP 的 DNS 服务器查找例如 cnn.com,它会缓存数据并且在设定的时间内不会再次询问根服务器,即使其他客户端询问也是如此关于它。一段时间后,许多根域被缓存在非常靠近客户端的地方。

    这并不是说根服务器没有为他们完成工作...... :-)

    【讨论】:

    • 根服务器的数据库非常小,但会得到 很多 个查询。
    【解决方案2】:

    很可能(我还没有检查过,但是当我接下来看到 BIND 的主要作者时会问)他们只是使用标准的binary tree

    一个适当平衡的二叉树需要大约 27 层深才能容纳 ~100M .com 域名。

    不太可能使用hash table,因为 DNS 服务器通常需要能够按需生成排序区域文件,而哈希表不适合生成排序的键列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-20
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多