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个可能的二级域名。
答案 0 :(得分:1)
原因是26 ^ 63个域中实际使用的很少。
此外,DNS系统是分层的,因此一旦ISP的DNS服务器查找例如cnn.com,它就会缓存数据,并且在设定的时间内不再询问根服务器,即使其他客户端询问关于它。过了一段时间,很多根域都被缓存到客户端附近。
这并不是说根服务器没有为他们减少工作......: - )
答案 1 :(得分:0)
最有可能(我没有检查过,但是当我看到BIND的主要作者时会问,他们只是使用标准binary tree。
一个适当平衡的二叉树需要大约27级才能保存~100M .com
域名。
不太可能使用hash table,因为DNS服务器通常需要能够按需生成排序区域文件,并且哈希表不适合生成密钥的排序列表。