全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210173630.3 (22)申请日 2022.02.24 (71)申请人 成都北中网芯科技有限公司 地址 610041 四川省成 都市武侯区益州大 道中段59 9号航天科创中心13号楼 (72)发明人 程潜  (74)专利代理 机构 中国兵器 工业集团公司专利 中心 11011 专利代理师 刘瑞东 (51)Int.Cl. H04L 9/32(2006.01) H04L 61/5007(2022.01) G06F 16/901(2019.01) G06F 16/903(2019.01) (54)发明名称 一种适合网络处理芯片存储超大规格会话 的方法 (57)摘要 本发明涉及一种适合网络处理芯片存储超 大规格会话的方法, 属于网络安全领域。 本发明 提取网络数据包中的五元组, 包括源IP地址、 目 的IP地址、 源端口、 目的端口和协议号, 在前面加 上key_hash_count形成key; 将key 的key_hash_ count赋值为X, 计算得到32位的hash_value=f (key); 计算该key的存储地址, addr=hash_ value%N, 准备插入key到位置a ddr; 遍历addr地 址上的链表, 即S个slot, 找到空闲的slot, 把相 关信息存储到slot, 存储会 话结束; 如果S个slot 满, 需再次hash, 判断hash的次数X, 如果X等于P, 表明未把该数据包存储到hash表, 那把该数据包 存储到芯片资源中, 反之X累加1, 继续计算Hash。 本发明使用较少的芯片资源存储 大量的会话, 节 省了芯片成本, 通过简单的多次hash运算, 降低 了技术难度, 加快了开发周期。 权利要求书1页 说明书4页 附图2页 CN 114499889 A 2022.05.13 CN 114499889 A 1.一种适合网络处理芯片存储超大规格会话的方法, 其特征在于, 该方法包括如下步 骤: 步骤一: 获取网络数据包; 步骤二: 提取网络数据包中的五元组, 包括源IP地址、 目的IP地址、 源端口、 目的端口和 协议号, 在前面加上key_hash_count形成key; 步骤三: 选定hash函数f, 根据实际的会话规格M, 槽位slot数量初始化为S, 桶的深度N 的值为(2*M)/S, 如有余数, N向上 取整, 设置 hash次数 X=1; 步骤四: 将key的key_hash_count赋值 为X, 计算得到 32位的hash_value=f(key); 步骤五: 计算该key的存 储地址, ad dr=hash_value%N, 准备插 入key到位置ad dr; 步骤六: 遍历addr地址上的链表, 即S个slot, 找到空闲的slot, 如果S个slot满, 需再次 hash, 跳到步骤八; 如找到, 进入第七步; 步骤七: 把相关信息存 储到slot, 存储会话结束; 步骤八: 判断hash的次数X, 如果X等于P, 跳到步骤 九, 反之X累加1, 跳到步骤四, 继续计 算Hash; 步骤九: 表明未把该 数据包存储到hash表, 那把该 数据包存储到芯片资源中。 2.如权利要求1所述的适合网络处理芯片存储超大规格会话的方法, 其特征在于, 所述 步骤一还 包括: 判断数据包的类型, 如果是分片包, 重组网络报文。 3.如权利要求1所述的适合网络处理芯片存储超大规格会话的方法, 其特征在于, 所述 key_hash_count为 4字节。 4.如权利要求1所述的适合网络处理芯片存储超大规格会话的方法, 其特征在于, 所述 hash函数f为crc 32。 5.如权利要求1所述的适合网络处理芯片存储超大规格会话的方法, 其特征在于, 所述 S为8。 6.如权利要求1所述的适合网络处理芯片存储超大规格会话的方法, 其特征在于, 所述 P设置为4。 7.如权利要求1所述的适合网络处理芯片存储超大规格会话的方法, 其特征在于, 所述 hash表存 储在DDR中。 8.如权利要求1所述的适合网络处理芯片存储超大规格会话的方法, 其特征在于, 所述 步骤九中的芯片资源为TCAM 。 9.如权利要求1 ‑8任一项所述的适合网络处理芯片存储超大规格会话的方法, 其特征 在于, 比较源、 目的IP地址的大小, 大的排在前面, 比较源、 目的端口的大小, 大的排在前面, 并在前面加上4字节的key_hash_count形成key。 10.如权利要求1 ‑8任一项所述的适合网络处理芯片存储超大规格会话的方法, 其特征 在于, 比较源、 目的IP地址的大小, 小的排在前面, 比较源、 目的端口的大小, 小的排在前面, 并在前面加上4字节的key_hash_count形成key。权 利 要 求 书 1/1 页 2 CN 114499889 A 2一种适合网 络处理芯片存 储超大规 格会话的方 法 技术领域 [0001]本发明属于网络安全领域, 具体涉及一种适合网络处理芯片存储超大规格会话的 方法。 背景技术 [0002]网络安全领域中, 无论是开发防火墙还是开发DPI、 IPS, 这些产品的背后都有一个 共同的需求就是把报文有序的组织起来, 还原用户在 网络上通信的过程, 而目前完成该需 求采用的技 术是创建会话, 把报文 按流来分类。 [0003]随着网络通信量的增加, 需要创建的会话数量也越来越多, 从几万条增加到百万 条, 在大型网络中, 会话数量甚至增加到几千万到上亿条。 在存储这些超大规格的会话时, 常采用的技术是hash, 由于其技术本身的特点, hash算法存在冲突, 当冲突 发生时有 各种处 理方式, 如丢弃数据报文, 不创建会话。 可在 网络安全领域中是不允许会话创建失败的, 如 要达到这个要求, 最简单的方式就增加hash的存储空间, 但是芯片对资源又是最敏感的, 不 能无限制增加, 并且还需要同时考虑芯片对网络报文的处理速度, 方案的复杂度等。 因此网 络处理芯片需要灵活的冲突解决方案。 目前hash冲突的解决方案主要从两方面考虑, 一个 是容量, 一个是查找速度。 Hash冲突链表方案是当产生hash冲突时, 通过链表的方式解决, 即有相同存 储地址的key组成一个链 表, 其组织方式如图1所示。 [0004]N代表桶的深度, X代 表链表的长度。 解决冲突的方式如下。 [0005]·选定hash函数为f。 [0006]·计算f(key1)/N =addr1, 把key1放在sl ot1。 [0007]·计算f(key2)/N=addr1, 于key1产生冲突, 把key2链接在key1后面, 即slot2的 位置。 [0008]·计算f(keyX)/N =addrX, 处理冲突。 [0009]该方案的优点是技 术简单, 便 于芯片实现。 [0010]缺点是在超大规格会话(如千万级)中, X的增长不受控制, 导致链表长度增加, 降 低了查找效率。 为了提高查找效率, 也可以把链表改成红黑树, 但增加了技术复杂度, 不便 于芯片实现。 [0011]一种变化的方案是固定X的值, 如为8, 增加N的值。 该方案的优点是查找效率固定, 便于芯片实现, 但是缺点是浪费存储空间, 在 超大规格(如 千万级)的会话中, 芯片的资源可 能满足不了N的增长需求。 [0012]因此现有的方案在超大规格会话下有以下缺陷。 [0013]·芯片存储资源利用率低; [0014]·查找效率低; [0015]·技术复杂度高。说 明 书 1/4 页 3 CN 114499889 A 3

PDF文档 专利 一种适合网络处理芯片存储超大规格会话的方法

文档预览
中文文档 8 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共8页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种适合网络处理芯片存储超大规格会话的方法 第 1 页 专利 一种适合网络处理芯片存储超大规格会话的方法 第 2 页 专利 一种适合网络处理芯片存储超大规格会话的方法 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-07 12:40:58上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。