深度包检测技术(Deep Packet Inspection,DPI)是一种基于应用层的网络安全、数据分析、流量管理技术,它通过在网络的各个位置部署相应设备,可以对经过的 IP 数据包进行分析和重建,从而改变原有的流量模型。传统的路由器、交换机、防火墙等网络设备通常只检查数据包的头文件和元数据,而DPI设备能够对数据包内容进行深度分析,进行精确定位与控制,更多相关知识:
http://www.zhengdaole.com/。
由于HTTP协议的透明性,通过HTTP协议传输的数据包可以被DPI设备完全解析, GET、POST、HEAD等方法中携带的URL、属性、时间戳等字段均可被提取并改变重组。因此将DPI技术应用到
CDN服务N中,可以改变用户访问请求数据包中的URL、主机地址等信息,将源网站的访问请求重定向到CDN,而用户并未感觉到任何变化,从而实现
CDN服务的透明缓存功能。
目前越来越多的网络运营商和服务提供商使用DPI技术来检测和分析网络数据,并通过一套有效的策略机制对网络流量进行分流,尽量减少网络拥挤和优化网络流量。随着互联网服务日趋复杂化和多元化,DPI技术将得到更广泛的推广和应用。
前文介绍了HTTP协议和DPI技术,本节以Http Progressive Download传输方式的视频内容为例,说明CDN透明缓存的实现方案,Http Progressive Download技术在前面章节中已有详细介绍,本节不再复述。
以下是一个典型的渐进式下载视频访问实例,通过IE的“开发人员工具”选项可进行实时分析。
(1)用户首次访问视频网站某个节目内容 http://www.cdnmovie.com/ F3F7D544BE.flv,请求本地DNS解析域名。
(2)DNS完成解析,返回网站IP地址123.1.2.3。
(3)用户使用http://123.1.2.3/F3F7D544BE.flv进行访问。
(4)部署在互联网出口的 DPI 设备监听到了该 HTTP 协议,经过分析后得知这是一个视频文件请求,DPI设备将文件名“F3F7D544BE.flv”、文件大小、文件类型等信息发送给CDN,如果开展CDN业务,需要了解CDN缓存技术。
(5)CDN 在缓存中搜索是否存在该视频内容,由于用户首次访问,CDN 并未缓存该内容。
(6)CDN将“未缓存”结果返回给DPI设备。
(7)DPI设备通知用户继续访问源网站。
(8)用户直接连接到源网站,请求服务。
(9)源网站为用户提供服务。
(10)CDN也向网站请求该视频内容。
(11)CDN将获取到的视频内容缓存到本地。
(12)当有其他用户再次访问该内容,重复(1)、(2)、(3)、(4)、(5)步,由于CDN已透明缓存该内容,在第(6)步返回给DPI设备的结果是“已缓存”,因此第(7)步会将原始地址http://123.1.2.3/F3F7D544BE.flv替换为http://61.45.8.9/F3F7D544BE.flv。
(13)用户通过该地址访问CDN中缓存的视频内容。
(注:以上步骤省略了CDN服务内部负载均衡和调度过程)
由于互联网上存在海量的视频内容,有些内容很热门,用户访问量很高,有些内容较为冷门,无人问津,而且当前热门的内容过一段时间也可能变为冷门内容,再加上CDN服务自身的存储和调度能力有限,只能缓存部分热门内容,无法对互联网大部分的视频内容进行缓存。在此情况下,CDN服务应加入热点机制,在监听过程中对用户访问习惯进行统计分析,优化自身的存储和调度策略,及时将热门内容进行缓存,并删除过期和冷门内容,从而提高CDN透明缓存的效率。