多核多线程系统中IPSec转发的方法

文档序号:7805851阅读:360来源:国知局
专利名称:多核多线程系统中IPSec转发的方法
技术领域
本发明涉及网络安全技术领域,尤其涉及一种多核多线程系统中IPSec转发的方法。
背景技术
因特网协议安全(IPkc),是由 IETFanternet Engineering Task Force)定义的一套在网络层提供因特网协议(IP)安全性的协议,其通过对数据加密、认证、完整性检查来保证数据传输的可靠性、私有性、保密性。它由一系列RFC文档组成,其中RFC2401定义 IPSec的基本结构;RFC2402定义IPkc的验证头(AH) ;RFC2406定义IPkc的封装安全载荷(ESP) ;RFC2409定义IPSec的因特网密钥交换(IKE)。IPSec协议包括AH、ESP、IKE等。ESP封装安全载荷为IP载荷提供数据加密和验证的功能。AH认证头为IP头提供数据完整性和验证的功能。数据加密和验证算法由安全相关(SA)指定。IKE密钥交换为IPSec协议生成密钥。安全策略数据库(SPD)决定两个实体之间能否通讯及通讯转码方式。解析域(DOI)用来组合相关协议,通过使用ISAKMP协商安全连接。现有的Psec技术通常采用基于单核处理器的处理方式,加解密芯片将解密后的报文放入解密队列,此时由一个线程处理解密队列,由于线程对解密后的报文要做包括 nat、aaa、路由等三层业务,在处理速度上一个加解密芯片的处理速度大于一个cpu处理速度,当加解密芯片满负荷运转时,会导致报文丢包,报文处理瓶颈限制了 cpu处理能力。现有技术通过增加解密队列的队列长度来缓冲由于加解密芯片和cpu处理速度不同导致的丢包,这种方法在网路流量时大时小时能起到一定的缓解作用,但并不能根本解决单个cpu性能低导致的整机处理能力下降的问题。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是提供一种多核多线程系统中IPSec转发的方法,其能够提高整机IPSec报文处理性能。( 二 )技术方案为解决上述问题,本发明提供了一种多核多线程系统中IPSec转发的方法,包括以下步骤A 多线程中的一个线程读取解密后的报文;B 该线程对所读取的解密后的报文重新计算ip五元组,并根据计算结果将解密后的报文放入多个hash分发队列;C 多线程中的其他线程并行处理每个hash分发队列中的报文。优选地,所述步骤B中,根据计算结果将解密后的报文放入多个分发hash队列包括将计算结果中ip五元组不同的报文放入不同的hash分发队列。
优选地,所述步骤C进一步包括线程分别判断每个hash分发队列是否正在被别的线程处理,如果没有被别的线程处理,且该队列需要被处理,则获取该队列的处理权,并循环处理该队列中的报文,处理完毕后放弃该队列的处理权。
优选地,所述ip五元组为源IP地址,源端口,目的IP地址,目的端口,和传输层协议号。
(三)有益效果
本发明多核多线程系统中IPSec转发的方法采用报文分发机制,将报文通过ip五元组重新进行hash计算,不同ip五元组的报文放入不同队列,通过多个CPU协作处理多队列的方法提高整机IPSec报文处理性能。由于多个cpu线程协同处理解密后的报文,速度大于一个cpu线程处理解密后的报文速度,因此本发明根本解决了由于单个cpu线程性能低于加解密芯片处理速度导致ipsec处理慢的问题。


图1为本发明实施方式中所述多核多线程系统中IPSec转发的方法的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本发明所述的多核多线程系统中IPSec转发的方法,包括以下步骤
A 多线程中的一个线程读取解密后的报文;
B 该线程对所读取的解密后的报文重新计算ip五元组,并根据计算结果将解密后的报文放入多个hash分发队列;
本步骤中,将计算结果中ip五元组不同的报文放入不同的hash分发队列。所述 ip五元组为源IP地址,源端口,目的IP地址,目的端口,和传输层协议号。
C 多线程中的其他线程并行处理每个hash分发队列中的报文。
本步骤中,线程分别判断每个hash分发队列是否正在被别的线程处理,如果没有被别的线程处理,且该队列需要被处理,则获取该队列的处理权,并循环处理该队列中的报文,处理完毕后放弃该队列的处理权。
该系统包括多个CPU和一个硬件加解密处理器,其中,每个CPU绑定一个线程。本发明采用报文分发机制,将报文再次通过ip五元组进行hash计算,不同ip五元组的报文放入不同队列,通过多个CPU协作处理多队列的方法提高整机IPSec报文处理性能。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。权利要求
1.一种多核多线程系统中IPSec转发的方法,其特征在于,包括以下步骤A 多线程中的一个线程读取解密后的报文;B 该线程对所读取的解密后的报文重新计算ip五元组,并根据计算结果将解密后的报文放入多个hash分发队列;C 多线程中的其他线程并行处理每个hash分发队列中的报文。
2.如权利要求1所述的多核多线程系统中IPSec转发的方法,其特征在于,所述步骤B 中,根据计算结果将解密后的报文放入多个分发hash队列包括将计算结果中ip五元组不同的报文放入不同的hash分发队列。
3.如权利要求1所述的多核多线程系统中IPSec转发的方法,其特征在于,所述步骤C 进一步包括线程分别判断每个hash分发队列是否正在被别的线程处理,如果没有被别的线程处理,且该队列需要被处理,则获取该队列的处理权,并循环处理该队列中的报文,处理完毕后放弃该队列的处理权。
4.如权利要求1所述的多核多线程系统中IPSec转发的方法,其特征在于,所述ip五元组为源IP地址,源端口,目的IP地址,目的端口,和传输层协议号。
全文摘要
本发明公开了一种多核多线程系统中IPSec转发的方法,包括以下步骤A多线程中的一个线程读取解密后的报文;B该线程对所读取的解密后的报文重新计算ip五元组,并根据计算结果将解密后的报文放入多个hash分发队列;C多线程中的其他线程并行处理每个hash分发队列中的报文。本发明多核多线程系统中IPSec转发的方法采用报文分发机制,将报文通过ip五元组重新进行hash计算,不同ip五元组的报文放入不同队列,通过多个CPU协作处理多队列的方法提高整机IPSec报文处理性能。由于多个cpu线程协同处理解密后的报文,速度大于一个cpu线程处理解密后的报文速度,因此本发明根本解决了由于单个cpu线程性能低于加解密芯片处理速度导致ipsec处理慢的问题。
文档编号H04L29/06GK102546617SQ201110450898
公开日2012年7月4日 申请日期2011年12月29日 优先权日2011年12月29日
发明者陈海滨 申请人:汉柏科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1