什么是 CDN?内容交付网络解释
内容分发网络(CDN)是由分布于不同地理位置的服务器及数据中心组成的虚拟网络,可帮助您以最小的延迟将内容分发给用户。
它通过“节点(PoP)”的广泛分布使内容更接近用户的地理位置。 同时,CDN还会进行数据缓存,以加快网页加载时间并减少带宽消耗。 我们将在下面详细介绍CDN的工作方式。
CDN服务对于需要向用户交付内容的企业至关重要。
请参考以下场景:
- 大型新闻出版企业,读者遍布全球各个国家
- 社交媒体企业,需要向用户传递多媒体内容
- 像Netflix(网飞)这样的娱乐网站,需要向用户实时提供高清视频
- 拥有百万级客户群体的电子商务平台
- 玩家地理位置分布广泛的游戏公司
所有这些企业,都需要确保其内容交付高速,高可用,节约源站带宽资源,以及确保Web应用程序的安全性。 这就是需要CDN服务的地方。
CDN发展史
CDN诞生于于大概20年前,目的是应对将互联网上大量数据快速推向最终用户的挑战。 如今,它已成为网站内容交付的主要解决方案,并且在持续被研究和改进。
第一个CDN建于90年代后期,目前仍占全球互联网流量的15%至30%。 之后,随着宽带的增长以及互联网上音频,视频和相关流媒体数据的增长,已经有更多的CDN被开发出来。 从广义上讲,CDN的发展可以分为四代:
前期阶段:在实际创建 CDN 之前,需要开发所需的技术和基础设施。 这一时期的特点是服务器群集的兴起、分层缓存、Web 服务器的改进和部署缓存代理。 镜像、缓存和多宿主等技术为 CDN 的创建和发展铺平了道路。
第一代:CDN 的第一次迭代主要侧重于动态和静态内容交付,因为这是网络上仅有的两种内容类型。 当时的主要机制是副本、智能路由和边缘计算方法的创建和实施。 应用程序和信息分散在服务器上。
第二代:这一代CDN专注于流媒体视频和音频内容或视频点播服务,如Netflix,面向用户和新闻服务。这一代还为向移动用户提供网站内容扫清了道路,P2P和云计算技术也初见端倪。
第三代:第三代 CDN 就是我们现在所处的位置,并且仍在不断发展。 我们可以期待未来的 CDN 会越来越多地为社区服务。 这意味着系统将由普通用户驱动。 自我配置、配置、交付内容将成为趋势。 最终用户的体验质量预计将成为未来的主要目标。
CDN 最初是为了应对带宽压力而发展起来的,之后因为流媒体的需求增长,CDN提供商也不断增多。随着互联网的发展,CDN服务的价格不断下降,使其成为一种非常大众化的技术。因为云计算的广泛应用,cdn在业务运营的各个层面都发挥了关键作用。它们是SaaS(软件即服务)、IaaS(基础设施即服务)、PaaS(平台即服务)和BPaaS(业务流程即服务)等模型的关键。
CDN如何工作?
CDN 的工作原理是减少用户与源站之间的物理距离(网站或应用)。 它是一个全球分布的服务器网络,这些服务器存储的内容比源站更靠近用户。 为了更好地理解这一点,我们会从使用和脱离 CDN 分别来解释。
脱离CDN
当用户将网站输入浏览器时,他建立了一个类似于下图的连接。网站名称使用本地 DNS 或 LDNS(例如 域名服务器 由 ISP 或公共 DNS 解析服务器提供)。如果 DNS 或 LDNS 无法解析 IP 地址,它会递归请求上游 DNS 服务器进行解析。最终,请求可能会传递到托管区域的权威 DNS 服务器。此 DNS 服务器解析地址并将其返回给用户。
然后用户的浏览器直接连接到源站并下载网站内容。 每个后续请求都由源站直接提供服务,静态资产在用户机器上本地缓存。 如果来自相似或其他位置的另一个用户尝试访问同一站点,他将经历同样的流程。 每个用户请求都会直接到源站,源站会亲自回复内容。 沿途的每一步都会增加延迟(Latency)。 如果源站位置离用户很远,响应时间将遭受显著的延迟,产生糟糕的用户体验。
使用CDN
在使用 CDN 的情况下,过程略有不同。 当他的 LDNS 收到用户发起的 DNS 请求时,它会将请求转发到 CDN 的 DNS 服务器之一。 这些服务器是 全球负载均衡 基础设施(“GSLB”)的一部分。GSLB 可提供负载均衡功能,从宏观衡量整个网络情况,并跟踪有关所有可用资源及其性能的信息。 有了这些信息,GSLB 会使用性能最佳的边缘节点(通常在用户附近)解析 DNS 请求。 “边缘”是一组缓存和传送网络内容的服务器。
DNS解析完成后,用户向边缘节点发起请求。 当边缘收到请求时,GSLB 服务器会帮助边缘服务器按照最佳路由将请求转发到源站。 然后边缘服务器从源站获取请求的数据,将其交付给请求它的最终用户,同时会将该数据存储在边缘节点本地。 所有后续用户请求都将从边缘节点本地提供服务,而无需再次回到 源站服务器 。 即使源站由于某些原因不可用,存储在边缘上的内容也可以交付给用户。
为什么使用CDN
CDN通过最小化延迟、提高网站性能和降低带宽成本,帮助企业高效地向最终用户交付内容。
CDN 的另一个独特之处在于它允许边缘服务器提前预取内容。 这可确保您要交付的数据提前存储在所有 CDN 数据中心。 在 CDN 行业里,这些数据中心被称为节点(“POP”)。 PoP 通过使 网络内容更接近访问者来最大程度地减少往返时间。
例如,您举办了一个广告活动,在数百万潜在客户中宣传您的服务或产品。你可能会期待大量的客户在阅读了这篇文章后会涌向你的网站,这将出现流量峰值。您能确定您的源站服务器能够承受这种流量激增吗?
在这种情况下,CDN 可以在边缘服务器分担流量,大部分人都会直接得到响应。 只有一小部分请求会回到源站,所以您的源服务器不会遇到流量高峰、502 错误和上游网络链路过载。
使用 CDN 的好处
根据您的业务规模和需求,CDN 的好处可以分为 4 个部分:
提升页面加载时间
通过就近分配 CDN 服务器(以及其他优化),使网站内容分发更靠近访问者,从而体验更快的网页加载时间。 访问者通常会退出(跳出)页面加载时间较长的网站。 这也会对网页在搜索引擎上的排名产生负面影响。 因此,拥有 CDN 可以降低跳出率并增加人们在网站上花费的时间。 换句话说,一个快速加载的网站会让更多的访问者停留更长时间。
降低带宽成本
每次源服务器响应请求时,都会消耗带宽。 带宽消耗成本是企业的一大开支。 通过缓存和其他优化,CDN 能够减少需要从源服务器提供的数据量,从而降低网站所有者的托管成本。
提高内容可用性和冗余
大量的流量进入或出现硬件故障可能会中断正常的网站功能并导致停机。 CDN 由于其分布式特性,可以处理更多的网络流量并更好地抵御硬件故障带来的影响。 此外,如果一个或多个 CDN 服务器由于某种原因离线,其他在线服务器可以提供冗余资源,保持服务不中断。
提升网站安全性
CDN 处理流量峰值的过程和防护 DDoS 攻击原理类似,因此 CDN 是抗D的理想选择。 在这些攻击中,恶意行为者通过发送大量请求来试图压倒您的应用程序或源服务器。 当服务器由于资源饱和而停机时,就会影响网站的可用性。 CDN 可以充当 DDoS 防护和清洗平台,GSLB 和边缘服务器会平均分配流量负载。 CDN 还提供证书管理,可以自动生成证书和更新。
CDN 还能提供哪些帮助?
CDN 带来的好处不仅仅是前文描述的那些。 现代 CDN 平台可为您的业务和工程师团队带来更多其它好处。
它可用于做区域访问管理。 让您允许某些区域的访问,并拒绝其它区域的访问。
您可以轻松地将应用程序的一些功能放到更靠近用户的边缘服务器。 您可以处理请求/响应标头和正文,根据策略访问不同源站,或将身份验证任务委托给边缘服务器。
大量的访问流量需要一个日志收集和处理的基础设施,以便进行进一步的分析。CDN 可以收集日志并提供接口,方便地分析访问者数据。
俗话说熟能生巧,CDN Pro 是基于NGINX的,这意味着您可以使用标准NGINX指令执行任务。
我们的工程团队花费了数千小时来扩展 NGINX。
数据安全 & CDN
信息安全是 CDN 不可或缺的一部分。 CDN 通过以下方式保护网站数据。
提供 TLS/SSL 证书
CDN 可以通过提供传输层安全性 (TLS)/安全套接字层 (SSL) 证书来确保高标准的身份验证、加密和完整性,从而帮助保护站点。 这些证书可确保在用户和网站之间传输数据时遵循安全协议。
当数据通过互联网传输时,它很容易被恶意行为者拦截。 这可以通过加密数据来解决,保证只有预期的接收者才能解码和读取信息。 TSL 和 SSL 是对通过 Internet 发送的数据进行加密的协议。 它是安全套接字层 (SSL) 的更高级版本。 如果网站以 https:// 而不是 http:// 开头,则可以判断网站是否使用 TLS/SSL 认证,这表明它对于浏览器和服务器之间的通信足够安全。
DDoS 攻击防护
由于 CDN 部署在网络边缘,因此它充当了一道虚拟安全防护,可以抵御对您的网站和web应用程序的攻击。分散的基础设施和边缘位置也使 CDN 成为 阻止 DDoS 洪水攻击 的理想选择。 由于需要在核心网络基础设施之外缓解这些泛洪,CDN 将根据其来源在不同的节点上处理它们,从而防止服务器资源饱和。
阻止机器人和爬虫
CDN 还能够阻止威胁并限制滥用的机器人和爬虫程序占用您的带宽和服务器资源。 这有助于限制其他垃圾邮件和黑客攻击,并降低您的带宽成本。
静态 & 动态加速
静态内容是指您的资产在交付给最终用户之前不需要生成、处理或修改。 这些可能是图像或其他媒体文件、各种二进制文件或应用程序的静态部分,例如 HTML、CSS、JavaScript 库,甚至 JSON、HTML,或任何不经常更改的动态响应。 如前所述,您可以提前预取此类内容。 然后,当您需要使此类内容无效并将其从边缘服务器中删除时,您可以进行缓存刷新。
动态加速适用于由于其动态特性而无法缓存在边缘的内容。 例如一个 WebSocket 应用程序,它侦听来自服务器或 API 端点的事件,其响应因凭据、地理位置或其他参数而异。 很难使用静态内容的缓存机制。 在某些情况下,应用程序和 CDN 之间更紧密的集成可能会有所帮助; 但是,在某些情况下,应该使用缓存以外的其他方法。 对于动态加速,CDN 优化了网络基础设施,和使用了先进的请求/响应路由算法。
计费模式或“我要为什么服务付钱”
通常在 CDN 中,您需要为最终用户消耗的流量和请求量付费。 此外,HTTPS 请求比 HTTP 请求需要更多的计算资源,这给 CDN 提供商设备带来了更多的负载。 因此,您可能需要为 HTTPS 请求支付额外费用,而 HTTP 请求则不会收取额外费用。
当需要在边缘节点进行计算时,CPU 成为了计费对象。 请求可能有不同的处理线程,因此需要不同数量的 CPU 处理时间。 按请求数计费是不切实际的; 按流量+cpu使用时间计费更实用。
CDN 组件说明
各种元素构成了 CDN,使其能够正常运行。
下面简单说明一下三大组件的作用:
入网点 (PoP) – PoP 是战略性放置的数据中心,可加快用户之间的通信速度。弥合网站内容和访问者之间的差距可以提供更快、更少中断的用户体验。
缓存服务器 – 这些是负责存储和传送缓存文件的组件。它们的主要功能是加快网站加载时间,同时减少带宽消耗。
存储(SSD/HDD + 内存) – 所有检索到的数据都位于 SSD(固态驱动器)、HDD(硬盘驱动器)或 RAM(随机存取存储器)中。那些最常用的文件通常保存在最快的介质 – RAM 上。
不同类型的 CDN
并非所有 CDN 都以相同的方式运行,有些 CDN 比其他 CDN 更适合提供某些类型的内容。以下是可供选择的 3 种 CDN 类型:
点对点CDN
如果您以前使用过 torrent,您可能已经知道点对点 CDN 的工作原理。
此 CDN 使用点对点协议工作。在对等 CDN 中,内容不会缓存在边缘服务器上。相反,网络中访问内容的每个用户也共享内容。
因此,例如,当用户从 torrent 下载电影时,他也在后台与其他用户共享电影的部分内容。这是非常划算的,因为它不需要任何昂贵的硬件。
推送CDN
使用 Push CDN,您作为网站所有者或开发者全权负责。
无需等待 PoP 服务器在发出请求时拉取网页数据,您甚至在发出任何请求之前就已经在 PoP 服务器上推送了您想要的内容。此信息及其相关元素随后将存储在缓存中,直到它被删除或清除。
使用 Push CDN,您拥有完全的控制权。您在 PoP 服务器上推送的内容将在 Web 访问者发出 Web 请求时显示在他们的设备上。
原始拉取 CDN
Origin Pull CDN,顾名思义,就是PoP服务器从源站拉取网页数据等元素。
当收到请求时,CDN 将确定向网络用户提供哪些信息。
例如,当客户端发送一个请求,要求从 CDN 获取静态资源时,如果 CDN 没有,那么它会从源服务器获取新更新的资源,并用这个新资源填充它的缓存,然后将这个新的缓存资产发送给用户。
与 Push CDN 相反,这需要较少的维护,因为 CDN 节点上的缓存更新是根据客户端对源服务器的请求执行的。
谁在使用CDN ?
各种规模的企业都在使用 CDN 来优化其网络访问和可用性,并为客户提供卓越的用户体验。 CDN 在以下行业特别受欢迎:
为什么选择 CDNetworks?
CDNetworks 是全球领先的内容分发网络 (CDN),具有完全集成的云和边缘计算解决方案。
凭借超过 2,800 个 PoP 和太比特级带宽容量,我们的解决方案 CDN Pro 与来自所有主要网络的全球 ISP 提供商对等,以低延迟和最佳性能交付您的内容。