数据报文的分配方法及装置的制造方法

文档序号:9455839阅读:365来源:国知局
数据报文的分配方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及一种数据报文的分配方法及装置。
【背景技术】
[0002]随着第四代移动通信技术(4G)逐步进入商用,采用多核技术的大流量数据采集设备得到广泛使用,但多核的数据采集设备通常会存在如下两个问题:
[0003]问题一、进入采集设备的数据如何按照预设规则快速保序地分流到多个虚拟处理器(VCPU)中处理。
[0004]问题二、在各个VCPU中处理的数据,由于处理负荷的不均衡,硬件资源得不到充分使用,从而严重影响采集性能,并造成负荷过高的VCPU丢失数据。
[0005]针对上述第一个问题,通常都要求按照互联网协议(IP)地址进行分流,而在大多数设备上卷采用Hash分流的方式。采用该方式能够保证分流的简单快速,但却无法保证分流的均衡。为此,相关技术中提供了一种解决方案,依据报文源端口、目的端口、源IP、目的IP和协议内容进行Hash运算,然后依据Hash结果进行分流。但是因为Hash值的结果难以控制,所以会造成分流的不均衡。
[0006]针对上述第二个问题,需要依据流量大小进行分流,主要存在以下两种情况:
[0007]情况一、在初始分流时,需要依据流量大小进行分流,以确保各个VCPU中处理的负荷均衡;
[0008]情况二、对于已分流数据,需要定期检测是否存在流量突变,从而导致各个VCPU处理的流量不均衡。
[0009]为此,相关技术中虽然提供了一种依据所设阈值与流量大小进行流量动态调整的方法,但是其对流量动态调整的依据在于是否出现处理丢包,即设备检测到存在丢包现象发生才能够启用流量动态调整机制,所以此种动态分流调整方法无法保证数据处理过程中不出现丢包。

【发明内容】

[0010]本发明提供了一种数据报文的分配方法及装置,以至少解决相关技术中所采用的数据分流方式易造成各个VCPU处理的负荷不均衡的问题。
[0011]根据本发明的一个方面,提供了一种数据报文的分配方法。
[0012]根据本发明实施例的数据报文的分配方法包括:获取数据报文的分流信息,其中,分流信息用于确定对数据报文进行处理的第一 VCPU,第一 VCPU当前处理的数据流量与数据报文的估算流量之和小于第一预设阈值;按照分流信息将数据报文分配至第一 VCPU。
[0013]优选地,获取分流信息包括:获取与数据报文对应的IP地址;根据IP地址的前N个字节在预设索引结构的第一级索引中查找第二级索引的起始地址信息,其中,N为正整数;通过起始地址信息在第二级索引中查找与IP地址的后N个字节对应的分流信息。
[0014]优选地,在获取分流信息之前,还包括:根据前N个字节在第一级索引确定第二级索引的起始地址信息;在通过起始地址信息未能从第二级索引中查找到与后N个字节对应的分流信息的情况下,从当前处理不同数据流量的多个VCPU中选取处理数据流量最小的VCPU ;根据选取结果确定分流信息,并将分流信息填充至与后N个字节对应的位置。
[0015]优选地,在将数据报文发送至第一 VCPU之后,还包括:对第一 VCPU在接收数据报文后处理的数据流量进行实时统计;判断统计结果是否大于第二预设阈值,其中,第一预设阈值小于第二预设阈值;如果是,则将统计结果中的部分数据流量分配至第二 VCPU,其中,部分数据流量的源IP地址和/或目的IP地址相同,且在将部分数据流量分配至第二 VCPU之后,第一 VCPU处理的剩余数据流量小于第二预设阈值,第二 VCPU在接收部分数据流量后处理的数据流量小于第一预设阈值。
[0016]优选地,在将数据报文发送至第一 VCPU之后,还包括:在第二级索引中存储的分流信息中将原先分配的处理数据报文的第一 VCPU更新为第二 VCPU。
[0017]根据本发明的另一方面,提供了一种数据报文的分配装置。
[0018]根据本发明实施例的数据报文的分配装置包括:获取模块,用于获取数据报文的分流信息,其中,分流信息用于确定对数据报文进行处理的第一 VCPU,第一 VCPU当前处理的数据流量与数据报文的估算流量之和小于第一预设阈值;第一分配模块,用于按照分流信息将数据报文分配至第一 VCPU。
[0019]优选地,获取模块包括:获取单元,用于获取与数据报文对应的IP地址;第一查找单元,用于根据IP地址的前N个字节在预设索引结构的第一级索引中查找第二级索引的起始地址信息,其中,N为正整数;第二查找单元,用于通过起始地址信息在第二级索引中查找与IP地址的后N个字节对应的分流信息。
[0020]优选地,上述装置还包括:确定模块,用于根据前N个字节在第一级索引确定第二级索引的起始地址信息;选取模块,用于在通过起始地址信息未能从第二级索引中查找到与后N个字节对应的分流信息的情况下,从当前处理不同数据流量的多个VCPU中选取处理数据流量最小的VCPU ;处理模块,用于根据选取结果确定分流信息,并将分流信息填充至与后N个字节对应的位置。
[0021]优选地,上述装置还包括:统计模块,用于对第一 VCPU在接收数据报文后处理的数据流量进行实时统计;判断模块,用于判断统计结果是否大于第二预设阈值,其中,第一预设阈值小于第二预设阈值;第二分配模块,用于在判断模块输出为是时,将统计结果中的部分数据流量分配至第二 VCPU,其中,部分数据流量的源IP地址和/或目的IP地址相同,且在将部分数据流量分配至第二 VCPU之后,第一 VCPU处理的剩余数据流量小于第二预设阈值,第二 VCPU在接收部分数据流量后处理的数据流量小于第一预设阈值。
[0022]优选地,上述装置还包括:更新模块,用于在第二级索引中存储的分流信息中将原先分配的处理数据报文的第一 VCPU更新为第二 VCPU。
[0023]通过本发明实施例,采用获取数据报文的分流信息,其中,分流信息用于确定对数据报文进行处理的第一 VCPU,第一 VCPU当前处理的数据流量与数据报文的估算流量之和小于第一预设阈值;按照分流信息将数据报文分配至第一 VCPU,解决了相关技术中所采用的数据分流方式易造成各个VCPU处理的负荷不均衡的问题,从而实现了流量的均衡分流,确保了数据采集的稳定性。
【附图说明】
[0024]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0025]图1是根据本发明实施例的数据报文的分配方法的流程图;
[0026]图2是根据本发明优选实施例的实现查表分流功能所使用的二级索引表的示意图;
[0027]图3是根据本发明优选实施例的支持流量动态均衡的多核数据采集设备正常分流的流程图;
[0028]图4是根据本发明优选实施例的支持流量动态均衡的多核数据采集设备流量动态调整的流程图;
[0029]图5是根据本发明实施例的数据报文的分配装置的结构框图;
[0030]图6是根据本发明优选实施例的数据报文的分配装置的结构框图;
[0031]图7是根据本发明优选实施例的多核数据采集设备的结构示意图。
【具体实施方式】
[0032]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0033]图1是根据本发明实施例的数据报文的分配方法的流程图。如图1所示,该方法可以包括以下处理步骤:
[0034]步骤S102:获取数据报文的分流信息,其中,分流信息用于确定对数据报文进行处理的第一 VCPU,第一 VCPU当前处理的数据流量与数据报文的估算流量之和小于第一预设阈值;
[0035]步骤S104:按照分流信息将数据报文分配至第一 VCPU。
[0036]相关技术中所采用的数据分流方式易造成各个VCPU处理的负荷不均衡。采用如图1所示的方法,通过对数据报文进行估计获取到的估算流量与各个VCPU当前处理的数据流量之和与第一预设阈值进行比较,选取满足当前处理的数据流量与估算流量之和小于第一预设阈值的VCPU对上述数据报文进行处理。由此,解决了相关技术中所采用的数据分流方式易造成各个VCPU处理的负荷不均衡的问题,从而实现了流量的均衡分流,确保了数据采集的稳定性。
[0037]在优选实施过程中,上述第一 VCPU是当前各个VCPU中处理数据流量最小的VCPU。
[0038]优选地,在步骤S102中,获取分流信息可以包括以下操作:
[0039]步骤S1:获取与数据报文对应的IP地址;
[0040]步骤S2:根据IP地址的前N个字节在预设索引结构的第一级索引中查找第二级索引的起始地址信息,其中,N为正整数;
[0041]步骤S3:通过起始地址信息在第二级索引中查找与IP地址的后N个字节对应的分流信息。
[0042]图2是根据本发明优选实施例的实现查表分流功能所使用的二级索引表的示意图。如图2所示,首先分配一级索引存储空间(即分配OXFFFF个,建立索引号O?OXFFFF,其需
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1