以用户在浏览器输入www.west.cn为例,我们详细说明一下实际域名查询过程:
1、用户输入www.west.cn,浏览器调用操作系统resolver发起域名查询,此处不考虑浏览器的域名缓存;resolver封装一个dns请求报文,并将其发给运营商分配的local dns地址(或者用户自己配置的公共dns);
2、local dns查询缓存,如果命中则返回响应结果;否则向根服务器发起查询;
3、根服务器返回com地址。每一层级的DNS服务器都有缓存,实际都是先查缓存,没有缓存才返回下级域,此处不再重复;
4、local dns查询com。com返回west.cn地址;
5、local dns查询west.cn,west.cn返回www.west.cn对应记录结果。
理论上讲域名查询有两种方式:
迭代查询 A问B一个问题,B不知道答案说你可以问C,然后A再去问C,C推荐D,然后A继续问D,如此迭代.....
递归查询 A问B一个问题,B问C,C问D… 然后D告诉C,C告诉B,B告诉A
上述过程中从resolver到递归DNS再到根的查询过程为递归查询,递归DNS到根、到com、到MonkeyKing.net的过程为迭代查询。
注意:递归查询需要从系统层面来看,很难单纯的说一台DNS实现了递归查询。
jinshenku.cn 发表于 2016-1-11 01:16
路过表示 表示
欢迎光临 西部数码域名论坛 (https://club.west.cn/) | Powered by Discuz! X3.4 |