提纲
CDN的定义:5min
CDN的价值:5min
应用场景:4 * 1.5 = 6 min
核心探秘1:CDN与DNS的关系 5min
核心探秘2:融合CDN与百分比切流量 5min
好奇宝宝提问环节:15min
CDN定义
Wiki:A content delivery network, or content distribution network (CDN), is a geographically distributed network of proxy servers and their data centers.
Aliyun:将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。
HuaweiCloud:内容分发网络(CDN)将源站内容分发至靠近用户的加速节点,使用户可以就近获得所需的内容,解决Internet网络拥挤的状况,提高用户访问的响应速度和成功率,从而提升您业务的使用体验
(https://en.wikipedia.org/wiki/Content_delivery_network)
(https://cn.aliyun.com/product/cdn)
(https://www.huaweicloud.com/product/cdn.html)
利用生活中的场景解释什么是CDN
光明之泉-源站, 部落-信息消费者,幽暗密林-传统的地市级网络,喝水-消费信息,马车取水-信息传递,幽暗密林过窄-地市级网络带宽过小,排队取水-源站负载过高,国王大道-ISP network
如何解决供水问题:
修建部落储水库-CDN节点,通过专用水渠-CDN专用网络,为各个部落提供水源
回源场景:
水喝没了-回源
刷新场景:
光明之泉的水被恶魔污染 - 迅速清空村庄水库
预热场景:
光明之泉新增的节日祝福 - 清理水库,注入新的泉水
使用CDN带来的价值
网页速度与经济的关系
Akamai 2017 Report: (https://www.globaldots.com/content-delivery-network-explained#content-delivery-network-explained)
- A 100 millisecond slower webpage loading speed can result with a 7% drop in sales
- A 2 seconds slower webpage loading speed can almost double the number of visitors who end up abandoning their carts
- 53% of users who use smartphones to visit web stores won’t make the sale if the webpage takes more than 3 seconds to fully load
- The optimal loading time that ensures the highest number of sales is between 1.8 and 2.7 seconds.
- 28% of users won’t return to the same web store if they think it takes too long to load
- The webpages that lead to the highest number of sales loaded 26% faster than other webpages
- A 250 millisecond faster loading time proved to keep users from visiting a competitor web store
CDN带来的价值
- 更快的页面加载速度与更好的用户体验
- 源站保护,防DDoS和CC攻击,减轻源站压力
- 更低的带宽费用(源站带宽,跨运营商结算)
- 提升站点在搜索引擎结果中的比例(非竞价搜索算法场景)
CDN应用场景
网站加速
针对网站内的静态内容提供加速服务,缓存格式包括但不限于zip、exe、wmv、gif、png、bmp、wma、rar、jpeg、jpg等。
门户网站、内容网站、新闻网站等。
文件下载加速
提供大文件下载加速功能,降低源站压力,提供用户更好的下载体验。
资源网站、下载工具、游戏客户端、APP商店
直播/点播加速
提供音视频高效转码压缩功能,节约传输带宽。随着直播和在线短视频平台的兴起,这部分流量逐渐成为CDN服务的主要消费者。
TikTok、Youtube、DouyuTv…
全站加速
针对动态内容和Post、Put等请求,无法利用CDN节点提供的静态加速功能,但是可以使用CDN节点的告诉回源网络,提供更快的源站响应能力。
用户登录、下单、表格提交等。
核心探秘(一):CDN与DNS
控制CDN调度的核心功能就是DNS,启用CDN功能的第一步就是将源站域名从域名服务提供商那里设置CNAME解析到CDN服务提供商的CNAME地址再由CDN服务商自己去控制调度策略,最终指向某台CDN服务提供的A地址。
DNS基本原理
域名解析服务,发生在应用层,将域名转换为IPV4或者IPV6的地址,最终用于传输层的TCP或UDP连接。当用户请求www.ikea.com.的时候大概会发生以下DNS解析行为:
- 从用户本地查找缓存,如果之前解析过www.ikea.com.的地址,直接使用该缓存。该缓存存在TTL,到期后自动清除;如果不存在,用户本地向Local DNS发起递归解析请求
- 用户本地递归向用户网络所属Local DNS发起递归解析请求后,如果Local DNS有该域名的解析缓存,则直接返回给用户该解析结果,当该缓存超过TTL时,缓存时效;如果不存在,Local DNS将向其他域名服务器发起迭代请求结果。
- Local DNS首先向根域名服务器请求.的地址,得到13个根域名服务器的地址,然后向13个根域名服务器中的一个发起解析请求查看com.的地址,然后.com.解析托管的DNS服务器又回返回ikea.com.托管的解析地址,以此类推
演示一下
IKEA为例详述Akamai CDN的解析流程
;; ANSWER SECTION:
www.ikea.com. 4295 IN CNAME san.ev11958.ikea.com.edgekey.net.
san.ev11958.ikea.com.edgekey.net. 3831 IN CNAME e11958.x.akamaiedge.net.
e11958.x.akamaiedge.net. 19 IN A 23.76.229.17
在ikea.com.域名提供商,www.ikea.com.域名被指向了san.ev11958.ikea.com.edgekey.net.,以此托管给Akamai CDN进行后续解析。
而Akamai CDN内部的调度策略是用e11958.x.akamaiedge.net. 所对应的服务策略为其进行服务,该服务最终指向的地址是23.76.229.17 所对应的CDN服务器集群。
- e11958.x.akamaiedge.net. 是做什么用的
针对不同的业务类型,会将不同的源站指向不同的集群,不同的集群有不同的软硬件特性,比如网站加速单个文件较小,碎片化严重,对响应时效要求比较高,可以考虑网络IO能力强,并发请求承载能力大,磁盘随机读写能力强的服务器;而视频加速则需要服务器能对特定的视频格式进行分片,转码等工作;下载服务器对磁盘随机读写和并发请求的承载力没有那么高的要求,但是出口带宽应该尽可能的大才能更好的满足多用户大文件同时下载的需求。
- 举个例子
源站类型 | 地区 | 集群域名 CNAME | 地区 | 服务器IP地址 |
---|---|---|---|---|
网页站点page.ikea.com | 上海 | page.ikea.com.web.cname.xxcdn.com | 上海 | 101.226.168.228 |
北京 | page.ikea.com.web.cname.xxcdn.com | 北京 | 180.149.134.141 | |
下载站点dl.ikea.com | 上海 | dl.ikea.com.download.cnanme.xxcdn.com | 上海 | 101.226.168.227 |
视频站点v.ikea.com | 北京 | v.ikea.com.download.cnanme.xxcdn.com | 北京 | 180.149.134.140 |
- 测试一下
通过dig命令指向不同的ldns ip地址观察解析结果是否一样
dig www.baidu.com 221.5.203.98
dig www.baidu.com 210.21.196.6
名称 | DNS 服务器 IP 地址 | |
---|---|---|
北京联通 DNS | 123.123.123.123 | 123.123.123.124 |
202.106.0.20 | 202.106.195.68 | |
重庆联通 DNS | 221.5.203.98 | 221.7.92.98 |
广东联通 DNS | 210.21.196.6 | 221.5.88.88 |
河北联通 DNS | 202.99.160.68 | 202.99.166.4 |
拿到的A地址是不一样的
核心探秘(二)融合CDN与百分比流量调度
如果ikea.com想提供全球范围内的cdn加速能力,但是因为地缘政治等原因,国内cdn厂商在国内具有较强的节点服务提供能力,国外cdn厂商在国外具有较强的cdn服务提供能力,怎么办?
ikea.com自己分别购买不同厂商的cdn服务
购买不同厂商的cdn服务会得到不同的CNAME地址,ikea.com只需要在自己的权威域名提供商配置:
名称 | 线路 | CNAME |
---|---|---|
ikea.com视频 | 国内 | ikea.com.c.video.chinacdn.com |
ikea.com视频 | 国际 | ikea.com.c.video.overseacdn.com |
ikea.com网站 | 国内 | ikea.com.c.web.chinacdn.com |
如果ikea.com的原生dns服务提供商不支持,就需要考虑使用其他家的权威解析服务功能,并在.com.权威服务器进行替换
ikea.com自行购买融合cdn厂商的服务
国内外cdn厂商经常会展开合作,比如百度和Akamai,国内用户只需要购买百度的cdn服务,百度会自动将海外流量通过CNAME的形式托管给Akamai服务器,同理,国内用户访问会直接使用百度的cdn及对应的节点。
名称 | 线路 | CNAME |
---|---|---|
ikea.com视频 | ALL | ikea.com.c.video.multicdn.com |
ikea.com网站 | ALL | ikea.com.c.web.multicdn.com |
同区域百分比调度
比如为了实现容灾-防止单个cdn厂商故障,区域流量过大,单个CDN厂商无法完全承载-北上广深抖音流量过大,单个cdn厂商无法完全承载。或者是POC竞标:同一个区域分别切给四个竞标CDN服务厂商,通过观察他们提供服务的性能指标:首屏延迟,服务质量,下载速率等,选择使用哪家CDN作为未来的服务提供商。
- 源站按照百分比切给不同的CDN厂商
通过设置CNAME权重的形式,针对同一域名,权威DNS将会按照权重返回不同的CNAME地址
比如请求ikea.com四次,将会轮询返回四家不同的cdn cname地址:
请求次数 | 线路 | CNAME |
---|---|---|
1 | 广东电信 | ikea.com.c.web.cdn1.com |
2 | 广东电信 | ikea.com.c.web.cdn2.com |
3 | 广东电信 | ikea.com.c.web.cdn3.com |
4 | 广东电信 | ikea.com.c.web.cdn4.com |
- 一家CDN厂商内部,通过百分比切给不同的CDN服务器
比如cdn1.com厂商在广东电信分别有1.1.1.1,1.1.1.2广东,2.2.2.2深圳,3.3.3.3珠海 三台不同的服务器,其承载能力分别是20G,10G,10G,那么就可以让一次A地址解析返回
ikea.com CNAME ikea.com.c.web.cdn1.com
ikea.com.c.web.cdn1.com A 1.1.1.1 60
ikea.com.c.web.cdn1.com A 1.1.1.2 60
ikea.com.c.web.cdn1.com A 2.2.2.2 60
ikea.com.c.web.cdn1.com A 3.3.3.3 60
因为LDNS存在轮训特征,所以每个用户来查询的时候,LDNS回以此把1.1.1.1,1.1.1.2,2.2.2.2,3.3.3.3分别放在第一位返回给用户,实现按比例的A地址流量分配
CDN的其他特性
计费:流量计费,带宽计费,九五峰值计费
刷新/预热:
防盗链:
302调度:
成本和服务质量调度:
性能指标监控: