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. Charles + Android 抓取Https数据包 (适用于Android 6.0及以下)

    通过Charles代理,我们能很轻易的抓取手机的Http请求,因为Http属于明文传输,所以我们能直接获取到我们要抓取的内容.但是Https内容本身就是加密的,这时我们会发现内容是加密的了.本文我们来 ...

  2. Session 'app': Error Installing APKs app 在手机或虚拟机上调试报错

    解决方案: build --clean project

  3. SQL数据库入门基础

      SQL(Structure Query Language,结构化查询语言)语言是国际标准化组织(ISO)采纳的标准数据库语言. 数据库就是一幢大楼,我们要先盖楼,然后再招住户(住户当然就是数据库对 ...

  4. prototype入门----自定义创建元素

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. win7系统实现内外网同时连接图文教程

    解决方案:修改路由表 在工作中,经常会遇到切换内外网的网络情况,通常情况下都是断开/连接网络,很麻烦.我们可以使用route命令来解决此类问题,route add.route delete.route ...

  6. c-指针的理解

    c-指针的理解 最近在学习MFC,其中的代码有点看的不是很深刻,究其原因还是对c语言中的指针理解的不是很好,下面详细的给大家介绍一下指针,如有不当之处,欢迎各位读者指正. 一.指针的概念 C语言里,变 ...

  7. JS中的原始类型和判断方法

    ECMAScript 中定义了 7 种原始类型: Boolean String Number Null Undefined Symbol(新定义) BigInt(新定义) 注意: 原始类型不包含 Ob ...

  8. redis队列与RabbitMQ队列区别

    消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递.消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消 ...

  9. MyBatis 学习二之简单练习巩固

    1.新建一个maven项目并在pom.xml中添加依赖 2.项目架构   配置文件:SqlMapConfig.xml <?xml version="1.0" encoding ...

  10. Visual Studio C++覆盖率测试异常的解决方法

    默认的UnitTest可能出现这样的异常 经过查阅资料最终找到了解决办法 步骤如下: 在测试项目右键属性 将配置属性->链接器->调试 生成调试信息修改为如图所示,然后再进行覆盖率测试 就 ...