DNS查找域名的过程

当我们在浏览器输入一个url地址时,需要获取到这个url的域名,本篇文章主要介绍了关于DNS查找解析域名的过程的一些东西。

关于DNS

不清楚DNS的小伙伴可以点这里:关于域名系统DNS解析IP地址的一些总结

查找域名 && 域名解析

DNS查找:

        浏览器查找域名的IP地址。

        浏览器DNS查找顺序一般是这样的:浏览器缓存→系统缓存→路由器缓存→ISP DNS 缓存→递归搜索。

详细过程如下:

a. 浏览器缓存,浏览器会缓存DNS记录一段时间。

        操作系统没有设定浏览器存储DNS记录的时间长短,不同的浏览器会存储各自的一个固定时间,时长为2~30分钟不等。

b. 系统缓存

        如果浏览器缓存里没有找到需要的记录,浏览器会做一个操作系统调用(windows里是gethostname),这样子,就可以获得系统缓存里的记录啦。

c. 路由器缓存

        接下来,如果还是没有找到需要的缓存,将前面的查询请求发给路由器,它一般会有自己的DNS缓存。

d. 如果还是没有,那么就去检查ISP有没有吧~

        每一个ISP(网络服务提供商),或一个大学,甚至是一个大学里的系都会有一个自己的本地域名服务器,他会在url第一次访问时缓存该域名的指向。下次再访问时,他会从缓存里把这个url曾经指向的IP调出来。

e. 递归搜索

        还是没有需要的缓存~ 就只能放大招啦~
        你的ISP的DNS服务器会从根域名开始进行递归查询。

递归查询

        主机向本地域名服务器的查询一般都是采用递归查询

        如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是返回一个失败的响应,表示无法查询到所需的IP地址。

迭代查询

        本地域名服务器向根域名服务器的查询通常是采用迭代查询

        当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么返回给本地域名服务器所要查询的IP地址,要么返回给本地域名服务器下一步应当查询的域名服务器的IP地址。

举个栗子:假设的主机想知道另一个主机(域名为 my.xxsilence.net)的IP地址。具体步骤如下:

① 主机先向其本地域名服务器进行递归查询,如果缓存中没有,继续下一步。

② 本地域名服务器采用迭代查询,先向一个根域名服务器查询。

③ 根域名服务器告诉本地域名服务器,下一次查询的顶级域名服务器 dns.net。

④ 本地域名服务器向顶级域名服务器 dns.net。

⑤ 顶级域名服务器 dns.net,下一次应查询的权限域名服务器dns.xxsilence.net的IP地址。

⑥ 本地域名服务器向权限域名服务器dns.xxsilence.net进行查询。

⑦ 权限域名服务器dns.xxsilence.net告诉本地域名服务器,所查询的主机的IP地址。

⑧ 本地域名服务器最后把查询结果告诉主机。

本文链接:http://www.cnblogs.com/xsilence/p/6035559.html

posted @ 2016-11-06 16:21 silencetea 阅读(...) 评论(...) 编辑 收藏