CN102811169B - 采用哈希算法进行多核并行处理的vpn实现方法及*** - Google Patents
采用哈希算法进行多核并行处理的vpn实现方法及*** Download PDFInfo
- Publication number
- CN102811169B CN102811169B CN201210257170.9A CN201210257170A CN102811169B CN 102811169 B CN102811169 B CN 102811169B CN 201210257170 A CN201210257170 A CN 201210257170A CN 102811169 B CN102811169 B CN 102811169B
- Authority
- CN
- China
- Prior art keywords
- vpn
- data message
- processor core
- core
- data
- 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.)
- Expired - Fee Related
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及VPN技术领域,本发明公开了一种采用哈希算法进行多核并行处理的VPN实现方法及***,其具体包含以下步骤:根据VPN***中处理器核的数目构建哈希桶,哈希桶的深度等于处理器核的数目,哈希桶中每一个哈希值对应处理器核的一个编号,根据接收到的数据报文的五元组计算出哈希值,并根据哈希值查找出对应的处理器核,将数据报文发送给对应的处理器核进行处理;其中:五元组包括源和目的IP地址、源和目的传输层端口及IP报文协议号。本发明相比于现有技术,本发明可以极大地提高多处理器核的利用效率,实现多数据流并行加解密处理,达到很高的VPN吞吐率。
Description
技术领域
本发明涉及VPN技术领域,尤其涉及一种采用哈希算法进行多核并行处理的VPN实现方法及***。
背景技术
VPN(Virtual Private Network ,简称VPN)为虚拟专用网络的简称,目前,市场上的网络安全设备已逐渐采用配备多个硬件处理器核的多核平台,以图提高网络数据的吞吐率,特别是IPSEC VPN这种计算密集型的设备,多个处理器核的引入对提高整个***加解密传输吞吐率应该很有效果。但是在实际应用中效果并不好,要不就是网卡数据集中传送给个别或少数处理器核,要不就是每个数据报文非常随机的传递给不同的处理器核。前者导致负责负载分布严重的不平衡,从而多核利用率较低,多核实际变单核。后者导致数据报文乱序严重,因为不同报文长度的数据加解密所用时间差异很大,这对于基于TCP等可靠性要求较高的应用非常不利,会导致频繁无意义的重传,使整个传输效率急剧降低。
发明内容
针对现有技术中存在的VPN***中多核处理的时候核利用率低及可靠性差的技术问题,本发明公开了一种采用哈希算法进行多核并行处理的VPN实现方法。本发明的另外一个目的是提供一种采用哈希算法进行多核并行处理的VPN***。
本发明的目的通过下述技术方案来实现:
一种采用哈希算法进行多核并行处理的VPN实现方法,其具体包含以下步骤:根据VPN***中处理器核的数目构建哈希桶,哈希桶的深度等于处理器核的数目,哈希桶中每一个哈希值对应处理器核的一个编号,根据接收到的数据报文的五元组计算出哈希值,并根据哈希值查找出对应的处理器核,将数据报文发送给对应的处理器核进行处理;其中:五元组包括源和目的IP地址、源和目的传输层端口及IP报文协议号。
更进一地,上述每个处理器核单独创建一个VPN策略,在处理器核收到数据报文的时候,查找数据报文对应的VPN策略,按照查找得到的VPN策略对数据报文进行处理。
更进一地,上述方法还包括为每个哈希值分配一个先进先出队列,处理器核从先进先出队列中取出数据并进行处理,处理后的数据报文传递到网卡进行发送。
更进一地,上述方法还包括为每个处理器核设置数据负载处理上限,该上限根据单核的计算能力和多个核的平均处理负载决定,一旦数据负载超出处理上限,即将数据报文交由负载最轻的核进行处理。
更进一地,上述VPN策略的查找优先查找本处理器核的VPN策略列表,不能匹配数据报文的话再进一步一一查找其他处理器核的VPN策略列表。
更进一地,上述哈希值的计算公式如下:
其中哈希桶深度BD等于设备的处理器核的数目,数据报文源IP地址为Sip、源端口为Sport、目的IP地址为Dip、目的端口为Dport以及协议号为Proto。
本发明还公开了一种上述VPN实现方法的***,所述***包括:初始化模块、数据分流模块、数据处理模块以及数据发送模块,所述初始化模块、数据分流模块、数据处理模块以及数据发送模块依序连接,所述初始化模块用于构建哈希桶,并为每个哈希值分配一个先进先出队列,为每个处理器核创建独立的VPN策略列表;所述数据分流模块用于将网卡接受到的未经处理的数据报文,根据处理器核的数目以及数据报文的五元组采用哈希算法进行分流处理,将具有同一哈希值的数据报文存入同一个先进先出队列;所述数据处理模块进行VPN的加解密和封装解封装处理;所述数据发送模块将处理后的数据报文传递给网卡发送。
本发明的有益效果:本发明通过将接收到的数据报文,根据处理器核的数目以及数据报文的五元组采用哈希算法进行分流处理,并为每个处理器核维持独立的VPN策略列表,把不同的数据流分配给不同的处理器核处理,同时为每个哈希值分配一个FIFO(先进先出)队列以实现同一个数据流数据报文的保序,从而可以极大地提高多处理器核的利用效率,实现多数据流并行加解密处理,达到很高的VPN吞吐率。
附图说明
图1是本发明实施例提供的采用哈希算法进行多核并行处理的VPN实现流程图。
图2是本发明实施例提供的采用哈希算法进行多核并行处理的VPN具体方法。
图3 是本发明实施例提供的采用哈希算法进行多核并行处理的VPN***的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是本发明实施例提供的采用哈希算法进行多核并行处理的VPN实现流程图。
本发明公开了一种采用哈希算法进行多核并行处理的VPN实现方法,其具体包含以下步骤:根据VPN***中处理器核的数目构建哈希桶,哈希桶的深度等于处理器核的数目,哈希桶中每一个哈希值对应处理器核的一个编号,例如哈希值为1的对应处理器核1,哈希值为2的对应处理器核2,……,以此类推。根据接收到的数据报文的五元组计算出哈希值,并根据哈希值查找出对应的处理器核,并将数据报文发送给处理器核进行处理,其中:五元组包括源和目的IP地址、源和目的传输层端口及IP报文协议号。根据上述五元组计算出哈希值。通过给处理器核构建哈希桶,并采用哈希算法对数据报文进行分流,极大地提高了多处理器核的利用效率,实现多数据流并行加解密处理,达到很高的VPN吞吐率。
更进一步地,所述每个处理器核单独创建一个VPN策略,在处理器核收到数据报文的时候,查找数据报文对应的VPN策略,按照查找得到的VPN策略对数据报文进行处理。在每个处理器核上单独创建VPN策略,在处理器核收到数据报文后可以快速查找出对应的VPN策略并进行处理,增加了并行处理的效率。
更进一步地,所述方法还包括为每个哈希值分配一个先进先出队列,处理器核从先进先出队列中取出数据并进行处理,处理后的数据报文传递到网卡进行发送。采用队列的形式保存数据报文,实现同一个数据流数据报文的保序,进一步提高了并行处理的效率。
更进一步地,为每个处理器核设置数据负载处理上限,该上限根据单核的计算能力和多个核的平均处理负载决定,一旦数据负载超出处理上限,即将数据报文交由负载最轻的核进行处理。从而一个大流量数据流的数据报文可以由多个核并行处理。
更进一步地,所述VPN策略的查找优先查找本处理器核的VPN策略列表,不能匹配数据报文的话再进一步一一查找其他处理器核的VPN策略列表。这样也是进一步提高了并行处理的效率。
更进一步地,所述哈希值的计算公式可以但不限于
其中哈希桶深度BD等于设备的处理器核的数目,则任何一条源IP地址为Sip、源端口为Sport、目的IP地址为Dip、目的端口为Dport以及协议号为Proto。通过上述的哈希函数将五元组的参数映射成哈希值,通过哈希值找到数据报文的处理器核。
图2示出了本发明实施例提供的采用哈希算法进行多核并行处理的具体方法,详述如下:
在步骤S201中,根据处理器核数目构建哈希桶,为每个处理器核创建独立的VPN策略列表,并按照哈希桶的深度(对应于处理器的数目)为每个哈希值分配一个FIFO(先进先出)队列。
在步骤S202中,网卡中断发生时,网卡接收的数据报文根据处理器核的数目以及数据报文的五元组(源和目的IP地址、源和目的传输层端口及IP报文协议号)采用哈希算法进行分流处理,把不同的数据流分配给不同的处理器核处理。
在步骤S203中,各处理器核查找VPN策略列表,按照查找得到的VPN策略对数据报文进行处理。(优先查找本处理器核的VPN策略列表,不能匹配数据报文的话再进一步一一查找其他处理器核的VPN策略列表)
在步骤S204中,各处理器核按照先进先出的原则,从对应的FIFO队列中取出已经处理完的数据报文传递到网卡进行发送。
图3 是本发明实施例提供的采用哈希算法进行多核并行处理的VPN***的结构图。
本发明还公开了一种采用哈希算法进行多核并行处理的VPN***,所述***包括:初始化模块321、数据分流模块322、数据处理模块323以及数据发送模块324,所述初始化模块321、数据分流模块322、数据处理模块323以及数据发送模块324依序连接,所述初始化模块321用于按照处理器核的数目构建哈希桶,哈希桶的深度对应于处理器核的数目,为每个哈希值分配一个FIFO(先进先出)队列,并为每个处理器核创建独立的VPN策略列表;所述数据分流模块,用于将网卡接受到的未经处理的数据报文,根据处理器核的数目以及数据报文的五元组(源和目的IP地址、源和目的传输层端口及IP报文协议号)采用哈希算法进行分流处理,将具有同一哈希值的数据报文存入同一个FIFO队列并标记为“未处理”,从而把不同的数据流分配给不同的处理器核处理。如果该处理器核的负载已经超出处理上限(该上限根据单核的计算能力和多个核的平均处理负载决定),则通过处理器间中断的方式将该数据报文指针传递给负载最轻的处理器核,由该处理器核进行处理,但仍然维持该数据报文在原FIFO队列的顺序不变。
数据报文分流并标记以后由数据处理模块进行IPSEC VPN的加解密和封装解封装处理。每个处理器核都可以运行一个相同代码的数据处理模块,用于从对应的FIFO队列取出数据报文,并查找VPN策略对其进行IPSEC加解密和封装解封装等处理,处理完毕的数据报文标记为“已处理”。各处理器核也接受并处理通过处理器间中断传递过来的负载过重的核的数据报文。
最后由数据发送模块按照先进先出的原则和轮询的方式将各个FIFO队列中标记为“已处理”的数据报文传递给网卡发送。
这里已经通过具体的实施例子对本发明进行了详细描述,提供上述实施例的描述为了使本领域的技术人员制造或适用本发明,这些实施例的各种修改对于本领域的技术人员来说是容易理解的。本发明并不限于这些例子,或其中的某些方面。本发明的范围通过附加的权利要求进行详细说明。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (5)
1.一种采用哈希算法进行多核并行处理的VPN实现方法,其具体包含以下步骤:根据VPN***中处理器核的数目构建哈希桶,哈希桶的深度等于处理器核的数目,哈希桶中每一个哈希值对应处理器核的一个编号,根据接收到的数据报文的五元组计算出哈希值,并根据哈希值查找出对应的处理器核,将数据报文发送给对应的处理器核进行处理;其中:五元组包括源和目的IP地址、源和目的传输层端口及IP报文协议号;每个所述处理器核单独创建一个VPN策略,在处理器核收到数据报文的时候,查找数据报文对应的VPN策略,按照查找得到的VPN策略对数据报文进行处理;所述VPN策略的查找优先查找本处理器核的VPN策略列表,不能匹配数据报文的话再进一步一一查找其他处理器核的VPN策略列表。
2.如权利要求1所述的采用哈希算法进行多核并行处理的VPN实现方法,其特征在于所述方法还包括为每个哈希值分配一个先进先出队列,处理器核从先进先出队列中取出数据并进行处理,处理后的数据报文传递到网卡进行发送。
3.如权利要求1所述的采用哈希算法进行多核并行处理的VPN实现方法,其特征在于所述方法还包括为每个处理器核设置数据负载处理上限,该上限根据单核的计算能力和多个核的平均处理负载决定,一旦数据负载超出处理上限,即将数据报文交由负载最轻的核进行处理。
4.如权利要求1-3任意一个权利要求所述的采用哈希算法进行多核并行处理的VPN实现方法,其特征在于所述哈希值的计算公式如下:
其中哈希桶深度BD等于设备的处理器核的数目,数据报文源IP地址为Sip、源端口为Sport、目的IP地址为Dip、目的端口为Dport以及协议号为Proto。
5.一种实现权利要求1-4任意一个权利要求所述VPN实现方法的***,其特征在于所述***包括:初始化模块、数据分流模块、数据处理模块以及数据发送模块,所述初始化模块、数据分流模块、数据处理模块以及数据发送模块依序连接,所述初始化模块用于构建哈希桶,并为每个哈希值分配一个先进先出队列,为每个处理器核创建独立的VPN策略列表;所述数据分流模块用于将网卡接受到的未经处理的数据报文,根据处理器核的数目以及数据报文的五元组采用哈希算法进行分流处理,将具有同一哈希值的数据报文存入同一个先进先出队列;所述数据处理模块进行VPN的加解密和封装解封装处理;所述数据发送模块将处理后的数据报文传递给网卡发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210257170.9A CN102811169B (zh) | 2012-07-24 | 2012-07-24 | 采用哈希算法进行多核并行处理的vpn实现方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210257170.9A CN102811169B (zh) | 2012-07-24 | 2012-07-24 | 采用哈希算法进行多核并行处理的vpn实现方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102811169A CN102811169A (zh) | 2012-12-05 |
CN102811169B true CN102811169B (zh) | 2015-05-27 |
Family
ID=47234748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210257170.9A Expired - Fee Related CN102811169B (zh) | 2012-07-24 | 2012-07-24 | 采用哈希算法进行多核并行处理的vpn实现方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102811169B (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049336A (zh) * | 2013-01-06 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种基于哈希的网卡软中断负载均衡方法 |
CN103414556B (zh) * | 2013-08-16 | 2016-06-01 | 成都卫士通信息产业股份有限公司 | 一种ike密钥协商策略查找方法 |
CN104734993B (zh) * | 2013-12-24 | 2018-05-18 | 杭州华为数字技术有限公司 | 数据分流方法及分流器 |
CN105337896A (zh) * | 2014-07-25 | 2016-02-17 | 华为技术有限公司 | 报文处理方法和装置 |
CN105589829A (zh) * | 2014-09-15 | 2016-05-18 | 华为技术有限公司 | 基于多核处理器芯片的数据处理方法、装置以及*** |
CN105159779B (zh) * | 2015-08-17 | 2020-03-13 | 深圳中兴网信科技有限公司 | 提高多核cpu数据处理性能的方法和*** |
CN105939312A (zh) * | 2015-08-26 | 2016-09-14 | 杭州迪普科技有限公司 | 一种数据的传输方法和装置 |
CN105975433B (zh) * | 2016-06-30 | 2019-04-19 | 瑞斯康达科技发展股份有限公司 | 一种报文处理方法及装置 |
CN107846364A (zh) * | 2016-09-19 | 2018-03-27 | 阿里巴巴集团控股有限公司 | 一种报文的处理方法和装置 |
CN106899512A (zh) * | 2017-02-15 | 2017-06-27 | 北京浩瀚深度信息技术股份有限公司 | 基于fpga中dpi的多引擎实现方法及*** |
CN107483362A (zh) * | 2017-07-11 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种基于移位寄存器的报文调度方法 |
CN109327405B (zh) * | 2017-07-31 | 2022-08-12 | 迈普通信技术股份有限公司 | 报文保序方法及网络设备 |
CN107707479B (zh) * | 2017-10-31 | 2021-08-31 | 北京锐安科技有限公司 | 五元组规则的查找方法及装置 |
CN108306832B (zh) * | 2018-01-29 | 2021-07-27 | 北京启明星辰信息安全技术有限公司 | 一种网络流量分流方法及装置 |
CN108667733A (zh) * | 2018-03-29 | 2018-10-16 | 新华三信息安全技术有限公司 | 一种网络设备及报文处理方法 |
CN108718259B (zh) * | 2018-05-30 | 2020-07-03 | 新华三信息安全技术有限公司 | 一种报文处理方法及多核处理器 |
CN109062684A (zh) * | 2018-07-04 | 2018-12-21 | 南京南大光电工程研究院有限公司 | 一种多核处理器的硬件实时动态自适应动态负载平衡方法 |
CN110650020B (zh) * | 2019-09-25 | 2022-05-10 | 天津市滨海新区信息技术创新中心 | 拟态模糊判决方法、装置及*** |
CN110601950B (zh) * | 2019-10-08 | 2021-06-01 | 河南省云安大数据安全防护产业技术研究院有限公司 | 一种基于dtls协议的vpn网关***和实现方法 |
CN111669374B (zh) * | 2020-05-25 | 2022-05-27 | 成都安恒信息技术有限公司 | 一种IPsec VPN单条隧道软件加解密性能扩展方法 |
CN112383480B (zh) * | 2020-10-29 | 2022-11-04 | 曙光网络科技有限公司 | 流表的处理方法、装置、监管设备和存储介质 |
CN112714069A (zh) * | 2021-01-06 | 2021-04-27 | 上海交通大学 | 一种IPSec安全网关环境中将分流模块下放至网卡硬件的方法 |
CN113347230B (zh) * | 2021-05-13 | 2022-09-06 | 长沙星融元数据技术有限公司 | 基于可编程交换机的负载均衡方法、装置、设备及介质 |
CN113296705B (zh) * | 2021-05-27 | 2022-09-27 | 浙江萤火虫区块链科技有限公司 | 一种Filecoin中并行计算Poseidon Hash的架构*** |
CN113626160B (zh) * | 2021-07-07 | 2023-03-24 | 厦门市美亚柏科信息股份有限公司 | 一种基于cavium处理器的网络数据包高并发处理方法与*** |
CN113504989A (zh) * | 2021-07-08 | 2021-10-15 | 山东科技大学 | 一种近底多波束正交解调处理的多核并行处理方法 |
CN116016035B (zh) * | 2023-02-16 | 2023-06-13 | 北京天维信通科技有限公司 | 利用五元组在同一隧道中进行多路径业务应用的方法 |
CN117856878B (zh) * | 2024-03-07 | 2024-06-07 | 齐鲁空天信息研究院 | 多源卫星地面数据处理方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102483707A (zh) * | 2009-06-22 | 2012-05-30 | 思杰***有限公司 | 在负载平衡的多核环境中保持源ip的***和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452835B2 (en) * | 2009-12-23 | 2013-05-28 | Citrix Systems, Inc. | Systems and methods for object rate limiting in multi-core system |
CN101964749A (zh) * | 2010-09-21 | 2011-02-02 | 北京网康科技有限公司 | 一种基于多核构架的报文转发方法及*** |
CN102104544B (zh) * | 2011-01-25 | 2012-06-20 | 无锡网芯科技有限公司 | 硬件加速的多核处理器ip隧道分片报文流保序方法 |
-
2012
- 2012-07-24 CN CN201210257170.9A patent/CN102811169B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102483707A (zh) * | 2009-06-22 | 2012-05-30 | 思杰***有限公司 | 在负载平衡的多核环境中保持源ip的***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102811169A (zh) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102811169B (zh) | 采用哈希算法进行多核并行处理的vpn实现方法及*** | |
US20220124077A1 (en) | Secure forwarding of tenant workloads in virtual networks | |
EP3603003B1 (en) | Hardware-accelerated secure communication management | |
US11263352B2 (en) | Security plugin for a system-on-a-chip platform | |
CN105763557B (zh) | 交换芯片或np与cpu协同完成报文ipsec加密的方法与*** | |
US8474034B2 (en) | Method and apparatus for fast check and update of anti-replay window without bit-shifting in internet protocol security | |
CN102882789B (zh) | 一种数据报文处理方法、***及设备 | |
US8327129B2 (en) | Method, apparatus and system for internet key exchange negotiation | |
US11509638B2 (en) | Receive-side processing for encapsulated encrypted packets | |
US20190036893A1 (en) | SECURE COMMUNICATION ACCELERATION USING A SYSTEM-ON-CHIP (SoC) ARCHITECTURE | |
CN101051891A (zh) | 一种安全网关中进行安全策略统一处理的方法及装置 | |
Ozmen et al. | Dronecrypt-an efficient cryptographic framework for small aerial drones | |
KR20150013041A (ko) | 가상 스위치를 갖는 네트워크 인터페이스 카드 및 트래픽 플로우 정책 실시 | |
CN101834840A (zh) | 具有业务可视性的用于端到端网络安全性的高效密钥推导 | |
CN102065021B (zh) | 基于NetFPGA的IPSecVPN实现***及方法 | |
CN1747380A (zh) | 对分组加密数据进行解密 | |
Kim et al. | A case for smartnic-accelerated private communication | |
Bays et al. | A heuristic-based algorithm for privacy-oriented virtual network embedding | |
US20050063543A1 (en) | Hardware acceleration for Diffie Hellman in a device that integrates wired and wireless L2 and L3 switching functionality | |
CN115314195A (zh) | 一种使用具备密码功能的网卡实现高速IPSec的方法 | |
CN115174482B (zh) | 网络设备的报文分流方法和装置 | |
CN116260579A (zh) | 一种ip包的报文加解密方法 | |
US10958620B1 (en) | Systems and methods for improving packet forwarding throughput for encapsulated tunnels | |
CN103227742A (zh) | 一种IPSec隧道快速处理报文的方法 | |
CN114039795B (zh) | 软件定义路由器及基于该软件定义路由器的数据转发方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150527 Termination date: 20210724 |
|
CF01 | Termination of patent right due to non-payment of annual fee |