CDN和DNS的区别

相信有很多的朋友会被这几个名词绕的有些头大,很多朋友觉得智能DNS跟双线加速、CDN加速是类似的技术。其实不然,虽然他们的目的都是一个:让用户更快的访问网站。但是他们的应用原理却大相径庭。大家一定很清楚这几种都是比较常见的主机加速的方式。所以文本主要介绍一下“智能dns解析”,“cdn加速技术”,“双线主机的加速方式”的基本加速原理,当你了解了这些就可以从这几种方式中找出一种更适合你的主机的加速方式。


 

一、何谓双线加速

双线加速比较常用的就是“双线双IP”和“双线单IP”,"BGP双线单IP"

1)双线双IP。
双IP双线路实现方式是指在一台服务器上安装两块网卡,分别接入电信网线与网通网线并设置一个网通IP与一个电信IP,这样一台服务器上就有了两个IP地址(即域名解析到哪个IP都可以访问),需要在服务器上添加网通或电信的路由表来实现网通用户与电信用户分别从不同的线路访问。
双线双IP比较常用的两种使用方式:
1.用两个不同的域名解析到这两个IP,在网站上放上不同的连接,网通用户点击访问网通的线路,电信用户点击访问电信的线路。(智能DNS没有广泛应用之前比较常见的一种方式)。
2.智能DNS,所谓的智能就是不需要用户自己去判断,而是交给域名解析服务器。智能判断用户的线路,如果是电信用户就解析到电信IP,网通用户就解析到网通IP。

2)双线单IP。
顾名思义,两条线路一个IP地址。一台服务器上配置一个网卡一个IP地址,此IP是网通IP或是电信IP,通过路由设备设置数据包是通过是电信网络或是网通网络发出来实现的双线技术。此方案也可以提高网通用户与电信用户的访问速度,解决了双IP双线需要在服务器上设置路由的问题,但由于IP地址采用的是网通或电信的IP,访问用户在发送请求数据包时不会自动判别最好的路由。

3)BGP双线单IP。
BGP(BorderGatewayProtocol)边界网关协议。BGP具体的功能就是控制路由的传播和选择最佳路由。这个双线路的实现必须是IDC机房运营商与电信、网通能够达成合作协议,通过骨干网络的路由器来给予最优路由选择,所有的一切,对于服务器和用户都无任何负担。服务器仅需单ip且效果最佳。但是这样的合作谈判又怎么会那么容易。所以目前这样的基于BGP的解决方案基本都是针对绝对的高端用户提供的。
 

二、何谓智能DNS

看到了上面的双线双IP的概念,你应该清楚了智能DNS是为谁准备的了吧!没错,为了不浪费双线双IP,为了更好地用户体验,对访问用户进行智能线路判断,让电信用户走上电信的高速路,让网通用户走上网通的高速路。推荐使用免费智能DNS的服务商——DNSPOD
 

三、何谓CDN加速

CDN加速=智能DNS+多服务器
如上面公式,CDN是多台服务器加智能DNS的结合体。CDN服务,其实就是把静态页面缓存到不同地区很多台专门的缓存服务器上,然后根据用户线路所在的地区通过CND服务商的智能DNS自动选择一个最近的缓存服务器让用户访问,以此提高速度,这种方案对静态页面效果非常好,同时它也需要智能DNS的帮助才能实现把用户引导到离自己最近的缓存服务器上。好的CND服务提供商必须有好的智能DNS做基础。
优点:本地Cache加速,镜像加速,远程加速,带宽优化,集群抗攻击。
CDN加速又有别与镜像技术。看公式:CDN=更智能的镜像+缓存+流量导流。(爆个料,阿桑奇的“维基解密”网站在风头正紧时,弄出一千多个镜像站点,有图有真相)
各种加速方式对比:(双线双IP与双线单IP对比仅供参考)

综上所述,以上各种双线实现的方式各有优缺点,智能DNS+双线双IP成本较低,但网络不够稳定并且占用大量的服务器资源,普通双线单IP只是实现了部分双线路的效果所以访问速度不佳,CDN方式对静态网页效果很好但对交互性很强的网页效果不太理想,BGP单IP双线路解决了以上所有的问题是最好的实现方式但国内采用此种方案的IDC服务商较少,如果能将BGP单IP双线与CDN加速结合起来将会是最优的解决方案。目前全国已有不少合用BGP技术方案的数据中心,但大多为特殊客户提供服务,很少有针对普通用户和IDC商的机房。

热门文章

暂无图片
编程学习 ·

【Linux基础编程】echo命令

01.文章目录 文章目录01.文章目录02.命令概述03.命令格式04.常用选项05.参考示例5.1 输出字符串5.2 输出变量PATH5.3 转义特殊字符5.4 重定向到文件中5.5 输出命令结果5.6 输出换行符5.7 输出退格符5.8 输出字符串不换行5.9 支持通配符5.10 指定输出颜色5.11 设置背景色5.12 文…
暂无图片
编程学习 ·

c#导入百度统计API数据

最近项目中需要增加一些新功能:当前在线人数,总访问量统计,今日访问量,上一年度访问量,找了很多第三方统计工具,最后确定用百度统计,因为项目是vue的,直接引入的时候出现了跨域,发现前端用jsonp解决不了,所以就直接用c#请求再返回给前端了,话不多说,具体操作如下(…
暂无图片
编程学习 ·

内网穿透工具 frp

内网穿透工具 frp 荐国网络工具包授权协议: GPL开发语言: Google Go操作系统: 跨平台收录时间: 2016-08-01提 交 者: FateDier收藏1145评论62分享软件介绍资讯 (8)问答 (2)博客 (99+)我要提问frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支…
暂无图片
编程学习 ·

roarctf_2019_easy_pwn[off by one]

溢出一个字节,修改size域 exp from pwn import *context.log_level = debugdef debug_pause():log.info(proc.pidof(p))pause()def create_note(size, ):p.sendlineafter(choice:, str(1))p.sendlineafter(size:, str(size))def write_note(index, size, content):p.sendlineaf…
暂无图片
编程学习 ·

动态任务

1.任务句柄 /* LED任务句柄 */ static TaskHandle_t LED_Task_Handle; 2.任务创建函数 BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, //任务函数const char * const pcName, //任务名称const uint16_t usStackDepth, //堆栈大小void * const pvParamet…
暂无图片
编程学习 ·

钉钉dd.ready中不能调用方法解决,钉钉微应用遇到的坑

钉钉dd.ready中不能调用方法解决获取微应用免登授权码官方代码:dd.ready(function() {dd.runtime.permission.requestAuthCode({corpId: _config.corpId, // 企业idonSuccess: function (info) {code = info.code // 通过该免登授权码可以获取用户身份}}); });code虽然拿到了,…
暂无图片
编程学习 ·

asp.net core 3.1 中配置跨域

// 1.跨域配置 注册策略 services.AddCors(options => {options.AddPolicy("CorsPolicy", builder =>{builder.SetIsOriginAllowed((x) => true).AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod();});});// 2. 添加使用注册的策略app.UseCors("…
暂无图片
编程学习 ·

Docker学习(三) swarm 与tutk集群

Docker Swarmdocker集群概念 群集是一组运行docker的设备组成,其中部分机器是集群管理机(Swarm Manager) ,其他的是工作机(Worker)。群集中的机器可以是物理机或虚拟机。加入群集后,它们被统称节点(Node)。 Docker Swarm是docker公司发布的一套用来管理docker集群的工…
暂无图片
编程学习 ·

当我们谈论算法我们在谈论什么:由疫情核酸检测想到的分治算法(Divide-and-Conquer)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_159 北京的疫情一波未平一波又起,由此看来,战“疫”将是一场旷日持久的战争,绝不能掉以轻心、轻易言胜。病毒随时都会死灰复燃,以生命为代价换来的经验教训值得我们每一个人久久深思。笔者所在的小区也开始组织居民批量进…
暂无图片
编程学习 ·

iOS开发之多线程(3)—— GCD

目录版本简介几个概念1. 任务(Task) 和 队列(Queue)2. 同步(sync) 和 异步(async)3. 串行(Serial) 和 并发(Concurrent)4. 主队列(Main Queue) 和 全局队列(Global Queue)GCD的基本使用1. 同步执行 + 串行队列2. 同步执行 + 并发队列3. 异步执行 + 串行队列4. 异步执行 + 并发队…
暂无图片
编程学习 ·

Linux 通过关键字查询文档内容

命令grep keyword test.log -C500 --colorgrep -C500 keyword test.log --color说明:第一个命令和第二个命令都可以keyword:是要查询的关键字,关键字可以不用引号引起来test.log:是文件名称,即要查询的文件-C500:显示的行数,显示500行,可以没有--color:颜色,给关键字…
暂无图片
编程学习 ·

哲学家进餐问题

问题描述: 问题描述: 5个哲学家围坐在一个圆桌上,每两个哲学家之间都有一只筷子,哲学家平时进行思考,只有当他们饥饿时,才拿起筷子吃饭。规定每个哲学家只能先取其左边筷子,然后取其右边筷子,然后才可以吃饭。 #include<stdio.h>//c语言中主要的函数库 #include<std…
暂无图片
编程学习 ·

13年蓝桥杯javaB组

13年蓝桥杯javaB组1.末世纪的星期天2.马虎的算式3.振兴中华4.黄金分数割5.有理数类6.三部排序7.错误票据 1.末世纪的星期天 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。 还有人称今后的某个世纪末的12月31日,如果是星期一则会是世界末日 有趣的是,任何一个…
暂无图片
编程学习 ·

Java new关键词的作用

文章目录new关键词的作用成员变量"字符串" new关键词的作用Person person = new Person();右边的new Person: 是以Person类为模板在堆中实例化一个对象。 右边的(): 意味着在对象实例化后,调用Person的构造器,对其初始化。 左边的Person person: 创建一个Person类…
暂无图片
编程学习 ·

Postman调用 .net 的webservice

1、使用post方式调用,url以 asmx 止。2、设置header,content-type text/xml;charset=utf-8。3、body里选择 raw,参数模板如下:<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSch…
暂无图片
编程学习 ·

C++ 11 之 移动语义 左值引用 完美转发

C++ 11 的 移动语义,左值引用 ,完美转发 三部分相互关联。阅读 两本数的相关章节即可完全掌握。首先是,强烈推荐IBM XL编译器开发团队推出的《深入理解C++11》3.3章节,内容讲解到为,鞭辟入里,自成系统,开发编译器的人果然对语言的理解很到位。其次是,《Effective Mocer…