1. CDN 定义
CDN 的全称 Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快,更稳定。
通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN 系统能够实时地根据网络流量和各节点的连接,负债情况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
其目的是使用户可就近取得所需内容,解决 Internet 网络拥挤的状况,提高用户访问网站的响应速度。产生背景:
BGP 机房虽然可以提升用户体验但是价格昂贵,那么 CDN 的诞生可以提供比 BGP 机房对于用户更好的体验(让地区的同一线路访问当地的同一线路的网站),BGP 机房和普通机房价格将近 5-10 倍的价格差。CDN 使用单线的机房,根据用户的线路以及位置为用户选择靠近用户的位置以及相同的运营商线路,即提升了用户体验价格又降下来了。
CDN 的价值:为客户省钱,同时提升用户体验。
2.CDN 的特点
提高访问速度和网站稳定性
本地 Cache 加速提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性(省钱,用户体验提升)。消除不同运营商互联瓶颈
镜像服务消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。比如联通、网通等等负载均衡
远程加速远程访问用过户根据 DNS 负载均衡技术智能自动选择 Cache 服务器,选择最快的 Cache 服务器,加快远程访问的速度。减轻服务器压力
带宽优化自动生成服务器的远程 Mirror(镜像)cache 服务器,远程用户访问时从 cache 服务器上读取数据,减少远程访问的带宽,分担网络流量,减轻原站点 WEB 服务器负载等功能。智能 cdn,防止 ddos 攻击
集群抗攻击广泛分布的 CDN 节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种 DDOS 攻击对网站的影响,同时保证较好的服务质量。
普通的请求过程
- 用户请求一个域名
- 域名服务器解析域名对应真实的 IP 地址
- 用户拿到 IP 后请求服务器上的资源
- 服务器返回请求的资源
随着业务的扩展,用户可能遍布全国或者全世界,如果都去访问这一个服务器,那服务的压力肯定比较大,较远地区的用户访问,响应也会比较慢,甚至并发较大会宕机等等一系列问题。
使用 CDN 就能解决这些问题。
###CDN 实现原理
CDN 说白了就是在世界各地部署新的服务器,把源服务器上的静态文件在这些新的服务器镜像上存一份镜像,当有人访问网站时,通过智能 DNS 解析出哪个服务离用户最近,然后把这个服务器的 ip 返回给请求方,这时请求方请求的就是最近的服务,从而提高响应速度,提高用户体验。
智能 DNS
CDN 的服务是弄好了,但是请求的时候,如果用户的最终请求还是发到了一个服务器上,那各地的镜像服务就白弄了。需要让客户真正访问最近的服务才能起到作用。
这如何做呢?这就是智能 DNS 的作用。
可参考下图,当发出请求时,第一步仍是需要通过 DNS 服务器解析域名,但是这时 DNS 服务器并没有直接解析到响应的 IP 地址,而是解析到了智能 DNS 服务器,智能 DNS 服务器判断用户访问离哪个服务器最近,就把最近的服务器 IP 地址返回。
智能 DNS 服务器是由 CDN 服务商提供的,因此可以在智能 DNS 服务器上做很多工作,除了判断最近的服务器之外,还可以做负载均衡等等。
CDN 按内容可分为如下几类:
网页加速
流媒体加速
视频文件存储之前会被流媒体服务进行切片处理,如途中的 1.ts、2.ts 等就是切片后的流媒体文件,plist.xml 记录了流媒体文件的信息。这些文件几乎是不变的,所以使用 cdn 非常合适。并且很多视频在被访问时,通常只会看开头的部分,所以切片后可以大大的提高响应速度。
大文件加速
应用协议加速
这种比较常见于使用 BT 下载工具。
比如当下载一个 rar 的文件时,如果通过浏览器下载,可能受目标服务器带宽的限制,最大只能下载 500k,但是如果通过 BT 下载加速工具后,下载工具可能已经提前把需要下载文件下载到了代理服务器中,用户只需从代理服务器上直接下载即可,而代理服务器的带宽往往要远远大于原始服务器,以此提高下载速度。
此外当代理服务器中没有这个文件时,会同时使用多台代理服务器同时下载这个文件,并同时传给用户,以此提高下载速度。
应用场景
- 网站服务的客户群体从独立区域扩张到全国范围,而自身服务器不
足以覆盖全网用户,导致部分地区用户访问网站速度慢,到达率不高。
•节省开支
•不%要考虑未来追加增 M 服务器
•加速效果更加明显
•覆盖范围更广 - 网站已经实现静态动态资源分离,且静态资源服务器能力达到极限, 需要通过增加服务器硬件设备才能解决问题的。
•节省开支
•比自己搭建反向代理简单方便
•不需要对当前业务代码进行任何修改
•不需要考虑未来追加增 M 服务器
•加速效果更加明显
•大幅度降低本地静态资源服务器压力 - 网站频繁遭到 DDoS 攻击、CC 攻击、DNS 劫持,导致用户体验差、网络堵塞、无法提供正常服务
•提高网站安全性
•保证用户访问到达率 4.网站用户跨多个丨 SP (电信、联通、移动、铁通、长城),而自身服务器在其中一个机房的
•提高用户访问速度
•减少因运营商通道堵塞导致的访问失败
CDN 推送类型
- 主动推送
就是把源服务器上的资源主动推送到各个镜像服务器。 - 被动获取
镜像服务器上没有静态资源,当用户第一次访问时,镜像服务器会去源服务器上拉取资源,然后换成到本地,当用户第二次访问时,就是直接访问的 cdn 服务。
CDN 防止 DDOS 攻击原理
节点承受能力强大
我们知道网站在访问过程中,是具有不确定因素的。也就是说,很有可能在一段时间内,会有大量的访问流量,这种突出情况的出现,如果没有强大的承载能力的话,是很容易使网络瘫痪的。而 cdn 就拥有强大的带宽,每个节点可以承受住大量的访问。因此可以保证网站的运行稳定。网站运行稳定了,没有漏洞了,在一定程度上是可以抵制 ddos 攻击。
智能分配机制提升网站攻击难度
抗攻击 cdn 之所以能有效防止 ddos 攻击,主要在于它的智能化。当有 ddos 攻击时,它会将整个系统将被攻击的流量分散开来。一是节省了服务器的压力,二是增强了网站的工具难度。三是为服务器管理人员提供了补救的时间。所以使用这种技术可以有效的防止 ddos 攻击,增强网站的安全性能。