DNS二级域搜索效率



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个可能的二级域名。

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

此外,DNS系统是分层的,因此一旦ISP的DNS服务器查找到(例如cnn.com),它就会缓存数据,即使其他客户端询问,它也不会在一段时间内再次询问根服务器。过一段时间后,许多根域都被缓存在离客户端很近的地方。

这并不是说根服务器没有为他们安排工作…:-)

很可能(我还没有检查,但下次见到BIND的主要作者时会问)他们只是使用标准的二叉树。

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

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

最新更新