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个可能的二级域名。
发布于 2012-01-12 03:39:33
原因是26^63个域名中实际使用的非常少。
此外,DNS系统是分层的,因此一旦ISP的DNS服务器查找到例如cnn.com,它就会缓存数据,并且在一段设定的时间内不会再次向根服务器询问该数据,即使其他客户端询问它。一段时间后,许多根域被缓存到离客户端非常近的地方。
这并不是说根服务器没有为它们准备好的工作。:-)
发布于 2012-01-12 06:38:55
很可能(我还没有检查过,但是当我看到BIND的主要作者时会问)他们只使用了一个标准的binary tree。
一个适当平衡的二叉树需要大约27层深才能容纳大约100M个.com域名。
它不太可能使用hash table,因为DNS服务器通常需要能够按需生成已排序的区域文件,而哈希表不能生成已排序的键列表。
https://stackoverflow.com/questions/8825474
复制相似问题