1. 什么是DNS?
DNS是域名系统的缩写,DNS通过将域名与实际的Web服务器连接来帮助引导Internet上的流量。从本质上讲,它需要一个人性化的请求 – 像simcf.cc这样的域名 – 并将其转换为计算机友好的服务器IP地址 – 如121.11.0.232。因为一个应用程序请求TCP打开连接或使用UDP发送一个数据报之前,必须将一个主机名转换为一个IP地址。
2. 域名解析过程:
DNS协议运行在UDP协议之上,使用端口号53。当某个应用进程需要将主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个客户,将待解析的域名放在DNS请求报文中,以UDP数据报方式发给本地域名服务器。本地域名服务器在查找域名后,将对应的IP地址放在回答的报文中返回。应用进程获得目的主机的IP地址后即可进行通信。
1.浏览器将会检查缓存中有没有这个域名对应的解析过的IP地址,如果有该解析过程将会结束。
2.如果用户的浏览器中缓存中没有,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
3.如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
4.如果本地没有,就向DNS域名服务器查询。先由主机向本地域名服务器进行递归查询,如果没有查到则由本地域名服务器向根服务器进行迭代查询。
3. 为提高DNS查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。