Content Delivery Network

2023-11-03 00:10
文章标签 content network delivery

本文主要是介绍Content Delivery Network,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 1 科普定义

CDN(Content Delivery Network,内容分发网络)是构建在现有互联网基础之上的一层智能虚拟网络,通过在网络各处部署节点服务器,实现将源站内容分发至所有CDN节点,使用户可以就近获得所需的内容。CDN服务缩短了用户查看内容的访问延迟,提高了用户访问网站的响应速度与网站的可用性,解决了网络带宽小、用户访问量大、网点分布不均等问题。

云CDN将源站资源缓存到遍布全球的加速节点上,当终端用户访问资源时,无需回源,CDN通过一组预先定义好的策略(如内容类型、地理区域、网络负载状况等),将当时能够最快响应用户的CDN节点IP地址提供给用户,使用户可以以最快的速度获得网站内容。
在这里插入图片描述

  • 其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。类似分布各地的物流仓储网络,CDN网络可以将源站的内容缓存到分布全球的CDN节点,根据用户的访问IP,就近连接CDN,提高网站响应速度。

  • 鸡蛋放在多个篮子里,把数据放在离用户更近的位置(例如网站的一些静态文件好比图片或者js脚本),用户访问时判断IP来源是广州,那就经过智能DNS解析到广州的服务器上,直接从广州的篮子里去获取数据,速度就快了。这里有个静态数据和动态数据的概念,例如图片和一些js文件通常是不变的,那就能够把它们的映像分布到全国各地,加快速度,而一些须要在网站后台动态产生的一些数据,则须要去到网站所在的服务器去产生并获得。这个涉及到两种数据的显示的问题,这就交由浏览器处理了。同时异步加载的技术例如前端的Ajax技术,异步请求数据,可使这些动态数据延迟加载。

1.2 原理

在这里插入图片描述

没有 CDN 的请求路径

在没有 CDN 的情况下,一次资源请求的路径是什么样子的呢。

1、首先用户在浏览器输入域名,比如进入天猫主页;

2、用户所在的电脑查询 hosts 中看是否有对应的 IP ,如果有就直接请求 IP;

3、如果没有在本地缓存,则向本地 DNS 发起请求,本地 DNS 查找域名对应的 IP(一般是 A 记录);

4、如果本地 DNS 没有找到,则向上级 DNS 服务器请求,一级一级的知道查到最顶级 DNS 服务器;

5、向找到的域名对应的 IP 发起请求;

6、资源所在的集群向客户端返回请求的资源,比如图片、样式文件、视频文件等;

有了 CDN 之后
当有了 CDN 接入之后,事情就稍微变得复杂了一点。

1、用户在浏览器输入域名,比如进入天猫主页;

2、用户所用的电脑向本地 DNS 服务器请求,查询域名的IP地址;
3、本地 DNS 服务器中如果缓存有这个域名的记录,则直接响应用户的解析请求,否则本地DNS向根DNS 查询域名的授权服务器;
4、根DNS将域名授权DNS记录返回给本地DNS;
5、本地 DNS 得到域名的授权DNS记录后,继续向域名授权DNS查询域名的IP地址;
6、域名授权DNS查询域名记录后(一般是CNAME),返回给本地DNS;
7、本地DNS得到域名记录后,向智能DNS查询域名的IP地址;
8、智能DNS根据一定的算法和策略(比如静态拓扑,容量等),将最合适的CDN节点IP地址返回给 本地DNS;
9、本地DNS将得到的域名IP地址,返回给用户终端;
10、用户得到域名IP地址后,访问站点服务器;
11、CDN节点服务器应答请求,将内容返回给客户端,CDN服务器同时在本地进行保存,以备下次使用。

下面的流程图画出了整个请求过程。
在这里插入图片描述

1.3 效果
  • 1、本地Cache加速,提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性;
  • 2、镜像服务消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量;
  • 3、远程访问用户根据DNS负载均衡技术,智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度;
  • 4、带宽优化:自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能;
  • 5、集群抗攻击:广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种DDos攻击对网站的影响,同时保证较好的服务质量 。
2、基本概念
  • 加速域名
    加速域名是用户提供的需要使用CDN加速服务的域名,域名是便于记忆和沟通的一组服务器的地址,应用于网站,电子邮件,FTP等。

  • CNAME记录
    CNAME记录是指域名解析中的别名记录(Canonical Name),允许将多个域名映射到同一个域名。
    例如:
    有一台服务器存放了一些文件,可以通过file.example.com访问该资源,但是希望通过另一个域名data.example.com也能访问。
    那么您可以在DNS解析服务商处新增一条CNAME记录,将data.example.com指向file.example.com。
    添加CNAME记录后,所有访问data.example.com的请求就会指向file.example.com,获得相同内容。

  • CNAME域名
    用户在管理控制台添加加速域名后,系统会为加速域名分配一个对应的“CNAME域名”(域名形式为:.c.cdnhwc1.com)。用户需要在域名服务商处,配置一条CNAME记录,将自己的域名作CNAME指向这个.c.cdnhwc1.com的域名,记录生效后,域名解析的工作就正式转向CDN服务,该域名所有的请求都将转向CDN节点,达到加速效果。

  • 源站
    源站指用户的业务服务器,即被加速分发数据的来源。

  • DNS
    TCP/IP网络中的功能实体,通过该服务器,用户只通过域名就可以访问对应的服务器。在TCP/IP网络中域名与IP地址一一对应,域名便于记忆,但网络中的服务器间只能通过IP地址相互识别,域名和IP地址之间的转换称为域名解析,域名解析需要通过专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。
    例如:访问xxx.abc.com会通过DNS转换成220.xxx.xxx.xxx(IP地址)。

  • 边缘节点
    边缘节点也称CDN节点、Cache节点等,指距离最终用户接入具有较少的中间环节的网络节点,对最终接入用户有较好的响应能力和连接速度。

  • 回源
    CDN节点未缓存资源或者缓存资源已到期时,节点会回源站获取资源,返回给客户端。
    例如:访问某个URL,如果解析到CDN节点未缓存该资源,则访问请求会直接到源站获取资源,并根据URL请求返回。

  • 回源HOST
    源站决定了回源时,请求到源站的IP地址。回源HOST决定回源请求访问到该IP地址的哪个站点。
    例1:源站为域名时,源站为www.xxx.com,回源HOST为www.abc.com,实际回源的是www.xxx.com解析到的IP站点www.abc.com。
    例2:源站为IP地址时,源站为1.1.1.1,回源HOST为www.abc.com,实际回源的是1.1.1.1对应主机上的站点www.abc.com。

  • SSL/TLS
    SSL(Secure Sockets Layer,安全通讯协议),是一个构架于TCP之上的安全套接层,是为网络通信提供安全及数据完整性的一种安全协议。标准化之后的SSL名称为TLS(Transport Layer Security,传输层安全协议)。

  • 过滤参数
    根据业务需要判断是否启用该项配置,对用户请求URL中“?”之后的参数进行过滤。
    不启用:CDN节点回源时,将按照用户请求URL回源,完成用户访问请求后,会根据URL的不同参数保存不同的缓存资源。当用户再次访问该URL时,会根据“?”后参数提供对应的内容。
    启用:CDN节点回源时,只截取没有参数的请求URL回源,完成用户访问请求后,仅保存一份缓存资源。当用户再次访问该URL时,只能返回当前一份缓存资源,无法按照“?”后参数进行区分。

3、 Q & A
  • https://support.huaweicloud.com/cdn_faq/cdn_faq_0006.html
  1. CDN加速是对网站所在服务器加速,还是对其域名加速?
  • CDN是只对网站的某一个具体的域名加速。如果同一个网站有多个域名,则访客访问加入CDN的域名获得加速效果,访问未加入CDN的域名,或者直接访问IP地址,则无法获得CDN效果。
  1. CDN和镜像站点比较有何优势?
  • CDN对网站的访客完全透明,不需要访客手动选择要访问的镜像站点,保证了网站对访客的友好性。  
    CDN对每个节点都有可用性检查,不合格的节点会第一时间剔出,从而保证了极高的可用率,而镜像站点无法实现这一点。  
    CDN部署简单,对原站基本不做任何改动即可生效。
  1. CDN和双线机房相比有何优势?
  • 常见的双线机房只能解决网通和电信互相访问慢的问题,其它ISP(譬如教育网,移动网,铁通)互通的问题还是没得到解决。  
    而CDN是访问者就近取数据,而CDN的节点遍布各ISP,从而保证了网站到任意ISP的访问速度。另外CDN因为其流量分流到各节点的原理,天然获得抵抗网络攻击的能力。
  1. CDN使用后,原来的网站是否需要做修改,做什么修改?
  • 一般而言,网站无需任何修改即可使用CDN获得加速效果。只是对需要判断访客IP程序,才需要做少量修改。
  1. 为什么我的网站更新后,通过CDN后看到网页还是旧网页,如何解决?
  • 由于CDN采用各节点缓存的机制,网站的静态网页和图片修改后,如果CDN缓存没有做相应更新,则看到的还是旧的网页。
    为了解决这个问题,CDN管理面板中提供了URL推送服务,来通知CDN各节点刷新自己的缓存。  
    在URL推送地址栏中,输入具体的网址或者图片地址,则各节点中的缓存内容即被统一删除,并且当即生效。  
    如果需要推送的网址和图片太多,可以选择目录推送,输入 http://www.kkk.com/news 即可以对网站下news目录下所有网页和图片进行了刷新。
  1. 能不能让CDN不缓存某些即时性要求很高的网页和图片?
  • 只需要使用动态页面,asp,php,jsp等动态技术做成的页面不被CDN缓存,无需每次都要刷新。或者采用一个网站两个域名,一个启用CDN,另外一个域名不用CDN,对即时性要求高的页面和图片放在不用CDN的域名下。
  1. 网站新增了不少网页和图片,这些需要使用URL推送吗?
  • 后来增加的网页和图片,不需要使用URL推送,因为它们本来就不存在缓存中。
  1. 网站用CDN后,有些地区反映无法访问了,怎么办?
  • CDN启用后,访客不能访问网站有很多种可能,可能是CDN的问题,也可能是源站点出现故障或者源站点被关闭,还可能是访客自己所在的网络出现问题,甚至实际故障排除中,还出现过客户自己计算机中毒,导致无法访问网站。

这篇关于Content Delivery Network的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/334235

相关文章

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

Android fill_parent、match_parent、wrap_content三者的作用及区别

这三个属性都是用来适应视图的水平或者垂直大小,以视图的内容或尺寸为基础的布局,比精确的指定视图的范围更加方便。 1、fill_parent 设置一个视图的布局为fill_parent将强制性的使视图扩展至它父元素的大小 2、match_parent 和fill_parent一样,从字面上的意思match_parent更贴切一些,于是从2.2开始,两个属性都可以使用,但2.3版本以后的建议使

图神经网络框架DGL实现Graph Attention Network (GAT)笔记

参考列表: [1]深入理解图注意力机制 [2]DGL官方学习教程一 ——基础操作&消息传递 [3]Cora数据集介绍+python读取 一、DGL实现GAT分类机器学习论文 程序摘自[1],该程序实现了利用图神经网络框架——DGL,实现图注意网络(GAT)。应用demo为对机器学习论文数据集——Cora,对论文所属类别进行分类。(下图摘自[3]) 1. 程序 Ubuntu:18.04

深度学习--对抗生成网络(GAN, Generative Adversarial Network)

对抗生成网络(GAN, Generative Adversarial Network)是一种深度学习模型,由Ian Goodfellow等人在2014年提出。GAN主要用于生成数据,通过两个神经网络相互对抗,来生成以假乱真的新数据。以下是对GAN的详细阐述,包括其概念、作用、核心要点、实现过程、代码实现和适用场景。 1. 概念 GAN由两个神经网络组成:生成器(Generator)和判别器(D

Neighborhood Homophily-based Graph Convolutional Network

#paper/ccfB 推荐指数: #paper/⭐ #pp/图结构学习 流程 重定义同配性指标: N H i k = ∣ N ( i , k , c m a x ) ∣ ∣ N ( i , k ) ∣ with c m a x = arg ⁡ max ⁡ c ∈ [ 1 , C ] ∣ N ( i , k , c ) ∣ NH_i^k=\frac{|\mathcal{N}(i,k,c_{

Unity Adressables 使用说明(四)分发远程内容(Distribute Remote Content)

概述 远程分发内容可以减少应用程序的初始下载大小和安装时间。你还可以更新远程分发的资源,而无需重新发布应用程序或游戏。 当你将远程 URL 分配为 Group 的加载路径(Load Path)时,Addressables 系统会从该 URL 加载组中的资源。当你启用Build Remote Catalog选项时,Addressables 会在 Remote Catalog 中查找任何远程资源的

F12抓包05:Network接口测试(抓包篡改请求)

课程大纲         使用线上接口测试网站演示操作,浏览器F12检查工具如何进行简单的接口测试:抓包、复制请求、篡改数据、发送新请求。         测试地址:https://httpbin.org/forms/post ① 抓包:鼠标右键打开“检查”工具(F12),tab导航选择“网络”(Network),输入前3项点击提交,可看到录制的请求和返回数据。

OpenSNN推文:神经网络(Neural Network)相关论文最新推荐(九月份)(一)

基于卷积神经网络的活动识别分析系统及应用 论文链接:oalib简介:  活动识别技术在智能家居、运动评估和社交等领域得到广泛应用。本文设计了一种基于卷积神经网络的活动识别分析与应用系统,通过分析基于Android搭建的前端采所集的三向加速度传感器数据,对用户的当前活动进行识别。实验表明活动识别准确率满足了应用需求。本文基于识别的活动进行卡路里消耗计算,根据用户具体的活动、时间以及体重计算出相应活

deepcross network(DCN)算法 xdeepfm是DCN的进阶

揭秘 Deep & Cross : 如何自动构造高阶交叉特征 https://zhuanlan.zhihu.com/p/55234968 Deep & Cross Network总结 Deep和Cross不得不说的秘密 [深度模型] Deep & Cross Network (DCN) https://mp.weixin.qq.com/s/Xp_xTmcx56tJqfjMhFsArA

F12抓包04:(核心功能)Network接口抓包、定位缺陷

课程大纲 一、录制请求 ① tab导航选择“网络”(Network),即可进入网络抓包界面,进入界面默认开启录制模式,显示浏览器当前标签页的请求列表。 ② 查看请求列表,包含了当前标签页执行的所有请求和下载的资源,列表显示每条请求的相应内容。 还可以在字段行单击右键,勾选想要查看的字段。 ③ 单击列表项的“名称”,可以查看请求的详细内容。接口请