System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请属于网络安全,特别是涉及一种网络报文的规则匹配方法和装置、交换机芯片。
技术介绍
1、目前,随着网络攻击的复杂性和频率不断增加,以及网络协议的持续演变,对网络报文进行有效的规则匹配变得尤为重要。
2、网络报文规则匹配技术的应用使得网络设备能够根据预定义的标准自动识别和处理特定类型的报文。这不仅有助于识别恶意流量、实施访问控制策略,如抵御分布式拒绝服务(ddos)攻击、预防入侵尝试、阻断病毒传播等,而且还能对合法流量进行优化和加速,从而提升网络的整体效率和安全性。
3、传统的网络报文规则匹配方法通常依赖于软件实现,这在处理高吞吐量的网络流量时往往会遭遇性能瓶颈。由于软件解决方案无法充分利用现代硬件的并行处理能力,因此会导致处理速度慢,延迟增加以及硬件资源利用不足等问题。此外,随着规则集的扩充,维护和更新规则集的复杂性和耗时不断增加,这严重影响了系统的可扩展性和灵活性。
技术实现思路
1、本申请的目的在于提供一种网络报文的规则匹配方法和装置、交换机芯片,用于解决现有技术在处理高吞吐量网络流量时遇到的性能瓶颈问题。
2、第一方面,本申请提供一种网络报文的规则匹配方法,包括:获取交换机上多个网络端口接收的数据包,并保存所述数据包至工作缓冲区;所述数据包按照特定的网络协议封装网络报文;记录所述数据包在所述工作缓冲区的开始指针,得到第一先进先出队列;记录由报文解析引擎对所述数据包进行内容解析得到的起始偏移量,得到第二先进先出队列;基于所述第一先进先出队
3、在第一方面的一种实现方式中,获取交换机上多个网络端口接收的数据包,并保存所述数据包至工作缓冲区包括:
4、获取用于限制所述报文解析引擎最大解析深度的编程值;
5、从各所述网络端口轮询获取所述编程值大小的所述数据包;
6、检查所述数据包的有效性,并对所述数据包进行字数统计;
7、当所述数据包有效且所述数据包中的字数小于或等于预设编程值时,将所述数据包的数据内容、结束标志以及有效字节数保存到所述工作缓冲区,并在所述工作缓冲区为所述数据包分配对应的所述开始指针。
8、在第一方面的一种实现方式中,基于所述第一先进先出队列和所述第二先进先出队列,从所述工作缓冲区获取待匹配数据包包括:
9、当所述第一先进先出队列和所述第二先进先出队列为非空时,检查是否满足特定的数据包跳过条件;
10、若是,则从所述第一先进先出队列中读取下一个数据包的开始指针;从所述第二先进先出队列中读取所述下一个数据包的起始偏移量;基于所述下一个数据包的开始指针和所述下一个数据包的起始偏移量,从所述工作缓冲区中获取所述下一个数据包作为所述待匹配数据包;
11、否则从所述第一先进先出队列读取当前数据包的开始指针,并从所述第二先进先出队列读取所述当前数据包的起始偏移量;将所述当前数据包的开始指针与所述当前数据包的起始偏移量相加,得到在所述工作缓冲区中所述待匹配数据包的读取指针;基于所述待匹配数据包的读取指针,从所述工作缓冲区中提取对应的数据包作为所述待匹配数据包。
12、在第一方面的一种实现方式中,检查是否满足特定的数据包跳过条件包括:
13、获取交换机上各网络端口的设置状态;
14、若所述网络端口被设置为启用,则认定从所述网络端口接收的所述数据包不满足所述数据包跳过条件;
15、若所述网络端口被设置为禁止,则认定从所述网络端口接收的所述数据包满足所述数据包跳过条件。
16、在第一方面的一种实现方式中,检查是否满足特定的数据包跳过条件包括:
17、获取所述报文解析引擎设置的跳过位标识符以及所述报文解析引擎上指定端口的使能状态;所述跳过位标识符包括0和1,其中0表示不跳过数据包,1表示跳过数据包;所述报文解析引擎上指定端口的使能状态包括0和1,其中0表示启用所述指定端口,1表示禁用所述指定端口;
18、将所述跳过位标识符与所述指定端口的使能状态进行或运算,得到运算结果;
19、若所述运算结果为0,则认定不满足所述数据包跳过条件;
20、若所述运算结果为1,则认定满足所述数据包跳过条件。
21、在第一方面的一种实现方式中,检查是否满足特定的数据包跳过条件包括:
22、判断以下任一条件是否为真:
23、所述第二先进先出队列的头部声明了所述跳过位标识符,且所述跳过位标识符被设置为1;
24、从所述第二先进先出队列中读取的所述数据包的起始偏移量大于特定字段的长度与预设字节数之间的差值;
25、从所述第二先进先出队列中读取的所述数据包的起始偏移量被赋值为十六进制数0xff;
26、若是,则认定满足所述数据包跳过条件;
27、否则认定不满足所述数据包跳过条件。
28、在第一方面的一种实现方式中,将所述待匹配数据包与预先构建的规则库进行匹配,得到规则匹配结果包括:
29、对所述待匹配数据包进行左对齐,得到对齐后的数据包;
30、扫描所述对齐后的数据包的会话层数据;
31、检查所述会话层数据是否存在字段与所述预先构建的规则库中的任意一个所述规则匹配向量相一致;
32、若是,则认定所述待匹配数据包与预先构建的规则库匹配成功;
33、否则认定所述待匹配数据包与预先构建的规则库匹配失败。
34、在第一方面的一种实现方式中,还包括:
35、获取所述报文解析引擎生成的跳过位标识符和数据包定位标识符,并保存为第三先进先出队列;
36、将所述第三先进先出队列中的所述跳过位标识符和所述数据包地址定位标识符与所述规则库中的规则匹配向量进行对齐,得到对齐后的第三先进先出队列;
37、基于多路复用原理对所述对齐后的第三先进先出队列和所述规则匹配结果进行处理,得到最终的规则匹配向量、最终的规则匹配有效性标识符和最终的数据包定位标识符。
38、第二方面,本申请提供一种网络报文的规则匹配装置,包括:数据包缓存模块,用于获取交换机上多个网络端口接收的数据包,并保存所述数据包至工作缓冲区;所述数据包按照特定的网络协议封装网络报文;第一数据记录模块,用于记录所述数据包在所述工作缓冲区的开始指针,得到第一先进先出队列;第二数据记录模块,用于记录由报文解析引擎对所述数据包进行内容解析得到的起始偏移量,得到第二先进先出队列;待匹配数据包获取模块,用于基于所述第一先进先出队列和所述第二先进先出队列,从所述工作缓冲区获取待匹配数据包;规则匹配模块,用于将所述待匹配数据包与预先构建的规则库进行匹配,得到规则匹配本文档来自技高网...
【技术保护点】
1.一种网络报文的规则匹配方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,获取交换机上多个网络端口接收的数据包,并保存所述数据包至工作缓冲区包括:
3.根据权利要求1所述的方法,其特征在于,基于所述第一先进先出队列和所述第二先进先出队列,从所述工作缓冲区获取待匹配数据包包括:
4.根据权利要求3所述的方法,其特征在于,检查是否满足特定的数据包跳过条件包括:
5.根据权利要求3所述的方法,其特征在于,检查是否满足特定的数据包跳过条件包括:
6.根据权利要求3所述的方法,其特征在于,检查是否满足特定的数据包跳过条件包括:
7.根据权利要求1所述的方法,其特征在于,将所述待匹配数据包与预先构建的规则库进行匹配,得到规则匹配结果包括:
8.根据权利要求1所述的方法,其特征在于,还包括:
9.一种网络报文的规则匹配装置,其特征在于,包括:
10.一种交换机芯片,其特征在于,包括:
【技术特征摘要】
1.一种网络报文的规则匹配方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,获取交换机上多个网络端口接收的数据包,并保存所述数据包至工作缓冲区包括:
3.根据权利要求1所述的方法,其特征在于,基于所述第一先进先出队列和所述第二先进先出队列,从所述工作缓冲区获取待匹配数据包包括:
4.根据权利要求3所述的方法,其特征在于,检查是否满足特定的数据包跳过条件包括:
5.根据权利要求3所述的方...
【专利技术属性】
技术研发人员:阮召崧,
申请(专利权)人:南京金阵微电子技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。