【白话科普】CDN & 游戏加速器,两者是一个原理吗?
说起加速,大家可能就会联想到“游戏加速”之类的场景,而说到现在流行的云服务加速,则离不开 CDN 这个词。那么 CDN 和游戏加速器是同一种东西么?从效果上看两者都是为了“加速”,似乎是一样的。但是,在本质上却有区别。

以上图举例,假设我们需要从 A 地点到 B 地点取东西,那么走直线肯定是最短距离。但如果 AB 之间的通路路面满是巨大的障碍物,极其难走,通行时间为 4 小时。而C和AB之间的通路十分通畅,从 A 经过 C 再到 B 只需要 2 小时,你会如何选择呢?相信大家肯定会选择走 C 去 B,毕竟虽然路远了,但是时间更短。游戏加速器就是让大家通过 C 点,能够更快速地到达 B。而 CDN 则是让东西放置在 C 点,从而加倍缩短时间。
当然以上只是一个简单的举例,游戏加速器和 CDN 的具体运作原理我们下面细说。
游戏加速器的原理
游戏加速器是针对个人用户快速、安全连接服务器的一种服务。它使用的是 VPN(虚拟专用网络)技术,通过虚拟专用网络将电信加速到网通,或将网通加速到电信等等,为玩家提供优质的网络加速服务。
在没有使用游戏加速器的时候走的就是平常通道,登录游戏加速器以后,玩家的网游数据转入游戏加速器专属传输网络中,这个网络是经过优化、只传网游数据,从而在用户和服务器之间建立了“绿色通道”,保障了数据传输的优先性与稳定性,能够有效解决游戏下载开启时存在的延时高、登录难、易掉线等问题。

CDN 加速的原理
CDN (Content Delivery Network),即内容分发网络。当用户访问网站时,CDN 会根据客户端的地区和运营商,将用户分配到距离最近速度最快的节点服务器,让用户以更快的速度获取到所需内容。
CDN 的设计思路
避让:尽可能避开互联网上可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输得更快、更稳定。
检测:通过在网络各处放置节点服务器所构成的在现有的互联网基础上的一层智能虚拟网络,CDN 系统能够实时监测网络流量和各节点的连接,负载状况以及到用户的距离和相应时间等综合信息。
分发:根据监测情况重新导向离用户最近的服务节点上。
CDN 的工作过程

以上图进行举例,假如 www.abc.com 使用了又拍云 CDN 服务。当他的用户需要访问这个网站时,首先由用户端发起访问请求,之后 Local DNS 会向上级 DNS 服务器进行域名解析,解析 CNAME 地址。解析出 CNAME 地址后,网站会授权给 DNS 解析出的 CNAME 地址,并将这个地址返回给 Local DNS。而这时,又拍云智能调度系统会根据 LocaL DNS 请求的 CNAME 地址分配最优的用户所在地区的运营商节点。这个节点 IP 会由 Local DNS 返回给请求客户端,而客户端则访问这个最优节点。
如果是客户端第一次访问,那么节点可能没有该网站内容的缓存。那么节点会到网站源服务器去请求资源,这个时间可能会相对较长。而如果节点已经有网站内容缓存,那则会直接将缓存内容返回给用户,让用户查看到网站内容。
如果是游戏内容,那么当游戏厂商使用了 CDN 以后,就可以将软件缓存到遍布各地的 CDN 边缘节点上,当用户请求下载时,会直接选择就近最优的节点进行下载,提供下载的稳定性和速度。相比游戏加速器只是提供专用的一条带宽来进行加速,CDN 还可以解决因用户流量持续增长,下载服务器处理能力、服务器出口宽带压力增加而影响玩家体验的问题。
尽管 CDN 和游戏加速器在用户端体验效果上看似乎是是一样的,但是无论是在成本还是在分解源服务器压力等方面,二者的原理是完全不同的。如果你要问二者哪种更好,那需要考虑到用户自身的需求和实际情况。
推荐阅读
【白话科普】CDN & 游戏加速器,两者是一个原理吗?的更多相关文章
- 【白话科普】《逆局》最终 boss 隐藏自己的方式是?
二狗子最近在看一个很火的电视剧<逆局>.作为一部悬疑犯罪剧,剧中多个案件交织并进,悬念和转折拉满,让狗子看的直呼过瘾.特别最后一幕,杨副座和主角团同时对 U 盘中的关键证据"器官 ...
- canvas游戏小试:画一个按方向键移动的圆点
canvas游戏小试:画一个按方向键移动的圆点 自己对canvas,但又有一颗做游戏的心TT.然后记录一下对canvas的学习吧,用一个按方向键控制的小圆点来做练习.(编程时用了一些es6的语法) ...
- iTween 不能两个游戏对象同时用一个Hashtable
两个游戏对象,点击其中一个,两个对象一起旋转,再点一下,两个都旋转到原来角度. 如图:两个游戏对象不能用一个Hashtable,会出错,达不到两个一起转的效果. 每个对象要有自己的Hashtable来 ...
- Java初学者作业——实现控制台的猜数字游戏。游戏运行时产生一个1~100之间的随机数字
返回本章节 返回作业目录 需求说明: (1)实现控制台的猜数字游戏.游戏运行时产生一个1-100之间的随机数字 (2)要求用户从控制台输入数字,若输入的数字比随机数小,则输出"太小了,再大一 ...
- CDN技术详解及实现原理
CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精 ...
- 利用Python完成一个小游戏:随机挑选一个单词,并对其进行乱序,玩家要猜出原始单词
一 Python的概述以及游戏的内容 Python是一种功能强大且易于使用的编程语言,更接近人类语言,以至于人们都说它是“以思考的速度编程”:Python具备现代编程语言所应具备的一切功能:Pytho ...
- javascript+HTMl5游戏下载,开发一个都能月薪上万!舅服你
HTML5时代已经到来许久了,你是否已经掌握了那么一点呢?今天小编给大家讲讲h5的折叠多设备.跨平台特性, 即用HTML5制作游戏.相比flash,HTML5更加灵活方便,随着浏览器技术的不断升级,H ...
- SpriteKit给游戏弹跳角色添加一个高度标示器
这是一个类似于跳跃涂鸦的小游戏,主角不断吃能量球得到跳跃能量向更高的地方跳跃,如果图中碰到黑洞就挂了- 在游戏调试过程中如果能实时知道主角的高度就好了,这将有助于程序猿动态的判断游戏胜败逻辑. 你可以 ...
- java游戏开发杂谈 - 创建一个窗体
package game1; import javax.swing.JFrame; /** * java游戏开发杂谈 * ---demo1:创建一个窗体 * * @author 台哥 * @date ...
随机推荐
- [已完成+附代码]CS:APP:Lab6-ShellLab
由于我的第五个实验的partB部分一直出问题.而且修了好久没解决先不管了 这个实验建议一定要认真读完csapp全书的第八章.不然可能会毫无思路.千万不要上来直接做. 0. 环境配置和实验下载 利用do ...
- Linux 查看系统日志 ,查看服务日志
journalctl 查看系统日志参数 -f 表示日志跟中-u 指定的是 unit 指定要查看的服务日志,如果不指定的话会显示所有服务的日志 journalctl -f -u 要查看的服务日志 jou ...
- PowerShell随笔3 ---别名
上一篇提到了别名,这个有必要说一下,因为我们常常会遇到以下两种情况: 自己写脚本,想快速一些,使用命名 看别人的脚本,发现别人和你想的一样,用了别名,但是你忘记了这个别名是什么意思. 我们可以通过Ge ...
- WPF 主动触发依赖属性的 PropertyChanged
需求背景 需要显示 ViewModel 中的 Message/DpMessage,显示内容根据其某些属性来确定.代码结构抽象如下: // Model public class Message : IN ...
- MHA 的 Binlog Server & VIP 漂移
目录 Binlog Server 在 MHA 配置文件中配置 Binlog Server 创建 Binlog 存放目录 实时传输主库 Binlog 命令 重启 MHA 检验 MHA Manager 服 ...
- LEETCODE - 1181【前后拼接】
class Solution { public: string gethead(string str){//获取头单词 string ret = ""; int strlen = ...
- 力扣119.杨辉三角II-C语言实现
题目 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 来源:力扣(LeetCod ...
- C、C++语言中参数的压栈顺序
要回答这个问题,就不得不谈一谈printf()函数,printf函数的原型是:printf(const char* format,-) 没错,它是一个不定参函数,那么我们在实际使用中是怎么样知道它的参 ...
- 计算机网络 part2
一.UDP协议 1.概述 UDP提供不可靠的服务,无连接(不存在建立连接的时延),首部开销相对TCP小,没有拥塞控制,提供最大努力交付,面向报文(无论多长的报文UDP也只加一个头部就往下发:TCP面向 ...
- CSS3 弹性盒子(Flex Box)
1 CSS3 弹性盒子(Flex Box) 1 http://caniuse.com/#search=flex%20box https://www.w3.org/TR/css-flexbox-1/ C ...