【技术实现步骤摘要】
一种缓存分配方法、装置及设备
本专利技术涉及计算机
,尤其涉及一种缓存分配方法、装置及设备。
技术介绍
缓存的管理和分配在计算机编程领域、网络通信领域等领域中都有很广泛的应用。因为在很多情况下都需要对一些临时数据进行临时存储,下面以网络通信领域中,对接收到的数据包的缓存为例进行说明。Web应用防火墙(WAF, Web Application Firewall)作为Web客户端和服务器端的中间设备,部署在Web服务器之前,对超文本传输协议(Hyper Text Transfer Protocol,简称:HTTP)或基于安全套接字的超文本传输协议(Hypertext Transfer Protocol overSecure Socket Layer,简称HTTPS)的双向流量执行检测扫描来保证Web应用的安全。WAF的“在线检测”工作模式,通常是通过Web “代理(Proxy)”的方式,在Web客户端和Web服务器之间分别建立TCP连接,作为两者之间的中间人,对HTTP、HTTPS流量进行扫描,用以检测来自恶意攻击者的非法有害请求,并且对该类请求采取相应的措施进行处理;而WAF的“离线检测”工作模式,不是作为中间人的角色,而是作为旁观者的角色,通过报文嗅探的方式,将Web客户端和Web服务器之间的HTTP、HTTPS交互的TCP报文抓取到WAF中,并且在应用层重组TCP连接,对重组后的TCP连接,进行安全检测、审计等工作。进一步地,在WAF “离线检测”工作模式下,需要对嗅探后的报文进行缓存,现有技术中主要包括如下几种方案:第一种方案:随时为 ...
【技术保护点】
一种缓存分配方法,其特征在于,包括:当接收到待缓存数据时,根据缓存队列中写入点指示的当前可用缓存块的当前可用位置,将所述待缓存数据从所述当前可用位置写入所述当前可用缓存块;当所述当前可用缓存块的当前剩余可用空间不小于预设最大长度时,将所述写入点指示的位置更新为所述当前剩余可用空间的起始位置;当所述当前剩余可用空间小于预设最大长度时,从预设缓存池中获取一个缓存块加入所述缓存队列的队尾,并将所述写入点指示的位置更新为加入缓存块的起始位置,其中,所述预设缓存池用于存储预先设置的多个长度不小于所述预设最大长度的缓存块。
【技术特征摘要】
1.一种缓存分配方法,其特征在于,包括: 当接收到待缓存数据时,根据缓存队列中写入点指示的当前可用缓存块的当前可用位置,将所述待缓存数据从所述当前可用位置写入所述当前可用缓存块; 当所述当前可用缓存块的当前剩余可用空间不小于预设最大长度时,将所述写入点指示的位置更新为所述当前剩余可用空间的起始位置; 当所述当前剩余可用空间小于预设最大长度时,从预设缓存池中获取一个缓存块加入所述缓存队列的队尾,并将所述写入点指示的位置更新为加入缓存块的起始位置,其中,所述预设缓存池用于存储预先设置的多个长度不小于所述预设最大长度的缓存块。2.如权利要求1所述的方法,其特征在于,还包括: 当读取所述缓存队列中的待读取数据时,循环执行如下步骤,直到所述读取点指示的位置与所述写入点指示的位置为同一位置为止: 根据所述缓存队列中读取点指示的当前待读取数据的起始位置,读取所述当前待读取数据; 当所述当前待读取数据所在缓存块内,在所述当前待读取数据之后还存储有待读取数据时,将所述读取点指示的位置更新为紧邻所述当前待读取数据存储的待读取数据的起始位置; 当所述当前待读取数据所在缓存块内,在所述当前待读取数据之后不存在待读取数据,且所述写入点指示的位置不为所述当前待读取数据的结束位置时,将所述读取点指示的位置更新为所述缓存队列中,所述当前待读取数据所在缓存块之后的下一个缓存块的起始位置,并将所述当前待读取数据所在缓存块释放到所述预设缓存池; 当所述当前待读取数据所在缓存块内,在所述当前待读取数据之后不存在待读取数据,且所述写入点指示的位置为所述当前待读取数据的结束位置时,将所述读取点指示的位置更新为所述写入点指示的位置。3.如权利要求2所述的方法,其特征在于,从所述当前可用位置写入所述当前可用缓存块的数据包括:顺次存储的所述待缓存数据的长度信息以及所述待缓存数据的内容; 所述方法,采用如下方式确定所述当前待读取数据所在缓存块内,在所述待读取数据之后是否存储有待读取数据: 确定紧邻所述当前待读取数据的、用于存储待缓存数据的长度的存储位置,存储的内容是否为零; 若不为零,则确定所述当前待读取数据所在缓存块内,在所述待读取数据之后存储有待读取数据; 否则,确定所述当前待读取数据所在缓存块内,在所述待读取数据之后未存储待读取数据。4.如权利要求1-3任一项所述的方法,其特征在于,还包括: 在将所述待缓存数据写入所述当前可用缓存块之后,通过事件机制触发对所述缓存队列中的数据的读取操作。5.如权利要求1-3任一项所述的方法,其特征在于,采用如下方式对所述缓存队列进行初始化: 从所述预设缓存池中获取一个缓存块作为缓存队列中的第一个节点;并将写入点指示的位置和读取点指示的位置初始化为所述第一个节点缓存块的起始位置。6.一种缓存分配装置,其特征在于,包括: 写入模块,用于当接收到待缓存数据时,根据...
【专利技术属性】
技术研发人员:刘冀鹏,
申请(专利权)人:福建星网锐捷网络有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。