我很好奇 /etc/hosts 条目如何在 Linux 与其他 *nix 平台中匹配(如果有任何区别)。
我特别想了解“匹配时间”是否与条目数量成正比。
找到第一个匹配后,“匹配”是否停止?或者即使已经找到匹配项,它也会使用所有条目?
非常感谢
在 Linux 下,解析/etc/hosts直到匹配以解析条目。这也是1983 年 4.3 BSD 版本中处理它的方式,这是现代 Unix IP 堆栈的第一个通用版本。
重要的是要记住,在 4.3 BSD 的时候,连接 Internet 的主机的整个列表都保存在一个集中的网络信息中心,并且编号只有大约 325。连接的主机会从 NIC 检索 Internet 上每台主机的列表,通过几百行的线性搜索就足够了。大约在这个时候,IETF 意识到无法很好地扩展,因此提议了域名系统。此后,如果您在 /etc/hosts 中有超过几百行,那么您就“做错了”。
还要注意 /etc/hosts 是由 libc(一个用户空间库)处理的。内核不知道除了sockaddr
. 因此,此答案仅适用于 /etc/hosts 的处理,并且特别忽略了在缓存行为和时间复杂性方面差异很大的总体名称解析器系统。
归档时间: |
|
查看次数: |
5599 次 |
最近记录: |