[发明专利]一种缓存分配方法、装置及设备在审
申请号: | 201310577399.5 | 申请日: | 2013-11-18 |
公开(公告)号: | CN103595653A | 公开(公告)日: | 2014-02-19 |
发明(设计)人: | 刘冀鹏 | 申请(专利权)人: | 福建星网锐捷网络有限公司 |
主分类号: | H04L12/861 | 分类号: | H04L12/861 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
地址: | 350002 福建省福州市仓*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 缓存 分配 方法 装置 设备 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种缓存分配方法、装置及设备。
背景技术
缓存的管理和分配在计算机编程领域、网络通信领域等领域中都有很广泛的应用。因为在很多情况下都需要对一些临时数据进行临时存储,下面以网络通信领域中,对接收到的数据包的缓存为例进行说明。
Web应用防火墙(WAF,Web Application Firewall)作为Web客户端和服务器端的中间设备,部署在Web服务器之前,对超文本传输协议(Hyper Text Transfer Protocol,简称:HTTP)或基于安全套接字的超文本传输协议(Hypertext Transfer Protocol over Secure Socket Layer,简称HTTPS)的双向流量执行检测扫描来保证Web应用的安全。WAF的“在线检测”工作模式,通常是通过Web“代理(Proxy)”的方式,在Web客户端和Web服务器之间分别建立TCP连接,作为两者之间的中间人,对HTTP、HTTPS流量进行扫描,用以检测来自恶意攻击者的非法有害请求,并且对该类请求采取相应的措施进行处理;而WAF的“离线检测”工作模式,不是作为中间人的角色,而是作为旁观者的角色,通过报文嗅探的方式,将Web客户端和Web服务器之间的HTTP、HTTPS交互的TCP报文抓取到WAF中,并且在应用层重组TCP连接,对重组后的TCP连接,进行安全检测、审计等工作。
进一步地,在WAF“离线检测”工作模式下,需要对嗅探后的报文进行缓存,现有技术中主要包括如下几种方案:
第一种方案:随时为接收到的报文申请缓存块
由嗅探线程申请一块能容纳最大长度的报文(可以称为“大报文”)的缓存作为嗅探报文的临时存储区。具体为当报文嗅探成功后,根据嗅探报文的大小,从系统中申请相应大小的缓存块,将报文从临时存储区拷贝至新申请的缓存块,并且将新申请的缓存块插入到处理队列,多个处理线程从处理队列中获取报文进行处理。但是,该种机制存在如下问题:首先,频繁地从系统申请缓存,会造成频繁地系统调用,降低工作效率;其次,从报文的临时存储区将报文拷贝至新申请的缓存块的过程,也会耗费一定的时间,降低对报文的处理速度。
第二种方案:使用固定大小缓存池方案
这种方案的处理机制是在第一种方案的基础上,对第一种方案存在的两个问题进行优化处理得到的。具体为在程序启动时,创建一个固定大小缓存块为基础的“缓存池”,每个缓存块大小为大报文的大小,该缓存池提供申请、释放固定大报文的接口。在调用报文嗅探的系统调用时,直接使用从缓存池中获得的大报文缓存,而不使用临时存储区。实现了所谓的“零拷贝”,解决了第一种方案中存在的两个问题,但是却引入了一个新问题:由于要嗅探的报文既可能包含几KB的大报文、也可能包含几十B的“小报文”,如果存储每个报文都使用存储大报文的缓存块进行存储,会造成大量的缓存浪费。当网口瞬间流量较大,且包含大量小报文,而处理流程不够迅速时,就会很快用完缓存池空间。如果从缓存池中申请不到缓存块,也会造成一定的丢包率。
发明内容
本发明实施例提供了一种缓存分配方法、装置及设备,用以解决现有技术中缓存分配不合理的问题。
基于上述问题,本发明实施例提供的一种缓存分配方法,包括:
当接收到待缓存数据时,根据缓存队列中写入点指示的当前可用缓存块的当前可用位置,将所述待缓存数据从所述当前可用位置写入所述当前可用缓存块;
当所述当前可用缓存块的当前剩余可用空间不小于预设最大长度时,将所述写入点指示的位置更新为所述当前剩余可用空间的起始位置;
当所述当前剩余可用空间小于预设最大长度时,从预设缓存池中获取一个缓存块加入所述缓存队列的队尾,并将所述写入点指示的位置更新为加入缓存块的起始位置,其中,所述预设缓存池用于存储预先设置的多个长度不小于所述预设最大长度的缓存块。
本发明实施例提供的一种缓存分配装置,包括:
写入模块,用于当接收到待缓存数据时,根据缓存队列中写入点指示的当前可用缓存块的当前可用位置,将所述待缓存数据从所述当前可用位置写入所述当前可用缓存块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建星网锐捷网络有限公司,未经福建星网锐捷网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310577399.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种汽车座椅装置
- 下一篇:一种带记忆功能的汽车扶手箱