[发明专利]一种报文分流方法和网络设备有效
| 申请号: | 201210049250.5 | 申请日: | 2012-02-29 |
| 公开(公告)号: | CN102546441A | 公开(公告)日: | 2012-07-04 |
| 发明(设计)人: | 邓士恩 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
| 主分类号: | H04L12/56 | 分类号: | H04L12/56 |
| 代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 谢安昆;宋志强 |
| 地址: | 310053 浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 报文 分流 方法 网络设备 | ||
技术领域
本发明涉及通信技术领域,特别涉及一种报文分流方法和网络设备。
背景技术
现有多核设备中,将CPU0用作控制核,运行操作系统;将其他CPU用作数据核,负责数据接收和转发。流量在数据核上的分配越均匀,越能充分利用CPU资源,性能越好。目前的流量分配,通常是根据报文五元组,即源IP地址、目的IP地址、协议号、源端口号和目的端口号,进行分流,同一条流的报文进入同一个CPU处理,多条流分配到不同的CPU上处理。因此,一种好的分流方法,可以让流量尽可能均匀地分配在多个数据核上,对多核网络设备性能起着至关重要的作用。
现有实现分流的方法的具体流程为:接收报文,提取报文的五元组。报文五元组为源IP地址、目的IP地址、协议号、源端口号和目的端口号。根据该五元组进行CRC32哈希,将哈希值模数据核个数并将模结果加1,得到数值与CPU队列匹配,由于CPU队列与CPU一一对应,因此将接收的报文分配到匹配的CPU队列所对应的数据核进行处理。由于对模的结果进行了加1处理,因此结果不存在与匹配队列0的报文,即不需要有报文分配到CPU0控制核进行处理。
现有实现方法中的模运算,是计算复杂度很高的运算。目前多核处理器的CPU个数通常为2K(k=2,3,...),那么数据核的个数为2K-1,因此不能使用与运算取代模运算。这种使用模运算实现报文分流方法既消耗资源又影响性能,如果资源不够,将无法实现报文分流。
发明内容
有鉴于此,本发明提供一种报文分流方法和网络设备,能够提高报文分流效率,降低资源消耗。
为解决上述技术问题,本发明的技术方案是这样实现的:
一种报文分流方法,预设队列号为0到2K-1的队列,预设数值,所述预设数值按从大到小排序为M1,...,Mi,...,Mn,其中,M1根据队列号为0的队列上的流量与总流量的比值的范围确定,M2,...,Mi,...,Mn根据M1确定,K、n、i,M1,...,Mi,...,Mn为自然数,Mn-1>Mn=2,所述方法包括:
接收报文,根据报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算,将均衡运算值按照每份K比特数划分;
在均衡运算值划分的份数中,获取M1份K比特数,并进行求和运算,将所述求和运算的结果划分为M2份K比特数;
获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为M3份K比特数,并获取所述M3份K比特数进行求和运算,以此类推,直到获取Mn份K比特数并进行求和运算,将所述Mn份K比特数进行求和运算的结果划分为Mn份K比特数,获取当前Mn份K比特数进行求和运算;
将所述接收的报文分配到队列号与当前Mn份K比特数求和运算的结果相同的队列中。
一种报文分流方法,预设队列号为1到2K-1的队列,预设数值,所述预设数值从大到小排序为M1,...,Mi,...,Mn,其中,M1根据非均衡流量与总流量的比值的范围确定,M2,...,Mi,...,Mn根据M1确定,K、n、i,M1,...,Mi,...,Mn为自然数,Mn-1>Mn=2,所述方法包括:
接收报文,根据报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算,将均衡运算值按照每份K比特数划分;
在均衡运算值划分的份数中,获取M1份K比特数,并进行求和运算,将所述求和运算的结果划分为M2份K比特数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210049250.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:直动式电极丝前端处理装置
- 下一篇:电火花成型机电控装置





