核心知识点:
1.DNS简介
DNS,全称Domain Name System,把网站域名解析成对应的IP地址。
DNS除了域名解析之外,还有以下功能:
- 设置CDNME别名记录,这个别名解析功能常被CDN加速服务商应用
- 设置MX邮件记录,这个MX记录功能,在购买搭建邮件服务时会被用到
- 设置PTR记录,反向解析,即把IP地址解析为对应的域名
DNS系统的架构类似于一棵倒挂着的树,它的顶点也是根("."),整个DNS系统的树状结构如下图所示:
2.DNS的解析流程
我们在浏览网页的时候,输入一个网址(例如www.baidu.com)时,为什么很快就会看到网站上的内容,
中间究竟经历了哪些流程,为什么有的网站响应的速度快?(比如在输入一个国外网址的时候)
为什么又有许多网站解析不出来了?接下来会阐述DNS的解析流程。
DNS的解析流程实际上就是从用户在客户端浏览器输入网站地址并按回车开始的,一直持续到获取域名对应的IP,整个过程流程如下:
第一步:客户端用户在浏览器输入www.baidu.com网站地址后回车,系统首先会查找系统本地的DNS缓存及hosts文件
如果存在就获取IP地址,然后根据IP去访问对应的服务器,
一般第一次请求时,DNS缓存是没有解析记录的,而hosts多为内部临时测试使用。
第二步:如果客户端本地的DNS缓存及本地的hosts文件没有www.baidu.com域名对应的解析记录,
那么,系统会把浏览器的解析请求发送给客户端本地设置的DNS服务器地址(通常称此DNS为LDNS,即local DNS)解析
如果LDNS服务器的本地缓存有对应的解析记录就会直接就会直接返回IP地址给客户端,如果没有,则LDNS会负责继续请求其它的DNS服务器。
第三步:LDNS从DNS系统的(".")根开始请求对www.baidu.com域名的解析,根DNS服务器在全球一共有13台,
根服务器下面是没有www.baidu.com域名解析记录,但是根下面有www.baidu.com对应的顶级域的.com的解析记录,
因此,根会把.com对应的DNS服务器地址返回给LDNS。
第四步:LDNS获取到.com对应的DNS服务器地址后,就会去.com服务器请求www.baidu.com域名对应的解析记录,
而.com服务器下面也没有www.baidu.com域名对应的解析记录,但是有baidu.com域名的解析记录,
因此,.com服务器会把baidu.com对应的DNS服务器地址返回给LDNS。
第五步:同理,LDNS获取到baidu.com对应的DNS服务器地址后,就会去baicu.com服务器请求对www.baidu.com域名的解析,
baidu.com域名对应的DNS服务器是该域名的授权的DNS服务器,这个DNS服务器正是企业购买域名时用于管理解析的服务器,
这个服务器会有与www.baidu.com对应的IP解析记录,如果没有,那么表示网站不存在或者还没有架设好。
第六步:baidu.com域名DNS服务器会把www.baidu.com对应的IP解析记录发给LDNS。
第七步:LDNS把来自授权DNS服务器的与www.baidu.com对应的IP解析记录发给客户端浏览器,
并且LDNS会在本地把域名和IP对应的解析记录缓存起来,以备下次更快的访问。
到此整个DNS的解析流程结束。
关于迭代和递归的解释:递归是一个树结构,每个分支都探究到最远,发现无法继续的时候往回走,每个节点只会访问一次
迭代是一个环结构,每次迭代都是一个圈,不会拉掉其中的某一步,然后不断循环,每个节点都会被循环访问、
递归是调用自己,而迭代是调用别人。