一、什么是CDN?

CDN的全称是Content Delivery Network,翻译成中文就是内容分发网络。CDN依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取内容,降低网络延迟,提高访问速度。简单来讲,CDN是用来进行加速的,它可以让用户更快获得所需的数据。

举个例子,某个网站的服务器在北京,如果深圳的用户想要获取服务器上的数据,就需要跨越很远的距离,由于传输速度和路由转发等因素,就会导致访问速度非常缓慢。但如果我们在深圳建立一个CDN服务器,上面缓存了一些服务器数据,那么深圳用户只需要访问这个CND的服务器就能获取相关的内容,这样速度就提升了很多。

二、什么是DNS?

要了解cdn就先要了解一下dns。当我们在浏览器中输入一个域名时,就能访问对应的站点。但实际的情况远比我们看到的复杂,因为计算机不能直接识别域名,所以必须依靠某种环节将域名翻译成IP地址才能,这个环节就是DNS。

当我们向DNS服务器发起解析域名的请求时,DNS服务器首先会查询自己的缓存中有没有该域名,如果缓存中存在该域名,则可以直接返回IP地址。如果缓存中没有,服务器则会以递归的方式层层访问。

例如,我们要访问www.baidu.com,首先我们会先向全球13个根服务器发起请求,询问com域名的地址,然后再向负责com域名的名称服务器发送请求,找到baidu.com,这样层层递归,最终找到我们需要的IP地址。

三、CDN和DNS的区别

上面我们提到CDN实际上提供就是一个就近访问的功能,但现在有一个问题是,我们如何直到用户所在的位置并为其分配最佳的CDN节点呢。这就需要用DNS服务进行定位了。

当我们使用DNS服务时,可以根据用户使用的递归服务器进行定位。但你给我们看到用户使用的是深圳的递归服务器,那么就认为该用户来自深圳,然后调度服务器就让该客户去访问深圳的CDN服务器。

但这种调度方式可能存在一个问题,就是用户的实际IP与递归服务器并不一致。比如我是北京联通的用户却使用了深圳电信的递归服务器,那么调度服务器为我分配深圳电信的CDN服务器,就会产生错误的调度。

四、HTTP调度

针对上面的问题,我们还有另一种调度方式——http调度。

当用户访问服务器时,先分析用户的IP地址,然后服务器给用户返回一个302重定向,将离用户最近的服务器存在缓存中,用户再去请求时就能得到最佳的CDN节点。

这种方式定位更加准确,但缺点是需要增加一次额外的HTTP访问,这样导致首次访问的延时比较高。

所以在实际情况中,我们可以将两种方式结合起来,先通过dns的方式来定位,然后通过http的方式来纠正偏差。

五、缓存的两种方式

CDN节点中缓存了服务器上的部分资源。那么服务器怎么去更新CDN节点的缓存呢?

一种方式,是服务器主动进行缓存的更新,CDN节点被动接受。另一种方式是用户请求的资源不存在时,CDN节点主动放弃请求,更新缓存,然后将数据返给用户。

显然第一种方式存在很多问题,例如很容易产生404等,所以一般采用第二种缓存方式。

六、CDN工作流程

当用户请求一个文件时,CDN的工作过程如下:

1.DNS请求当地local DNS

2.当地local DNS递归地查询服务器的gslb

3.服务器根据local DNS 分配最佳节点,返回IP

4.用户获得最佳接入IP,访问最佳节点。

5.如果该节点没有用户想要获取的内容,则通过内部路由访问上一节点,直到找到文件或到达源站为止。

6.CDN节点缓存该数据,下次请求该文件时可以直接返回。

什么是CDN?CDN和DNS有哪些关系和区别?相关推荐

  1. CDN与智能DNS原理和应用

    1.cdn概念,DNS概念 CDN:Centent Delivery Network(内容分发网络) 使用户可以就近取得所需内容,提高用户访问网站相应速度 CDN=更智能的镜像+缓存+流量导流: DN ...

  2. CDN和智能DNS原理和应用 (原)

    CDN是什么? CDN的全称是Content Delivery Network,即内容分发网络. CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡.内容分发.调 ...

  3. 主DNS、辅助DNS、缓存DNS和基于CDN的利用DNS服务器实现负载均衡

    实验环境:Centos 6.5 一. 辅助DNS的搭建 Bind dns服务器所需要的包 bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm bind-chroot-9.8. ...

  4. CDN含义与DNS的联系

    一.CDN的含义 CDN也可以称为内容分发网络.CDN利用了多地部署缓存节点,再有中心智能调度.分发这一手法来降低网络延迟,提高网站访问速度.简单来讲CDN就是用来加速的,但跟我们的加速器不同,它是端 ...

  5. 什么是CDN ,CDN的作用

    转自:https://baike.baidu.com/item/CDN/420951?fr=aladdin 简介 CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均 ...

  6. CDN加速和买胡萝卜的关系

    如果你要提高服务的访问速度,大概有这么常用的几种: 缓存,CDN加速,索引优化,负载均衡等. 这跟买胡萝卜有什么关系么? 比如: [1]缓存:我要去城中心的大超市购买胡萝卜,但是由于品种繁多很难找到. ...

  7. 后端:静态资源放在cdn cdn涵义 cdn加载

    小程序提交不能超过2M,但是小程序的图标文件基本上都会有个4M以上.故采用cdn加速域名 <image src="https://cdn1.chinayarn.com/xcx/img/ ...

  8. 简述CDN 什么是CDN 为什么要用CDN CDN适用场景

    一.CDN的基本原理和基础架构 CDN是将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率.解决因分布.带宽.服务器性能带来的访问延迟问题,适用于站点加速.点播 ...

  9. 什么是CDN,CDN有什么作用?

    什么是CDN?笔者初见时也是摸不着头脑,查阅了大量的资料才明白什么是CDN,笔者为您揭秘什么是CDN? CDN的全称是Content Delivery Network,即内容分发网络.CDN的通俗理解 ...

最新文章

  1. Linux Terminal 控制终端的使用
  2. 怎么彻底删除电脑上的软件_你的电脑有救了:1 个神器几个进阶方法彻底删除流氓软件!...
  3. java makefile jar包_java makefile学习实践(编译的javac命令写在makefile中,运行命令java写在shell脚本中)...
  4. 15款最好的网站音乐播放器
  5. 我在神策做研发丨做冲在前方的第一方队,造中国最好的开源 SDK
  6. 【开发技术】java中代码检查checkStyle结果分析
  7. codevs-2235
  8. oracle mseq,一次RMAN备份报错的诊断过程(一)
  9. fitnesse - 安装部署
  10. win11联网不能打开网页怎么办 windows11联网不能打开网页的解决方法
  11. java定义一个空数组_一个 Java 方法,最多能定义多少参数?
  12. operation is executing and cannot be enqueued
  13. T-SQL 基础简介
  14. 详解光纤光缆、网线、电缆的区别
  15. Redux-Router
  16. 小案例:王者荣耀战力查询系统(免费调用外部接口
  17. 学计算机编程技校排名,学编程什么学校最好?
  18. 微信小程序 小星星样式
  19. 【Netty报错:】XXXDecoder.decode() did not read anything but decoded a message.
  20. 一叶知秋:通过Incloud Rail感受浪潮超融合架构

热门文章

  1. 和自然语言处理有关的英语_自然语言处理对非英语语言的重要性
  2. LeetCode--初级算法--数组篇--第十题--有效的数独
  3. 错误: 找不到或无法加载主类 com.sxt.ceshi.Demo166
  4. unity warning CS0108: test4.name' hides inherited memberUnityEngine.Object.name’.
  5. 万字长文:功能安全量产落地的三座大山
  6. 抱薪者说 | 薪火相传,薪之不绝,火亦不熄
  7. 调和数,1加二分之一加三分之一加到 n 分之一
  8. python综合程序设计——做一个可视化大屏
  9. Spring BackOff退避算法(一)
  10. NLP实战之textRNN中文文本分类