[TOC]
《CDN技术详解》读书笔记
1. CDN 基本概念和产生背景
CDN : Content Distribute/Delivery Network
作用:完成将内容由原站传递到用户端的任务。
产生的原因:
广义的互联网分为两层:
一层是以 TCP/IP为代表的网络层
一层是以万维网WWW为代表的应用层
网络层与应用层磨合存在的问题:
- 第一公里:万维网流量像用户传送的第一个出口,是网站服务器接入互联网的链路所能提供的带宽。(用户主机到局域网对外路由 ?)
- 最后一公里:指万维网流量向用户传送最后一段接入链路,即用户接入带宽
- 对等互联关口:不同运营商之间的互联互通,一般两个运营商之间只有两三个互联互通点
- 长途骨干传输。长距离传输时延,由网站服务器到用户之间要经过网站所在IDC、骨干网、用户所在城域网、用户所在的接入网等
8 秒定律。超过 8 秒,30% 的用户放弃等待
2. CDN 的基本工作过程
- 点击 URL ,经过本地 DNS 解析,DNS系统会将域名的解释权交给 CNAME 指向的 CDN 专用的 DNS 服务器。
- CDN 的DNS服务器将CDN全局负载均衡设备IP地址返回给用户
- 用户向 CDN 设备发出URL访问请求
- CDN全局负载均衡设备根据用户IP地址以及请求内容,选择用户所属区域的区域负载均衡设备,请求转向区域负载均衡系统
- CDN区域负载均衡设备会根据用户的信息,返回区域的缓存服务器的IP地址
- 全局负载均衡系统将IP地址返回给用户
- 用户向缓存服务器发送请求
- 获取到缓存服务器的响应
3. CDN的发展历程
4. CDN对于互联网产业的价值和作用
- 首先,CDN 的发展促进了整个互联网产业的进一步分工。纵观整个带宽服务的价值链,内容提供商与用户出于链条的两端。中间依靠网络服务提供商将其串联起来。随着互联网工业的成熟和商业模式的变革,在这条价值链上的角色原来越多,也越来越细分。
- 对于电信运营商,CDN是真正体现管道智能化的技术。CDN 与网络联系密切,通过与各级之间的联系调度配合,在给用户提供优质服务的同时,也能降低骨干网的传输压力和峰谷变化。
- CDN的进一步发展促进了互联网出运营商和SP之外的第三方产业的蓬勃发展
CDN 技术概述
1. CDN 的系统架构
CDN 基于的原理:
- 挑选最优设备为用户提供服务
- 如果某个内容被很多用户所需要,它就被缓存到距离用户最近的节点中
功能架构
典型的 CDN 架构由 分发服务系统、负载均衡系统、运营管理系统三大部分组成。
-
分发服务系统:
- 分发服务系统会分为多个子服务系统,如网页加速子系统、流媒体加速子系统、应用加速子系统等
- 每个子系统都是一个分布式集群,由一群功能类似、在地理位置上分布部署的 Cache 或 Cache集群组成
- 对于分发服务系统,在承担内容的更新、同步与响应用户需求的同时,还需要向上层的调度控制系统提供每个Cache设备的健康状况,响应情况等信息。
-
负载均衡系统:
- 主要功能是负责对所有发起服务请求的用户进行访问调度,确定提供给用户的最终实际访问地址。
-
运营管理系统:
- 与一般的电信运营管理系统类似可分为运营管理和网络管理两个子系统。
- 运营管理子系统是 CDN 系统的业务管理功能实体,负责处理业务层面的与外界系统交互的一些收集、整理、交付工作,包含用户管理、产品管理、计费管理、统计分析等功能。
- 网络管理子系统实现对CDN系统的网络设备管理、拓扑管理、链路监控和故障管理
部署架构
- 一个CDN系统由大量的、地理位置分散的 POP 节点组成,为用户提供就近的内容访问服务。
- CDN 节点包括 CDN 骨干节点与 POP 节点
- CDN 节点包括中心节点与区域节点
在一个节点中,Cache 设备和本地负载均衡设备的连接方式有两种:一种是旁路模式,一种是穿越模式
-
穿越模式
- 通过SLB设备由上向下进行转发,这种方式在CDN系统中应用较多的方式
-
旁路模式
- SLB与Cache拥有相同的 IP 地址,SLB 与 Cache 构成并联关系,用户需要先访问SLB设备,然后再以重定向的方式访问 Cache
2. CDN 系统分类
基于不同内容承载类型的分类
- 网页加速
- 流媒体加速
- 流媒体直播加速。
- 流媒体点播加速
- 文件传输加速
- 应用协议加速:并不针对特定的内容类型进行加速,而是通过对 TCP/IP 传输协议的优化
广域网应用加速
广域网应用加速的目的是在不改变远程用户使用习惯的前提下,将分布式的IT设施如文件服务器、邮件服务器、网络附加存储(NAS)和远程不办公室设备备份系统等集中起来,整合到统一的数据中心中SSL 应用加速
CDN提供SSL应用加速后,由CDN的专用SSL加速硬件来完成加密解密运算工作,通过认证之后方可建立连接通道-
网页压缩。
在服务端先对网页数据进行压缩,然后将压缩后的文件提供给访问用户,最后在用户的浏览器端进行解压现实,通过这种方式可以减少传输的时间
基于内容生成机制的分类和分层加速技术
由内容生成机制来看,互联网上的内容主要分为两类:
静态内容与动态内容
内容缓存工作原理及实现
1. 内容缓存技术的发展背景
网站的问题和需求
- 无法及时满足并发用户增长的需要
- 设置镜像前,无法满足胶原用户的访问需要
- 在设置镜像后,中心服务器与镜像之间信息同步不及时。
- 很多情况下,镜像失效后,无法及时高效调度到最近的镜像来服务。
- 通过部署镜像来解决问题会明显增加成本
- 中心服务器 IP 地址的暴露导致易受黑客DDoS攻击
CDN 出现前的网站服务技术
- 扩展技术 Scale up / Scale out
- Scale up:通过提供网站的服务器的硬件水平。比如增加高速处理器,配置更大的内存和硬盘
- Scale out:采用服务器集群
- 镜像技术 Mirroring
- 通过冗余的方式,在各个磁盘保存相同的副本称为磁盘映像。镜像主要用于备份
- 基于镜像技术主要应用方式是镜像网站,即对于整个网站进行镜像复制,并对镜像网站多点部署
- 缓存技术 Cache
- 缓存是将访问过的数字媒体存储起来,为后续的重复访问使用。
2. Cache设备的工作方式与设计要求
-
正向代理器网络访问的代理服务器地址为 Cache 地址
使用者需要配置其网络访问的代理服务器为Cache设备的地址,内网用户对互联网的所有访问都需要代理服务器代理完成
-
反向代理
反向代理只暴露代理服务器地址,内部进行负载均衡。
-
透明代理
透明代理可以看作是通过网络设备或协议实现的正向代理工作模式。不同的是浏览器不需要配置代理服务器地址,但是用户的设备需要支持WCCP协议。
Web Cache 产品实现关键要素分析
3. Web Cache的实现基础-- 基于HTTP协议的
4. Web Cache技术实现关键点分析
Web Cache 关键性能指标说明
引入 Web Cache 技术的目的是通过对于内容副本进行缓存来满足后续的用户请求,使用 Cache 设备分担用户对于源站点访问负载。
- 并发量。同一时间,能够处理用户的访问请求数
- 吞吐量。单位时间内,能够处理、转发的数据量大小
- 命中率。
- 响应时间与丢包率
- DNS 解析时间
- 建立连接时间
- 重定向时间
- 收到的第一个包的时间
- 图片下载时间
- 页面总下载时间
内容存储机制
- 由存储类型来看,主要关注的是容量、成本和服务性能。
- 常用的存储技术方案有三种:
- 共享存储
- 本地附加存储
- 分布式文件系统
内容更新机制
web Cache 需要及时判断或者预测内容的冷热程度,从而实现高效的新旧交替,在有限的存储空间中实现更高的命中率。
web Cache 遵守以下协议:
- 如果HTTP响应头明确不要缓存,不进行缓存
- 需要认证或者安全加密,Cache 也不会缓存
- 如果在 HTTP 响应中没有 ETag 或者 Last-Modified头信息,Cache会认为缺乏直接的更新度信息,默认该内容不可缓存
- 缓存副本包含以下信息,Cache 会认为它足够新。直接有缓存中返回
- 含有完整的过期时间和寿命控制的头信息,并且内容仍在生存期内
- 浏览器已经使用过这个缓存副本,并且在同一个会话中已经检查过内容的新鲜度
- 如果缓存的内容副本已经旧了,Cache 将向原站服务器请求校验
Web cache 协议优化
- HTTP连接聚合。原理是将多个短链接转换成一个长连接,从而减少连接。
- HTTP gzip 压缩。
Web Cache 安全实现机制
- 访问控制
- 允许访问控制列表 ACL 中的 IP 地址用户访问 Internet,拒绝其他 IP 地址的用户访问外网
- 在ACL中设置某个具体 IP 地址,创建拒绝规则来阻止访问
- 设置屏蔽指定站点,域名,URL 实施过滤,拒绝内网用户访问
- 限制内网用户可访问外网时间
- 赋予某些用户特殊的访问权限,比如赋予管理员用户访问管理平台
- 控制用户访问外网服务器的端口号,比如允许用户连接到任何非特权端口(1025~65535)
- 其他功能,比如减缓或者加速内容发送、用户身份认证
- 防止网络攻击
- 病毒防护
- 网络安全防护。Web Cache 除了提供负载均衡,还提供以下防攻击手段保护网络中的服务器
- 通过对无效链接的管理防止没有开放的服务来进行攻击
- 实现源路由追踪,防止 IP 欺骗
- 不用 ACK 缓冲应答未确认的 SYN,防止SYN风暴
- 防止连续和接管的攻击
- 不运行 SMTPd、FTPd、Telnetd 等易受到攻击的进程
- 内容加密