什么是CDN
CDN的全称是Content Delivery Network,即内容分发网络。
其目的通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提供用户访问网站的响应速度。
从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,解决用户访问网站的响应速度慢的根本原因。
CDN工作原理
当用户访问某域名上的内容信息时,首先需要通过域名解析系统将该域名转换为存储该内容信息的内容服务器IP地址,再根据IP地址访问内容服务器以获取内容信息。
如果该域名使用了CDN技术,该域名上的内容信息将会被复制并发布到广泛分布的、位于不同地理位置的CDN网络的边缘节点服务器。
用户访问使用CDN技术的域名时,其地理位置附近的CDN网络的边缘服务器将向其提供相关内容。
请给出两种CDN网络技术架构,并说明其内容路由的实现机制
综合当今众多CDN服务商的技术体系,无不受到当今世界两大CDN服务商,即 Akamai和LimeLight(以下简称LL)的技术架构影响。
内容路由(负载均衡):通过用户就近性和服务器负载的判断,CDN确保内容极为高效的为用户服务。
CDN负载均衡系统实现CDN的内容路由功能,将用户导向CDN网络中最佳的节点。
Akamai CDN的主要实现方法为DNS重定向。
用户向域名解析器发送域名解析请求,以获取内容服务器的IP地址;域名解析请求(包含了域名解析器的IP地址)被发送到该域名的域名服务器。
该域名的域名服务器通过返回一个CNAME类的DNS记录,将此域名解析请求重定向到CDN网络的域名服务器。
CDN网络的域名服务器对该域名解析请求进行智能解析,根据域名解析器的IP地址、网络的拥塞状况、各CND网络边缘节点服务器的负载情况等,将最合适的CDN网络边缘节点服务器的IP地址返回给域名解析器(域名解析器再转发给用户)。
- 首先,域名解析访问域名www.pcworld.com的域名服务器,请求解析该域名。
- 该域名的域名服务器返回一个CNAME类型的DNS记录。
- 该CNAME类型的DNS记录指示了所请求的域名名xxxx.pcworld.com的别名a1506.g.akamai.net,将域名解析请求重定向到Akamai CDN网络的域名服务器。
- 然后,域名解析器访问根Akamai域名服务器,请求解析域名a1506.g.akamai.net。
LimeLight CDN的主要实现方法为IP Anycast。
Unicast(单播)、Multicast (组播) 和Anycast:Unicast 是指单个发送方和接收方之间的通信;Multicast是指一个发送方同多个接收方之间的通信;Anycast 是两种通信方式的融合。
IP Anycast:当一个单波地址被分配到多于一个的接口上时,通过BGP的寻路原则,发送到该接口的报文将被网络路由到由路由协议度量的“最近”的目标接口上。
Anycast允许源节点向一组目标节点中的一个结点发送数据报,而这个结点由路由系统选择,对源节点透明。
同时路由系统选择“最近”的结点为源节点提供服务,从而在一定程度上为源节点提供了更好的服务也减轻了网络负担。
优点:
- 分布的服务共享相同的IP地址,同时在IP层进行透明的服务定位,用户不需要特殊配置也不用关心访问的是哪一台边缘服务器。
- 路由系统选择了“最近”的服务节点,缩短了服务响应的时间,同时减轻了网络负载。
- 相同的服务在网络上冗余分布,利用BGP的寻路原则,路由系统可以提供机制选择负载相对轻的带宽相对高的路径来转发报文。
- 减弱了网络拥塞给用户带来的影响:当Anycast的某些组成员处在拥塞的网段时,它的响应时间就较长,报文可以转发到响应较好的成员那里。
- 减弱了分布式拒绝服务攻击(DDoS)对用户带来的影响
- 当 Anycast 组中某一个成员或者几个成员受到攻击时,负责报文转发的路由器可以根据各个组成员的响应时间来决定报文应该转发到哪个成员上,这样受到攻击的成员由于没有响应,所以报文就不会被转发到那里。
- 同时,由于 Anycast 提供的服务访问透明性,组成员也相对较难受到DDoS攻击。