CN114499889A - 一种适合网络处理芯片存储超大规格会话的方法 - Google Patents
一种适合网络处理芯片存储超大规格会话的方法 Download PDFInfo
- Publication number
- CN114499889A CN114499889A CN202210173630.3A CN202210173630A CN114499889A CN 114499889 A CN114499889 A CN 114499889A CN 202210173630 A CN202210173630 A CN 202210173630A CN 114499889 A CN114499889 A CN 114499889A
- Authority
- CN
- China
- Prior art keywords
- hash
- key
- address
- destination
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种适合网络处理芯片存储超大规格会话的方法,属于网络安全领域。本发明提取网络数据包中的五元组,包括源IP地址、目的IP地址、源端口、目的端口和协议号,在前面加上key_hash_count形成key;将key的key_hash_count赋值为X,计算得到32位的hash_value=f(key);计算该key的存储地址,addr=hash_value%N,准备插入key到位置addr;遍历addr地址上的链表,即S个slot,找到空闲的slot,把相关信息存储到slot,存储会话结束;如果S个slot满,需再次hash,判断hash的次数X,如果X等于P,表明未把该数据包存储到hash表,那把该数据包存储到芯片资源中,反之X累加1,继续计算Hash。本发明使用较少的芯片资源存储大量的会话,节省了芯片成本,通过简单的多次hash运算,降低了技术难度,加快了开发周期。
Description
技术领域
本发明属于网络安全领域,具体涉及一种适合网络处理芯片存储超大规格会话的方法。
背景技术
网络安全领域中,无论是开发防火墙还是开发DPI、IPS,这些产品的背后都有一个共同的需求就是把报文有序的组织起来,还原用户在网络上通信的过程,而目前完成该需求采用的技术是创建会话,把报文按流来分类。
随着网络通信量的增加,需要创建的会话数量也越来越多,从几万条增加到百万条,在大型网络中,会话数量甚至增加到几千万到上亿条。在存储这些超大规格的会话时,常采用的技术是hash,由于其技术本身的特点,hash算法存在冲突,当冲突发生时有各种处理方式,如丢弃数据报文,不创建会话。可在网络安全领域中是不允许会话创建失败的,如要达到这个要求,最简单的方式就增加hash的存储空间,但是芯片对资源又是最敏感的,不能无限制增加,并且还需要同时考虑芯片对网络报文的处理速度,方案的复杂度等。因此网络处理芯片需要灵活的冲突解决方案。目前hash冲突的解决方案主要从两方面考虑,一个是容量,一个是查找速度。Hash冲突链表方案是当产生hash冲突时,通过链表的方式解决,即有相同存储地址的key组成一个链表,其组织方式如图1所示。
N代表桶的深度,X代表链表的长度。解决冲突的方式如下。
·选定hash函数为f。
·计算f(key1)/N=addr1,把key1放在slot1。
·计算f(key2)/N=addr1,于key1产生冲突,把key2链接在key1后面,即slot2的位置。
·计算f(keyX)/N=addrX,处理冲突。
该方案的优点是技术简单,便于芯片实现。
缺点是在超大规格会话(如千万级)中,X的增长不受控制,导致链表长度增加,降低了查找效率。为了提高查找效率,也可以把链表改成红黑树,但增加了技术复杂度,不便于芯片实现。
一种变化的方案是固定X的值,如为8,增加N的值。该方案的优点是查找效率固定,便于芯片实现,但是缺点是浪费存储空间,在超大规格(如千万级)的会话中,芯片的资源可能满足不了N的增长需求。
因此现有的方案在超大规格会话下有以下缺陷。
·芯片存储资源利用率低;
·查找效率低;
·技术复杂度高。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种适合网络处理芯片存储超大规格会话的方法,以解决现有的的方案在超大规格会话下存在芯片存储资源利用率低;查找效率低;技术复杂度高等方面的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种适合网络处理芯片存储超大规格会话的方法,该方法包括如下步骤:
步骤一:获取网络数据包;
步骤二:提取网络数据包中的五元组,包括源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的存储地址,addr=hash_value%N,准备插入key到位置addr;
步骤六:遍历addr地址上的链表,即S个slot,找到空闲的slot,如果S个slot满,需再次hash,跳到步骤八;如找到,进入第七步;
步骤七:把相关信息存储到slot,存储会话结束;
步骤八:判断hash的次数X,如果X等于P,跳到步骤九,反之X累加1,跳到步骤四,继续计算Hash;
步骤九:表明未把该数据包存储到hash表,那把该数据包存储到芯片资源中。
进一步地,所述步骤一还包括:判断数据包的类型,如果是分片包,重组网络报文。
进一步地,所述key_hash_count为4字节。
进一步地,所述hash函数f为crc32。
进一步地,所述S为8。
进一步地,所述P设置为4。
进一步地,所述hash表存储在DDR中。
进一步地,所述步骤九中的芯片资源为TCAM。
进一步地,比较源、目的IP地址的大小,大的排在前面,比较源、目的端口的大小,大的排在前面,并在前面加上4字节的key_hash_count形成key。
进一步地,比较源、目的IP地址的大小,小的排在前面,比较源、目的端口的大小,小的排在前面,并在前面加上4字节的key_hash_count形成key。
(三)有益效果
本发明提出一种适合网络处理芯片存储超大规格会话的方法,本发明提出的技术方案利用DDR与TCAM结合,使用较少的芯片资源存储大量的会话,节省了芯片成本,通过简单的多次hash运算,降低了技术难度,加快了开发周期。并且,本发明通过比较源、目的IP地址的大小,比较源、目的端口的大小,使得会话中的两个不同方向的流使用同一个key,节省了存储空间。
附图说明
图1为现有的Hash冲突链表组织方式示意图;
图2为本发明的key的格式示意图;
图3为本发明的处理流程图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明的目的就是创建超大规格会话时解决以下问题。
控制存储空间,节省芯片资源。
保证查找效率。
降低技术复杂度,便于芯片实现。
如图3所示,本发明的技术方案中节省存储空间,保证查找效率的方法包括下列步骤:
步骤一:获取网络数据包,判断数据包的类型,如果是分片包,重组网络报文。
步骤二:提取网络数据包中的五元组,包括源IP地址、目的IP地址、源端口、目的端口和协议号,比较源、目的IP地址的大小,大的排在前面,比较源、目的端口的大小,大的排在前面,并在前面加上4字节的key_hash_count形成key。通过大小比较,使得会话中的两个不同方向的流使用同一个key,节省了存储空间。组装的key的格式如图2所示。也可以选择:比较源、目的IP地址的大小,小的排在前面,比较源、目的端口的大小,小的排在前面,并在前面加上4字节的key_hash_count形成key。
步骤三:选定hash函数f(如crc32),根据实际的会话规格M(如3000万会话),槽位slot初始化为S=8,桶的深度N的值为(2*M)/S,如有余数,N向上取整,设置hash次数X=1;
步骤四:将key的key_hash_count赋值为X,计算得到32位的hash_value=f(key)。key_hash_count为4字节。
步骤五:计算该key的存储地址,addr=hash_value%N(取余),准备插入key到位置addr。
步骤六:遍历addr地址上的链表,即8个slot,找到空闲的slot,如果8个slot满,需再次hash,跳到步骤八;如找到,进入第七步。
步骤七:把相关信息存储到slot,存储会话结束。
步骤八:判断hash的次数X,如果X等于P,跳到步骤九,反之X累加1,跳到步骤四,继续计算Hash。可选将P设置为4。
步骤九:表明未把该数据包存储到hash表,那把该会话信息存储到芯片资源TCAM中。通过前面步骤,会话经过多次hash后存储到TCAM中的条数是很少的,这也节省了宝贵的TCAM资源。
进一步地,本发明的hash表存储在DDR中。
本发明提出的技术方案利用DDR与TCAM结合,使用较少的芯片资源存储大量的会话,节省了芯片成本,通过简单的多次hash运算,降低了技术难度,加快了开发周期。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
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的存储地址,addr=hash_value%N,准备插入key到位置addr;
步骤六:遍历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为crc32。
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。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210173630.3A CN114499889B (zh) | 2022-02-24 | 2022-02-24 | 一种适合网络处理芯片存储超大规格会话的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210173630.3A CN114499889B (zh) | 2022-02-24 | 2022-02-24 | 一种适合网络处理芯片存储超大规格会话的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114499889A true CN114499889A (zh) | 2022-05-13 |
CN114499889B CN114499889B (zh) | 2023-06-30 |
Family
ID=81484320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210173630.3A Active CN114499889B (zh) | 2022-02-24 | 2022-02-24 | 一种适合网络处理芯片存储超大规格会话的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114499889B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247337A (zh) * | 2008-02-18 | 2008-08-20 | 华为技术有限公司 | 一种报文转发的方法和设备 |
CN104378263A (zh) * | 2014-11-27 | 2015-02-25 | 盛科网络(苏州)有限公司 | 基于tcp会话的网络流量监测方法、装置及报文处理芯片 |
KR101929804B1 (ko) * | 2017-10-24 | 2018-12-17 | 에스케이 텔레콤주식회사 | 세션 자원 관리 방법 및 장치 |
CN109634966A (zh) * | 2018-12-17 | 2019-04-16 | 广州天懋信息系统股份有限公司 | 基于哈希算法的千万级网络会话表管理方法、系统、介质和设备 |
CN113411380A (zh) * | 2021-06-01 | 2021-09-17 | 李远平 | 基于fpga可编程会话表的处理方法、逻辑电路和设备 |
CN113645140A (zh) * | 2021-07-06 | 2021-11-12 | 曙光信息产业(北京)有限公司 | 报文的统计方法、装置、存储介质及网络设备 |
-
2022
- 2022-02-24 CN CN202210173630.3A patent/CN114499889B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247337A (zh) * | 2008-02-18 | 2008-08-20 | 华为技术有限公司 | 一种报文转发的方法和设备 |
CN104378263A (zh) * | 2014-11-27 | 2015-02-25 | 盛科网络(苏州)有限公司 | 基于tcp会话的网络流量监测方法、装置及报文处理芯片 |
KR101929804B1 (ko) * | 2017-10-24 | 2018-12-17 | 에스케이 텔레콤주식회사 | 세션 자원 관리 방법 및 장치 |
CN109634966A (zh) * | 2018-12-17 | 2019-04-16 | 广州天懋信息系统股份有限公司 | 基于哈希算法的千万级网络会话表管理方法、系统、介质和设备 |
CN113411380A (zh) * | 2021-06-01 | 2021-09-17 | 李远平 | 基于fpga可编程会话表的处理方法、逻辑电路和设备 |
CN113645140A (zh) * | 2021-07-06 | 2021-11-12 | 曙光信息产业(北京)有限公司 | 报文的统计方法、装置、存储介质及网络设备 |
Non-Patent Citations (2)
Title |
---|
CHENCHENG YE ET AL.: "Hardware-Based Address-Centric Acceleration of Key-Value Store", 2021 IEEE INTERNATIONAL SYMPOSIUM ON HIGH-PERFORMANCE COMPUTER ARCHITECTURE (HPCA) * |
张建宇等: "PaSeM:并行无冲突的网络流量会话管理", 计算机学报, no. 07 * |
Also Published As
Publication number | Publication date |
---|---|
CN114499889B (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10764181B2 (en) | Pipelined evaluations for algorithmic forwarding route lookup | |
Lakshman et al. | High-speed policy-based packet forwarding using efficient multi-dimensional range matching | |
US7418505B2 (en) | IP address lookup using either a hashing table or multiple hash functions | |
Eatherton et al. | Tree bitmap: hardware/software IP lookups with incremental updates | |
Gupta | Algorithms for routing lookups and packet classification | |
JP4452183B2 (ja) | プログラマブル状態マシンのデータ構造を作成して入力単語連鎖を構文解析する方法、プログラマブル状態マシンのデータ構造を使用して入力単語連鎖に対応する結果として得られた値を検索する方法、ワイヤスピードのディープ・パケット処理を行う方法、ディープ・パケット処理のための装置、チップ埋め込み装置、およびプログラミング・コード命令を含むコンピュータ・プログラム(ディープ・パケット処理のための方法および装置) | |
Baboescu et al. | A tree based router search engine architecture with single port memories | |
US6985483B2 (en) | Methods and systems for fast packet forwarding | |
Bando et al. | FlashTrie: beyond 100-Gb/s IP route lookup using hash-based prefix-compressed trie | |
US20050018683A1 (en) | IP address storage technique for longest prefix match | |
CN111131084B (zh) | 一种QoS感知的OpenFlow流表查找方法 | |
CN109639579B (zh) | 组播报文的处理方法及装置、存储介质、处理器 | |
WO2017190559A1 (zh) | 路由查找方法、装置、分配节点、查找节点及入口节点 | |
MacDavid et al. | Concise encoding of flow attributes in SDN switches | |
US6970971B1 (en) | Method and apparatus for mapping prefixes and values of a hierarchical space to other representations | |
Yang et al. | Fast OpenFlow table lookup with fast update | |
CN106487769B (zh) | 一种访问控制列表acl的实现方法及装置 | |
US11140078B1 (en) | Multi-stage prefix matching enhancements | |
CN108337176B (zh) | 一种报文处理方法和装置 | |
Hsieh et al. | A classified multisuffix trie for IP lookup and update | |
CN114499889A (zh) | 一种适合网络处理芯片存储超大规格会话的方法 | |
Shi et al. | Re-designing compact-structure based forwarding for programmable networks | |
WO2014067055A1 (zh) | 流表刷新的方法及装置 | |
CN113965492A (zh) | 一种数据流统计方法及装置 | |
CN107948091B (zh) | 一种网包分类的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |