【技术实现步骤摘要】
本专利技术涉及网络通信
,尤其涉及一种基于多核系统的报文转发方法和装置。
技术介绍
随着技术的发展,目前已普遍使用多核处理器。多核处理器的出现,是期待处理能力可以因为中央处理器(CentralProcessingUnit,CPU)个数的增加而翻倍。然而,由于多核之间需要共享资源,互相存在竞争,通常在CPU使用共享资源时会采用加锁方式,锁的使用会导致多核并发时性能下降。基于多核系统的报文转发时,需要基于会话表对报文进行转发。会话表资源的设计以及查找会话表成为影响多核系统转发报文的关键。通常是通过查找全局会话哈希表来查找到会话表,目前在查找全局会话哈希表时采用加锁方式,而加锁本身会带来性能开销,影响多核系统的报文转发性能。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的一个目的在于提出一种基于多核系统的报文转发方法,该方法可以提高多核系统的报文转发性能。本专利技术的另一个目的在于提出一种基于多核系统的
【技术保护点】
一种基于多核系统的报文转发方法,其特征在于,包括:接收报文,并从所述报文中提取五元组;在全局会话哈希表中,无锁查找是否存在与所述五元组对应的会话;如果不存在,则在接收到报文的CPU内新建会话,根据新建的会话转发所述报文;如果存在,确定所述会话属于的CPU;如果所述会话属于的CPU是接收到报文的CPU,根据接收到报文的CPU内的所述会话转发所述报文;如果所述会话属于的CPU不是接收到报文的CPU,则将所述报文转发给所述会话属于的CPU,并由所述会话属于的CPU根据所述会话转发所述报文。
【技术特征摘要】
1.一种基于多核系统的报文转发方法,其特征在于,包括:
接收报文,并从所述报文中提取五元组;
在全局会话哈希表中,无锁查找是否存在与所述五元组对应的会话;
如果不存在,则在接收到报文的CPU内新建会话,根据新建的会话转
发所述报文;
如果存在,确定所述会话属于的CPU;
如果所述会话属于的CPU是接收到报文的CPU,根据接收到报文的CPU
内的所述会话转发所述报文;
如果所述会话属于的CPU不是接收到报文的CPU,则将所述报文转发
给所述会话属于的CPU,并由所述会话属于的CPU根据所述会话转发所述
报文。
2.根据权利要求1所述的方法,其特征在于,所述接收报文,包括:
接收网卡发送的报文,其中,所述网卡采用RSS算法将报文分配给CPU,
在采用RSS算法时,采用的私密密钥满足如下条件:以两个字节为一组划分私
密密钥后,相邻的两组的数值相同。
3.根据权利要求1所述的方法,其特征在于,还包括:
在全局会话哈希表中,采用加锁方式添加哈希表项,或者,采用加锁方式
删除哈希表项。
4.根据权利要求3所述的方法,其特征在于,所述采用加锁方式添加哈
希表项,包括:
获取待添加的哈希表项;
根据所述哈希表项中的五元组计算出对应的桶链表;
采用加锁方式,将所述待添加的哈希表项添加到所述桶链表的表头。
5.根据权利要求4所述的方法,其特征在于,所述将所述待添加的哈希
表项添加到所述桶链表的表头,包括:
获取桶链表的原有的首个链表项;
保持桶链表的原有指针不变,将待添加的哈希表项的指针指向原有的首个
链表项;
将桶链表的表头由指向原有的首个链表项更改为指向待添加的哈希表项。
6.根据权利要求3所述的方法,其特征在于,所述采用加锁方式删除哈
希表项,包括:
确定待删除的哈希表项;
根据所述哈希表项中的五元组计算出对应的桶链表;
采用加锁方式,将所述待删除的哈希...
【专利技术属性】
技术研发人员:刘健男,
申请(专利权)人:东软集团股份有限公司,
类型:发明
国别省市:辽宁;21
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。