专栏首页golang+phpCDN网络加速原理

CDN网络加速原理

CDN

CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。CDN有别于镜像,因为它比镜像更智能,或者可以做这样一个比喻:CDN=更智能的镜像+缓存+流量导流。因而,CDN可以明显提高Internet网络中信息流动的效率。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。 下面是一个简单的CND示意图

simple_cdn.png

如上图所示,是CDN一个常见的架构示意图,其工作流程可以总结为:当用户访问已经加入CDN服务的网站时,首先通过DNS重定向技术确定最接近用户的最佳CDN节点,同时将用户的请求指向该节点。当用户的请求到达指定节点时,CDN的服务器(节点上的高速缓存)负责将用户请求的内容提供给用户。具体流程为: 用户在自己的浏览器中输入要访问的网站的域名,浏览器向本地DNS请求对该域名的解析,本地DNS将请求发到网站的主DNS,主DNS根据一系列的策略确定当时最适当的CDN节点,并将解析的结果(IP地址)发给用户,用户向给定的CDN节点请求相应网站的内容

工作原理

CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据,从而降低网络的访问时间。 首先,让我们看一下传统的未加缓存服务的访问过程:

visit.png

如图可以看出,传统的网络访问的流程如下:

1:用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址; 2:LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期); 3:ROOT DNS将域名授权dns记录回应给 LocalDns; 4:LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址; 5:域名授权dns 查询域名记录后,回应给 LocalDns; 6:LocalDns 将得到的域名ip地址,回应给用户端; 7:用户得到域名ip地址后,访问站点服务器; 8:站点服务器应答请求,将内容返回给客户端.

下面让我们看一下使用CDN缓存后的网站的访问过程:

cdn.png

如上图,是使用CDN缓存后的网络访问流程:

1:用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址; 2:LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期); 3:ROOT DNS将域名授权dns记录回应给 LocalDns; 4:LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址; 5:域名授权dns 查询域名记录后(一般是CNAME),回应给 LocalDns; 6:LocalDns 得到域名记录后,向智能调度DNS查询域名的ip地址; 7:智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip地址回应给 LocalDns; 8:LocalDns 将得到的域名ip地址,回应给用户端; 9:用户得到域名ip地址后,访问站点服务器。 宗上,CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据,从而降低网络的访问的速度。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 绝对能让你彻底明白的Redis的内存淘汰策略

    在 redis 中,对于已经过期的数据,Redis 采用两种策略来处理这些数据,分别是惰性删除和定期删除

    程序员养成日记
  • 常见排序算法及golang 实现

    快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有...

    程序员养成日记
  • mysql索引原理,看这篇就够啦

    网上已经有了很多相关mysql索引原理的文章,但是都存在一些问题,有的是直接复制别人的比较老的文章,有的直接开篇讲B+Tree的原理,过程不是很清楚,即使原理讲...

    程序员养成日记
  • 前端需知的CDN加速原理

    通过以上的分析我们可以得到,为了实现对普通用户透明(使用缓存后用户客户端无需进行任何设置)访问,需要使用DNS(域名解析)来引导用户来访问Cache服务器,以实...

    coder_koala
  • 一文搞懂CDN加速原理

    通过以上的分析我们可以得到,为了实现对普通用户透明(使用缓存后用户客户端无需进行任何设置)访问,需要使用DNS(域名解析)来引导用户来访问Cache服务器,以实...

    前端老道
  • 语音域名的实现

    域名作为互联网上的“门牌号”,如果只能“写”而不能“读”的话,在现今电子设备智能化便携化的趋势下将极其不便。人工智能有两大基础:语音和视觉,智能音...

    语音域名
  • 【安全研究】Domain fronting域名前置网络攻击技术

    Domain Fronting基于HTTPS通用规避技术,也被称为域前端网络攻击技术。这是一种用来隐藏Metasploit,Cobalt Strike等团队控制...

    Ms08067安全实验室
  • 微信公众号应用开发流程 免费内网穿透映射本地,实现调试

    我们可以使用一系列内网穿透映射的工具,可以在公网访问本地开放的程序,(无论是自己搭建还是使用其他产品 都适用)

    宣言言言
  • 我是如何在两天内做完一个网站的

    有点标题党的嫌疑,不过确实网站的主体是在两天内的完成的,后面只是抓取了素材和完善细节。以下内容绝对是赤裸裸的干货。

    lyb-geek
  • 一、什么是DNS?

      域名系统(通常被称为“DNS”)是一个网络系统,允许我们把对人类友好的名称解析为唯一的地址。

    咻一咻

扫码关注云+社区

领取腾讯云代金券