DNS解析全过程

浏览器输入一个网址,要访问该网址必须由DNS解析出对应的服务器的IP地址。对于大型网站来说,一个网站对应多台服务器,那么DNS解析出的可能是进行负载均衡的服务器的IP地址。DNS解析过程总体上来说是先查缓存,缓存没有命中然后迭代查询本地(ISP)DNS服务器,由本地DNS服务器递归查询的过程。

整体过程如下图所示:


我们以访问www.example.microsoft.com为例进行说明:

浏览器中输入www.example.microsoft.com访问时,浏览器会首先检查浏览器缓存看是否存在域名到服务器ip的对应关系

如果没有检查操作系统缓存(Windows去检查C:\Windows\System32\drivers\etc\hosts,linux检查/etc/hosts文件)然后检查路由器缓存,如果有本地DNS服务器则去查本地DNS服务器缓存,如果没有,然后检查首选DNS或者备选DNS服务器(ISP DNS服务器)缓存,80%的域名都可以到此步查找到对应的服务器IP地址。

如果本地DNS服务器或者ISP DNS服务器没有对应的记录,则由改服务器递归的进行DNS解析。首先该DNS服务器会向13个根域名服务器发送DNS查询,根域名服务器返回对应的域名DNS服务器(.com)地址 ,DNS服务器向.com域名发送DNS查询报文得到microsoft.com DNS服务器的地址,然后DNS服务器向microsoft.com DNS服务器查询最后得出www.example.microsoft.com对应的ip地址。

DNS解析过程是通过发送或者接受DNS查询和响应报文完成的。DNS报文格式由12字节的首部(必须字段)和4个长度可变的可选字段组成。DNS在区域中传递使用TCP协议,DNS解析过程使用UDP,53端口。



发布了53 篇原创文章 · 获赞 16 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/gexiaochuan122/article/details/46646335