【技术实现步骤摘要】
数据包缓存方法、装置、电子设备及存储介质
[0001]本申请涉及数据处理
,特别是涉及一种数据包缓存方法
、
装置
、
电子设备及存储介质
。
技术介绍
[0002]随着网络技术仿真验证平台应用的成熟与推广,越来越多的试验任务集中在几个超大规模的仿真平台上,这将会导致仿真平台需要处理的并发请求急剧增加
。
为了减少响应时长,目前很多应用程序都会采用缓存技术将已处理好的结果进行缓存,但是目前的缓存技术一般存在于用户态,请求数据包从进入到确定返回的结果,需要经过内核态中复杂的网络协议栈,甚至出现多次用户态与内核态之间的数据拷贝,从而导致占用很多机器资源,最终应用程序在大数据流的场景下,性能急剧下降
。
[0003]然而内核态的缓存机制可以使得请求数据包无需经过网络协议栈和用户态,从而减少了用户态与内核态之间数据拷贝带来的开销,因此应用程序可以利用内核缓存进一步提高系统的性能和响应速度
。
但是相关技术中内核态的缓存机制扩展性差,不支持多种应用程序同时使用缓存框架,而且存在不同的应用程序缓存设置不灵活
、
缓存命中率低和处理流程冗余等问题
。
技术实现思路
[0004]本申请旨在至少解决现有技术中存在的技术问题之一
。
为此,本申请实施例提供了一种数据包缓存方法
、
装置
、
电子设备及存储介质,能够根据预配置的逻辑对请求数据包进行处理,在内核 ...
【技术保护点】
【技术特征摘要】
1.
一种数据包缓存方法,其特征在于,包括:响应于用户的请求指令,获取请求数据包;对所述请求数据包进行第一解析,得到匹配参数,并将所述匹配参数与预设的匹配条件进行匹配,得到匹配结果;若所述匹配结果表征所述请求数据包与目标应用程序匹配,利用预配置的所述目标应用程序的处理逻辑对所述请求数据包进行第二解析,得到解析数据;基于所述解析数据,查询缓存表是否缓存所述请求数据包的数据哈希值,得到缓存标识;若所述缓存标识表征所述缓存表已缓存所述请求数据包的数据哈希值,根据所述缓存表和预配置的所述目标应用程序的构造逻辑构造所述请求数据包的响应数据包;若所述缓存标识表征所述缓存表未缓存所述请求数据包的数据哈希值,基于所述解析数据初始化所述缓存表,将所述请求数据包发送至所述目标应用程序进行响应,得到响应数据包,并基于所述响应数据包更新所述缓存表
。2.
根据权利要求1所述的数据包缓存方法,其特征在于,所述对所述请求数据包进行第一解析,得到匹配参数,并将所述匹配参数与预设的匹配条件进行匹配,得到匹配结果,包括:对所述请求数据包的头部信息进行网络协议解析,得到所述匹配参数;所述匹配参数包括以下至少一种:源端口
、
源地址
、
目的端口
、
目的地址和协议信息;依次将所述源地址
、
所述目的地址
、
所述源端口
、
所述目的端口
、
所述协议信息与所述匹配条件进行匹配,根据最长匹配原则得到应用程序标识;判断所述应用程序标识与所述目标应用程序是否匹配,得到匹配结果
。3.
根据权利要求2所述的数据包缓存方法,其特征在于,所述若所述匹配结果表征所述请求数据包与目标应用程序匹配,利用预配置的所述目标应用程序的处理逻辑对所述请求数据包进行第二解析,得到解析数据,包括:若所述匹配结果为所述应用程序标识与所述目标应用程序匹配,根据所述应用程序标识获取处理逻辑名称;所述应用程序标识与所述处理逻辑名称满足第一映射关系;基于所述处理逻辑名称,调用预配置的所述目标应用程序的处理逻辑对所述请求数据包进行第二解析,得到所述解析数据;所述解析数据包括以下至少一种:请求信息
、
所述协议信息
、
所述源端口
、
所述源地址
、
所述目的端口和所述目的地址,所述请求信息包括
URL
信息
。4.
根据权利要求3所述的数据包缓存方法,其特征在于,所述缓存表包括第一哈希表,所述第一哈希表的键属性包括以下至少一种:请求源端口
、
请求源地址
、
请求目的端口
、
请求协议信息和请求
URL
信息,所述第一哈希表的值属性包括:请求数据哈希值;所述基于所述解析数据,查询缓存表是否缓存所述请求数据包的数据哈希值,得到缓存标识,包括:将所述解析数据中的源端口作为请求源端口,源地址作为请求源地址,目的端口作为请求目的端口,协议信息作为请求协议信息,
URL
信息作为请求
URL
信息;组合所述请求源端口
、
所述请求源地址
、
所述请求目的端口
、
所述请求协议信息和所述请求
URL
信息,得到待匹配键;基于所述待匹配键,查询所述第一哈希表是否缓存对应的请求数据哈希值,得到缓存
标识;所述请求数据哈希值与所述请求数据包的数据哈希值对应
。5.
根据权利要求4所述的数据包缓存方法,其特征在于,所述第一哈希表的值属性还包括:响应缓存;所述若所述缓存标识表征所述缓存表已缓存所述请求数据包的数据哈希值,根据所述缓存表和预配置的所述目标应用程序的构造逻辑构造所述请求数据包的响应数据包,包括:若所述缓存标识表征所述第一哈希表已缓存所述请求数据包的数据哈希值,基于所述待匹配键获取所述第一哈希表中的所述请求数据包对应的所述响应缓存;根据所述应用程序标识获取构造逻辑名称;所述应用程序标识与所述构造逻辑名称满足第二映射关系;基于所述构造逻辑名称,调用预配置的所述目标应用程序的构造逻辑对所述响应缓存进行构造,得到初始响应数据包;将所述解析数据中的源端口和目的端口
、
源地址和目的地址进行交换,并计算校验信息,得到重定向信息;根据所述初始响应数据包和所述重定向信息,得到所述响应数据包
。6.
根据权利要求4所述的数据包缓存方法,其特征在于,所述第一哈希表的值属性还包括:缓存状态和响应缓存;所述缓存表还包括第二哈希表,所述第二哈希表的键属性为请求数据哈希值,所述第二哈希表的值属性包括以下至少一种:请求源端口
、
请求源地址
、
请求目的端口
、
请求协议信息和请求
URL
信息;所述若所述缓存标识表征所述缓存表未缓存所述请求数据包的数据哈希值,基于所述解析数据初始化所述缓存表,将所述请求数据包发送至所述目标应用程序进行响应,得到响应数据包,并基于所述响应数据包更新所述缓存表,包括:若所述缓存标识表征所述第一哈希表未缓存所述请求数据包的数据哈希值,计算所述请求数据包的数据哈希值;将所述解析数据中的源端口作为请求源端口,源地址作为请求源地址,目的端口作为请求目的端口,协议信息作为请求协议信息,
URL
信息作为请求
URL
信息;组合所述请求源端口
、
...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。