• DNS原理


    一、DNS是什么

        DNS Domain Name System 域名系统,它是由解析器和域名服务组成的

        域名和IP地址相互映射的一个分布式数据库

        不用去记住能够被机器直接读取的IP

    二、DNS解析过程

      1、用户在浏览器中输入www.baidu.com

      2、DNS做域名解析,浏览器自己也有缓存,如果有直接拿缓存ip,windos也会找host文件域名对应的ip,如果有的话就直接返回ip

        如果没有则走DNS域名解析对应的ip并且缓存,通过这种循环迭代的查询相应的ip

      3、用户在得到IP地址后,向该地址所指向的网站的服务器进行访问

    解释DNS域名解析的过程:

      打开浏览器,输入一个域名。比如输入www.163.com,这时,你使用的电脑会发出一个DNS请求到本地DNS服务器。

      本地DNS服务器一般都是你的网络接入服务器商提供,比如中国电信,中国移动。

      查询www.163.com的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。 

         如果没有,本地DNS服务器还要向DNS根服务器进行查询。

      根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。

      本地DNS服务器继续向域服务器发出请求,在这个例子中,请求的对象是.com域服务器。

      .com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。

      最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,

      本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。

     

    关于DNS解析的TTL参数:

      我们在配置DNS解析的时候,有一个参数常常容易忽略,就是DNS解析的TTL参数,Time To Live。

      TTL这个参数告诉本地DNS服务器,域名缓存的最长时间。

      用阿里云解析来举例,阿里云解析默认的TTL是10分钟,10分钟的含义是,本地DNS服务器对于域名的缓存时间是10分钟,

      10分钟之后,本地DNS服务器就会删除这条记录,删除之后,如果有用户访问这个域名,就要重复一遍上述复杂的流程。

      其实,如果网站已经进入稳定发展的状态,不会轻易更换IP地址,我们完全可以将TTL设置到协议最大值,即24小时。

      带来的好处是,让域名解析记录能够更长时间的存放在本地DNS服务器中,以加快所有用户的访问。

      设置成24小时,其实,还解决了Googlebot在全球部署的服务器抓取网站可能带来的问题,

      这个问题麦新杰专门有一篇博文,请参考:“Googlebot无法访问您的站点”问题理解和处理方法

      阿里云之所以只将TTL设置成10分钟,是为了让域名解析更快生效而已。

      因为之前的解析会在最长10分钟之后失效(本地DNS服务器将对应的解析条目删除),然后新的解析生效。

      如果是24小时,这个生效的时间最长就是24小时,甚至更长(本地DNS服务器要有用户请求,才会发起查询)。

      参考:http://www.maixj.net/ict/dns-chaxun-9208

  • 相关阅读:
    C++常用工具收集
    Ubuntu禁用触摸板
    Vim简本
    JS原型链模式和继承模式
    JS原型链模式
    JS中的单例模式/工厂模式/构造函数模式(并非完全意义上的设计模式)
    JS中一道关于this和闭包的题
    JS中的this关键字
    JS闭包
    JS作用域和作用域链
  • 原文地址:https://www.cnblogs.com/dump/p/8119345.html
Copyright © 2020-2023  润新知