第一步:客户端用户在浏览器输入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的解析流程结束。

关于迭代和递归的解释:递归是一个树结构,每个分支都探究到最远,发现无法继续的时候往回走,每个节点只会访问一次。

迭代是一个环结构,每次迭代都是一个圈,不会拉掉其中的某一步,然后不断循环,每个节点都会被循环访问。

递归是调用自己,而迭代是调用别人。

Logo

一站式 AI 云服务平台

更多推荐