什么是DNS解析?DNS解析的详细过程是什么样的?

IP地址和域名的关系

TCP/IP网络要求每一个互联的计算机都有一个唯一的IP地址,如39.162.20.48。IP地址是网络中每一台计算机的电子标识符,计算机通过IP地址与其他计算机进行定位和通信。但直接使用IP地址有很多不便之处,因为IP地址是由一串纯数字组成,很难区分和记忆。

在互联网早期,网站较少,人们还可以直接根据IP地址去定位网站。但随着互联网的快速发展,各种各样的网站快速增长,每个人在日常工作中都会接触到大量的网站,而要记住所有网站的IP地址显然是不现实的。

目前我们访问网站的主要方式并不是IP地址,而是使用另外一种寻址符——域名。域名是由数字、字母和特殊符号组成的字符串,如baidu.com、12306.cn等,和IP地址相比,域名具有一定的规律性,更方便人们记忆。

但从计算机的角度来看,由于域名的字节长度更长,计算机利用域名进行通信会消耗更大的资源。而且计算机更擅长处理纯数字,对于字母和数字的组合理解起来更加困难。所以目前的互联网中有域名和IP两种通信方式,分别由人类和计算机使用。

为了打破两者之间的互通障碍,DNS解析服务应运而生,DNS解析能够将域名与IP地址进行绑定,实现两者之间的一一指向关系。通过DNS解析的翻译功能,用户就能通过域名,访问到网站对应的服务器IP,获取最终的服务。

DNS系统结构

提供DNS解析服务的系统被称为DNS(Domain Name System,域名系统),它是一个存储域名IP地址相互映射关系的一个分布式数据库,能够为用户提供DNS解析服务,将用户请求的域名翻译成计算机可直接识别的IP地址,从而能够让用户更方便地访问互联网,而不用去记住每个网站的IP地址。

域名与IP地址的映射关系必须储存在域名服务器中,供其他应用查询,为了提升解析的稳定性和效率,DNS系统采用了分层式结构,每一层的域名服务器只对其所辖的部分进行应答。根据不同域名服务器起到的作用,可以将域名服务器划分为四种不同的类型:

根域名服务器

根域名服务器是DNS结构中最高层次的域名服务器。当本地域名服务器无法对域名进行解析时,首先会请求根域名服务器。

顶管域名服务器

顶级域名服务器是根服务器下第二层服务器,本地DNS服务器在根服务器请求不到结果后,会向顶级域名服务器发起查询请求,顶级域名服务器返回二级域名授权的DNS服务器地址。

权威域名服务器

权威域名服务器负责某一个区的域名服务器。当一个顶级域名服务器还不能给出最后查询回答时,就会告知下一步应当请求的权威域名服务器地址。

本地域名服务器

本地域名服务器并不属于下图中的树状结构的DNS域名服务器,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。每一个互联网服务提供者ISP都可以拥有一个本地域名服务器。

DNS解析是分布式存储的,其中根域名服务器只存储了260个顶级域名服务器的IP地址。顶级域名服务器如.cn的顶级域名服务器,则存储着下一级权威解析服务器地址,如vip1.sfndns.cn,而这才是提供域名与IP地址指向关系的服务器,是整个DNS解析环节的核心。

DNS解析的具体流程

每当发送一个url请求,浏览器就会启动一个DNS查询,使浏览器获得域名对应的IP地址。

为了节省DNS解析时间,在DNS解析各个环节中都引入了缓存机制,当客户端发起解析请求时,首先会从各级的DNS缓存中查询结果,如果命中直接返回,无需再请求各级域名服务器。

(1)查看浏览器缓存

浏览器会将每一条域名解析结果缓存一段时间,当用户发起请求时,浏览器首先会查询自身的缓存中是否有想要的结果,如果有直接返回,解析到此结束;如果没有再请求下一级。

(2)查看系统缓存

如果浏览器中没有要找的记录,浏览器就会做一个系统调用(windows里是gethostbyname),从系统缓存中查找信息。

(3)查看路由器缓存

当浏览器及系统缓存中均无域名对应 IP 则进入路由器缓存中检查,以上三步均为客户端的 DNS 缓存

(4)查看ISP DNS 缓存

当在用户客户端查找不到域名对应 IP 地址,则将进入 ISP DNS 缓存中进行查询。比如你用的是电信的网络,则会进入电信的 DNS 缓存服务器中进行查找。

如果以上步骤中都没有目标域名的缓存记录,本地DNS服务器才开始通过DNS系统发起全球的迭代查询。

(5)本地DNS服务器首先请求根域名服务器;

(6)根域名服务器告知下一级顶级域名服务器的地址;

(7)本地DNS服务器请求顶级域名服务器;

(8)顶级域名服务器告知域名授权的权威域名服务器地址;

(9)本地DNS服务器请求权威域名服务器;

(10)权威服务器将域名对应的IP地址告知本地DNS服务器;

(11)本地DNS服务器将解析记录返回给客户端浏览器。

至此,整个DNS解析流程结束,客户端浏览器根据解析记录对目标IP发起访问。

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值