[发明专利]基于多核系统的报文转发方法和装置有效
| 申请号: | 201510990469.9 | 申请日: | 2015-12-24 |
| 公开(公告)号: | CN105634958B | 公开(公告)日: | 2019-05-31 |
| 发明(设计)人: | 刘健男 | 申请(专利权)人: | 东软集团股份有限公司 |
| 主分类号: | H04L12/743 | 分类号: | H04L12/743;H04L29/06;H04L29/08 |
| 代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 张大威 |
| 地址: | 110168 辽*** | 国省代码: | 辽宁;21 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 多核 系统 报文 转发 方法 装置 | ||
1.一种基于多核系统的报文转发方法,其特征在于,包括:
接收报文,并从所述报文中提取五元组;
在全局会话哈希表中,无锁查找是否存在与所述五元组对应的会话,所述会话仅能被建立所述会话的CPU访问,且建立所述会话的CPU访问时采用无锁访问方式;
如果不存在,则在接收到报文的CPU内新建会话,根据新建的会话转发所述报文;
如果存在,确定所述会话属于的CPU;
如果所述会话属于的CPU是接收到报文的CPU,根据接收到报文的CPU内的会话转发所述报文;
如果所述会话属于的CPU不是接收到报文的CPU,则将所述报文转发给所述会话属于的CPU,并由所述会话属于的CPU根据会话转发所述报文;
所述报文转发方法,还包括:
在全局会话哈希表中,采用加锁方式添加哈希表项,或者,采用加锁方式删除哈希表项。
2.根据权利要求1所述的方法,其特征在于,所述接收报文,包括:
接收网卡发送的报文,其中,所述网卡采用接收端缩放RSS算法将报文分配给CPU,在采用RSS算法时,采用的私密密钥满足如下条件:以两个字节为一组划分私密密钥后,相邻的两组的数值相同。
3.根据权利要求1所述的方法,其特征在于,所述采用加锁方式添加哈希表项,包括:
获取待添加的哈希表项;
根据所述哈希表项中的五元组计算出对应的桶链表;
采用加锁方式,将所述待添加的哈希表项添加到所述桶链表的表头。
4.根据权利要求3所述的方法,其特征在于,所述将所述待添加的哈希表项添加到所述桶链表的表头,包括:
获取桶链表的原有的首个链表项;
保持桶链表的原有指针不变,将待添加的哈希表项的指针指向原有的首个链表项;
将桶链表的表头由指向原有的首个链表项更改为指向待添加的哈希表项。
5.根据权利要求1所述的方法,其特征在于,所述采用加锁方式删除哈希表项,包括:
确定待删除的哈希表项;
根据所述哈希表项中的五元组计算出对应的桶链表;
采用加锁方式,将所述待删除的哈希表项从所述桶链表中删除。
6.根据权利要求5所述的方法,其特征在于,所述将所述待删除的哈希表项从所述桶链表中删除,包括:
确定待删除的哈希表项的前一个哈希表项;
保持待删除的哈希表项的指针保持不变,将所述前一个哈希表项的指针指向所述待删除的哈希表项的后一个哈希表项;
释放待删除的哈希表项的指针;
删除待删除的哈希表项。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述全局会话哈希表包括多个哈希表项,所述哈希表项中记录:会话地址和会话方向。
8.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
预先为会话申请内存,并将所述会话存储在对应的内存中,其中,采用FIFO队列和缓存维护内存的申请和释放。
9.根据权利要求8所述的方法,其特征在于,所述将所述会话存储在对应的内存中,包括:
以结构体形式存储会话,所述结构体包括:左向部分、右向部分和公用部分,并将每个部分的常访问元素存储在缓存中。
10.根据权利要求1所述的方法,其特征在于,所述会话仅能被建立所述会话的CPU访问,且建立所述会话的CPU访问时采用无锁访问方式。
11.一种基于多核系统的报文转发装置,其特征在于,包括:
提取模块,用于接收报文,并从所述报文中提取五元组;
查找模块,用于在全局会话哈希表中,无锁查找是否存在与所述五元组对应的会话,所述会话仅能被建立所述会话的CPU访问,且建立所述会话的CPU访问时采用无锁访问方式;
新建模块,用于不存在所述会话时,则在接收到报文的CPU内新建会话,根据新建的会话转发所述报文;
确定模块,用于存在所述会话时,确定所述会话属于的CPU;
第一转发模块,用于在所述会话属于的CPU是接收到报文的CPU时,根据接收到报文的CPU内的会话转发所述报文;
第二转发模块,用于在所述会话属于的CPU不是接收到报文的CPU时,则将所述报文转发给所述会话属于的CPU,并由所述会话属于的CPU根据会话转发所述报文;
所述报文转发装置还包括:
写模块,用于在全局会话哈希表中,采用加锁方式添加哈希表项,或者,采用加锁方式删除哈希表项。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东软集团股份有限公司,未经东软集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510990469.9/1.html,转载请声明来源钻瓜专利网。





