什么是CDN,全面解读内容分发网络!

11月 16, 202431 mins read

什么是CDN,他的底层框架是什么?是如何工作的,CDN除了加速以外它能防护DDOS吗,如果你有这些问题,那么CDN5这篇关于内容分发的博客就可以完全解释你所有疑问。中文CDN服务商,请认准CDN5.com!

 什么是CDN
 

中国香港电影功夫足球里面火云邪神有言:“天下武功,唯快不破。”在现代社会,行事若不求速,则易落后于人。随着Internet与多媒体技术的飞跃,网络服务已深度融入生活,如移动支付、视频通话,尤其是自媒体兴起的短视频服务,成为网民首选。    
如果你的Web内容加载不够快,哈哈哈,显然在同行竞争中就是弱鸡。  

什么是 CDN?

CDN就是内容分发网络(Content Delivery Network)。你可以参阅我们之前的内容什么是CDN?5分钟搞懂CDN工作原理!    
拆开解释    
内容:指的是静态资源。静态资源:前端的固定页面,无需查数据库,也不需要程序处理,直接能显示的页面。例如:图片、视频、文档、JS、CS、HTML。    
分发网络:指的是将静态资源分发到不同地理位置的服务器。    
没有使用CDN的网站,用户访问该网站时,是访问该网站的主服务器,如果访问者多,则会出现拥堵卡顿;如果该服务器距离遥远,又会出现网站打开延时,严重影响用户体验。而CDN就是将静态资源分发到多个不同的地方以实现就近访问,进而加快静态资源的访问速度,减轻服务器以及带宽的负担。  

CDN常见架构 

CDN的网络架构由节点组成,每个节点包括高速缓存服务器(Cache)和负载均衡设备,CDN的网络架构有三种模式。  

  • 二级架构  

什么是CDN,CDN的架构

  • 三级架构  

什么是CDN,CDN的架构

混合架构    
888AAFSDF什么是CDN,CDN的架构

更多关于CDN架构参阅CDN架构详解:优化网站性能的技术基础与最佳实践

CDN 如何工作?   

为了更好地理解 CDN 的实际工作原理,让我们看以下示例:

假设您有一个网站,并且存储网站所有文件的原始服务器位于法国巴黎。 

由于您提供高质量的产品,您的网站吸引了来自世界各地的用户。但是,您的服务器并不遍布全球,因此您遇到了延迟问题(用户和原始服务器之间的距离太大)。

  6AF402
 

例如,如果北京的用户想要访问您位于巴黎的网站,则每个请求都必须经过一系列路由器才能到达服务器。 

每次资源请求都会重复这一“行程”。延迟会发生,这是因为巴黎和北京之间的地理距离约为 5000 英里。 

在这种情况下,CDN 实际上可以缩短该距离,从而提高网站的性能。

CDN 会将内容的缓存版本存储在多个地理位置(也称为接入点)。每个接入点由多个缓存服务器组成,负责根据用户的距离分发您网站的内容。

6566555AF2222SF2Fzc什么是CDN,CDN的架构

(图片版权@nitropack.io)

因此,来自北京并请求访问您网站的用户将获得来自最近的接入点/缓存服务器的内容 - 可能是来自同一城市的服务器。因此,延迟将大大减少,您的网站加载速度也会更快。

什么是CDN缓存及工作原理?

对于 CDN,边缘服务器是缓存和存储数据的地方,网站接入CDN后,缓存将按以下方式进行:  
用户(例如香港)的访问者首次请求您网站,你网站上的静态资源(例如 style.css),会从您的美国服务器检索,并在交付后缓存在 CDN5香港边缘服务器上(即根据该用户距离最近的位置的CDN5 POP)。

如果同一访问者再次请求网站,将会从 CDN5 POP 边缘服务器先检查是否已缓存。 如果有缓存就立即返回结果了。如果没有,重复前面的缓存步骤。

用户可以通过检查X-Cache 响应标头来确认数据是否从就近的边缘服务器传输  

 curl 检查​命令如下:  

curl -I https://www.cdn5.com/storage/whislll5a.jpg
HTTP/2 200
server: cdn5-engine
date: Wed, 15 Jun 2024 06:43:47 GMT
content-type: image/jpeg
content-length: 195025
last-modified: Thu, 16 Jul 2020 07:06:27 GMT
vary: Accept-Encoding
etag: "5f0ffc73-2f9d1"
expires: Wed, 22 Jun 2022 06:43:47 GMT
cache-control: max-age=604800
strict-transport-security: max-age=31536000; includeSubdomains; preload
content-security-policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' https: data:
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
referrer-policy: no-referrer-when-downgrade
x-cache: HIT
x-edge-location: chzh
access-control-allow-origin: *
accept-ranges: bytes

判断

X-Cache 值  

 

结果

HIT  

 

从边缘服务器的缓存中传送  

MISS  

 

从原始服务器中传送  

使用和不使用CDN的差异

可以使用Traceroute工具,来测试网络之间的跳转次数,如果跳转次数越多,说明交付到用户浏览器所需的时间就越长。我们来做一个例子:(位置新加坡

不使用CDN的情况下:跳转次数:14

1.|-- 128.199.191.254            0.0%     4    1.1   0.7   0.6   1.1   0.0
2.|-- 103.253.144.233            0.0%     4    0.7   0.6   0.5   0.7   0.0
3.|-- 103.253.144.249            0.0%     4    0.5   0.6   0.5   0.6   0.0
4.|-- 116.51.27.189              0.0%     4    1.5   1.7   1.5   2.2   0.0
5.|-- 129.250.4.73               0.0%     4    1.3  10.3   1.3  32.0  14.7
6.|-- 129.250.7.64               0.0%     4  192.8 186.6 182.7 192.8   4.8
7.|-- 129.250.3.138              0.0%     4  198.7 196.7 195.2 198.7   1.5
8.|-- 129.250.6.217              0.0%     4  198.6 198.9 197.8 200.9   1.2
9.|-- 213.198.72.230             0.0%     4  197.9 199.6 197.9 204.1   2.9
10.|-- 213.239.245.2              0.0%     4  194.3 195.1 193.8 197.7   1.5
11.|-- 213.239.245.17             0.0%     4  208.4 205.5 204.1 208.4   1.9
12.|-- 213.239.203.182            0.0%     4  200.4 199.6 198.6 200.4   0.6
13.|-- 213.239.203.186           25.0%     4  201.7 200.1 199.2 201.7   1.2
14.|-- 136.243.1.25              25.0%     4  204.3 203.8 202.6 204.6   1.0

使用CDN的情况下:跳转次数:6

1.|-- 128.199.191.253            0.0%     4    1.2   0.7   0.5   1.2   0.0
2.|-- 103.253.144.237            0.0%     4    0.5   0.6   0.5   0.7   0.0
3.|-- 202.79.197.69              0.0%     4    1.3   1.2   1.0   1.3   0.0
4.|-- 50.97.18.199               0.0%     4    2.3   2.4   2.3   2.5   0.0
5.|-- 174.133.118.133            0.0%     4    4.5   3.0   2.4   4.5   1.0
6.|-- 119.81.66.229              0.0%     4    2.3   2.2   2.2   2.3   0.0

显而易见,使用CDN时延迟大幅减少。从不使用 CDN 的跟踪路由中可以看出,从第 6 跳开始,延迟增加到 192.8 毫秒,在第 7 跳时为 198.7 毫秒,依此类推。但是,使用 CDN 时,此示例中的最大延迟发生在第 5 跳,仅为 4.5 毫秒  

相关阅读:  

海外高防CDN服务器:提升网站安全与性能    
国外免备案CDN推荐(2024精选测评)    
cdn影响seo吗  

常见问题:

CDN能抵御DDOS攻击吗

在 DDoS 攻击期间,具有 DDoS 保护功能的 CDN可保护您的原始服务器和最终用户。CDN 监控、分析和过滤传入流量,仅允许合法请求到达您的原始服务器,且利用节点对违规流量进行清洗。

CDN 与 DNS 有什么区别?
CDN 通常使用互联网的域名系统 (DNS) [11] 执行动态请求路由。DNS 是一个分布式目录,其主要作用是将完全限定域名 (FQDN) 映射到 IP 地址。为了确定 FQDN 的地址,DNS 客户端会向其本地 DNS 服务器发送请求
为什么需要CDN?
CDN 可以增强 Web 性能和安全性。通过在多台服务器上分发内容,它可确保用户从最近的位置访问数据,从而最大限度地减少延迟并缩短加载时间。
常见名词解释
1.CNAME域名:CNAME( Canonical Name )即别名,接入CDN,在服务商(如阿里云)控制台添加加速域名后,会得到一个服务商CDN分配的CNAME域名。该CNAME域名的形式为*.*xxxx*.com。需要在DNS解析服务商添加一条CNAME记录,将加速域名指向这个*.*xxxx*.com的域名。记录生效后,域名解析的工作就正式转向CDN服务,该域名所有的请求都将转向CDN节点,达到加速效果。
2.CNAME记录:可以用来把一个域名解析到另一个域名,再由另一个域名提供IP 地址。例如,你有一台服务器上存放了很多资料,你使用docs.example.com去访问这些资源,但又希望通过documents.example.com也能访问到这些资源,那么您可以在您的DNS解析服务商添加一条CNAME记录,将documents.example.com指向docs.example.com,添加该条CNAME记录后,所有访问documents.example.com的请求都会被转到docs.example.com,获得相同的内容。
3.边缘节点:是CDN用于缓存客户源站内容以便快速响应不同地域用户请求的网络节点。
4.源站:即客户的业务服务器。
5.中间源:是位于业务服务器(源站)和 边缘节点的一个中间层的回源服务器,中间源服务器可缓存多个边缘节点的回源请求,对同一内容的请求,中间源服务器只需进行一次回源即可将内容分发至各边缘节点,降低业务服务器(即源站)的访问压力。
 
图像通讯
图标主要
通讯

订阅我们的时事消息

单击按钮即表示您同意我们的条款和条件