一种基于P4的传输层负载均衡系统转让专利

申请号 : CN202210842345.6

文献号 : CN115297059B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张帆蒋加伦赵子鸣陈欢任奎赵新杰郭世泽

申请人 : 浙江大学浙江大学嘉兴研究院

摘要 :

本发明公开了一种基于P4的传输层负载均衡系统,包括连接状态信息表模块、快速连接缓存模块、流量特征存储模块、虚拟IP信息表模块、实例类别权重表模块、流量类型预测表模块和直接IP池版本信息表模块。本发明通过基于P4的数据转发平面依据各网络服务实例的性能权重高效转发数据包,并且实现基于机器学习规则数据驱动的流量分类,并且运用灵活的调度方法进行流量分发,使各实例的利用率均衡;其次本发明执行快速连接缓存维护各连接的一致性原则,解决直接IP池更新时数据包转发错误导致的负面影响。该系统具有可部署、可更新和高灵活性的优点,利用机器学习的优势执行流量的传输层负载均衡,进而实现高效的网络内转发,提高网络服务的聚合吞吐量。

权利要求 :

1.一种基于P4的传输层负载均衡系统,其特征在于,包括连接状态信息表模块、快速连接缓存模块、流量特征存储模块、虚拟IP信息表模块、实例类别权重表模块、流量类型预测表模块和直接IP池版本信息表模块:所述连接状态信息表模块通过连接状态信息表对网络流量进行哈希摘要匹配;若匹配成功,则将哈希摘要匹配得到的虚拟IP地址、直接IP池版本编号和流量类型写入元数据,并直接将数据包输入至直接IP池版本信息表模块;若匹配不成功则先仅将数据包的虚拟IP地址写入元数据,再将数据包输入到快速连接缓存模块中;

所述快速连接缓存模块接收连接状态信息表模块匹配不成功的数据包,并进行哈希索引匹配;若匹配成功,则将哈希索引匹配后得到的直接IP池版本编号和流量类型并写入元数据,且绕过流量特征存储模块,将数据包输入直接IP池版本信息表模块;若匹配不成功,将数据包输入流量特征存储模块;

所述流量特征存储模块接收快速缓存模块匹配不成功的数据包,统计当前数据包所属的数据流经过数据平面的数据包个数,得到数据包的顺序编号并将其写入元数据;

所述虚拟IP信息表模块利用虚拟IP信息表对流量特征存储模块输出的数据包进行匹配;所述数据包先与虚拟IP信息表进行虚拟IP地址匹配,将匹配得到最新的直接IP池版本编号和流量分发模式编号并写入元数据,并将更新标记写入元数据,并判断流量分发模式编号,若编号为1,则将数据包输入实例类别权重表模块;若编号为2,则数据包输入流量类型预测表模块;

所述实例类别权重表模块接收虚拟IP信息表模块输出的数据包;所述数据包先根据虚拟IP地址获取实例类别权重表,再与实例类别权重表进行索引匹配,得到流量类型并写入元数据,最后将该数据包输入直接IP池版本信息表模块;

所述流量类型预测表模块接收虚拟IP信息表模块输出的数据包;根据流量特征存储模块得到的数据包的顺序编号判断是否与流量类型预测表进行匹配;若不进行匹配,则数据包依据虚拟IP地址对应的组播表进行组播操作;若数据包与流量类型预测表进行匹配,则数据包依据分支编号依次与流量类型预测表中的条件分支表进行匹配,得到流量类型并写入元数据,并将数据包输入直接IP池版本信息表模块;其中,所述流量类型预测表为CART决策树算法训练得到的预测模型转换成在P4抽象转发模型中数据平面配置的流量类型预测表;

所述直接IP池版本信息表模块根据元数据中的流量类型对数据包分配直接IP地址,并基于元数据中的更新标记判断是否更新连接状态信息表和快速连接缓存模块。

2.根据权利要求1所述的基于P4的传输层负载均衡系统,其特征在于,所述连接状态信息表包括已确定直接IP的流量的哈希摘要;所述流量的哈希摘要由该流量的源IP地址、目标IP地址、源端口、目标端口和通信协议的五元组信息经过哈希散列算法计算得到。

3.根据权利要求1所述的基于P4的传输层负载均衡系统,其特征在于,所述快速连接缓存模块包括两个寄存器数组,其工作过程为:当数据流确定直接IP地址后,其连接状态信息会被存入第一寄存器数组,当通知控制平面批量更新连接状态信息表时,切换至第二寄存器数组进行存储,当连接状态信息表更新完成时,清空第一寄存器数组,重复上述过程,保存已确定直接IP但未更新至连接状态信息表模块的流量的哈希索引。

4.根据权利要求1所述的基于P4的传输层负载均衡系统,其特征在于,所述虚拟IP信息表模块中还包括分发模式编号更新的过程,具体为:(a)采集服务实例的数据包,依据五元组划分为流,通过比对流的数量、流的字节大小和流的数据包数量对实例运行的网络服务的运行时长的影响确定分发决定因素;

(b)若分发决定因素是流的数量,则分发模式编号更新为1;

(c)若分发决定因素不是流的数量,则判断分发决定因素是否与流的数量呈线性关系,若呈线性关系,则分发模式编号更新为1,否则更新为2。

5.根据权利要求1或2所述的基于P4的传输层负载均衡系统,其特征在于,所述实例类别权重表用于保存网络服务实例类别的索引,所述网络服务实例类别的索引由数据包的五元组信息经过哈希散列算法并对实例类别权重表的长度取模计算得到。

6.根据权利要求1所述的基于P4的传输层负载均衡系统,其特征在于,所述实例权重表模块中还包括实例类别权重表更新的过程,具体为:(a)控制平面轮询各服务实例的可用计算性能,所述的可用计算性能是实例每秒处理的分发决定因素数量与当前每秒接收的数量的差;

(b)各服务实例的可用计算性能除以最大可用计算性能乘3向下取整获得实例类别,相同实例类别的服务实例归为一类,各实例类别的可用计算性能是属于该类别的实例的可用计算性能的总和;

(c)各实例类别的可用计算性能除以最大公约数得到实例类别的权重;

(d)构建新的实例类别权重表,表的长度是各实例类别权重的总和N,表的匹配部分是索引,其范围为[0,N),各实例类别依据权重分配索引的数量,表的动作部分是索引所属的实例类别接收的流量类型;

(e)控制平面将新的实例类别权重表下发至数据平面。

7.根据权利要求1所述的基于P4的传输层负载均衡系统,其特征在于,所述流量特征存储模块还包括记录数据流的特征信息。

8.根据权利要求1或7所述的基于P4的传输层负载均衡系统,其特征在于,数据包依据分支编号依次与流量类型预测表中的条件分支表进行匹配的过程具体为:数据包执行流量类型预测需要初始化分支编号为1,查找首个条件分支表得到特征数组编号,依据该特征数组编号i、数据包的五元组哈希索引和流量特征存储模块记录的数据流的特征信息获得当前数据包所属的数据流的第i个特征信息,将该第i个特征信息与表项中的数值进行比较,若小于数值则分支编号左移1位;若大于数值则分支编号左移1位并加1;然后与下一个条件分支表匹配,直到最后一个条件分支表得到流量类型。

9.根据权利要求1所述的基于P4的传输层负载均衡系统,其特征在于,所述流量类型预测表模块中CART决策树算法训练得到预测模型的训练流程具体为:(a)采集数据平面的数据包,使用TShark提取信息,依据虚拟IP和五元组划分为流,提取前N个包的数据包长度作为特征,计算流的字节大小和数据包数量总和;

(b)对流按字节大小进行排序,遍历所有流获得两个字节大小阈值,阈值满足将流划分为3种流量类型,3类流的分发决定因素数量总和之比与各实例类别的权重之比接近,每个流依据流量类型打标签,得到预处理后的数据集;

(c)将步骤(b)得到的数据集分为训练集和测试集,使用CART决策树算法对训练集进行训练,使用GridSearchCV调参,使用交叉验证得到预测模型。

10.根据权利要求1所述的基于P4的传输层负载均衡系统,其特征在于,所述流量类型预测表模块中预测模型转化为在P4抽象转发模型中数据平面配置的流量类型预测表的流程具体为:(a)将预测模型转化为二叉树,树的非叶子节点保存条件语句,叶子节点保存分类结果,遍历二叉树获得叶子节点;

(b)将二叉树补充为满二叉树,若叶子节点的深度小于二叉树的最大深度,则对该节点进行补全,补全后的非叶子节点的条件语句左值为第一个特征,右值为0,补全后的叶子节点的分类结果为该节点的分类结果;

(c)对满二叉树进行层序遍历,同一深度的非叶子节点组成一个条件分支表,分支编号为节点层序遍历的顺序,特征数组编号为条件语句的左值,数值为条件语句的右值,叶子节点组成最后一个条件分支表,分支编号为节点层序遍历的顺序,流量类型为节点的分类结果;所有条件分支表组成流量类型预测表。

说明书 :

一种基于P4的传输层负载均衡系统

技术领域

[0001] 本发明涉及计算机网络技术领域,尤其涉及一种基于P4的传输层负载均衡系统。

背景技术

[0002] 现代数据中心提供了人们日常生活所需要的大量的服务和网络功能。据研究表明,平均44%的数据中心流量至少通过一个网络服务。随着用户量的增加,数据中心的流量快速增长,比如Facebook集群每年增加一倍,Google的数据中心流量从2008年到2014年增长了50倍。因此,网络服务提供商需要通过增加服务实例进行横向扩展,以保证用户的正常服务质量。数据中心一般通过各种负载均衡技术提高集群整体的运行效率,从而降低横向扩展的成本,并获得较好的服务质量。
[0003] 现有的传输层负载均衡系统一般采用3种架构。传统的负载均衡架构采用专用负载均衡器对流进行定向,但这些硬件设备非常昂贵且扩展性差,并且随着流量的快速增加,专用负载均衡器会很快成为性能瓶颈。分布式软件负载均衡架构具备高灵活性、高可用性、易于扩展等优点,但由于采用软件处理数据包的方式,导致高延迟、高抖动和单台设备吞吐量低等缺点。新兴的P4技术凭借可重配置行、协议无关性和平台无关性三大特性强化了数据平面的编程能力,使得基于P4的负载均衡架构同时具备传统负载均衡架构和分布式软件负载均衡架构的优点。
[0004] 现代数据中心采用的传输层负载均衡方案的流分发算法大多以散列方法为主,比如等价多路径路由(ECMP),这种方法不考虑服务实例的计算性能,对每一个实例分配近乎相等的连接数量,由于服务实例的计算性能不同,从而导致实例之间利用率不均。加权成本多路径路由(WCMP)和一致性散列算法则为每一个服务实例分配权重从而缓解了这一缺点,但由于连接的大小一般是重尾分布,不更新权重的WCMP也会随着分配次数的增加,导致实例之间的利用率不同,从而负载均衡性能下降。另外一些算法则采用轮询的方式更新WCMP的权重,从而缓解WCMP的缺点。上述流分发算法,都是以连接的数量作为分发依据,并未考虑网络服务的差异性,比如IDS网络服务,以连接数量为分配依据的流调度算法会产生较大的服务实例的利用率差异。

发明内容

[0005] 本发明的目的在于针对现有技术的不足,提供一种基于P4的传输层负载均衡系统,为不同的网络服务确定分发决定因素,利用机器学习实现流量分类,灵活运用多种调度方法对流量分发,在数据平面高效转发,从而使各服务实例的利用率均衡,提高网络服务的聚合吞吐量。
[0006] 本发明的目的是通过以下技术方案来实现的:本发明提供了一种基于P4的传输层负载均衡系统,包括连接状态信息表模块、快速连接缓存模块、流量特征存储模块、虚拟IP信息表模块、实例类别权重表模块、流量类型预测表模块和直接IP池版本信息表模块:
[0007] 所述连接状态信息表模块通过连接状态信息表对网络流量进行哈希摘要匹配;若匹配成功,则将哈希摘要匹配得到的虚拟IP地址、直接IP池版本编号和流量类型写入元数据,并直接将数据包输入至直接IP池版本信息表模块;若匹配不成功则先仅将数据包的虚拟IP地址写入元数据,再将数据包输入到快速连接缓存模块中;
[0008] 所述快速连接缓存模块接收连接状态信息表模块匹配不成功的数据包,并进行哈希索引匹配;若匹配成功,则将哈希索引匹配后得到的直接IP池版本编号和流量类型并写入元数据,且绕过流量特征存储模块,将数据包输入直接IP池版本信息表模块;若匹配不成功,将数据包输入流量特征存储模块;
[0009] 所述流量特征存储模块接收快速缓存模块匹配不成功的数据包,统计当前数据包所属的数据流经过数据平面的数据包个数,得到数据包的顺序编号并将其写入元数据;
[0010] 所述虚拟IP信息表模块利用虚拟IP信息表对流量特征存储模块输出的数据包进行匹配;所述数据包先与虚拟IP信息表进行虚拟IP地址匹配,将匹配得到最新的直接IP池版本编号和流量分发模式编号并写入元数据,并将更新标记写入元数据,并判断流量分发模式编号,若编号为1,则将数据包输入实例类别权重表模块;若编号为2,则数据包输入流量类型预测表模块;
[0011] 所述实例类别权重表模块接收虚拟IP信息表模块输出的数据包;所述数据包先根据虚拟IP地址获取实例类别权重表,再与实例类别权重表进行索引匹配,得到流量类型并写入元数据,最后将该数据包输入直接IP池版本信息表模块;
[0012] 所述流量类型预测表模块接收虚拟IP信息表模块输出的数据包;根据流量特征存储模块得到的数据包的顺序编号判断是否与流量类型预测表进行匹配;若不进行匹配,则数据包依据虚拟IP地址对应的组播表进行组播操作;若数据包与流量类型预测表进行匹配,则数据包依据分支编号依次与流量类型预测表中的条件分支表进行匹配,得到流量类型并写入元数据,并将数据包输入直接IP池版本信息表模块;其中,所述流量类型预测表为CART决策树算法训练得到的预测模型转换成在P4抽象转发模型中数据平面配置的流量类型预测表;
[0013] 所述直接IP池版本信息表模块根据元数据中的流量类型对数据包分配直接IP地址,并基于元数据中的更新标记判断是否更新连接状态信息表和快速连接缓存模块。
[0014] 本发明的有益效果是,本发明针对网络服务的差异性,确定流量分发决定因素,并且依据各网络服务实例的性能权重高效转发数据包,实现基于机器学习规则数据驱动的流量分类,灵活运用多种调度方法进行流量分发,使各实例的利用率均衡,提高网络服务的聚合吞吐量。本系统的负载均衡功能在数据平面实现,维护各连接一致性原则,具备高吞吐、低延迟、低抖动等优点,降低了传输层负载均衡的成本,并且具备移向边缘网络的能力。本系统具有可部署、可更新和高灵活性的优点,且与网络层协议无关。

附图说明

[0015] 图1是基于P4的传输层负载均衡系统流程图;
[0016] 图2为本发明基于P4的传输层负载均衡系统实现的架构图。

具体实施方式

[0017] 下面根据附图详细说明本发明。
[0018] 图1为本发明基于P4的传输层负载均衡系统流程图,图2为本发明基于P4的传输层负载均衡系统实现的架构图,包括连接状态信息表模块、快速连接缓存模块、流量特征存储模块、虚拟IP信息表模块、实例类别权重表模块、流量类型预测表模块和直接IP池版本信息表模块。
[0019] 所述连接状态信息表模块利用连接状态信息表对网络流量进行匹配,所述网络流量先与连接状态信息表进行哈希摘要匹配,得到虚拟IP地址、直接IP池版本编号和流量类型;若匹配成功,则绕过快速连接缓存模块直接进入直接IP池版本信息表模块,并将哈希摘要匹配得到虚拟IP地址、直接IP池版本编号和流量类型写入元数据,最后在直接IP池版本信息表模块中利用元数据进行匹配;若匹配不成功则先仅将数据包的虚拟IP地址写入元数据,再将数据包输入到快速连接缓存模块中,在快速连接缓存模块中再次进行匹配。在基于P4的抽象转发模型中的控制平面上对连接状态信息表进行定期更新。
[0020] 其中,所述连接状态信息表包括已确定直接IP的流量的哈希摘要;所述流量的哈希摘要由该流量的源IP地址、目标IP地址、源端口、目标端口和通信协议的五元组信息经过哈希散列算法(例如CRC32、CRC16、XOR16、CSUM16等)计算得到。
[0021] 所述快速连接缓存模块接收连接状态信息表模块匹配不成功的数据包;所述与连接状态信息表模块不匹配的数据包先在快速连接缓存模块中进行哈希索引匹配,若匹配成功,得到直接IP池版本编号和流量类型,并将其写入元数据,且绕过流量特征存储模块,将数据包输入直接IP池版本信息表模块进行匹配;若匹配不成功,则将数据包输入流量特征存储模块。
[0022] 其中,所述快速连接缓存模块包括两个寄存器数组,所述寄存器数组保存已确定直接IP但未更新至连接状态信息表模块的流量的哈希索引,所述流量的哈希索引由该流量的五元组信息经过哈希散列算法并对数组的长度取模计算得到;
[0023] 公式如下:Index=F(T)%;
[0024] 其中,Index为所述流量地哈希索引,F为哈希散列算法,T为流量地五元组信息,L为寄存器数组的长度。
[0025] 具体地,所述的寄存器数组的工作流程为:当数据流确定直接IP地址后,其连接状态信息会被存入第一寄存器数组,当通知控制平面批量更新连接状态信息表时,切换至第二寄存器数组进行存储,当连接状态信息表更新完成时,清空第一寄存器数组,如此往复;快速连接缓存模块是本系统维护各连接一致性原则的关键模块,因为通知控制平面更新到连接状态信息表完成更新一般需要250us的延迟,在此期间更新直接IP池可能导致一个流的后续数据包转发至不同的服务实例,因此快速连接缓存模块实现了对流的连接状态的快速更新,解决了直接IP池更新可能导致的各连接一致性原则违反的问题,因为更新之前的流的连接状态信息必然被存储在连接状态信息表或者快速连接缓存模块的其中一个寄存器数组中。
[0026] 所述流量特征存储模块接收快速缓存模块匹配不成功的数据包;所述流量特征存储模块包括一个数据包计数器和N个特征数组,所述数据包计数器统计当前数据包所属的数据流经过数据平面的数据包个数,根据当前数据包所属的流量的哈希索引更新数据包个数,得到数据包的顺序编号并写入元数据;所述数据包的顺序编号的范围为[1,N];所述特征数组保存各流量的前N个数据包的特征信息,第i个数据包根据数据包所属的流量的哈希索引将数据包的特征信息写入第i个特征数组;所述数据包的特征信息是标准元数据中记录的数据包长度;所述N为自定义数值。
[0027] 所述虚拟IP信息表模块利用虚拟IP信息表对网络数据包进行匹配,所述虚拟IP信息表包括网络服务的虚拟IP地址,所述数据包先与虚拟IP信息表进行虚拟IP地址匹配,得到最新的直接IP池版本编号和流量分发模式编号并写入元数据,并将更新标记写入元数据,并判断流量分发模式编号,若编号为1,则将数据包输入实例类别权重表模块;若编号为2,则数据包输入流量类型预测表模块。
[0028] 其中,所述更新标记用于在直接IP池版本信息表模块中判断是否更新连接状态信息表和快速连接缓存模块。
[0029] 其中,所述虚拟IP信息表模块还包括分发模式编号更新的流程,具体为:
[0030] (a)采集服务实例的数据包,依据五元组划分为流,通过比对流的数量、流的字节大小和流的数据包数量对实例运行的网络服务的运行时长的影响确定分发决定因素;
[0031] 示例性地,将采集的数据包按流随机分为两组数据集,分别为A组和B组,对两组数据集统计信息获得流的数量FA和FB、流的字节大小SA和SB、流的数据包数量PA和PB,并且两组分别在相同的实例下运行网络服务得到运行时长TA和TB,将两组数据集的统计信息相除得到流的数量的比值 流的字节大小的比值 和流的数据包数量的比值将两组数据集的运行时长相除得到运行时长的比值 最后比较Rf、Rs、Rp与Rt的大小获得流的数量对运行时长的影响程度 流的字节大小对运行时长的影响程度 和流的数据包数量对运行时长的影响程度 将影响程度最大
的确定为分发决定因素;
[0032] (b)若分发决定因素是流的数量,则分发模式编号更新为1;
[0033] (c)若分发决定因素不是流的数量,则判断分发决定因素是否与流的数量呈线性关系,若呈线性关系,则分发模式编号更新为1;否则更新为2。
[0034] 所述实例类别权重表模块接收虚拟IP信息表模块输出的数据包;所述实例类别权重表模块包括各虚拟IP地址对应的实例类别权重表;所述实例类别权重表保存网络服务实例类别的索引,所述网络服务实例类别的索引由数据包的五元组信息经过哈希散列算法并对实例类别权重表的长度取模计算得到;所述数据包先根据虚拟IP地址获取实例类别权重表,再与实例类别权重表进行索引匹配,得到流量类型并写入元数据,最后进入直接IP池版本信息表模块。
[0035] 其中,所述实例权重表模块中还包括实例类别权重表更新的过程,具体为:
[0036] (a)控制平面轮询各服务实例的可用计算性能,所述的可用计算性能是实例每秒处理的分发决定因素数量与当前每秒接收的数量的差;
[0037] 公式如下:A=C‑L;
[0038] 其中,A为可用计算性能,C为网络服务实例每秒能够处理的分发决定因素的数量,L为当前网络服务实例的负载,即每秒接收的分发决定因素的数量。
[0039] (b)各服务实例的可用计算性能除以最大可用计算性能乘3向下取整获得实例类别,相同实例类别的服务实例归为一类,各实例类别的可用计算性能是属于该类别的实例的可用计算性能的总和;
[0040] 公式如下:
[0041] 其中,i为网络服务实例编号,T为实例类别,A为当前服务实例的可用计算性能,max为获取最大值函数,Ai为编号是i的服务实例的可用计算性能,max(Ai)为获取各服务实例的可用计算性能的最大值。
[0042] (c)各实例类别的可用计算性能除以最大公约数得到实例类别的权重;
[0043] 公式如下:
[0044] 其中,i为实例类别编号,W是实例类别的权重,A是当前实例类别的可用计算性能,gcd为欧几里得算法,Ai为实例类别编号为i的实例类别的可用计算性能,gcd(Ai)为获取各实例类别的可用计算性能的最大公约数。
[0045] (d)构建新的实例类别权重表,该表的长度是各实例类别权重的总和N,表的匹配部分是索引,其范围为[0,N),各实例类别依据权重分配索引的数量,表的动作部分是索引所属的实例类别接收的流量类型;
[0046] (e)控制平面将新的实例类别权重表下发至数据平面。
[0047] 所述流量类型预测表模块接收虚拟IP信息表模块输出的数据包;所述流量类型预测表模块包括各虚拟IP地址对应的流量类型预测表;将CART决策树算法训练得到的预测模型转换成在P4抽象转发模型中数据平面配置的流量类型预测表;所述流量类型预测表包括i‑1N个条件分支表;所述条件分支表是匹配动作表,第i个条件分支表包含2 个表项,前N‑1个条件分支表的表项包括分支编号、特征数组编号和数值,第N个条件分支表的表项包括分支N
编号和流量类型;所述分支编号为正整数,范围为[1,2‑1];所述数据包依据元数据中保存的数据包的顺序编号判断是否与流量类型预测表进行匹配;若顺序编号小于N,则与流量类型预测表不进行匹配,数据包依据虚拟IP地址对应的组播表进行组播操作;若是则数据包依据分支编号依次与流量类型预测表中的条件分支表进行匹配,得到流量类型并写入元数据,并将数据包输入直接IP池版本信息表模块;所述N是预测模型的深度;
[0048] 具体地,数据包执行流量类型预测需要初始化分支编号为1,查找首个条件分支表得到特征数组编号,依据该特征数组编号i、数据包的五元组哈希索引和流量特征存储模块记录的数据流的特征信息获得当前数据包所属的数据流的第i个特征信息,将该第i个特征信息与表项中的数值进行比较,若小于数值则分支编号左移1位;若大于数值则分支编号左移1位并加1;然后与下一个条件分支表匹配,直到最后一个条件分支表得到流量类型。
[0049] 其中,所述流量类型预测表模块中预测模型的训练流程具体为:
[0050] (a)采集数据平面的数据包,使用TShark提取信息,依据虚拟IP和五元组划分为流,提取前N个包的数据包长度作为特征,计算流的字节大小和数据包数量总和;
[0051] (b)对流按字节大小进行排序,遍历所有流获得两个字节大小阈值,阈值满足将流划分为3种流量类型,3类流的分发决定因素数量总和之比与各实例类别的权重之比接近,每个流依据流量类型打标签,得到预处理后的数据集;
[0052] (c)将步骤(b)得到的数据集分为训练集和测试集,使用CART决策树算法对流量进行训练,将数据集分为训练集和测试集,本发明实施例中所述训练集和测试集分别占70%和30%,使用GridSearchCV调参,使用交叉验证得到分类预测模型。
[0053] 其中,所述流量类型预测表模块中预测模型转化为流量类型预测表的流程具体为:
[0054] (a)将预测模型转化为二叉树,树的非叶子节点保存条件语句,叶子节点保存分类结果,遍历二叉树获得叶子节点;
[0055] (b)将二叉树补充为满二叉树,若叶子节点的深度小于二叉树的最大深度,则对该节点进行补全,补全后的非叶子节点的条件语句左值为第一个特征,右值为0,补全后的叶子节点的分类结果为该节点的分类结果;
[0056] (c)对满二叉树进行层序遍历,同一深度的非叶子节点组成一个条件分支表,分支编号为节点层序遍历的顺序,特征数组编号为条件语句的左值,数值为条件语句的右值,叶子节点组成最后一个条件分支表,分支编号为节点层序遍历的顺序,流量类型为节点的分类结果,所有条件分支表组成流量类型预测表。
[0057] 所述直接IP池版本信息表模块根据实例类别权重表模块和流量类型预测表模块给出的流量类型为数据包分配直接IP地址;所述直接IP池版本信息表模块包括各虚拟IP地址对应的直接IP池版本信息表;所述直接IP池版本信息表包括不同版本编号的直接IP池信息表;所述直接IP池信息表包括3个流量类型映射表;所述流量类型映射表包括网络服务实例的索引;所述实例的索引由数据包的五元组信息经过哈希散列算法并对映射表的长度取模计算得到;数据包依据实例的索引和元数据中保存的虚拟IP地址、直接IP池版本编号、流量类型得到直接IP地址;所述直接IP池版本信息表模块依据元数据中的更新标记判断是否更新,若否则数据包依据直接IP地址由数据平面转发;若是则通知控制平面更新连接状态信息表模块中的连接状态信息表,直接更新快速连接缓存模块中的寄存器数组并清空流量特征存储模块中该数据包所属的流量的哈希索引对应的数据包计数器和特征数组的内容,最后数据包依据直接IP地址由数据平面转发。
[0058] 本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的。
[0059] 应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。