【知乎】CDN是什么?使用CDN有什么优势?到底什么是CDN?
CDN是什么?使用CDN有什么优势?到底什么是CDN?
被浏览
5,171
13 个回答

知白守黑

知其白,守其黑,为天下式。

引言
随着互联网的快速发展,我们作为终端用户,从互联网获取的内容越来愈丰富,有高清视频,应用服务,直播等多媒体内容。
那么,作为用户,当然希望高带宽,快响应,低延迟的体验。
而作为内容提供方,需要一种更加高效的分发内容机制来应对快速增长的需求,提供高性能,高可用的服务,同时又可以降低成本,网络负载。
那么CDN(Content Delivery Network,内容分发网络) 就应运而生。
1. CDN概述
CDN通过把内容复制到镜像服务器(PoP(point of presence)点,边缘或复制服务器),这些服务器位于终端用户更近的ISP(互联网提供商)网络的边缘,边缘服务器离用户近,而复制的内容又充当了缓存功能,因此CDN可以改善最终用户对互联网内容的网站、流媒体和下载性能,同时降低了内容提供商的服务成本。正确配置的 CDN 还可帮助保护网站免受某些常见的恶意攻击,例如DDOS攻击。
如下图所示,源站把内容提供给边缘服务器,然后边缘服务器交付给最终用户,而不是直接从内容提供商的源站为每个单独的请求提供服务。如今,CDN是为网站和媒体内容的实时、线性和按需交付提供高质量在线体验的先决条件。CDN通常利用云(计算和存储)基础架构和服务来提供可扩展性、弹性、可用性和性能。

CDN有很多实际的应用场景,例如:
加速的 Web 性能。CDN 有助于改善网站内容(静态和动态)的交付,以便网站性能更好、加载速度更快,并为内容提供商带来更多收入。
软件更新和下载。CDN 增强了软件或文件下载(包括软件补丁)的自动或按需交付。 例如,消费者可以在线快速下载最新版本的操作系统或文字处理软件版本。
网络电视。CDN 用于互联网付费电视 (IPTV),例如视频网站的更新追剧,以及在线直播视频频道。此类服务具有大多数媒体类型的交付、数字版权管理 (DRM)、多比特率流以及将视频内容分发到多个区域的功能。CDN 上的 IPTV 服务同时应用线性内容交付和点播内容交付。
直播。充分利用 CDN的终端性能,应对直播的高带宽需求,以创建端到端交付链,通过高质量的用户体验提供真正的差异化。
管理和交付用户生成的内容。CDN 通常用于促进用户生成内容的托管和分发。YouTube是使用CDN来交付最终用户上传的内容。
2. CDN的工作原理
CDN 的核心是一个服务器网络,目的是尽可能快速、便宜、可靠和安全地交付内容。为了提高速度和连接性,CDN 会将服务器放置在不同网络之间的交换点。[5]
CDN架构因它为客户提供的内容/服务而异。在功能属性上,CDN可以从四个维度来描述,即:CDN 的结构、内容分发和管理、请求路由和性能衡量。
(1)在 CDN 结构中,有一组边缘服务器用于构建内容交付,然后使用特定机制将最终用户请求重定向到边缘服务器,交互协议用于 CDN 组件之间的通信。
(2)内容分发和管理在 CDN 中对于高效内容交付和整体性能至关重要。内容分发包括根据特定最终用户请求的类型和频率选择和交付内容;如何将边缘服务器放置在合适位置,以便它们靠近最终用户和内容获取,以决定对获取的内容遵循哪种方法。内容分发和管理在很大程度上取决于缓存组织技术(即缓存技术、缓存维护和缓存更新)。
(3)请求路由机制用于选择最佳边缘服务器以响应给定的请求。
(4)最后,对 CDN 进行性能测量,以评估其为客户提供所需内容和/或服务的能力。
总结如下表所示:
方面功能属性CDN组成组织——overlay和network方法。服务器——源站和边缘服务器。关系——client到边缘服务器再到源站、网元到缓存代理和内部代理。交互协议——网元和缓存间交互。内容/服务类型——静态、动态、流式内容和增值服务。内容分发和管理内容选择和交付 —— 完整和/或部分站点:基于经验、受欢迎程度、对象和群集。副本的放置算法——使用 K 中心、贪婪、热点、拓扑知情、基于树和可扩展的副本放置的单 ISP 或多 ISP 方法。内容溯源——基于协作推送、基于非协作拉取和基于协作拉取。缓存的组织和管理——缓存技术:集群内和集群间缓存;缓存更新:定期、按需、传播和失效。请求路由请求路由算法 —— 自适应和非自适应。请求路由机制 —— 基于 DNS:NS 和 CNAME 重定向、应用程序级别和 IP 任播;传输层:通常与基于 DNS 的技术结合使用;应用层:HTTP 重定向、使用集中式目录重写 URL、分布式哈希表 (DHT) 或文档路由。性能衡量内部和外部测量 —— 网络统计信息采集:网络探测、流量监控、代理反馈,用于测量性能指标,例如地理邻近度、延迟、数据包丢失、平均带宽、停机时间、启动时间、帧速率、服务器负载和基于仿真的性能测量。
3. CDN的内容交付类型
下面,我们简要讨论下五种不同类型的内容交付。
3.1 静态内容交付(传统CDN)
CDN 的基本用例是交付静态内容,例如静态 HTML 页面、嵌入式图像、PDF 文档、文件和软件补丁。下图显示了网站嵌入式静态内容交付的交互流程。

用户通过在 Web 浏览器中指定其唯一的URL来请求内容。用户的请求通过和中间网络链路和路由基础设施,最终到达源站。当源站收到请求时,它只提供基本的内容(例如网站的索引页面)。而对于经常询问的内容(例如嵌入式对象图片、徽标、导航栏和横幅广告),用户的请求被重定向到 CDN 基础设施。CDN 从源站获取内容并在边缘位置的复制服务器之间分发内容。使用选择算法(通常是专有的),选择最接近最终用户的边缘服务器来为请求的嵌入式对象提供服务。选定的边缘服务器服务于用户的请求并将其缓存以供后续请求服务。
3.2 动态内容交付(应用CDN)
动态的内容是使用 Web 应用程序按需生成的。动态内容会根据上下文情况发生变化,例如用户配置文件和交互特征。例如,一个显示当前时间的网站实际上是在显示动态内容:信息(显示的数字)根据情况(当前时间)而变化。动态内容的类型包括动画、更改文本、使用服务器端脚本(ASP、ColdFusion、Perl、PHP、Ruby、WebDNA)或客户端脚本(JavaScript、ActionScript)和 DHTML 生成的内容。
动态内容交付由 Web 系统的多层逻辑完成(下图),该架构将 HTTP 接口前段层、应用程序层(或业务逻辑)、后端以及用户配置文件层分层设计,用于生成个性化的内容。

当使用 CDN 传送动态内容时,Web 系统的每一层都会被复制。在下文中,我们描述了每一层的工作原理。
(1)前端层。前端接收来自终端用户的 HTTP 连接请求,提供来自文件系统的静态内容,并提供代表应用程序逻辑的接口。它可以采用诸如基于片段的技术(即存储内容片段),或顺序缓存(即存储部分流段)以减少缓冲区大小[1]。基于片段的缓存通常使用 Edge Side Includes (ESI) [1、2],这是一种基于 XML 的标记语言,可以区分可缓存(静态)内容和不可缓存(动态)内容。在将动态网页内容交付给最终用户之前,边缘服务器执行页面片段的识别和标记来组装动态网页内容。除此之外,CDN还可以使用 FEO 技术来减少下载给定页面所需的页面资源数量,使浏览器更快地处理页面。
(2)应用层。应用层用于处理业务逻辑并计算以响应动态内容。内容生成通常需要与后端和用户配置文件层进行交互。该层通过使用客户端或服务器端脚本或两者的组合改进动态生成的内容的交付。
客户端脚本是指由最终用户的 Web 浏览器在客户端执行的 Web 应用程序。客户端脚本通常嵌入在 HTML 或 XML 文档中,但它们也可能包含在单独的文件中,由使用它的文档引用。根据请求,必要的脚本文件由 CDN 发送到用户的计算机。用户的浏览器执行脚本,然后显示文档,包括脚本的任何可见输出。
服务器端脚本是指运行在CDN的边缘服务器上,改变各种网页内容的应用。此类网页通常是在服务器端语言(如 ASP、Perl、PHL、Ruby 和 WebDNA)的帮助下创建的。服务器端脚本嵌入到 HTML 源代码中,这导致客户端对网站的请求在响应客户端请求之前由运行在边缘服务器上的脚本处理。服务器端脚本通常用于提供接口并限制对专有数据库或其他数据源的访问。这些脚本可以组合客户端特征,并根据这些特征、用户需求和访问权限自定义响应。
客户端和服务器端脚本的组合也很常见。Ajax 是一种 Web 开发技术,用于动态交换向边缘服务器发送数据请求的内容。边缘服务器返回请求的数据,然后由客户端脚本格式化。这种技术减少了加载时间,因为客户端不请求整个网页,只传输将要更改的内容。Google Maps 是一个使用 Ajax 技术的例子。
(3)后端层。它主要管理基于 Web 的服务的信息存储库。它通常由数据库服务器和用于生成动态内容的关键信息存储组成。该层为应用程序数据的管理提供了额外的可扩展性。后端数据的复制可以是完整的或部分的。数据的部分复制可以利用对不同的数据存储缓存机制来实现,例如最经常查询的缓存机制(内容盲缓存)或通过根据使用模式、网络选择的后端数据的主动复制部分来获得(内容感知缓存)。
(4)用户配置文件层。它存储有关用户偏好和上下文的信息。这些信息主要用于生成动态内容,提供个性化服务。用户配置可以通过 Web 表单手动更新,也可以根据用户行为自动更新。
3.3 HTTPS内容分发
HTTPS是一种通过身份验证和加密通信来安全访问 Web 服务器的协议。从技术上讲,它本身并不是一个协议;它是将 HTTP 简单地放置于安全套接字层/传输层安全 (SSL/TLS) 协议之上的结果,从而将 SSL/TLS 的安全功能添加到标准 HTTP 通信 [3、4]。Web 浏览器会根据证书颁发机构 (CA) 预安装的证书来信任 HTTPS 网站,例如 VeriSign、GeoTrust 和 Symantec。
CDN 可以传送 HTTPS 内容,帮助源站进行SSL 加密/解密处理。HTTPS 内容交付对于电子商务零售商、银行业和金融机构来说非常重要,他们需要此功能来实现动态内容交付、交易流量和 SSL 加速。由于其计算性能要求,SSL 解密会影响 IT Web 基础设施,并可能导致性能和高可用性风险。CDN 可以在一定程度上分担 SSL资源需求(通过扩展计算基础设施)。
CDN要提供 HTTPS 内容交付能力,需要以下部分:
证书。证书是数字身份证明文件,允许 CDN 边缘服务器和最终用户相互验证。证书文件通常具有 .crt 扩展名。服务器证书包含有关网站所有者和颁发证书的组织(例如 VeriSign、GeoTrust 或 Thawte)的信息,而客户端证书包含有关用户和签署证书的组织的信息。每次创建证书时都会生成证书签名请求 (CSR)。它有一个 .csr 扩展名。一旦 CSR 文件被 CA 签名,一个新的证书就生成了,可以用于 HTTPS 网站。
会话密钥。最终用户和边缘服务器使用会话密钥来加密数据。它由最终用户通过服务器的公钥创建。
公钥。最终用户使用服务器的公钥加密会话密钥。它不作为文件存在,而是在创建证书和私钥时生成。
私钥。服务器的私钥解密客户端的会话。私钥的扩展名为 .key,是公私密钥对的一部分。
HTTPS 内容交付的基本形式是能够安全地交付静态对象、音乐流和渐进式下载。通过启用此功能,CDN 能够支持需要对非动态和可缓存事务进行 SSL 安全保护的组织的内容交付。对于SSL加密的HTTPS 请求,CDN 可以执行从设置SSL会话到加密所有出站数据的完整 SSL处理。CDN边缘服务器处理所有 SSL请求,而源站不承担此处理的负担。CDN不缓存的请求,如股票报价和银行账户余额,将被发送到源站进行检索。CDN会检索此信息,并且在不缓存的情况下加密数据并将其发送到请求浏览器。
3.4 直播(Video CDN)
CDN的一个主要应用场景是提供体育、文化和企业活动的实时直播报道,可在 IP 连接设备上观看。实时直播事件在预设的开始和结束时间定义的时间间隔内发生,例如,足球比赛或赛车事件。实时流式传输可以以不同的内容交付格式执行。最近,基于HTTP的自适应比特率 (ABR) 流媒体技术,例如 Microsoft Smooth、Apple HLS 和 Adobe HDS,已在CDN 行业中大量用于实时流媒体。
下图显示了使用 MS Smooth 通过 CDN 进行实时流式传输的示例方案。

编码器获取实时馈送并将其转换为视频/音频,在视频/音频中将其分段为不同的质量,以允许媒体播放器客户端选择最合适的分段来无缝检索内容。Smooth 清单文件 (XML) 在编码器级别创建,并由编码器连同媒体片段一起发送到源服务器。其他交付影响因素,如输出缓存规则、DRM、高级日志记录和 HTTP 响应标头,也在编码和源基础设施层进行控制。许多端到端的交付行为和性能结果都可以在源头进行配置。重要的是源配置遵循最佳实践,以避免在直播期间对 CDN 和最终用户体验产生负面影响。
CDN获取直播从源头获取内容并将其分发到边缘服务器以进行交付。清单文件的目的是使源服务器和最终 CDN 能够解释传入的实时流。它还为流中的轨道分配适当的语义,创建必要的参数来解码视频/音频数据,并做出适当的启发式决策。路由基础设施在选择最佳边缘服务器以将直播流传输给最终用户方面起着关键作用。
3.5 全局服务负载平衡CDN
全局服务器负载平衡(GSLB)是一种CDN,它优化了跨多个位置的服务器的流量分布。对于全球性存在的组织来说,这可能特别有用,因为它可以确保终端用户被重定向到最近的,最可用的服务器。GSLB解决方案可以使用各种方法确定用户的最佳服务器,例如地理路由或实时服务器监控。它们也可以与传统CDN或视频CDN等其他类型的CDN集成。
4. CDN的发展趋势
当前 CDN 行业的一些发展趋势包括云集成、智能路由、服务器负载数据分析、边缘计算和增加的安全措施。
- 云集成:CDN服务商将会与云存储和云计算服务的提供商合作建立云集成服务 ,来提高可靠性和效率。
- 智能路由:CDN服务商将会提供更智能的路由算法和管理服务,来管理网络请求数据流,保证更快的加载时间和更高的性能 。
- 大数据分析:CDN服务商将利用大数据分析提供更高效的网络服务,根据访问的pattern,帮助CDN更好地调度和管理。
- 边缘计算:CDN服务商将开始在边缘节点提供计算和存储资源,边缘节点更靠近终端用户,可以减少内容传输时间,提高性能和可靠性。
- 安全性:CDN服务商将提供更先进的安全性服务,来保护客户的私密信息和内容。
发布于 2023-04-13 20:10
真诚赞赏,手留余香
还没有人赞赏,快来当第一个赞赏的人吧!

网络安全服务
针对黑客的攻击,入侵,渗透篡改等等,定制化防御方案
多节点加速
发布于 2023-03-23 16:42

wave
CDN是内容分发网络的简称,是一个将网络服务节点分布在不同地区的系统。它的目标是在全球范围内提供更快速、可靠和安全的内容传递服务。本文将介绍CDN是什么,以及使用CDN的优势。
CDN的定义和工作原理
CDN的定义是一组分布在不同地理位置的服务器,它们都可以存储站点的内容,并且通过一系列优化和缓存技术,可以加速用户请求。这些服务器通常被称为边缘节点或CDN节点。当用户请求网站上的内容时,他们会自动与离他们最近的CDN节点建立连接,这样就可以提高网站的响应速度。
CDN的工作原理是将数据复制到多个服务器上,这些服务器都分布在不同的地区。当用户需要访问一个网站时,CDN会尝试找到最近的服务器,从而减少延迟时间,提高响应速度。同时,CDN还可以提高网站的可用性和安全性。
使用CDN的优势
提高网站性能
使用CDN可以提高网站的性能,因为它可以将站点的内容分发到多个节点中,从而减少了请求到服务器的距离和延迟时间。这样可以加速网站的响应时间,提高用户的体验。提高网站的可用性
使用CDN可以提高网站的可用性,因为它可以将站点的内容备份到多个服务器中,从而在某个服务器出现故障时,可以自动切换到其他服务器,从而保证网站的正常运行。降低带宽成本
使用CDN可以降低带宽成本,因为它可以减少服务器和用户之间的带宽使用。由于CDN节点分布在多个地理位置上,它可以缓存并分发站点的内容,从而减少了对服务器的带宽使用。提高网站的安全性
使用CDN可以提高网站的安全性,因为它可以提供一些安全性措施,例如防止DDoS攻击、减少网络威胁等。CDN还可以通过加密数据传输和缓存网站内容来保护用户数据的安全。提高SEO排名
使用CDN可以提高网站的SEO排名,因为它可以加速网站的响应时间,减少页面加载时间,从而提高网站的质量得分。这样可以提高搜索引擎对网站的信任度,从而提高网站的排名。
结论
使用CDN可以提高网站的性能、可用性、安全性、SEO排名和降低带宽成本。这些优势都可以对网站的用户体验、运营效率、安全性和可靠性产生积极影响。
因此,如果您运营一个网站或应用程序,使用CDN可以是一个非常有益的决策。CDN服务商数量众多,其中包括知名的Akamai、Cloudflare、Amazon CloudFront等,根据自己的需求和预算选择合适的CDN服务商是关键。
最后,需要注意的是,使用CDN并不能解决所有的网站性能问题,它只是其中一个解决方案。另外,虽然使用CDN可以提高网站的安全性,但并不代表完全免于网络攻击。因此,网站运营者仍需要采取其他安全措施,如使用SSL证书、更新软件和安装防火墙等。
总之,CDN是一个非常有用的工具,可以帮助网站和应用程序提高性能、可用性、安全性和SEO排名,并降低带宽成本。使用CDN的好处是显而易见的,但使用之前应该先做好充分的调研和准备,以确保选择合适的CDN服务商,从而获得最佳的效果。
发布于 2023-03-24 13:40

Ailiaili
CDN是内容分发网络的简称,是一个将网络服务节点分布在不同地区的系统。它的目标是在全球范围内提供更快速、可靠和安全的内容传递服务。本文将介绍CDN是什么,以及使用CDN的优势。
发布于 2023-04-17 08:53

BothWin
CDN,也就是内容分发网络,它能够事实根据网络流量和各个节点之间的链接,让用户就近获取到需要的内容,解决目前互联网络拥堵的情况,提高用户访问网站的响应速度。
发布于 2023-04-10 11:27