一种透明缓存系统及缓存方法
技术领域
本发明涉及互联网缓存领域,尤其涉及一种透明缓存系统及缓存方法。
背景技术
目前,市面上主要的互联网缓存主要为重定向缓存。重定向缓存模式:重定向缓存服务器通过分光/镜像方式接受用户发起的请求,当服务器监听到该请求符合缓存要求,服务器则发重定向报文给用户,用户收到重定向信息后会重新连接重定向缓存服务器进行资源请求,如果重定向缓存服务器上有资源则直接对用户提供下载服务,若没有则代理用户去外网下载同时也对该用户提供服务。
在现有技术中,需要占用额外的下载带宽作为回源,这样会降低传输速率,降低效率,且带宽的额外增加会增加客户的使用成本。
发明内容
本发明提供了一种透明缓存系统及缓存方法,以解决占用额外的下载带宽作为回源的技术问题,从而无需要占用额外的下载带宽作为回源,进而实现提高传输速率,提高效率,且降低使用成本。
为了解决上述技术问题,本发明实施例提供了一种透明缓存系统,包括:TCF模块、PF模块、存储模块、控制模块和物理网卡,
所述TCF模块用于分析用户访问源站的连接是否完整,所述PF模块用于分析用户连接是否为标准HTTP协议以及对HTTP的资源进行特征识别分析,所述存储模块用于实现资源的存储,所述控制模块对每个合法的连接进行跟踪,判断是否需要将资源写入硬盘或读取提供给用户,所述TCF模块的一端与所述物理网卡相连接,所述TCF模块的另一端与所述PF模块的一端相连接,所述PF模块的另一端与所述存储模块相连接,所述控制模块分别与所述TCF模块、所述PF模块、所述存储模块相连接。
作为优选方案,所述存储模块包括资源索引数据库和资源读写子模块,所述资源索引数据库用于存储资源数据,所述资源读写子模块用于读取所述资源索引数据库内的资源数据。
作为优选方案,所述PF模块包括特征识别子模块和分析子模块,所述特征识别子模块用于截取资源头部的内容进行HASH生成特征码,所述分析子模块用于进行HTTP分析。
作为优选方案,所述截取资源头部大小为100k。
作为优选方案,所述物理网卡包括两路网口。
一种透明缓存方法,包括:
网站接收用户首次发起建立TCP连接的请求,透明缓存系统TCF模块检查该TCP连接完整;
PF模块对TCP连接完整的网站HTTP进行分析,并截取资源头部的内容进行HASH,生成特征码;
控制模块使用特征码与存储模块的资源索引数据库进行比对,将该报文转发给用户并将内容复制存储到本地,或者直接从索引数据库读取资源;
PF模块对资源进行HTTP封装,且TCF模块提取会话中的网站IP地址、用户IP地址及已有的TCP会话信息,将HTTP内容封装到原TCP会话中,并模拟网站IP信息将报文返回给用户;
返回资源给用户过程中,透明缓存系统模拟用户IP地址向网站发出TCP重置报文,中断网站的连接。
作为优选方案,所述网站接收用户首次发起建立TCP连接的请求,透明缓存系统TCF模块检查该TCP连接完整,包括:
网站接收用户首次发起建立TCP连接的请求,透明缓存系统TCF模块对TCP连接进行检查;
发现连接没有建立且不完整,则将该请求直接转发出网;
用户与网站建立好TCP连接,网站接收由用户发起HTTP GET资源请求,透明缓存系统TCF模块检查该TCP连接完整。
作为优选方案,所述PF模块对TCP连接完整的网站HTTP进行分析,并截取资源头部的内容进行HASH,生成特征码,包括:
TCF模块将报文提交到PF模块进行HTTP分析,记录用户请求URL;
网站对用户响应资源,PF模块对网站返回给用户的HTTP内容进行分析;
PF模块截取资源头部的内容进行HASH,生成特征码。
作为优选方案,所述控制模块使用特征码与存储模块的资源索引数据库进行比对,将该报文转发给用户并将内容复制存储到本地,或者直接从索引数据库读取资源,包括:
控制模块使用特征码与存储模块的资源索引数据库进行比对,检查本地是否存有资源;
控制模块检查资源索引数据库内无对应资源,则将该报文转发给用户,并且将内容复制存储到本地;
若控制模块检查到索引数据库内有对应资源,则存储模块读取资源。
作为优选方案,所述截取资源头部大小为100k。
相比于现有技术,本发明实施例具有如下有益效果:
1、本发明无需要占用额外的下载带宽作为回源,提高传输速率,提高效率,且降低使用成本。
2、基于资源特征的识别技术,可以有效识别防盗链内容。
3、可以及时响应快冷快热内容。
4、可以识别不同网站上的相同资源,提高本地存储空间使用率,提高重复利用效果。
附图说明
图1:为本发明实施例中的透明缓存系统的结构示意图;
图2:为本发明实施例中的透明缓存方法的具体步骤流程图;
图3:为本发明实施例中的透明缓存方法的步骤S1的具体流程图;
图4:为本发明实施例中的透明缓存方法的步骤S2的具体流程图;
图5:为本发明实施例中的透明缓存方法的步骤S3的具体流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,本发明优选实施例提供了一种透明缓存系统,包括:TCF模块、PF模块、存储模块、控制模块和物理网卡,
所述TCF模块用于分析用户访问源站的连接是否完整,所述PF模块用于分析用户连接是否为标准HTTP协议以及对HTTP的资源进行特征识别分析,所述存储模块用于实现资源的存储,所述控制模块对每个合法的连接进行跟踪,判断是否需要将资源写入硬盘或读取提供给用户,所述TCF模块的一端与所述物理网卡相连接,所述TCF模块的另一端与所述PF模块的一端相连接,所述PF模块的另一端与所述存储模块相连接,所述控制模块分别与所述TCF模块、所述PF模块、所述存储模块相连接。
在本实施例中,所述存储模块包括资源索引数据库和资源读写子模块,所述资源索引数据库用于存储资源数据,所述资源读写子模块用于读取所述资源索引数据库内的资源数据。
在本实施例中,所述PF模块包括特征识别子模块和分析子模块,所述特征识别子模块用于截取资源头部的内容进行HASH生成特征码,所述分析子模块用于进行HTTP分析。
在本实施例中,所述截取资源头部大小为100k。
在本实施例中,所述物理网卡包括两路网口。
参照图2,本发明实施例还提供了一种透明缓存方法,包括:
S1,网站接收用户首次发起建立TCP连接的请求,透明缓存系统TCF模块检查该TCP连接完整;
S2,PF模块对TCP连接完整的网站HTTP进行分析,并截取资源头部的内容进行HASH,生成特征码;
S3,控制模块使用特征码与存储模块的资源索引数据库进行比对,将该报文转发给用户并将内容复制存储到本地,或者直接从索引数据库读取资源;
S4,PF模块对资源进行HTTP封装,且TCF模块提取会话中的网站IP地址、用户IP地址及已有的TCP会话信息,将HTTP内容封装到原TCP会话中,并模拟网站IP信息将报文返回给用户;
S5,返回资源给用户过程中,透明缓存系统模拟用户IP地址向网站发出TCP重置报文,中断网站的连接。
参照图3,在本实施例中,所述步骤S1网站接收用户首次发起建立TCP连接的请求,透明缓存系统TCF模块检查该TCP连接完整,包括:
S11,网站接收用户首次发起建立TCP连接的请求,透明缓存系统TCF模块对TCP连接进行检查;
S12,发现连接没有建立且不完整,则将该请求直接转发出网;
S13,用户与网站建立好TCP连接,网站接收由用户发起HTTP GET资源请求,透明缓存系统TCF模块检查该TCP连接完整。
参照图4,在本实施例中,所述步骤S2PF模块对TCP连接完整的网站HTTP进行分析,并截取资源头部的内容进行HASH,生成特征码,包括:
S21,TCF模块将报文提交到PF模块进行HTTP分析,记录用户请求URL;
S22,网站对用户响应资源,PF模块对网站返回给用户的HTTP内容进行分析;
S23,PF模块截取资源头部的内容进行HASH,生成特征码。
参照图5,在本实施例中,所述步骤S3控制模块使用特征码与存储模块的资源索引数据库进行比对,将该报文转发给用户并将内容复制存储到本地,或者直接从索引数据库读取资源,包括:
S31,控制模块使用特征码与存储模块的资源索引数据库进行比对,检查本地是否存有资源;
S32,控制模块检查资源索引数据库内无对应资源,则将该报文转发给用户,并且将内容复制存储到本地;
S33,若控制模块检查到索引数据库内有对应资源,则存储模块读取资源。
在本实施例中,所述截取资源头部大小为100k。
下面结合实施例,对本发明实施例进行详细说明。
参照图1,透明缓存系统主要分为四个模块:
1)TCF(TCP Connection Filter)模块:主要分析用户访问源站的连接是否完整。
2)PF(ProtocolFilter)模块:主要分析用户连接是否为标准HTTP协议,及对HTTP的资源进行特征识别分析。
3)存储模块:主要实现资源的存储。
4)控制模块:对每个合法的连接进行跟踪,判断是否需要将资源写入硬盘或读取提供给用户等。
部署时候,透明缓存系统逻辑上串接用户与网站之间。
透明缓存系统工作过程:
1)用户首次向网站发起建立TCP连接请求,透明缓存系统TCF模块对TCP连接进行检查,发现连接没有建立且不完整,则将该请求直接转发出网。
2)用户与网站建立好TCP连接,用户向网站发起HTTP GET资源请求,透明缓存TCF模块检查该TCP连接完整,继续将报文提交到PF模块进行HTTP分析,记录用户请求URL。
3)网站对用户响应资源,PF模块对网站返回给用户的HTTP内容进行分析,截取资源头部100K大小的内容进行HASH,生成特征码,控制模块使用特征码与存储模块的资源索引数据库进行比对,检查本地是否存有资源。
4)控制模块检查资源索引数据库内无对应资源,则将该报文转发给用户,并且将内容复制存储到本地。
5)若控制模块检查到索引数据库内有对应资源,则读取资源,PF模块对资源进行HTTP封装,TCF模块提取会话中的网站IP地址、用户IP地址及已有的TCP会话信息,将HTTP内容封装到原TCP会话中,模拟网站IP信息将报文返回给用户。返回资源给用户过程中,透明缓存系统模拟用户IP地址向网站发出TCP重置报文,中断网站的连接。在用户角度观察,TCP连接没有中断,无法感知透明缓存系统工作生效。
本发明通过TCF模块和PF模块相结合,解决占用额外的下载带宽作为回源的技术问题,从而无需要占用额外的下载带宽作为回源,进而实现提高传输速率,提高效率,且降低使用成本。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。