CDN是什么

  CDN(Content Delivery Network)是内容分发网络。  

作用:

  使用户可以就近取的所需要的内容,加速用户访问网站资源的速度。物理距离更近,响应速度更快。拦截部分网络请求,对主站分流作用,减轻了主站的负载。

  CDN= 更智能的镜像 + 缓存 + 流量导向

原理:

  利用部署大量网络节点,通过服务器缓存加速,让用户可以就近同运营商网络,更快的访问网络资源。

常用使用场景:

  1.视频网站视频加速。

  2.图片网站,图床。缓存静态资源如各类型图片、html、css、js文件。

  3.大文件下载,获得更快的下载速度。

  

CDN关键技术:

  1. 缓存算法  

    缓存算法决定命中率、源服务器压力、POP节点存储能力。

  2. 分发能力。

    分发能力取决于互联网数据中心(IDC)能力和IDC策略性分布。

  3. 负载均衡。

    负载均衡(智能调度)决定最佳路由、响应时间、可用性、服务质量。

  4. 基于DNS[BIND])。

  5. 支持协议。

    支持协议如静动态加速(图片加速、https带证书加速)、下载加速、流媒体加速、企业应用加速、手机应用加速等。

  

DNS是什么

  DNS(Domain Name System)域名系统,域和名是分开的是指两个东西,是可以根据域名查出其对应的IP地址的一种服务。域名是由点,字母和数字组成,点分割不同的域。

  域名是分层的,可分为不同级别,包括顶级域名、二级域名、三级域名、注册域名等。

域名是不区分大小写的,如下图。

  

  我们可以在linux系统中用dig命令来查看。如果是centos系统没有该命令可以使用 yum install bind-utils 来安装。

  

当然也可以通过一些其他工具查看,比如站长工具DNS域名查询 http://tool.chinaz.com/dns

  

  

 DNS缓存

智能DNS:

  智能DNS比传统DNS更好的地方就是能够基于IP信息给不同的用户最合适的服务器IP,可以给用户提供更好的网络服务。

  作用:

    1.通过减少地理上的链路距离来减少访问服务的延时。

    2.静态资源CDN加速。

    3.负载均衡,比如北京的用户访问服务会自动跳转到北京的服务器,减少服务器压力。

    4.防止DDOS攻击。

  缺陷:

    1.成本增加,比如硬件成本,维护成本。

    2.不支持配套failed over应用检测机制,比如有一台服务器宕机了,但是智能DNS还会把请求发送给这台已经宕机的服务器。不能实时切换服务。

    3.准确性欠缺。

智能DNS实现原理
  如下图所示

  

  图中

  CNT: 电信运营商缩写  CNU :联通缩写  CNM :移动缩写

  Local DNS:用户所在区域的DNS,也是用户首先访问的,负责缓存DNS相关信息。

DNS扩展协议EDNS

  EDNS就是在遵循已有的DNS消息格式的基础上增加一些字段,来支持更多的DNS请求业务。

DDNS

  动态域名解析(Dynamic DNS,简称DDNS)是把互联网服务原理名指向可变IP地址的系统。

DNS优化(DNS 缓存)

  DNS查询的过程经历了很多的查询步骤,如果每次DNS解析的话都要重新查询就会耗费太多的时间和资源。所以我们应该尽早的返回真实的 IP 地址,减少查询过程,也就是 DNS 缓存。

DNS劫持

  域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。那么如何预防DNS劫持呢?下面看看HTTPDNS。

HTTPDNS

  HTTPDNS 就是利用 HTTP 协议与 DNS 服务器交互,代替了传统的基于 UDP 协议的 DNS 交互,绕开了运营商的 Local DNS,可以防止了域名劫持。

DNS原理和智能DNS及CDN的更多相关文章

  1. DNS加速之“智能DNS”跟“双线加速”、“CDN加速”的区别

    “智能DNS”跟“双线加速”.“CDN加速”的区别相信,很大部分IDC用户可能还没弄清楚状况,有人觉得智能DNS跟双线加速.CDN加速是类似的技术.其实不然,它们在工作方式上有着本质的区别,但它们又可 ...

  2. Linux系统下搭建DNS服务器——DNS原理总结

    2017-01-07 整理 DNS原理 域名到IP地址的解析过程 IP地址到域名的反向域名解析过程 抓包分析DNS报文和具体解析过程 DNS服务器搭建和配置 这个东东也是今年博主参见校招的时候被很多公 ...

  3. DNS(bind)添加A、CNAME、MX、PTR记录、智能DNS(ACL)

    1.添加一条A记录(记得更改serial): vim /var/named/chroot/etc/lnh.com.zone 重启一下: rndc reload 查看从服务器: 测试结果: master ...

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

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

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

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

  6. 智能dns或CDN应用中,如何很好的解决DNS缓存问题? - 知乎

    智能dns或CDN应用中,如何很好的解决DNS缓存问题? - 知乎 LISP路由器

  7. 简单介绍智能DNS解析+双线路接入

    导读:在讨论这个问题,其中群友老孤同志也提供了不少非常有参考价值的资料,所以我们再把这些资料再整理一次,从比较底层的技术原理上重新进行一次分析.   我们知道,因为南电信北网通现象的存在,我们的服务器 ...

  8. Bind+DLZ构建企业智能DNS/DNS

    Bind+DLZ构建企业智能DNS   目录:一.简介二.服务规划三.安装BIND及基本环境四.配置Bind-View-DLZ-MYSQL五.添加相关记录并进行测试六.配置从DNS七.补充 一.简介: ...

  9. DNS原理及其解析过程 精彩剖析

    本文章转自下面:http://369369.blog.51cto.com/319630/812889 DNS原理及其解析过程 精彩剖析 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址 ...

随机推荐

  1. Linux进程管理(一)

    目录 Linux进程管理(一) 参考 pstree命令 pidof命令 pmap命令 pwdx命令 ps命令 nice调优 发送信号 Linux进程管理(一)

  2. Celeste 机制研究

    0. 简介.惯例.总论 Celeste (塞莱斯特) 是一个具有优秀手感的平台跳跃游戏. 虽然操作所使用的按键很少, 但是却有着复杂的组合机制. 在游戏实现上, Celeste 是一个锁定 60 帧 ...

  3. 「APIO2012」派遣

    「APIO2012」派遣 传送门 当预算超过限制时,优先丢掉薪水高的忍者(左偏树维护一下),然后答案取合法答案的最大值. 参考代码: #include <algorithm> #inclu ...

  4. 设计模式课程 设计模式精讲 8-11 单例模式源码解析(jdk+spring+mybaties)

    1 源码解析 1.1 单例解析1 1.2 单例解析2(容器单例) 1.3 单例解析3 1.4 单例解析4 1 源码解析 1.1 单例解析1 java.lang.Runtime /** * 饿汉式加载, ...

  5. UIWindow的获取

    注意:还是直接用下面这个比较靠谱.尤其是iOS11之后. [UIApplication sharedApplication].keyWindow;   1.下面这种是比较严谨的方式 - (UIWind ...

  6. python对文件中光标的操作迭代器

    seek()    默认从文件开头开始.seek(10) seek(10,1)   需要以b的模式读取文件,从相对位置进行移动光标 seek(-3,2)  倒着移动光标的模式 例如: f= open( ...

  7. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:"text-success" 类的文本样式

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. 【剑指Offer面试编程题】题目1516:调整数组顺序使奇数位于偶数前面--九度OJ

    题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 输入: 每个输 ...

  9. 【剑指Offer面试编程题】题目1515:打印1到最大的N位数--九度OJ

    题目描述: 给定一个数字N,打印从1到最大的N位数. 输入: 每个输入文件仅包含一组测试样例. 对于每个测试案例,输入一个数字N(1<=N<=5). 输出: 对应每个测试案例,依次打印从1 ...

  10. ubuntu18.04 复制或剪切某文件夹下的前x个文件到另一个文件夹下

    该代码可以将file_path_src文件夹中的前cnt个文件,剪切或复制到file_path_tar文件夹下,前提是file_path_src中的文件名可以排序.如VOC数据集提取某个类的图片和xm ...