李相前 胥俊丞
【摘要】 Cache技术在互联网上的积极应用,能有效丰富本地的热点内容,提升用户的体验,节省网络带宽,带来可观效益。本文分析了各种重定向方式的特点及应用场景,着重对Web Cache和P2P Cache的一体化部署方式进行探讨。
【关键词】 Web Cache P2P Cache 重定向 综合
一、前言
Cache,缓存,作为一种速度匹配技术,是一项优秀的传统技术,在PC系统中,它部署在高速CPU和低速DRAM内存之间,有效的解决了高速CPU和低速DRAM内存间速度匹配的问题,提高了PC整体系统性能和性价比。在较慢的外围设备和内存的数据交换中,比如显示系统、磁盘系统中,也必不可少的需要使用Cache技术。推而广之,凡是在传输速度有较大差异的两者之间,都可以考虑利用Cache的速度匹配技术。
在互联网时代、尤其是移动互联网时代,用户的高速访问需求与内容缓慢的差异越来越大,矛盾也越来越明显。对运营商来说,可以采用多种手段来缓解矛盾,比如网络的增容、IDC SP/CP的引入、CDN(Content DistributionNetwork)的搭建,以及Cache的部署。网络增容和IDC SP/CP引入是解决用户高速访问需求的根本之道,CDN和Cache是在现有的内容、网络基础上做的改善,CDN内容分发需要与内容源SP/CP协商部署,而Cache具有封闭性,部署快、投资小、见效快,更具时效性。本文着重探讨下电信运营商综合互联网缓存平台的部署。
二、互联网Cache的基本原理
用户的上网体验是用户和运营商共同关注的重点,互联网Cache系统就是解决用户上网体验差的手段之一,其搭建在电信运营商本地的IP承载网上,作为互联网与电信运营商网络间的缓冲带,有效吸纳互联网通道上的热点流量,减少电信运营商网间和网内的流量压力,加快网络访问速度,提高用户互联网体验,降低对互联互通链路的依赖。其本质是一次外网访问,多次内网服务;本地命中,加快响应。
三、互联网Cache的分类
依据Cache的内容,互联网Cache可分为Web Cache和P2P Cache,两则侧重点不同,如表1所示。
电信运营商可以根据用户需求和业务情况,选择性的部署Web Cache和P2P Cache,比如在全国层面部署Web Cache,在省内部署P2P Cache,两者联动提供服务。对某些省,Web Cache和P2P Cache都有需要,有必要探索一套一体化的缓存方案,采用统一的部署方式,同时实现Web Cache和P2P Cache。
四、综合互联网Cache部署探讨
4.1互联网Cache部署原则
互联网Cache系统的承载于IP承载网络之上,须遵循透明和可维护等基本部署原则。透明原则要求系统部署不需要现网做改动,系统的工作与故障均不影响现有网络和业务,对用户提供无感知服务。可维护原则要求配置简单、操作简便、系统可维护可管理。
4.2互联网Cache系统构成
按照模块化的设计思路,互联网Cache系统可划分为重定向子系统(RSS)、调度子系统(DSS)、缓存子系统(CSS)、管理子系统(MSS)等部分,现简单描述各个模块的功能及相互关联。
重定向子系统(RSS),将内网用户发送到外网的请求进行深度的分析,重定向到内网调度子系统(DSS),达到阻碍内网用户访问外网的目的,包括流量采集分析模块、重定向模块。其中,流量采集分析模块,采集互联网出口的流量,进行深度包解析(DPI),从中解析出用户请求(HTTP、P2P、FLV等),为重定向提供数据支持;流量采集分析模块必须支持基于L3/L4信息、基于L7应用层特征、基于会话特征等方式的协议识别能力,支持的主流的数据协议类型,并能扩展新的数据协议。重定向模块,主要进行用户请求的重定向处理,引导用户优先获得本地流量,从源头控制外部流量。
调度子系统(DSS),是整个Cache系统的调度控制中心,通常会运用负载均衡、缓存记录搜索、热点内容管理调度等技术,对部署的多台缓存子系统(CSS)设备进行有效的负载管理,引导用户和已经存在缓存设备中的缓存数据进行数据交互,增加缓存设备的命中率。
缓存子系统(CSS),是整个系统的资源仓库,运用自动缓存技术,构建自动缓存模块,实现数据的高效存储、查询等。调度子系统(DSS)将用户需要的资源请求送到缓存子系统,用户在下载时可优先从缓存子系统里面获取想要的资源,而不用连接到外部网络。
根据资源的特性,可分为WEB缓存子系统和P2P缓存子系统。其中WEB缓存子系统主要自动缓存热点网站资源、下载重复度较高的HTTP下载资源、以及HTTP类在线视频热点资源;P2P缓存子系统根据用户需求自动缓存P2P文件共享类和视频播放类资源。
管理子系统(MSS),实现网络、系统、业务的管理功能,用以提供Cache系统各功能实体的性能监测和参数配置等功能。
4.3重定向技术的选择
重定向子系统是整个互联网Cache系统的关键,而重定向子系统设计的重点在于重定向技术的选择,重定向技术决定了业务疏导流程和设备部署方式。
重定向技术作用是完成用户请求路径的转折,通过深度解析用户请求,将用户请求引到Cache系统,由本地的Cache系统向用户提供服务。常用的重定向技术有DNS重定向、HTTP重定向、HTTP策略路由、DNS策略路由、P2P重路由等。
DNS重定向方式基本原理:在出口链路上进行旁路分光,重定向子系统DPI模块做DNS报文解析,并将解析出的DNS(53端口)请求报文复制给负载均衡设备。负载均衡设备对请求的域名进行判断,如果是预先设定好的热点网站的DNS请求,就把请求的网站域名地址解析为Cache系统的IP地址,并回复给用户。如果用户访问非设定好的热点网站,将通过正常DNS流程返回源服务器的IP地址。外网DNS服务器也会回复DNS解析结果给用户或Local DNS服务器,Local DNS服务器以先收到的DNS 请求的IP地址解析为准。
HTTP重定向方式基本原理:在出口链路上进行旁路分光,重定向子系统对出口流量进行深度分析和识别,分析出用户的HTTP(端口80/8080)请求流量,当检索到Cache系统里已经存在用户所需的数据资源时,发送HTTP302重定向报文给用户,以拦截用户访问外网的请求,并将其重定向到Cache系统,由Cache系统将本地资源响应给用户;若Cache系统内无用户所需资源并且未达到热度阈值,则不对用户请求进行任何操作,用户按照原来的路径向外网获取资源;若Cache系统内无用户所需资源但达到热度阈值,则向用户发送HTTP302重定向报文,由Cache系统服务器代理用户取得资源并同时提供给用户。
HTTP策略重路由方式基本原理: Cache系统旁挂在出口路由器上,在路由器上配置策略路由,通过路由器ACL列表区分Web业务80/8080等端口,将用户上行的80/8080端口的HTTP流量全部导入到Cache系统,由Cache系统根据设定的规则实现资源的入站和出站。
P2P重路由方式基本原理:P2P Cache的重定向是针对 P2P用户的Get_Peer请求,伪造Response包,将Cache IP返回给用户。通过深度数据包识别(DPI)对出口流量进行深度分析和识别,将内网Peer向外网Tracker发起的种子文件请求报文进行拦截,缓存子系统对请求报文进行分析,若符合重定向条件,则伪造外网Tracker返回一个包含缓存子系统Cache服务器的Peer List,内网Cache系统类似一个超级Peer节点,实现用户重定向到内网,主要有缓存系统满足用户的请求。
对基于域名的网站访问,DNS重定向监听基于53号端口的DNS请求报文,结合预先设置的白名单,能有效实现对热点网站和本地特定网站的缓存和下载,但对基于IP地址的访问,DNS重定向方式无能为力。
HTTP重定向和HTTP策略路由都是对基于80/8080端口的HTTP报文进行处理,HTTP重定向是采用出口链路旁路分光,利用DPI自动进行处理,HTTP策略路由需要在IP城域网核心路由进行手工配置策略路由,需占用IP城域网核心路由器资源,我们认为IP城域网核心路由器的资源是比较宝贵的,而且在核心路由器上手工操作增加了误操作风险,不符合透明部署原则。
P2P重定向主要是针对P2P技术的特殊性,P2P协议多种多样,独立于DNS系统,没有统一的标准,通常不采用固定的和相同的通信端口号,并且更新较快,但各种P2P应用的报文在传输层协议上存在一定的特征,如BT报文中存在“BitTorrent protocol”字段,KaZaa使用的FastTrack协议在报文中存在“GET.\hash”字段,eDonkev报文中存在“E30C5”字段等,P2P重定向利用DPI识别出P2P报文,对P2P请求报文进行重定向。
综合评估,建议选取DNS重定向+HTTP重定向+P2P重路由,统一采用旁路分光方式部署于出口链路,三者相互补充,共同实现综合的、一体化的互联网内容缓存,部署示意如图1。
4.4系统业务流程
综合互联网缓存平台对出口链路流量进行深度分析,识别出用户访问外网的DNS请求、HTTP请求以及P2P下载请求,并分别做相应的处理。
4.4.1 WEB缓存工作流程
对于访问特定网站的DNS请求,采用DNS重定向方式,具体业务工作流程如下:
1)用户发起DNS查询请求,重定向子系统中流量分析模块通过流量深度分析识别出用户的DNS查询请求,并将请求送至DNS重定向模块;
2)若请求的目标URL为WebCache系统缓存的特定网站资源,重定向子系统将WebCache系统的IP地址通过DNS响应消息回送给用户;否则,Cache系统不做处理,由源网站响应用户请求;
3)用户直接向WebCache系统发起HTTP请求;
4)WebCache系统的负载均衡设备接收到用户请求,并将请求分发到某台WebCache服务器;
5)如果该WebCache服务器存储有用户请求的内容,则由WebCache系统直接向用户回复相关请求内容;
6)如果该WebCache服务器没有保存用户请求内容,则由WebCache系统代理用户向源网站请求内容,请求被路由至负载均衡设备;
7)负载均衡设备将用户请求转发至源网站;
8)源网站返回用户请求的内容,报文路由至负载均衡设备;
9)负载均衡设备将Web内容转发给WebCache服务器;
10)WebCache服务器在本地存储一份内容副本,并将数据发送给用户
对于HTTP类的大文件下载和流媒体资源访问请求,采用HTTP重定向方式,具体业务工作流程如下:
1)重定向子系统流量分析模块识别出用户的HTTP请求(DNS重定向后,Cache系统代理的HTTP请求除外),并将请求送至HTTP重定向模块;
2)HTTP重定向解析用户HTTP请求,并将用户请求发送至调度子系统,由调度子系统匹配查询本地Cache系统资源情况;
3)对于本地Cache系统没有缓存相应资源,并且未达到缓存资源热度,则不做重定向处理,直接放行,由源网站提供资源;
4)对于本地Cache系统没有缓存相应资源,并且已达到缓存资源热度,则调度子系统根据Cache服务器使用情况指定Cache服务器;
5)重定向子系统向用户发HTTP302重定向,定向到本地Cache服务器;
6)Cache服务器代理用户向源站请求内容;
7)源站将内容返回到Cache服务器;
8)Cache服务器将内容缓存到本地,并向用户提供资源;
9)对于本地Cache系统缓存有相应资源,调度子系统返回存有相应资源的Cache服务器;
10)重定向子系统向用户发HTTP302重定向,定向到本地Cache服务器;
11)本地Cache服务器提供资源服务。
4.4.2 P2P缓存工作流程
P2P类下载和访问的请求,采用P2P重路由,具体业务流程如下:
1)重定向子系统流量分析模块识别出用户的P2P请求,并将请求送至P2P重定向模块;
2)P2P重定向模块解析用户请求,并将用户请求发送至调度子系统,由调度子系统匹配查询本地Cache系统资源情况;
3)对于本地Cache系统没有缓存相应资源,并且未达到缓存资源热度,则不做重定向处理,直接放行,由Internet提供资源;
4)对于本地Cache系统没有缓存相应资源,并且已达到缓存资源热度,则调度子系统根据Cache服务器使用情况指定Cache服务器;
5)重定向子系统向用户发重定向报文,定向到本地Cache服务器;
6)Cache服务器代理用户向Internet tracker服务器请求内容;
7)Internet tracker返回给cache服务器Peer List,Cache服务器发起下载请求,并下载相应资源;
8)重定向子系统对Peer List进行处理,将Cache服务器的IP地址和内网用户的IP地址加入Peer List,并返回给用户;
9)用户发起下载请求,由本地Cache服务器和内网用户提供下载服务;
10)对于本地Cache系统已缓存相应资源,重定向子系统向用户发重定向报文,并将Peer List(Cache服务器的IP地址和内网用户的IP地址)返回给用户;
11)用户发起下载请求,由本地Cache服务器和内网用户提供下载服务。
4.5系统评估探讨
综合互联网缓存平台的实际运营效果,可根据流量流向的特性进行评估,流入流量主要是资源进站,流出流量是为本地用户提供资源。
我们取两个指标,便可直观的评估系统的运营效果:节省流量=流出流量-流入流量;增益比=节省流量/流入流量。本系统2011年在某移动省份运营商部署以来,增益比维持在8左右,效果良好。
五、结束语
本文探讨的统一互联网缓存平台,采用统一的部署方式,实现全业务的缓存,部署简单,见效快,适用于各大中小城域网内部署。
统一互联网缓存平台,采用软件的方式,统一调度疏导互联网资源访问,其暗在的思想与目前主流的SDN/NFV(软件定义网络/网络功能虚拟化)思想不谋而合,在未来网络演进中必将继续延续其生命力。