说起加速,大家可能就会联想到“游戏加速”之类的场景,而说到现在流行的云服务加速,则离不开 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 & 游戏加速器,两者是一个原理吗?的更多相关文章

  1. 【白话科普】《逆局》最终 boss 隐藏自己的方式是?

    二狗子最近在看一个很火的电视剧<逆局>.作为一部悬疑犯罪剧,剧中多个案件交织并进,悬念和转折拉满,让狗子看的直呼过瘾.特别最后一幕,杨副座和主角团同时对 U 盘中的关键证据"器官 ...

  2. canvas游戏小试:画一个按方向键移动的圆点

    canvas游戏小试:画一个按方向键移动的圆点   自己对canvas,但又有一颗做游戏的心TT.然后记录一下对canvas的学习吧,用一个按方向键控制的小圆点来做练习.(编程时用了一些es6的语法) ...

  3. iTween 不能两个游戏对象同时用一个Hashtable

    两个游戏对象,点击其中一个,两个对象一起旋转,再点一下,两个都旋转到原来角度. 如图:两个游戏对象不能用一个Hashtable,会出错,达不到两个一起转的效果. 每个对象要有自己的Hashtable来 ...

  4. Java初学者作业——实现控制台的猜数字游戏。游戏运行时产生一个1~100之间的随机数字

    返回本章节 返回作业目录 需求说明: (1)实现控制台的猜数字游戏.游戏运行时产生一个1-100之间的随机数字 (2)要求用户从控制台输入数字,若输入的数字比随机数小,则输出"太小了,再大一 ...

  5. CDN技术详解及实现原理

    CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精 ...

  6. 利用Python完成一个小游戏:随机挑选一个单词,并对其进行乱序,玩家要猜出原始单词

    一 Python的概述以及游戏的内容 Python是一种功能强大且易于使用的编程语言,更接近人类语言,以至于人们都说它是“以思考的速度编程”:Python具备现代编程语言所应具备的一切功能:Pytho ...

  7. javascript+HTMl5游戏下载,开发一个都能月薪上万!舅服你

    HTML5时代已经到来许久了,你是否已经掌握了那么一点呢?今天小编给大家讲讲h5的折叠多设备.跨平台特性, 即用HTML5制作游戏.相比flash,HTML5更加灵活方便,随着浏览器技术的不断升级,H ...

  8. SpriteKit给游戏弹跳角色添加一个高度标示器

    这是一个类似于跳跃涂鸦的小游戏,主角不断吃能量球得到跳跃能量向更高的地方跳跃,如果图中碰到黑洞就挂了- 在游戏调试过程中如果能实时知道主角的高度就好了,这将有助于程序猿动态的判断游戏胜败逻辑. 你可以 ...

  9. java游戏开发杂谈 - 创建一个窗体

    package game1; import javax.swing.JFrame; /** * java游戏开发杂谈 * ---demo1:创建一个窗体 * * @author 台哥 * @date ...

随机推荐

  1. 【noi 2.6_7113】Charm Bracelet(DP)

    题意:N个饰物,有重量和渴望程度.问在M的重量限制内能达到的最大的渴望度. 解法:经典的01问题,但有一个小技巧值得记住:用if比较大小比调用max函数快了不少,这题有100ms左右. 1 #incl ...

  2. linux 部署 .net core mvc

    1.本地编写一个mvc网站 代码编辑器:Visual studio 2017.2019.Visual Code 均可 1)搭建 略. (请自行搜索如何编辑mvc,或看文末参考链接) 2)配置 Prog ...

  3. Python 分析热卖年货,今年春节大家都在送啥?

    今年不知道有多少小伙伴留在原地过年,虽然今年过年不能回老家,但这个年也得过,也得买年货,给家人长辈送礼.于是我出于好奇心的想法利用爬虫获取某宝数据,并结合 Python 数据分析和第三方可视化平台来分 ...

  4. DCL 数据控制语言

    目录 授予权限(GRANT) 回收权限(REVOTE) 授予权限(GRANT) # 语法 mysql> help grant; Name: 'GRANT' Description: Syntax ...

  5. codeforces 1009D Relatively Prime Graph【欧拉函数】

    题目:戳这里 题意:要求构成有n个点,m条边的无向图,满足每条边上的两点互质. 解题思路: 显然1~n这n个点能构成边的条数,就是2~n欧拉函数之和(x的欧拉函数值代表小于x且与x互质的数的个数. 因 ...

  6. Verilog hdl 实现单周期cpu

    参考计组实验测试指令 - 简书,添加了一些细节. 1.添加 bne指令 修改 ctrl.v       之后修改mipstestloopjal_sim.asm,mars dump 为 bnetest. ...

  7. Socket 编程简介

    Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. 本章节我们为大家接收 Perl ...

  8. nyoj-2357

    2357: 插塔憋憋乐 时间限制: 1 秒  内存限制: 128 MB提交: 107  解决: 28提交 状态 题目描述 众所不知,LLM是一位红警3大佬,打的非常厉害,但是曾经也是一位萌新,喜欢在家 ...

  9. 计蒜客 2019南昌邀请网络赛J Distance on the tree(主席树)题解

    题意:给出一棵树,给出每条边的权值,现在给出m个询问,要你每次输出u~v的最短路径中,边权 <= k 的边有几条 思路:当时网络赛的时候没学过主席树,现在补上.先树上建主席树,然后把边权交给子节 ...

  10. 洛谷p1981 表达式求值

    #include <iostream> #include <cstdio> #include <cstring> using namespace std; char ...