专利名称:一种局域网环境下的缓存加速方法
—种局域网环境下的缓存加速方法技术领域
本发明属于网络通信技术领域,具体涉及一种局域网环境下的缓存加速方法。
背景技术:
Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,但是用户数量和相应的带宽需求也在不断增加,受带宽和传输距离等因数的影响,响应速度慢的问题还是经常受到抱怨和困扰。
现有技术提升局域网网络服务质量的方法,主要通过以下三个方面着手
(I)增加带宽;一般只需要交钱提升带宽就可以完成。但是不管增加多少带宽,有些客户需求可以轻易占用,比如一部高清电影可能占用几十GB,不管多少带宽都占用跑满。
(2)限制用户带宽;需要网管对路由器有一些了解就可以配置,在路由器上设置客户机所能占用的上下限带宽。此方法相对简单却粗暴,假设一家网吧设置客户机上下限为20 200K,一方面很多应用可能因为20K下限导致网络卡,另一方面当网络带宽闲置时用户不能享受更多带宽。一般的,网吧会结合增加带宽的方法,并不断调整上下限来寻找最合适的网民用户体验,但相对于大量的互联网应用,以及不断推陈出新的更多应用,网吧只能保证每台客户机都至少有下限所设带宽可以使用,却无法保证任何用户体验。
(3)限制应用带宽;针对占用大量带宽的网络应用程序,可以通过限制应用带宽来改善整个网络的服务质量。目前路由器提供的方法主要是通过端口、协议等识别。此方法要求网管必须了解需要限制应用的端口或协议等等,而需要限制的应用不一定使用固定端口,路由器也很难识别各种应用的特定协议,另外网络应用程序的服务商还可能千方百计突破网络限制,特别是P2P与下载类软件应用。
然而在网吧这类局域网计算机网络环境下,大量的资源被重复性下载,以优酷在线视频为例,在网吧里一热门视频同一天被观看至少5次以上,最高访问量达到100多次, 以默认的高清电影为例,一部电影的数据量在IG左右,100次就是100G,平均到8小时上网高峰期的话,就是 100*1024*1024/8/60*60 = 3640. 2KB/s。
这些Web大文件数据被重复下载,严重影响网络数据链路性能;在大负载甚至是满负载的情况下,数据包从起点到终点的传输过程中会发生许多事情,并产生如下结果
丢失数据包;当数据包到达一个缓冲区已满的路由器时,则代表此次的发送失败, 路由器会依网络的状况决定要丢弃一部份、不丢弃或者是丢弃所有的数据包,而且这不可能在预先就知道,接收端的应用程式在这时必须请求重新传送,而这同时可能造成总体传输严重的延迟。
延迟;或许需要很长时间才能将数据包传送到终点,因为它会被漫长的队列迟滞, 或需要运用间接路由以避免阻塞;也许能找到快速、直接的路由。总之,延迟非常难以预料。
传输顺序出错;当一群相关的数据包被路由经过因特网时,不同的数据包可能选择不同的路由器,这会导致每个数据包有不同的延迟时间;最后数据包到达目的地的顺序会和数据包从发送端发送出去的顺序不一致,这个问题必须要有特殊额外的协议负责重新整理失序的数据包。发明内容
针对现有技术所存在的上述技术缺陷,本发明提供了一种局域网环境下的缓存加速方法,能够大幅度降低局域网使用带宽,提升局域网整体服务质量。
一种局域网环境下的缓存加速方法,包括如下步骤
(I)当局域网内客户机访问任一网络页面时,获取该页面所有链接的资源路径;
(2)对所述的资源路径进行格式匹配判断若匹配,则执行步骤⑶;若否,则客户机直接连接该路径下载对应的网络文件;
(3)客户机通过http代理协议将资源路径发送给局域网内的服务器;
(4)服务器判断资源路径对应的网络文件在本地是否有存储若有,则从本地提取该文件传送给客户机;若否,则通过连接资源路径下载对应的网络文件同步传送给客户机,并将该文件存储于本地硬盘内。
优选地,所述的步骤(2)中,通过预设flv、mp3、mp4、zip、rar、exe、hlv、swf、f4v 等作为匹配格式,对资源路径进行格式匹配判断;使得本发明方法能够对视频、安装程序、 压缩包等大容量文件进行缓存加速。
所述的步骤(2)中,利用正则表达式或通配符对资源路径进行格式匹配判断。
所述的步骤(4)中,服务器判断资源路径对应的网络文件在本地是否有存储的方法如下
a.根据资源路径查询本地索引列表,若列表中具有该路径对应的信息,则表明对应的网络文件在本地有存储;若否,执行步骤b ;
b.通过连接资源路径获取其对应网络文件的头部数据;根据所述的头部数据通过MD5 (消息摘要算法第五版)算法求取网络文件的MD5校验码;
c.根据该MD5校验码查询本地索引列表,若列表中具有该MD5校验码对应的信息, 则表明对应的网络文件在本地有存储;若否,则表明对应的网络文件未在本地存储。
网络文件通常包含了三个部分文件头、索引块和数据块。文件头包含一个魔数 (MAGIC)和文件大小等信息;索引块就是数据块的索引,其包含具体数据块的大小,位置及其他一些类型特性;数据块就是文件主要内容。
所述的头部数据即包括网络文件的文件头和索引块。
所述的索引列表包含服务器本地存储有的所有网络文件的MD5校验码、资源路径和本地存储地址等信息。
所述的步骤(4)中,若网络文件在本地有存储,服务器则根据该网络文件对应的资源路径或MD5校验码在本地索引列表中查找出其所对应的本地存储地址,通过本地存储地址提取该网络文件传送给客户机。
优选地,所述的步骤(4)中,当服务器本地已存储的网络文件总容量超过预设值时,服务器清除其中部分网络文件;能够避免服务器本地硬盘满容量,保证本发明缓存加速技术持续运行。
优选地,服务器根据LRU算法(Least Recently Used,最近最少使用算法)清除其中部分网络文件;删除一些冷门的文件,能够为最新最热门的网络文件让出存储空间。
本发明通过将一些网络大容量文件缓存至服务器本地,能够为局域网(网吧)节省大量的带宽,降低局域网对带宽的需求,从而节省资金;同时本发明能够提升局域网内网民的用户体验,保障一些实时性需求较高的网络应用程序(网络游戏)的服务质量,使得局域网维护简单,降低流控软件的复杂度。
图1为网吧局域网络的结构示意图。
图2本发明资源路径获取及匹配的流程示意图。
图3本发明资源识别的流程示意图。
图4服务器本地硬盘 清理的流程示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式
对本发明的技术方案进行详细说明。
本实施方式以某一网吧的局域网络为例,如图1所示,该局域网中包括有多台客户机(BarClient)、服务器(BarServer)以及路由器等。
服务器通过运营商获取资源配置参数列表,并将列表分发给网吧内的各台客户机。资源配置参数列表是运营商根据用户对各种网络资源访问热门度和具体的带宽占用程度高低来制定的;在网吧环境中,看电影、听音乐、下载资源被认为是静态数据下载并且对带宽需求非常高的需求;如flv、mp3、mp4、zip、rar、exe、hlv、swf、f4v等格式一般均预设作为资源配置参数列表中的匹配格式。
配置参数采用josn形式表示,以mp4格式匹配示例如下
{"children": [ {
"match": "http://*/yoiiku/*.mp4*",”preload—count": "64000"},{"match": "http://*/ videoname=*&client=flash&pars=*""preload count": "0"
其中,match字段作为匹配规则,preload_count的数字作为文件内容识别的预读取字节数,preload_count的设置主要根据如下
文件都是一些连续(当然实际存储在磁盘上的时候不一定是连续的)的数据组织起来的,不同类型的文件肯定组织形式也各不相同;大部分文件中除了存在那些文件的主体内容(比如exe文件中的代码,数据等,mp4文件中的音视频内容等)之外还存在其他一些重要的信息(比如mp4的moov box)。这些重要信息我们称之为格式数据,然后我们根据具体网站和具体文件类型,确定出一个具体数字(即preload_count);如果只有主体内容没有格式数据的文件,我们设置其preloacLcount为O。
我们利用文件头部数据来保障文件唯一性;以mp4文件为例,一个简化的mp4文件包括ftyp box、moov box及存放具体视频数据的mdat box,每一个box都有一个指明整个 box大小的数字;视频文件的宽高、时长、码率、编码格式、帧列表、关键帧列表,以及所对应的时戳和在文件中的位置,这些信息是以特定的算法分开存放在moov box下属stbl box 下属的几个box中的,这样我们通过moov box(64K大小左右)就能确定是否同一个文件。
本实施方式如下
当局域网内客户机访问任一网络页面时,获取该页面所有链接的资源路径URL,如图2所示;
捕获具体URL请求,这里分为两类,一类是我们提供的客户端,可直接在网络访问代码块获取URL ;—类是第三方使用wininet下载资源的客户端,我们采用Hook Internetopen、InternetConnect、HttpOpenRequest 等函数的方式获取 URL。以优酷视频首页头条的咨询视频为例,捕获数据如下
http://strip, taobaocdn. com/tfscom/Tlv6YYXdXiXXXqupbX. js
http://v. youku. com/p I ay er/ge t Re I at e dP I ayL i s t VideoID = XNDcONTk3MDc2&Fid = 18590008&Pt = 12&0b = l&apptype = l&page = 4&md = 2
http : //img04. taobaocdn. com/imgextra/i4/10000023447288 144/ T2rzeIXaFbXXXXXXXX_ !! 0-0-ne·wland. jpg_100xl00. jpg
http://g2. ykimg. com/0100641F464DF788B2EF2604411C206D4E57AD-92E5-66B2-411B-79FD91CF8F61
http ://114. 80. 180. ll/youku/65727DEC90A42815F2B87969D8/030002010050A13 30AA5EE06184FB7548AA70F-BDE9-45CE-9E3B-91CC73EF2216. mp4
..............................
共531条URL被获取,本实施方式根据资源配置参数列表对每一个URL进行通配符方式匹配后,确定以下I条URL符合我们的匹配规则。
http ://114.80. 180. ll/youku/65727DEC90A42815F2B87969D8/030002010050A13 30AA5EE06184FB7548AA70F-BDE9-45CE-9E3B-91CC73EF2216. mp4
对于其他未匹配的URL,客户机直接连接该URL下载对应的网络文件;
对于preload_count为O的非格式文件,客户机直接通过连接URL下载对应的文件;
对于匹配的这条URL,客户机通过http代理协议将该条URL (增加代理标志)发送给服务器;服务器启动一个http代理服务,地址127. 0. 0. 1,端口 3210,代理服务建立一个索引列表如下
Md5—value (MD5i验码)URLLocal—path (本地存储地址)
如图3所示,服务器得到URL后,首先根据URL查询索引列表,若列表中具有该URL 对应的信息,则表明该URL对应的mp4文件在本地有存储;若否,则服务器通过连接URL获取该mp4文件的moov box ;根据moov box通过MD5算法求取文件的MD5校验码;然后根据该MD5校验码查询本地索引列表,若列表中具有该MD5校验码对应的信息,则表明该mp4文件在本地有存储;若否,则表明该mp4文件未在本地存储。
若该mp4文件在本地有存储,服务器则根据该文件的MD5校验码在索引列表中查找出其所对应的本地存储地址,通过本地存储地址提取该文件传送给客户机;
若该mp4文件未在本地存储,则服务器直接通过连接URL下载该文件同步传送给客户机,并将该文件存储于本地硬盘内,同时将该文件对应的MD5校验码、URL和存储地址写入本地索引列表。
服务器在本地缓存文件达到或接近达到物理磁盘容量或者预设配置最大容量时, 使用LRU算法作为置换策略清除其中部分网络文件,如图4所示;LRU是操作系统内存管理的一种算法,它的提出是基于这样一个事实在前面几条指令中使用频繁的页面很可能在后面的几条指令中频繁使用。反过来说,已经很久没有使用的页面很可能在未来较长的一段时间内不会被用到。在这里我们也使用这个算法来作为我们的文件置换算法,它作为流行的选择,即容易执行,又能提供非常好的性能。
在本实施方式中,客户机在局域网中主要有以下职责
(I)从获取配置与策略;
(2)捕获具体URL请求,并根据策略决定URL走向。
服务器在局域网中主要有以下职责
(I)从业务查询平台获取配置与策略,并转发给局域网内的客户机;
(2)提供缓存机制,自动应答客户机发来的资源请求;
(3)提供实时流量、命中等监控数据,方便网络管理员查看分析;
(4)提供磁盘管理策略。
客户机需要得知加速缓存服务器的地址,当客户机启动时,需按以下操作过程获知服务器地址
(I)使用UDP广播请求服务器地址;
(2)服务器接收到请求后,将本机地址发送至客户机;
(3)客户机接收到服务器地址后,验证服务器端功能;
(4)验证通过后,使用此地址作为加速服务器地址。
权利要求
1.一种局域网环境下的缓存加速方法,包括如下步骤(1)当局域网内客户机访问任一网络页面时,获取该页面所有链接的资源路径;(2)对所述的资源路径进行格式匹配判断若匹配,则执行步骤(3);若否,则客户机直接连接该路径下载对应的网络文件;(3)客户机通过http代理协议将资源路径发送给局域网内的服务器;(4)服务器判断资源路径对应的网络文件在本地是否有存储若有,则从本地提取该文件传送给客户机;若否,则通过连接资源路径下载对应的网络文件同步传送给客户机,并将该文件存储于本地硬盘内。
2.根据权利要求1所述的缓存加速方法,其特征在于所述的步骤(2)中,通过预设 flv、mp3、mp4、zip、rar、exe、hlv、swf和f4v作为匹配格式,对资源路径进行格式匹配判断。
3.根据权利要求1或2所述的缓存加速方法,其特征在于利用正则表达式或通配符对资源路径进行格式匹配判断。
4.根据权利要求1所述的缓存加速方法,其特征在于所述的步骤(4)中,服务器判断资源路径对应的网络文件在本地是否有存储的方法如下a.根据资源路径查询本地索引列表,若列表中具有该路径对应的信息,则表明对应的网络文件在本地有存储;若否,执行步骤b ;b.通过连接资源路径获取其对应网络文件的头部数据;根据所述的头部数据通过MD5 算法求取网络文件的MD5校验码;c.根据该MD5校验码查询本地索引列表,若列表中具有该MD5校验码对应的信息,则表明对应的网络文件在本地有存储;若否,则表明对应的网络文件未在本地存储。
5.根据权利要求1所述的缓存加速方法,其特征在于所述的步骤(4)中,若网络文件在本地有存储,服务器则根据该网络文件对应的资源路径或MD5校验码在本地索引列表中查找出其所对应的本地存储地址,通过本地存储地址提取该网络文件传送给客户机。
6.根据权利要求4或5所述的缓存加速方法,其特征在于所述的索引列表包含服务器本地存储有的所有网络文件的MD5校验码、资源路径和本地存储地址。
7.根据权利要求1所述的缓存加速方法,其特征在于所述的步骤(4)中,当服务器本地已存储的网络文件总容量超过预设值时,服务器清除其中部分网络文件。
8.根据权利要求7所述的缓存加速方法,其特征在于服务器根据LRU算法清除其中部分网络文件。
全文摘要
本发明公开了一种局域网环境下的缓存加速方法,其通过获取页面所有链接的资源路径,对路径进行格式匹配判断;对于匹配的路径,客户机通过http代理协议将路径发送给服务器,由服务器判断该路径对应的文件在本地是否有存储若有则从本地提取该文件传送给客户机;若否则通过连接该路径下载对应的文件同步传送给客户机。本发明通过将一些网络大容量文件缓存至服务器本地,能够为局域网节省大量的带宽,降低局域网对带宽的需求,从而节省资金;同时本发明能够提升局域网内网民的用户体验,保障一些实时性需求较高的网络应用程序的服务质量,使得局域网维护简单,降低流控软件的复杂度。
文档编号H04L29/08GK103001964SQ20121052268
公开日2013年3月27日 申请日期2012年12月4日 优先权日2012年12月4日
发明者罗光辉, 柯星星, 戴昌林, 鄢庆武, 段超, 沈富迪 申请人:杭州顺网科技股份有限公司