3 CDN分类
如何进行CDN详细的分类,可以参考四个因素进行:CDN的组成、内容分布和管理、路由重定向和性能检测。
3.1 CDN的组成
CDN结构组成很相近。在CDN结构中,基本包含了:一系列代理服务器:组成内容交付组件,其他机制:代理服务器与其结合将请求重定向到某个代理服务器,在CDN之间的交互协议。
按CDN组成进行分类的参考特性有:CDN的组织(覆盖网形式overlay/网络形式network)、服务器(源服务器/副本服务器)、关系(客户-代理服务器-源服务器/缓存代理/内部代理(缓存代理阵列/缓存代理拓扑))、内部协议(内部网络组件交互/缓存交互)、内容/服务种类(静态内容、流媒体、服务类)
3.1.1 CDN的组织
有两种构建CDN覆盖网的方式:覆盖网形式和网络式。[16]所谓的覆盖网形式,指的是在分散的网络地点中部署专门服务于特定应用的服务器和缓存,用来处理特定种类内容的分发;其中核心网络组件在内容分发中不占据主要地位。很多商用的CDN都采用这种方式。CDN提供者将内容副本发送到分散的缓存服务器,最终用户发送请求时,这些请求会被重定向到最近的CDN服务器,从而来提升web站点的响应速度。CDN提供者不会控制底层网络设施,管理简单。网络式的构造,指的是网络组件包括路由和交换机都会执行相应的代码来识别特定的应用类型,其对请求的转发基于实现定义好的规则。这种情况下,网络组件(像路由器)在服务器之前,将内容请求转发到最近的特定应用代理服务器。
3.1.2 服务器
CDN中的两类服务器是源服务器和副本服务器或者说是代理服务器。保存完整资源的地方—源服务器,其内容是有内容提供者更新的。保存资源副本的是副本服务器,在响应用户请求的时候需要进行授权。源服务器和分布式的副本服务器进行通信,从而更新其上的副本。
3.1.3 关系
CDN组件之间的关系,副本和缓存环境的关系。关系中包含的组件有:客户、代理服务器、源服务器、代理缓存和其他。这些组件进行通信,从而在CDN中复制和缓存内容。副本建立意味着在不同计算机系统中建立和维护内容的副本。包含从源服务器中将内容推送到副本服务器中。[14]另一方面,缓存意味着通过缓存来减少响应时间、减少未来网络的带宽消耗。
在CDN中,最简单的关系就是客户端、代理服务器和源服务器之间的关系。一个客户端会向代理服务器发送请求,如果代理服务器不可用,客户端会直接和源服务器通信。用户和代理服务器之间的通信是透明的,在用户看来是和源服务器通信。
之前我们讨论过,CDN可以以网络式来组建,就是说将其逻辑部署在网络组件中(例如路由和交换机),这些网络组件会将用户请求转发到服务器或代理。其中关系牵涉到客户端、网络组件和缓存服务器/代理。其中的缓存代理之间可能会通信,一个代理缓存是在应用层缓存网络对象。代理缓存中的缓存可以被多个用户同时分享。CDN中的代理缓存和ISP控制的缓存都只是缓存内容提供者的一部分内容,其余的部分还是来自于站点。
基于内部通信机制的缓存代理[17],缓存代理服务器的组织方式为阵列结构和网状结构。阵列结构比较紧凑,一个授权的代理作为管理节点,负责和其他缓存代理节点通信。网状结构是松散结构,缓存代理节点之间是一对一的关系。缓存节点组成的网状结构中,缓存服务器作为出口,将用户的请求转发到网状中的代理节点