著录项信息
专利名称 | 一种基于FPGA的高速网络策略匹配方法 |
申请号 | CN201410023681.3 | 申请日期 | 2014-01-20 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-05-21 | 公开/公告号 | CN103812860A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/06 | IPC分类号 | H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 北京赛博兴安科技有限公司 | 申请人地址 | 北京市海淀区西二旗大街39号203-201
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京赛博兴安科技有限公司 | 当前权利人 | 北京赛博兴安科技有限公司 |
发明人 | 卓才华;孟庆文 |
代理机构 | 北京天达知识产权代理事务所(普通合伙) | 代理人 | 马东伟;王涛 |
摘要
本发明提供了一种基于FPGA的高速网络策略匹配方法,实现使用相对较小的存储空间同时适合硬件中进行较快的策略匹配处理,并使得策略匹配处理性能与策略的数据量无关。本发明的一种基于FPGA的高速网络策略匹配方法,采用五元组,支持五元组精确匹配和IP及端口范围匹配,比传统的纯硬件方式功能更强大,匹配条件和匹配模式更多元化;本发明的策略树节点长度固定512字节,且树层高固定为13的特定树型结构,针对FPGA策略匹配,直接地址定位逻辑处理简单高效,避免消耗大量时间在逻辑运算上,大大提高匹配效率。
1.一种基于FPGA的高速网络策略匹配方法,包括策略树生成方法和策略树匹配方法;
所述策略树生成方法,包括如下步骤:
步骤1:网络策略相关界面设置多条需配置网络策略匹配条件:五元组和策略结果;
步骤2:界面配置完毕后,在系统后台生成自定义的二进制模式的策略数据文件;
步骤3:将所述策略数据文件读入内存;
步骤4:从所述策略数据文件中读取一条策略记录;
步骤5:根据所述策略记录中的关键信息,按协议号、源IP、目的IP、源端口、目的端口和策略结果插入FPGA策略树;策略树的树形结构状态,即将上一跳节点的位置编号作为下一跳位置的寻址偏移量,确定下一跳节点的位置,以相邻两跳节点的位置为连接线,将所有节点串连成一棵13层树高的策略树,节点长度固定512字节;
策略树存储模式,即策略树的所有节点都是集中连续的块存储,每个节点定义唯一的位置编号,即上述中下一跳寻址偏移量;
步骤6:重复步骤4至步骤5,直到遍历完策略数据文件中的所有策略记录;步骤7:针对FPGA策略树进行树节点压缩;
步骤8:将内存中FPGA策略树的数据采用SPI串行打入FPGA的SRAM或RAM;
所述策略树匹配方法,包括如下步骤:
步骤1:FPGA模块接收到网络IP数据包,并分析出关键条件字段:五元组;
步骤2:FPGA直接进行寻址策略匹配纯硬件处理,FPGA模块寻址到SRAM或RAM的首地址,通过网络IP数据包五元组信息通过FPGA自己的内部13个时钟周期快速寻址定位FPGA策略树,得到策略结果返回,若中途匹配异常,用13个时钟周期直接返回默认设置策略结果,FPGA进行相应后续操作。
2.根据权利要求1所述的一种基于FPGA的高速网络策略匹配方法,其特征在于:所述五元组包括协议号、源IP、目的IP、源端口和目的端口。
3.根据权利要求1所述的一种基于FPGA的高速网络策略匹配方法,其特征在于:所述策略树的每个节点长度为256*2字节,存放下一跳节点序号。
4.根据权利要求1所述的一种基于FPGA的高速网络策略匹配方法,其特征在于:所述策略树13层节点每层节点及子树节点值的内容都相同,会进行节点压缩合并。
一种基于FPGA的高速网络策略匹配方法\n技术领域\n[0001] 本发明涉及一种网络匹配方法,尤其是一种基于FPGA的高速网络策略匹配方法。\n背景技术\n[0002] 随着网络不断的发展,扩展越来越广,速度越来越快;随着资费的越来越便宜,用户不断的增长,同时用户的使用量也逐年递增,用户的使用量越来越大。原有的防火墙或加密机对与越来越大量的IP网络数据包,压力越来越大,对于防火墙或加密机处理效率要求越来越高。当前大多的防火墙或加密机所采用的策略匹配几种方式,在千兆级别数据处理进或多或少在性能或功能缺陷。\n[0003] 软件方式:业务IP数据通过网卡驱动程序由软件端截取,然后在软件中进行策略匹配以及后续工作,这样在处理功能上或许能满足要求,但存在一个致命缺陷,性能太慢。\n通过软件截取IP数据包,在CPU中做策略匹配等操作效率上远远不如在硬件上直接操作IP数据包来的快。\n[0004] 现有硬件方式:现有的产品策略匹配纯硬件实现的,不是其实现的策略功能极简单,不能支持多元组复杂的配置条件,就是为了追求速度将硬件空间占用很大,成本大幅度提升,且硬件中除了寻址操作,还有大量逻辑运算导致过于复杂,效率相对本发明要低。\n发明内容\n[0005] 本发明提供了一种基于FPGA的高速网络策略匹配方法,实现使用相对较小的存储空间同时适合硬件中进行较快的策略匹配处理,并使得策略匹配处理性能与策略的数据量无关。\n[0006] 实现本发明目的的一种基于FPGA的高速网络策略匹配方法,包括策略树生成方法和策略树匹配方法;\n[0007] 所述策略树生成方法,包括如下步骤:\n[0008] 步骤1:网络策略相关界面设置多条需配置网络策略匹配条件:五元组和策略结果(如:明通、密通、丢弃、填充等);\n[0009] 步骤2:界面配置完毕后,在系统后台生成自定义的二进制模式的策略数据文件;\n[0010] 步骤3:将所述策略数据文件读入内存;\n[0011] 步骤4:从所述策略数据文件中读取一条策略记录;\n[0012] 步骤5:根据所述策略记录中的关键信息,按协议号、源IP、目的IP、源端口、目的端口和策略结果插入FPGA策略树;\n[0013] 步骤6:重复步骤4至步骤5,直到遍历完策略数据文件中的所有策略记录;\n[0014] 步骤7:针对FPGA策略树进行树节点压缩(同类树节点合并);\n[0015] 步骤8:将内存中FPGA策略树的数据采用SPI串行打入FPGA的SRAM或RAM;\n[0016] 所述策略树匹配方法,包括如下步骤:\n[0017] 步骤1:FPGA模块接收到网络IP数据包,并分析出关键条件字段:五元组;\n[0018] 步骤2:FPGA模块寻址到SRAM或RAM的首地址,通过网络IP数据包五元组信息通过FPGA自己的内部13个时钟周期快速寻址定位FPGA策略树,得到策略结果返回,若中途匹配异常,用13个时钟周期直接返回默认设置策略结果,FPGA进行相应后续操作。\n[0019] 进一步,所述五元组包括协议号、源IP、目的IP、源端口和目的端口。\n[0020] 进一步,所述FPGA直接进行寻址策略匹配纯硬件处理。\n[0021] 采用上述进一步方案的有益效果是,纯硬件处理,软件系统异常不工作,业务处理依旧能正常运行不受影响,高效可靠。\n[0022] 进一步,所述策略树节点长度固定512字节,且树层高固定为13的特定树型结构。\n[0023] 采用上述进一步方案的有益效果是,策略树结构及匹配模式针对FPGA中存储策略,遍历匹配次数和存储空间均可控。\n[0024] 进一步,所述策略树的每个节点长度为256*2字节(Unsigned short rule_path[256])存放下一跳节点序号。\n[0025] 采用上述进一步方案的有益效果是,FPGA直接地址定位逻辑处理简单高效,避免消耗大量时间在逻辑运算上,大大提高匹配效率;\n[0026] 进一步,所述策略树13层节点每层节点及子树节点值的内容都相同,会进行节点压缩合并。\n[0027] 采用上述进一步方案的有益效果是,压缩后占用空间比原有空间平均压缩5-10倍,本发明确保存储空间占用可更小,存储硬件成本可更低。\n[0028] 本发明的一种基于FPGA的高速网络策略匹配方法的有益效果如下:\n[0029] 本发明的一种基于FPGA的高速网络策略匹配方法,采用五元组(协议号、源IP、目的IP、源端口、目的端口),支持五元组精确匹配和IP及端口范围匹配,比传统的纯硬件方式功能更强大,匹配条件和匹配模式更多元化;本发明策略树节点长度固定512字节,且树层高固定为13的特定树型结构,针对FPGA策略匹配,直接地址定位逻辑处理简单高效,避免消耗大量时间在逻辑运算上,大大提高匹配效率,相比于传统的纯硬件方式或软件方式本发明的速度更快;采用策略树13层节点每层节点及子树节点值的内容都相同,会进行节点压缩合并,压缩后占用空间比原有空间平均压缩5-10倍,存储空间占用的需求也比传统的方式更低;本发明实现了使用相对较小的存储空间较快的进行策略匹配处理,并使得策略匹配处理性能与策略的数据量无关。\n附图说明\n[0030] 图1为本发明的一种基于FPGA的高速网络策略匹配方法的策略树存储模式示意框图。\n[0031] 图2为本发明的一种基于FPGA的高速网络策略匹配方法的策略树树状结构示意框图。\n[0032] 图3为本发明的一种基于FPGA的高速网络策略匹配方法的策略树生产方法流程图。\n[0033] 图4为本发明的一种基于FPGA的高速网络策略匹配方法的策略树匹配方法流程图。\n具体实施方式\n[0034] 如图3、4所示,本发明的一种基于FPGA的高速网络策略匹配方法,包括策略树生成方法和策略树匹配方法;\n[0035] 所述策略树生成方法,包括如下步骤:\n[0036] 步骤1:网络策略相关界面设置多条需配置网络策略匹配条件:五元组和策略结果(如:明通、密通、丢弃、填充等);\n[0037] 步骤2:界面配置完毕后,在系统后台生成自定义的二进制模式的策略数据文件;\n[0038] 步骤3:将所述策略数据文件读入内存;\n[0039] 步骤4:从所述策略数据文件中读取一条策略记录;\n[0040] 步骤5:根据所述策略记录中的关键信息,按协议号、源IP、目的IP、源端口、目的端口和策略结果插入FPGA策略树;\n[0041] 步骤6:重复步骤4至步骤5,直到遍历完策略数据文件中的所有策略记录;\n[0042] 步骤7:针对FPGA策略树进行树节点压缩(同类树节点合并);\n[0043] 步骤8:将内存中FPGA策略树的数据采用SPI串行打入FPGA的SRAM或RAM;\n[0044] 所述策略树匹配方法,包括如下步骤:\n[0045] 步骤1:FPGA模块接收到网络IP数据包,并分析出关键条件字段:五元组;\n[0046] 步骤2:FPGA模块寻址到SRAM或RAM的首地址,通过网络IP数据包五元组信息通过FPGA自己的内部13个时钟周期快速寻址定位FPGA策略树,得到策略结果返回,若中途匹配异常,用13个时钟周期直接返回默认设置策略结果,FPGA进行相应后续操作。\n[0047] 进一步,所述五元组包括协议号、源IP、目的IP、源端口和目的端口。\n[0048] 进一步,所述FPGA直接进行寻址策略匹配纯硬件处理。\n[0049] 采用上述进一步方案的有益效果是,纯硬件处理,软件系统异常不工作,业务处理依旧能正常运行不受影响,高效可靠。\n[0050] 进一步,所述策略树节点长度固定512字节,且树层高固定为13的特定树型结构。\n[0051] 采用上述进一步方案的有益效果是,策略树结构及匹配模式针对FPGA中存储策略,遍历匹配次数和存储空间均可控。\n[0052] 进一步,所述策略树的每个节点长度为256*2字节(Unsi gned short rule_path[256])存放下一跳节点序号。\n[0053] 采用上述进一步方案的有益效果是,FPGA直接地址定位逻辑处理简单高效,避免消耗大量时间在逻辑运算上,大大提高匹配效率;\n[0054] 进一步,所述策略树13层节点每层节点及子树节点值的内容都相同,会进行节点压缩合并。\n[0055] 采用上述进一步方案的有益效果是,压缩后占用空间比原有空间平均压缩5-10倍,本发明确保存储空间占用可更小,存储硬件成本可更低。\n[0056] 如图1所示,为本发明的策略树存储模式,即策略树的所有节点都是集中连续的块存储,每个节点定义唯一的位置编号,即上述中下一跳寻址偏移量(孩子节点序号[0-\n65535])。\n[0057] 如图2所示,为本发明的策略树的树形结构状态,即通过每个节点中下一跳寻址偏移量(孩子节点序号[0-65535])为连接线,将所有节点串连成一棵13层树高的策略树,策略匹配时从策略树根节点遍历13次即可得到最终策略规则结果,反之如果中间匹配没有发现匹配策略直接跳出遍历返回默认策略规则结果。\n[0058] 相关术语解释:\n[0059] FPGA(Field Programmable Gate Array),即现场可编程门阵列\n[0060] SPI(Serial PeripheralInterface),即串行外设接口\n[0061] RAM(Random Access Memory),即随机存储器\n[0062] SRAM(Static Random Access Memory),即静态随机存储器\n[0063] IP(Internet Protocol),即网络之间互连的协议,中文简称网协[0064] 上面所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神前提下,本领域普通工程技术人员对本发明技术方案做出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。
法律信息
- 2018-12-11
- 2016-07-06
实质审查的生效
IPC(主分类): H04L 29/06
专利申请号: 201410023681.3
申请日: 2014.01.20
- 2014-05-21
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |