DNS域名解析流程--个人心得欢迎大家讨论

                            

当我们在浏览器中输入一个网址,例如www.baidu.com时,基本上会有以下步骤:

  • 第一步找本地缓存:当输入域名时,会先去本地缓存中查找缓存中是否有该域名对应的ip,如果有自然就返回了。而大家如果有兴趣的话可以打开命令提示符也就是运行cmd程序,在里面输入ipconfig/all可以查看本机的网络信息其中有包括了DNS的信息,而当我们需要清除dns缓存时,则可执行ipconfig /flushdns命令。(下图是我执行ipconfig/all后用Q截图的部分界面)
  
  • 第二步查找本地的Hosts文件:当在缓存中无法找到域名后,会去本地的C:\Windows\System32\drivers\etc目录下找到Hosts文件,判断本地是否有设置了域名对应的ip,这是我们可以去自己设置的,可以通过dns的这个机制我们通过Windows系统下的IIS配置网站之后可以在本地搭建自己的网站。当然这种只有本机才可访问到,便于学习。(下图为作者从自己本地的hosts文件截图的信息,127.0.0.1表示本机ip)

  • 第三步:当我们在以上均找不到的情况下,则会去本地的DNS服务器上查找,图二中有标出本地DNS服务器的后缀为LAN以及它的ip,这个DNS通常都提供给用户本地互联网接入的一个DNS解析服务,而这个服务器基本就是在你所在的地域附近,不会距离太远。

  • 第四步:如果还没有找到,那就去13个根域名服务器上查找,会返回给本地域名服务器一个所查询的主域名服务器(gTLD Server)地址。gTLD是国际顶级域名服务器,如.com、.cn、.org等,全球只有13台左右。这是因为DNS基于UDP的传输协议,而UDP中的数据包为512个字节,这就决定了只有13台根服务器。

  • 第五步:当根域名服务器返回主域名服务器的地址之后,本地服务器再项主域名服务器发出请求,而主域名服务器则会根据发过来的数据包返回个Name Server域名服务器的地址,Name Server域名服务器是用户注册的域名服务器,如果说根域名服务器返回的是管理.com的dns服务器的话,主域名服务器则是将管理baidu.com的dns服务器的地址发送过来。

  • 第六步:本地服务器接收到Name Server域名服务器的地址之后,去访问该dns服务器,找到我们所找的域名所对应的ip,并且会将TTL(生存周期一同发送给本地服务器)。

  • 第七步:本地服务器将得到的信息保存进缓存,而TTL作为缓存时长。

  • 第八部:本地缓存中有了域名对应ip的信息之后,自然就将解析出来的ip返回给当前的用户,至此DNS解析结束。

阅读更多
文章标签: 个人理解
上一篇IP报文--笔记笔记
下一篇三层架构与MVC---个人理解
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭