(Domain Name System,域名系统)因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
浏览器如何查找域名对应的IP地址 / DNS解析原理
1.客户端向本机配置的本地域名服务器发出DNS域名查询请求。
2.本地域名服务器收到请求后,先查询本地的缓存,如果有该域名的记录项,则本地域名服务器就直接把查询的结果返回给客户端;如果本地缓存中没有该域名的记录,则本地名称服务器再以DNS客户端的角色发送与前面一样的DNS域名查询请求发给根域名服务器。
3.根域名服务器收到DNS请求后,把所查询得到的所请求的DNS域名中顶级域名所对应的顶级名称服务器地址返回给本地域名服务器。
4.本地域名服务器根据根域名服务器所返回的顶级名称服务器地址,向对应的顶级域名服务器发送与前面一样的DNS域名查询请求。
5.对应的顶级域名服务器在收到DNS查询请求后,也是先查询自己的缓存,如果有所请求的DNS域名的记录项,则相接把对应的记录项返回给本地名称服务器,然后再由本地域名服务器返回给DNS客户端,否则向本地域名服务器返回所请求的DNS域名中的二级域名所对应的二级域名服务器地址。
6.然后本地名称服务器继续按照前面介绍的方法依次地向三级、四级域名服务器查询,直到最终的对应域名所在区域的权威域名服务器返回最终的记录给本地域名服务器,然后再由本地域名服务器返回给DNS客户,同时本地域名服务器会缓存本次查询得到的记录项。
(这里默认是递归查询,查询工作由本地域名服务器替代DNS客户端进行,只需要本地名称服务器向DNS客户端返回最终的查询结果即可。而迭代查询的所有查询工作全部是DNS客户端自己进行的)