一文读懂DNS和CDN

一.什么是DNS

        DNS(Domain Name System)全称为域名系统,是一个将域名和IP地址相互映射的分布式服务,他的作用就是把一个域名解析成为IP地址。我们平时输入的网址(或者域名)不能被计算机直接识别,必须通过DNS服务器将域名翻译成IP地址,才能进行完整的访问,这个过程就被称作DNS解析,是访问中必不可少的一个部分。

二.DNS的分布式架构

       DNS本身是一个非常优秀的分布式架构。

       位于最顶层的是根域名服务器(Root Name Server)。在2016年的统计数据中,全世界目前有13台IPv4根服务器,25台IPv6根服务器。

        根域名服务器

            根域名服务器存储的是一个目录,如果把所有的DNS请求都集中在少量的根域名服务器中,这个访问流量就会非常巨大,而且一旦发生故障很容易导致大面积瘫痪。而且从用户的体验角度来说,如果所有的DNS请求都走根服务器,不同的用户距离根服务器的距离不同,感受到的延迟也不一样,这样对用户来说不大友好。

            所以,为了避免流量过大,避免地理分布等问题,根域名服务器只是一个目录,并不提供具体的数据。

        域名分级和数据分区

              根服务器会提供相应的目录索引规则。在域名的世界中,通过分级域名的策略建立索引,伴随着域名的分级策略,实际上是域名数据库的拆分。通过域名的分级,可以将数据库划分成一个个区域。

              我们平时用的或者看到的.com .cn .net等,称为顶级域名。比如说www.baidu.com这个网址,com就是顶级域名,baidu是二级域名,www是三级域名。域名的分区是为了建立目录和索引,并对数据存储进行分区。

从上图的结构可以看到,DNS的存储设计是一个树状结构。叶子节点中才存放真是的映射关系,中间节点都是目录,存储分为三层。

    1.顶部第一级是根DNS存储,存储的是顶级域的目录,被称作根DNS服务器;

    2.第二级是顶级域存储, 存储的是二级域的目录,被称作顶级域DNS服务器(Top Level DNS,TLD);

     3.最后一级是叶子结点,存储的是具体的DNS记录,也被称作权威DNS服务器。

三.DNS查询过程

      1.用户在浏览器中输入要访问的域名;

      2.浏览器向本地DNS查询域名对应的IP地址;

      3.本地DNS向根服务器发起请求;

      4.根服务器向本地服务器返回域名所属的顶级服务器;

      5.顶级服务器将所属域名的权威服务器返回给本地DNS;

      6.本地服务器向权威服务器发起请求,权威服务器将域名对应的IP地址返回给本地服务器;

      7.本地服务器将IP地址返回给用户,完成整个解析过程。

四.什么是CDN

      CDN的全称是Content Delivery Network,即内容分发网络。是一种利用分布式节点技术,在全球部署服务器,即时地将网站,应用视频,音频等静态或者动态资源内容分发到用户所在的最近节点,提高用户访问这些内容的速度和稳定性,降低网络拥塞和延迟,同时也能减轻源站的压力。提升网络或应用的可用性和安全性。

        CDN的基本原理是将源站的内容分发到离用户最近的节点上进行缓存,并通过智能路由,负载均衡等技术来保证用户能够快速,稳定地访问到所需资源。CDN将源站与用户之间的网络距离传输缩短,通过多节点并行传输,降低了网络传输的延迟和带宽的消耗。

五.CDN的回源是如何工作的

       CDN的回源指的是当用户访问某一个URL的时候,若是被解析到的那个CDN节点没有缓存响应的内容或者是缓存的内容已经到期,就会回源站去获取。如果没有人访问,那个CDN节点就不会主动去源站拿的。

        例子:比如源站在xxxx.com中发布静态资源,然后在CDN管理后台配置了这个源站。在使用CDN时,服务方会提供另一个域名,假如叫作ssss.com。然后配置将xxxx.com用CNAME记录指向CDN的智能DNS,如果用户要下载ssss.com/a.jpg,CDN的智能DNS会帮助用户选择一个最优的IP地址(最优的CDN节点),如果在这个CDN节点中没有a.jpg,或者源站内容有更新的时候,CDN就会到xxxx.com源站中去下载,缓存到CDN节点,然后再返回给用户。

       CDN回源有三种情况:1.CDN节点没有对应的资源时主动到源站获取资源;

                                            2.缓存失效的时候,CDN节点主动到源站获取资源;

                                           3.CDN管理后台或者使用开发接口的时候主动刷新就会触发回源。

        

       

       

       

      

相关推荐

  1. :Nginx Gateway

    2024-07-14 19:46:05       28 阅读
  2. c++ 容器

    2024-07-14 19:46:05       54 阅读
  3. 485通讯协议

    2024-07-14 19:46:05       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 19:46:05       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 19:46:05       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 19:46:05       62 阅读
  4. Python语言-面向对象

    2024-07-14 19:46:05       72 阅读

热门阅读

  1. linux常用命令

    2024-07-14 19:46:05       18 阅读
  2. Linux 软件工具安装

    2024-07-14 19:46:05       21 阅读
  3. C/C++指针&智能指针一

    2024-07-14 19:46:05       17 阅读
  4. Spring Boot

    2024-07-14 19:46:05       15 阅读
  5. pnpm 如何安装指定版本

    2024-07-14 19:46:05       26 阅读
  6. Feedback

    2024-07-14 19:46:05       19 阅读