数据中心网络拥塞控制方法、装置、设备及存储介质与流程

未命名 10-26 阅读:89 评论:0


1.本技术涉及计算机技术领域,尤其涉及一种数据中心网络拥塞控制方法、装置、设备及存储介质。


背景技术:

2.随着云计算数据中心技术的发展,成千上万台服务器节点在数据中心中组成集群,节点的计算、存储、网络等资源被抽象以服从统一的管理。而在数据中心中存在网络拥塞的问题亟待解决。
3.相关技术中提出的拥塞控制方法主要是针对相应优化问题的启发式算法,它们通常是针对单一任务集优化的,例如dcqcn和swift,针对稳态场景进行了优化,但是对于短流量的突然爆发,则在瞬态状态下表现较差,即对拥塞控制的动态适应能力差,无法适应网络动态变化。


技术实现要素:

4.本技术的主要目的在于提供一种数据中心网络拥塞控制方法、装置、设备及存储介质,旨在解决现有技术中对拥塞控制的动态适应能力差的技术问题。为实现以上目的,本技术提供一种数据中心网络拥塞控制方法,所述数据中心网络拥塞控制方法包括:当收到拥塞通知cnp报文时,获取交换机的第一状态信息;将所述第一状态信息输入至当前的拥塞控制模型,基于所述拥塞控制模型,对所述第一状态信息进行拥塞分析处理,得到决策结果,并基于所述决策结果,对服务器端进行降速处理,其中,所述拥塞控制模型是基于分布式深度强化学习drl训练得到的;获取服务器端降速后交换机的第二状态信息,并基于所述第二状态信息,确定决策评分值;基于所述决策评分值,对所述拥塞控制模型进行训练更新,得到更新后的拥塞控制模型,其中,所述更新后的拥塞控制模型用于下一轮的状态信息处理。
5.可选地,所述第二状态信息包括队列长度、数据包的传输字节和链路带宽容量,所述基于所述第二状态信息,确定决策评分值的步骤,包括:基于所述第二状态信息中的队列长度、数据包的传输字节和链路带宽容量,采用以下公式计算决策评分值:
[0006][0007]
其中,表示决策评分值,表示交换机的队列长度,表示链路带宽容
量,表示数据包的传输字节,l表示吞吐量性能指标的评分值,q表示延迟性能指标的评分值,表示吞吐量性能指标的评分值的权重,表示延迟性能指标的评分值的权重,,表示目标队列长度。
[0008]
可选地,所述当收到拥塞通知cnp报文时,获取交换机的第一状态信息的步骤之前,所述方法包括:获取当前交换机的队列长度数据;若所述队列长度数据大于或者等于预设的拥塞标记最大值水线,则对当前的传输数据包进行拥塞标记;若所述队列长度数据小于或者等于预设的拥塞标记最小值水线,则不对当前的传输数据包进行拥塞标记;若所述队列长度数据大于所述拥塞标记最小值水线,并小于所述拥塞标记最大值水线,则计算标记概率,并基于所述标记概率,对当前的传输数据包进行拥塞标记处理;其中,若传输数据包存在拥塞标记,则收到拥塞通知cnp报文。
[0009]
可选地,所述决策结果包括降速因子和升速因子,所述基于所述决策结果,对服务器端进行降速处理的步骤,包括:基于所述降速因子,对服务器端发包速率进行降速调整,以实现对服务器端的降速处理;判断是否需要对所述服务器端进行升速调整,若需要对所述服务器端进行升速调整,则基于所述升速因子,对服务器端发包速率进行升速调整,以实现对服务器端的升速处理。
[0010]
可选地,所述判断是否需要对所述服务器端进行升速调整,若需要对所述服务器端进行升速调整,则基于所述升速因子,对服务器端发包速率进行升速调整,以实现对服务器端的升速处理的步骤,包括:开启预设时间的定时器;当满足在所述定时器的时间内并未收到所述cnp报文的条件时,则确定需要对所述服务器端进行升速调整;基于所述升速因子,对服务器端发包速率进行一次升速调整,并实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于所述升速因子,对服务器端发包速率进行升速调整,并实时判断是否收到所述cnp报文的步骤,直至收到所述cnp报文后,停止对服务器端发包速率的升速调整。
[0011]
可选地,所述基于所述升速因子,对服务器端发包速率进行一次升速调整,并实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于所述升速因子,对服务器端发包速率进行升速调整,并实时判断是否收到所述cnp报文的步骤,直至收到所述cnp报文后,停止对服务器端发包速率的升速调整的步骤,包括:基于所述升速因子,对服务器端发包速率进行一次升速调整,并确定升速调整次数,同时实时判断是否收到所述cnp报文;若完成上一次升速调整后,未收到所述cnp报文,则增加一次所述升速调整次数,并重复基于所述升速因子,对服务器端发包速率进行一次升速调整,并确定升速调整次数
的步骤;当所述升速调整次数达到预设的升速次数阈值,则对所述升速因子进行提升调整;基于提升调整后的升速因子对服务器端发包速率进行相应的升速调整,同时实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于提升调整后的升速因子对服务器端发包速率进行相应的升速调整,同时实时判断是否收到所述cnp报文;其中,收到所述cnp报文后,停止对服务器端发包速率的升速调整。
[0012]
可选地,所述获取交换机的第一状态信息的步骤,包括:采用带内网络遥测技术int,获取每一跳交换机的初始状态信息,其中,所述初始状态信息包括队列长度、数据包的传输字节、拥塞标记数据包的传输字节和链路带宽容量;将所述每一跳交换机的初始状态信息进行累加,得到交换机的第三状态信息;基于所述每一跳交换机,计算所述第三状态信息的平均值,得到交换机的第一状态信息。
[0013]
本技术还提供一种数据中心网络拥塞控制装置,所述数据中心网络拥塞控制装置包括:获取模块,用于当收到拥塞通知cnp报文时,获取交换机的第一状态信息;降速模块,用于将所述第一状态信息输入至当前的拥塞控制模型,基于所述拥塞控制模型,对所述第一状态信息进行拥塞分析处理,得到决策结果,并基于所述决策结果,对服务器端进行降速处理,其中,所述拥塞控制模型是基于分布式深度强化学习drl训练得到的;评分模块,用于获取服务器端降速后交换机的第二状态信息,并基于所述第二状态信息,确定决策评分值;更新模块,用于基于所述决策评分值,对所述拥塞控制模型进行训练更新,得到更新后的拥塞控制模型,其中,所述更新后的拥塞控制模型用于下一轮的状态信息处理。
[0014]
本技术还提供一种数据中心网络拥塞控制设备,所述数据中心网络拥塞控制设备包括:存储器、处理器以及存储在存储器上的用于实现所述数据中心网络拥塞控制方法的程序,所述存储器用于存储实现数据中心网络拥塞控制方法的程序;所述处理器用于执行实现所述数据中心网络拥塞控制方法的程序,以实现所述数据中心网络拥塞控制方法的步骤。
[0015]
本技术还提供一种存储介质,所述存储介质上存储有实现数据中心网络拥塞控制方法的程序,所述实现数据中心网络拥塞控制方法的程序被处理器执行以实现所述数据中心网络拥塞控制方法的步骤。
[0016]
本技术提供的一种数据中心网络拥塞控制方法、装置、设备及存储介质,与相关技术中对于短流量的突然爆发,则在瞬态状态下表现较差,即对拥塞控制的动态适应能力差,无法适应网络动态变化相比,在本技术中,当收到拥塞通知cnp报文时,获取交换机的第一状态信息;将所述第一状态信息输入至当前的拥塞控制模型,基于所述拥塞控制模型,对所述第一状态信息进行拥塞分析处理,得到决策结果,并基于所述决策结果,对服务器端进行
降速处理,其中,所述拥塞控制模型是基于分布式深度强化学习drl训练得到的;获取服务器端降速后交换机的第二状态信息,并基于所述第二状态信息,确定决策评分值;基于所述决策评分值,对所述拥塞控制模型进行训练更新,得到更新后的拥塞控制模型,其中,所述更新后的拥塞控制模型用于下一轮的状态信息处理。即在本技术中,基于分布式深度强化学习训练的拥塞控制模型,通过在不需要先验知识的前提下自主探索环境并获得决策评分值更新模型的策略,能够适应网络动态变化的场景,即提高了对拥塞控制的动态适应能力。
附图说明
[0017]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0018]
图1是本技术实施例方案涉及的硬件运行环境的设备结构示意图;图2为本技术数据中心网络拥塞控制方法第一实施例的流程示意图;图3为本技术数据中心网络拥塞控制装置的模块示意图;图4为本技术数据中心网络拥塞控制方法第三实施例的流程示意图;图5为本技术数据中心网络拥塞控制方法的控制框架示意图;图6为本技术数据中心网络拥塞控制方法的状态信息更新流程示意图。
[0019]
本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0020]
应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0021]
如图1所示,图1是本技术实施例方案涉及的硬件运行环境的终端结构示意图。
[0022]
本技术实施例终端可以是服务器,也可以是pc、智能手机、平板电脑、电子书阅读器、mp3(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)播放器、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层面4)播放器、便携计算机等具有显示功能的可移动式终端设备。
[0023]
如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0024]
可选地,终端还可以包括摄像头、rf(radio frequency,射频)电路,传感器、音频电路、wifi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为
vivace等。针对此场景,本实施例的数据中心网络拥塞控制方法基于分布式深度强化学习训练的拥塞控制模型,通过在不需要先验知识的前提下自主探索环境并获得决策评分值更新模型的策略,能够适应网络动态变化的场景,即提高了对拥塞控制的动态适应能力。
[0030]
作为一种示例,数据中心网络拥塞控制的应用场景不仅为上述的对数据中心的场景下,还包括各种拥塞控制场景中,在此不做具体限制。
[0031]
本实施例旨在:提高对拥塞控制的动态适应能力。
[0032]
在本实施例中,数据中心网络拥塞控制方法应用于数据中心网络拥塞控制装置,其中,数据中心网络拥塞控制装置包括发送端服务器和接收端服务器。
[0033]
具体步骤如下:步骤s100,当收到拥塞通知cnp报文时,获取交换机的第一状态信息;在本实施例中,当收到拥塞通知cnp报文时,即确定当前数据中心存在网络拥塞的情况下,装置获取交换机的第一状态信息,其中,第一状态信息是指网络状况的数据,包括但不限于时间戳(ts)、队列长度(qlen)、数据包的传输字节(或称为交换机传输速率)(txbytes)、拥塞标记数据包的传输字节(etxbytes)和链路带宽容量(b),具体地,装置是利用数据面业务进行网络状况的收集,获取交换机的第一状态信息。
[0034]
具体地,所述步骤s100,包括以下步骤s110-s130:步骤s110,采用带内网络遥测技术int,获取每一跳交换机的初始状态信息,其中,所述初始状态信息包括队列长度、数据包的传输字节、拥塞标记数据包的传输字节和链路带宽容量;在本实施例中,装置采用带内网络遥测技术int,获取每一跳交换机的初始状态信息,即初始状态信息为int信息;其中,所述初始状态信息包括队列长度、数据包的传输字节、拥塞标记数据包的传输字节和链路带宽容量,int信息中的txrate,b和qlen可以精确的反应网络中的吞吐和延迟这两个关键的性能指标,以此为在线学习提供准确的参数反馈,加快网络的收敛,提升网络的稳定性。
[0035]
步骤s120,将所述每一跳交换机的初始状态信息进行累加,得到交换机的第三状态信息;在本实施例中,参照图5,每个服务器端(或称源端)都与一个drl(深度强化学习)的agent(智能体)相关联,利用当前和前一个int信息中的每一跳交换机i的时间戳(ts)、数据包的传输字节(txbytes)和ecn(拥塞标记)标记包的传输字节(etxbytes)计算获得每一跳交换机i的传输速率(txrate)、ecn标记包的输出速率(etxrate),具体如下公式:
[0036][0037][0038]
[0039][0040]
其中,、、、、分别表示当前轮次交换机的传输速率、ecn标记包的输出速率、队列长度、链路带宽、轮次数。
[0041]
并将当前int信息中每一跳交换机i的数据包的传输字节(txbytes)和ecn(拥塞标记)标记包的传输字节(etxbytes)、队列长度(qlen)、链路带宽(b)分别累加求其链路总和,具体公式如下:
[0042][0043][0044]
其中,、、分别为累加后的交换机的传输速率、ecn标记包的输出速率、队列长度。
[0045]
步骤s130,基于所述每一跳交换机,计算所述第三状态信息的平均值,得到交换机的第一状态信息。
[0046]
在本实施例中,装置基于所述每一跳交换机,计算所述第三状态信息的平均值,得到交换机的第一状态信息,具体地,累加每轮的ctxrate、cetxrate和cqlen,并统计计算轮数n,最后分别将累加值atxrate、aetxrate和aqlen除以n求得相应的平均值,得到交换机的第一状态信息。参照图6,即整个过程为,在一条流的发送过程中,当该流的发送端收到ack时,首先判断agent在上轮是否被触发,如果触发则需要清空atxrate、aetxrate和aqlen,以及计算轮数n。然后当发送端的agent在该流发送的过程中没有被cnp触发过时,state中txrate、etxrate和qlen的平均值是从收到的第一个携带int信息的ack开始统计,统计第一个ack到cnp触发时的ack之间计算获得的总数据量,并除以计算轮数n获得相应的平均值;若发送端的agent在该流发送的过程中已经被cnp触发过,state中txrate、etxrate和qlen的平均值是从收到上一个action执行后发出的首个包的ack开始统计,统计rate改变后发出的第一个包返回的ack到cnp触发时的ack之间计算获得的总数据量,并除以计算轮数n获得相应的平均值。并且在发送端完成每轮state的更新后,会更新新旧int信息。将上述获得txrate、etxrate和qlen的平均值与int信息中的链路带宽(b)以及源端发包速率(rate)进行归一化处理后作为当前的state,且当发送端发送新流的时候,需要清空发送端的state的更新流程的全部参数。以上的公式如下:
[0047][0048][0049]
其中,、、分别为取均值后的的传输速率、ecn标记包的输出速率、队列长度。
[0050]
综合源端发包速率(rate)后,把它们归一化处理后作为ddpg(深度确定性策略梯度)的(第一状态信息),具体如下公式:
[0051][0052]
步骤s200,将所述第一状态信息输入至当前的拥塞控制模型,基于所述拥塞控制模型,对所述第一状态信息进行拥塞分析处理,得到决策结果,并基于所述决策结果,对服务器端进行降速处理,其中,所述拥塞控制模型是基于分布式深度强化学习drl训练得到的;在本实施例中,装置将所述第一状态信息输入至当前的拥塞控制模型,基于所述拥塞控制模型,对所述第一状态信息进行拥塞分析处理,得到决策结果,并基于所述决策结果,对服务器端进行降速处理,其中,所述拥塞控制模型是基于分布式深度强化学习drl训练得到的,当前的拥塞控制模型可以是预设的拥塞控制模型(初始拥塞控制模型),也可以是经过更新后的拥塞控制模型,预设的拥塞控制模型是指根据训练样本以及样本标签经过迭代训练后所首次训练完成的拥塞控制模型,该预设的拥塞控制模型会随着数据中心网络拥塞控制方法,进行持续的更新,即为更新后的拥塞控制模型,该更新后的拥塞控制模型用于下一轮的状态信息处理。具体地,所述拥塞控制模型的预训练过程是将待训练模型部署于数据中心的应用场景中,采用ddpg算法对所述待训练模型进行深度强化学习,得到所述拥塞控制模型,并且根据分布式深度强化学习的特性,所述拥塞控制模型在数据中心的场景下不断处理拥塞控制的过程中,仍进行进一步的强化学习,即能够在不需要先验知识的前提下自主探索环境并逐步寻找获得较大奖励函数(或称决策评分)的策略,其agent(智能体)具有强大的自主决策能力和对环境的适应能力,因此在数据中心机制的基础上,drl与拥塞控制结合:(1)可以适应网络动态变化的场景,并寻找优秀的拥塞控制策略,具有很好的泛化能力;(2)可以在避免复杂费时的手动调优控制参数的同时,在线做出明智的决策。
[0053]
具体地,所述步骤s200,包括以下步骤s210-s220:步骤s210,基于所述降速因子,对服务器端发包速率进行降速调整,以实现对服务器端的降速处理;在本实施例中,所述决策结果包括降速因子和升速因子,由于当前为网络拥塞的情况,因此装置根据决策结果中输出的降速因子对服务器端发包速率进行降速调整,以实现对服务器端进行降速处理,而其中的升速因子根据需求对服务器端发包速率进行升速调整,以此达到适应网络动态变化的目的,其中,降速因子和升速因子是一个参数值,具体地,具体范围如下:
[0054][0055]
实现对服务器端进行降速处理,即将源端发包速率改成当前发包速率乘以降速因子,如下公式:
[0056][0057]
其中,是降速前的源端发包速率,是降速后的源端发包速率。
[0058]
步骤s220,判断是否需要对所述服务器端进行升速调整,若需要对所述服务器端进行升速调整,则基于所述升速因子,对服务器端发包速率进行升速调整,以实现对服务器
端的升速处理。
[0059]
在本实施例中,装置判断是否需要对所述服务器端进行升速调整,若需要对所述服务器端进行升速调整,则基于所述升速因子,对服务器端发包速率进行升速调整,以实现对服务器端的升速处理,其中,基于所述升速因子,对服务器端发包速率进行升速调整,以实现对服务器端的升速处理与上述步骤s210的降速调整同理,即将源端发包速率改成当前发包速率乘以升速因子,如下公式:
[0060][0061]
其中,是当前(升速前)源端发包速率,是升速后的源端发包速率。
[0062]
具体地,所述步骤s220,包括以下步骤s221-s223:步骤s221,开启预设时间的定时器;步骤s222,当满足在所述定时器的时间内并未收到所述cnp报文的条件时,则确定需要对所述服务器端进行升速调整;在本实施例中,装置判断是否需要对所述服务器端进行升速调整的步骤是在降速完成后开启预设时间的定时器,当满足在所述定时器的时间内并未收到所述cnp报文的条件时,则确定需要对所述服务器端进行升速调整,即在定时器的时间范围内,装置并未收到所述cnp报文,即当前并未处于网络拥塞的情况下,确定需要对所述服务器端进行升速调整。
[0063]
步骤s223,基于所述升速因子,对服务器端发包速率进行一次升速调整,并实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于所述升速因子,对服务器端发包速率进行升速调整,并实时判断是否收到所述cnp报文的步骤,直至收到所述cnp报文后,停止对服务器端发包速率的升速调整。
[0064]
在本实施例中,装置基于所述升速因子,对服务器端发包速率进行一次升速调整,并实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于所述升速因子,对服务器端发包速率进行升速调整,并实时判断是否收到所述cnp报文的步骤,直至收到所述cnp报文后,停止对服务器端发包速率的升速调整,即只要装置没有被cnp报文触发,装置一直重复以上升速操作,直至收到所述cnp报文后,停止对服务器端发包速率的升速调整。
[0065]
具体地,所述步骤s223,包括以下步骤s2231-s2235:步骤s2231,基于所述升速因子,对服务器端发包速率进行一次升速调整,并确定升速调整次数,同时实时判断是否收到所述cnp报文;步骤s2232,若完成上一次升速调整后,未收到所述cnp报文,则增加一次所述升速调整次数,并重复基于所述升速因子,对服务器端发包速率进行一次升速调整,并确定升速调整次数的步骤;步骤s2233,当所述升速调整次数达到预设的升速次数阈值,则对所述升速因子进行提升调整;步骤s2234,基于提升调整后的升速因子对服务器端发包速率进行相应的升速调整,同时实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于提升调整后的升速因子对服务器端发包速率进行相应的升速调整,同时实时判
断是否收到所述cnp报文;步骤s2235,其中,收到所述cnp报文后,停止对服务器端发包速率的升速调整。
[0066]
在本实施例中,装置基于所述升速因子,对服务器端发包速率进行一次升速调整,并确定升速调整次数,同时实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则增加一次所述升速调整次数,并重复基于所述升速因子,对服务器端发包速率进行一次升速调整,并确定升速调整次数的步骤,当所述升速调整次数达到预设的升速次数阈值,则对所述升速因子进行提升调整,基于提升调整后的升速因子对服务器端发包速率进行相应的升速调整,同时实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于提升调整后的升速因子对服务器端发包速率进行相应的升速调整,同时实时判断是否收到所述cnp报文,该过程的升速调整一直到装置收到所述cnp报文后才停止。
[0067]
举例说明,装置实时判断是否收到所述cnp报文,只要agent没有被cnp报文触发,装置一直重复以上升速操作,直到升速步数stage(即升速调整次数)到达设定升速次数阈值(threshold=4)时,先更新升速因子,再改变源端速率,如下公式:
[0068][0069]
其中,是当前(提升调整前)的升速因子,是提升调整后的升速因子,是当前的源端发包速率,是提升调整后的升速因子对进一步升速后的源端发包速率,1.001是stage到达设定升速次数阈值时的提升调整参数。
[0070]
提升调整参数也可以是除1.001之外的其他值,在此不做具体限定。
[0071]
且当升速步数stage超过设定阈值(threshold》4)时,则以更大幅度更新升速因子,改变源端速率。若agent触发时间超过40微秒,且又收到cnp报文,则再次触发agent作出决策,并重复以上操作。
[0072][0073][0074]
其中,是当前(提升调整前)的升速因子,是进一步提升调整后的升速因子,是当前的源端发包速率,进一步提升调整后的升速因子对升速后的源端发包速率,1.002是stage大于设定升速次数阈值时的提升调整参数。
[0075]
进一步提升调整参数也可以是除1.002之外的其他值,在此不做具体限定。
[0076]
步骤s300,获取服务器端降速后交换机的第二状态信息,并基于所述第二状态信息,确定决策评分值;在本实施例中,在对服务器端(或称源端)降速后,装置获取当前交换机的第二状态信息,并基于所述第二状态信息,确定决策评分值,其中,所述决策评分值也可以称为当前环境反馈的奖励,是对上一次决策结果的评分,具体公式如下步骤s310。
[0077]
具体地,所述步骤s300,包括以下步骤s310:步骤s310,基于所述第二状态信息中的队列长度、数据包的传输字节和链路带宽容量,采用以下公式计算决策评分值:
[0078][0079]
其中,表示决策评分值,表示交换机的队列长度,表示链路带宽容量,表示数据包的传输字节,l表示吞吐量性能指标的评分值,q表示延迟性能指标的评分值,表示吞吐量性能指标的评分值的权重,表示延迟性能指标的评分值的权重,,表示目标队列长度。
[0080]
在本实施例中,可以根据数据中心网络的需求,为l和q设置不同的权重,以此来调整reward,来更好的优化学习目标,例如当前的数据中心网络更强调低延迟,就可以将的数值设大一点,取,,除此之外kb表示的是我们的目标qlen,因此可以针对不同的场景需求来设置不同的,优选地,可以将设置成60。
[0081]
在本实施例中,int信息中的txrate,b和qlen可以精确的反应网络中的吞吐和延迟这两个关键的性能指标,由于txrate和qlen的瞬时值变化范围很大,这会导致reward的不稳定,因此优选的实施例中,采用平均值设计ddpg的reward。
[0082]
在本实施例中,装置基于ecn和int信息设计的state和reward,其中,在在txrate、etxrate和采用平均值的情况下,计算得到的reward也为平均值,由于可以获得准确的网络和反馈信息,因此可以加快网络的收敛,网络的稳定性和性能同样可以得到很好的提升。
[0083]
步骤s400,基于所述决策评分值,对所述拥塞控制模型进行训练更新,得到更新后的拥塞控制模型,其中,所述更新后的拥塞控制模型用于下一轮的状态信息处理。
[0084]
在本实施例中,装置基于所述决策评分值,对所述拥塞控制模型进行训练更新,得到更新后的拥塞控制模型,其中,所述更新后的拥塞控制模型用于下一轮的状态信息处理,具体地,对drl的训练更新,当action执行完成后,agent再次被触发,根据环境的反馈,即利用新到来的int信息根据上述计算方法获得新状态信息和决策评分值,并将添加到经验回放池中,当agent的参数池容量未到达设定值,不更新drl模型,当agent的参数池容量到达设定值后,从经验池中随机采样一个minibatch,并利用ddpg算法对模型进行更新学习,ddpg算法包含四个网络分别是actor网络、critic网络、target actor网络 、target critic网络,通过td_error对critic网络进行参数更新,即先利用target critic网络来计算目标值,利用与当前值的均方误差构造损失函数,进行梯度更新。
[0085][0086][0087]
并依据确定性策略梯度对actor网络进行参数更新,即把actor的确定性动作函数
代进q-function的a,然后求梯度,最后更新目标网络。
[0088][0089]
对于target actor网络和target critic网络的更新,ddpg算法采用了软更新方式(指数平均移动),即引入一个学习率(0.005),将旧的目标网络参数和新的对应网络参数做加权平均,然后赋值给target网络。
[0090][0091][0092]
完成对所有网络的学习更新后,下次cnp报文触发agent,agent将利用新的actor网络来选择动作,通过在线学习的方式训练模型,让agent能够学习每个流量模型的特征,提升拥塞控制性能。
[0093]
本技术提供的一种数据中心网络拥塞控制方法,与相关技术中对于短流量的突然爆发,则在瞬态状态下表现较差,即对拥塞控制的动态适应能力差,无法适应网络动态变化相比,在本技术中,当收到拥塞通知cnp报文时,获取交换机的第一状态信息;将所述第一状态信息输入至当前的拥塞控制模型,基于所述拥塞控制模型,对所述第一状态信息进行拥塞分析处理,得到决策结果,并基于所述决策结果,对服务器端进行降速处理,其中,所述拥塞控制模型是基于分布式深度强化学习drl训练得到的;获取服务器端降速后交换机的第二状态信息,并基于所述第二状态信息,确定决策评分值;基于所述决策评分值,对所述拥塞控制模型进行训练更新,得到更新后的拥塞控制模型,其中,所述更新后的拥塞控制模型用于下一轮的状态信息处理。即在本技术中,基于分布式深度强化学习训练的拥塞控制模型,通过在不需要先验知识的前提下自主探索环境并获得决策评分值更新模型的策略,能够适应网络动态变化的场景,即提高了对拥塞控制的动态适应能力。
[0094]
基于上述的第一实施例,本技术还提供另一实施例,所述数据中心网络拥塞控制方法包括:在所述步骤s100,当收到拥塞通知cnp报文时,获取交换机的第一状态信息的步骤之前,所述方法包括以下步骤a100-a500:步骤a100,获取当前交换机的队列长度数据;步骤a200,若所述队列长度数据大于或者等于预设的拥塞标记最大值水线,则对当前的传输数据包进行拥塞标记;步骤a300,若所述队列长度数据小于或者等于预设的拥塞标记最小值水线,则不对当前的传输数据包进行拥塞标记;步骤a400,若所述队列长度数据大于所述拥塞标记最小值水线,并小于所述拥塞标记最大值水线,则计算标记概率,并基于所述标记概率,对当前的传输数据包进行拥塞标记处理;步骤a500,其中,若传输数据包存在拥塞标记,则收到拥塞通知cnp报文。
[0095]
在本实施例中,装置主要由三个部分组成,分别是发送端、交换机端、接收端。在交换机端和大部分基于ecn的拥塞控制类似,采用和dcqcn、dctcp类似的方式对包进行ecn标
记,本技术针对不同链路带宽设置不同的ecn配置以及使用出队列ecn标记。本技术通过ecn机制与red策略结合的方式完成对包是否进行ecn标记的判定,与dcqcn和dctcp等大多基于ecn的拥塞控制不同的是,本技术抛弃了传统的入队列ecn标记方式,采用反馈更快的出队列ecn标记,即在报文出队列时判断当前出端口队列长度是否超过ecn水线,来进行ecn标记,从而缩短了ecn标记包在交换机队列中的转发时间。ecn(explicit congestion notification,显式拥塞通知)是一种拥塞通知技术,ecn功能利用ip报文头中的ds域来标记报文传输路径上的拥塞状态(ecn字段置为11表示拥塞),根据交换机端口的链路带宽设定相应的上限长度kmax、下限长度kmin,基于red策略并利用出队列ecn标记方式对交换机出端口中即将出队列的报文进行如下处理:当队列的长度低于下限kmin时,不标记即将出队列的报文;当队列的长度超过上限kmax时,标记即将出队列的报文;当队列的长度在上限kmax和下限kmin之间时,按照概率p标记即将出队列的报文。
[0096]
队列越长,标记概率越高,队列标记概率随队列长度线性增长,不超出最大概率pmax,其中kmin和kmax的设置是根据链路带宽设置的,如下所示为kmin、kmax和标记概率p的计算方式:
[0097][0098][0099]
根据int(in-band network telemetry,带内网络遥测)技术,在数据包从发送方传播到接收方的过程中,路径上的每个交换机都利用其交换asic的int特性插入一些元数据,本技术需要获取的交换机出端口int信息包括时间戳(ts)、队列长度(qlen)、传输字节(txbytes)、ecn标记包的传输字节(etxbytes)和链路带宽容量(b)。
[0100]
当接收端收到报文后,首先把记录的int信息复制到ack消息中,并反馈回发送端,若发现报文中携带ecn拥塞标记(ecn字段为11),则知道网络中存在拥塞,立即向发送端发送cnp(congestion notification packets,拥塞通知报文),即表明路径中存在网络拥塞。
[0101]
在本技术中,通过准确的拥塞触发机制,有效的防止过度反应、节约计算资源并提升算法的稳定性。
[0102]
基于上述的第一实施例和第二实施例,本技术还提供另一实施例,参照图4,所述数据中心网络拥塞控制方法包括:1、当数据包在通过传输路径上的交换机时,根据int(带内网络遥测)技术,利用数据面业务进行网络状况的收集,获取经过每一跳交换机的数据,分别是时间戳(ts)、队列长度(qlen)、传输字节(txbytes)、ecn标记包的传输字节(etxbytes)和链路带宽容量(b)。并在出队列ecn标记的基础上根据技术内容中描述的red策略判断是否对即将出队列的数据包进行ecn标记,即当数据包出队列时的交换机出端口队列长度超过上水线(kmax)时,我们对数据包进行ecn标记(ecn字段置为11);当队列长度低于下水线(kmin)时,不对数据包进
行ecn标记;当队列长度位于上下水线之间时,按照标记概率(p)对数据包进行ecn标记。若上一跳交换机已经对数据包进行ecn标记,那么在这一跳交换机中不需要对数据包进行任何处理,最后经过上述处理后,交换机端向接收端转发携带int和ecn信息的数据包。
[0103]
2、当接收端收到来自源端的数据包时,首先把记录的每一跳int信息复制到ack消息中,并发送给源端,然后检查报文中的ecn字段,如果ecn字段为11,则立即向发送端发送cnp报文,如果ecn字段为10或者01,则不需要进行任何处理,通过以上操作后接收端将ecn和int信息反馈给发送端。
[0104]
3、在发送端j接收到ack消息后,会更新int信息,发送端j始终会保留前一个ack携带的int信息和当前ack携带的int信息。发送端j的流是以线速启动发送的,直到发送端j收到cnp报文,此时首先初始化定时器timer1,设置agent在40微秒内最多触发一次,并立即触发agent作出决策,每个源端都与一个drl的agent相关联如图5所示,利用当前和前一个int信息中的每一跳交换机i的时间戳(ts)、传输字节(txbytes)和ecn标记包的传输字节(etxbytes)计算获得每一跳交换机i的传输速率(txrate)、ecn标记包的输出速率(etxrate),然后分别累加每一跳的txrate、etxrate、qlen求其链路总和,再求取平均值:,最后综合链路带宽总和()、源端发包速率(),将它们归一化处理后作为当前的state,同时更新int信息:
[0105][0106]
且当发送端j发送新流的时候,需要清空发送端j的state的更新流程的全部参数。
[0107]
在本实施例中,具体的计算方法参照以上步骤s110-s130,在此不再赘述。
[0108]
4、发送端agent采用局部网络状态并做出决策,输出一个升速因子和一个降速因子,源端j做降速处理。
[0109]
发送端j完成降速处理的同时,启动定时器timer2,并初始化stage,当timer2到达45微秒时,agent没有被cnp报文触发,将stage加1、重新初始化timer2的同时立即执行升速处理。
[0110]
当agent在timer2的定时时间内未被触发,发送端j则一直重复以上升速操作,当stage到达设定阈值(threshold=4)时,更新升速因子,改变源端速率。
[0111]
且stage超过设定阈值(threshold》4)时,则以更大幅度更新升速因子,改变源端速率。
[0112]
若timer1到达40微秒之后,又收到cnp报文,则再次触发agent作出决策,重复以上操作,若未收到cnp报文,则一直进行上述升速处理,且当大于等于线速时,发送端以线速发送,速度不再增加,直到agent触发。
[0113]
5、drl训练更新:当action执行完成后,agent再次被触发,根据环境的反馈,即利用新到来的int信息根据上述计算方法获得新状态和即时奖励。
[0114]
[0115][0116]
并将添加到经验回放池中,当agent的参数池容量未到达设定值,不更新drl模型,当agent的参数池容量到达设定值后,从经验池中随机采样一个minibatch,即从经验池中抽样n个,并利用ddpg算法对模型进行更新学习,ddpg算法包含四个网络分别是actor网络、critic网络、target actor网络、target critic网络,其中为actor网络的权重、为critic网络的权重、为target actor网络的权重、为target critic网络的权重,通过td_error对critic网络进行参数更新,即先利用target critic网络来计算目标值,其中为折扣因子,利用与当前值的均方误差构造损失函数,进行梯度更新。
[0117][0118][0119]
并依据确定性策略梯度对actor网络进行参数更新,即把actor的确定性动作函数代进q-function的,然后求梯度,最后更新目标网络。
[0120][0121]
对于target actor网络和target critic网络的更新,ddpg算法采用了软更新方式(指数平均移动),即引入一个学习率(0.005),将旧的目标网络参数和新的对应网络参数做加权平均,然后赋值给target网络。
[0122][0123][0124]
完成对所有网络的学习更新后,下次cnp报文触发agent,agent将利用新的actor网络来选择动作,通过在线学习的方式训练模型,让agent能够学习每个流量模型的特征,提升拥塞控制性能。
[0125]
本发明具备如下有益效果:1、根据深度强化学习的特点可知,其能够在不需要先验知识的前提下自主探索环境并逐步寻找获得较大奖励函数的策略,其agent(智能体)具有强大的自主决策能力和对环境的适应能力,因此在数据中心机制的基础上,drl与拥塞控制结合:(1)可以适应网络动态变化的场景,并寻找优秀的拥塞控制策略,具有很好的泛化能力;(2)可以在避免复杂费时的手动调优控制参数的同时,在线做出明智的决策;2、只采用局部网络状态并做出决策,网络状态-动作空间会极大的减少,可以加快drl模型收敛。由于设备间通信的减少,数据的传输也会减少,每个agent独立决策,因而传
输延迟会大大降低,在提升拥塞控制的反应速度的同时也很好的节约了计算资源、降低了网络开销;3、基于ecn和int信息设计的state和reward,由于可以获得准确的网络和反馈信息,因此可以加快网络的收敛,网络的稳定性和性能同样可以得到很好的提升,且基于mimd设计的action可以更快的恢复网络的状态并降低延迟。最后通过基于ecn的准确的拥塞触发机制,可以减少agent的一些不必要的反复触发更新,进而可以在提升整体算法稳定性和性能的同时防止过度反应并节约计算资源。
[0126]
本技术还提供一种数据中心网络拥塞控制装置,参照图3,所述数据中心网络拥塞控制装置包括:获取模块10,用于当收到拥塞通知cnp报文时,获取交换机的第一状态信息;降速模块20,用于将所述第一状态信息输入至当前的拥塞控制模型,基于所述拥塞控制模型,对所述第一状态信息进行拥塞分析处理,得到决策结果,并基于所述决策结果,对服务器端进行降速处理,其中,所述拥塞控制模型是基于分布式深度强化学习drl训练得到的;评分模块30,用于获取服务器端降速后交换机的第二状态信息,并基于所述第二状态信息,确定决策评分值;更新模块40,用于基于所述决策评分值,对所述拥塞控制模型进行训练更新,得到更新后的拥塞控制模型,其中,所述更新后的拥塞控制模型用于下一轮的状态信息处理。
[0127]
可选地,所述更新模块40,包括:基于所述第二状态信息中的队列长度、数据包的传输字节和链路带宽容量,采用以下公式计算决策评分值:
[0128][0129]
其中,表示决策评分值,表示交换机的队列长度,表示链路带宽容量,表示数据包的传输字节,l表示吞吐量性能指标的评分值,q表示延迟性能指标的评分值,表示吞吐量性能指标的评分值的权重,表示延迟性能指标的评分值的权重,,表示目标队列长度。
[0130]
可选地,所述数据中心网络拥塞控制装置还包括:队列长度数据获取模块,用于获取当前交换机的队列长度数据;第一标记模块,用于若所述队列长度数据大于或者等于预设的拥塞标记最大值水线,则对当前的传输数据包进行拥塞标记;第二标记模块,用于若所述队列长度数据小于或者等于预设的拥塞标记最小值水线,则不对当前的传输数据包进行拥塞标记;第三标记模块,用于若所述队列长度数据大于所述拥塞标记最小值水线,并小于所述拥塞标记最大值水线,则计算标记概率,并基于所述标记概率,对当前的传输数据包进行拥塞标记处理;
报文发送模块,用于若对当前的传输数据包进行拥塞标记,则发送拥塞通知cnp报文。
[0131]
可选地,所述降速模块20,包括:速率降速调整模块,用于基于所述降速因子,对服务器端发包速率进行降速调整,以实现对服务器端的降速处理;升速模块,用于判断是否需要对所述服务器端进行升速调整,若需要对所述服务器端进行升速调整,则基于所述升速因子,对服务器端发包速率进行升速调整,以实现对服务器端的升速处理。
[0132]
可选地,所述升速模块,包括:定时模块,用于开启预设时间的定时器;升速确定模块,用于当满足在所述定时器的时间内并未收到所述cnp报文的条件时,则确定需要对所述服务器端进行升速调整;升速调整模块,用于基于所述升速因子,对服务器端发包速率进行一次升速调整,并实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于所述升速因子,对服务器端发包速率进行升速调整,并实时判断是否收到所述cnp报文的步骤,直至收到所述cnp报文后,停止对服务器端发包速率的升速调整。
[0133]
可选地,所述升速调整模块,包括:调整次数确定模块,用于基于所述升速因子,对服务器端发包速率进行一次升速调整,并确定升速调整次数,同时实时判断是否收到所述cnp报文;第一重复升速模块,用于若完成上一次升速调整后,未收到所述cnp报文,则增加一次所述升速调整次数,并重复基于所述升速因子,对服务器端发包速率进行一次升速调整,并确定升速调整次数的步骤;升速因子提升模块,用于当所述升速调整次数达到预设的升速次数阈值,则对所述升速因子进行提升调整;第二重复升速模块,用于基于提升调整后的升速因子对服务器端发包速率进行相应的升速调整,同时实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于提升调整后的升速因子对服务器端发包速率进行相应的升速调整,同时实时判断是否收到所述cnp报文;停止升速模块,用于收到所述cnp报文后,停止对服务器端发包速率的升速调整。
[0134]
可选地,所述获取模块10,包括:初始状态信息获取模块,用于采用带内网络遥测技术int,获取每一跳交换机的初始状态信息,其中,所述初始状态信息包括队列长度、数据包的传输字节、拥塞标记数据包的传输字节和链路带宽容量;累加模块,用于将所述每一跳交换机的初始状态信息进行累加,得到交换机的第三状态信息;均值计算模块,用于基于所述每一跳交换机,计算所述第三状态信息的平均值,得到交换机的第一状态信息。
[0135]
本技术数据中心网络拥塞控制装置具体实施方式与上述数据中心网络拥塞控制方法各实施例基本相同,在此不再赘述。
[0136]
参照图1,图1是本技术实施例方案涉及的硬件运行环境的终端结构示意图。
[0137]
如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0138]
可选地,该数据中心网络拥塞控制设备还可以包括矩形用户接口、网络接口、摄像头、rf(radio frequency,射频)电路,传感器、音频电路、wifi模块等等。矩形用户接口可以包括显示屏(display)、输入子模块比如键盘(keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
[0139]
本领域技术人员可以理解,图1中示出的数据中心网络拥塞控制设备结构并不构成对数据中心网络拥塞控制设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0140]
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块以及数据中心网络拥塞控制程序。操作系统是管理和控制数据中心网络拥塞控制设备硬件和软件资源的程序,支持数据中心网络拥塞控制程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与数据中心网络拥塞控制系统中其它硬件和软件之间通信。
[0141]
在图1所示的数据中心网络拥塞控制设备中,处理器1001用于执行存储器1005中存储的数据中心网络拥塞控制程序,实现上述任一项所述的数据中心网络拥塞控制方法的步骤。
[0142]
本技术数据中心网络拥塞控制设备具体实施方式与上述数据中心网络拥塞控制方法各实施例基本相同,在此不再赘述。
[0143]
本技术还提供一种存储介质,所述存储介质上存储有实现数据中心网络拥塞控制方法的程序,所述实现数据中心网络拥塞控制方法的程序被处理器执行以实现如下所述数据中心网络拥塞控制方法:当收到拥塞通知cnp报文时,获取交换机的第一状态信息;将所述第一状态信息输入至当前的拥塞控制模型,基于所述拥塞控制模型,对所述第一状态信息进行拥塞分析处理,得到决策结果,并基于所述决策结果,对服务器端进行降速处理,其中,所述拥塞控制模型是基于分布式深度强化学习drl训练得到的;获取服务器端降速后交换机的第二状态信息,并基于所述第二状态信息,确定决策评分值;基于所述决策评分值,对所述拥塞控制模型进行训练更新,得到更新后的拥塞控制模型,其中,所述更新后的拥塞控制模型用于下一轮的状态信息处理。
[0144]
可选地,所述第二状态信息包括队列长度、数据包的传输字节和链路带宽容量,所述基于所述第二状态信息,确定决策评分值的步骤,包括:
基于所述第二状态信息中的队列长度、数据包的传输字节和链路带宽容量,采用以下公式计算决策评分值:
[0145][0146]
其中,表示决策评分值,表示交换机的队列长度,表示链路带宽容量,表示数据包的传输字节,l表示吞吐量性能指标的评分值,q表示延迟性能指标的评分值,表示吞吐量性能指标的评分值的权重,表示延迟性能指标的评分值的权重,,表示目标队列长度。
[0147]
可选地,所述当收到拥塞通知cnp报文时,获取交换机的第一状态信息的步骤之前,所述方法包括:获取当前交换机的队列长度数据;若所述队列长度数据大于或者等于预设的拥塞标记最大值水线,则对当前的传输数据包进行拥塞标记;若所述队列长度数据小于或者等于预设的拥塞标记最小值水线,则不对当前的传输数据包进行拥塞标记;若所述队列长度数据大于所述拥塞标记最小值水线,并小于所述拥塞标记最大值水线,则计算标记概率,并基于所述标记概率,对当前的传输数据包进行拥塞标记处理;其中,若传输数据包存在拥塞标记,则收到拥塞通知cnp报文。
[0148]
可选地,所述决策结果包括降速因子和升速因子,所述基于所述决策结果,对服务器端进行降速处理的步骤,包括:基于所述降速因子,对服务器端发包速率进行降速调整,以实现对服务器端的降速处理;判断是否需要对所述服务器端进行升速调整,若需要对所述服务器端进行升速调整,则基于所述升速因子,对服务器端发包速率进行升速调整,以实现对服务器端的升速处理。
[0149]
可选地,所述判断是否需要对所述服务器端进行升速调整,若需要对所述服务器端进行升速调整,则基于所述升速因子,对服务器端发包速率进行升速调整,以实现对服务器端的升速处理的步骤,包括:开启预设时间的定时器;当满足在所述定时器的时间内并未收到所述cnp报文的条件时,则确定需要对所述服务器端进行升速调整;基于所述升速因子,对服务器端发包速率进行一次升速调整,并实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于所述升速因子,对服务器端发包速率进行升速调整,并实时判断是否收到所述cnp报文的步骤,直至收到所述cnp报文后,停止对服务器端发包速率的升速调整。
[0150]
可选地,所述基于所述升速因子,对服务器端发包速率进行一次升速调整,并实时
判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于所述升速因子,对服务器端发包速率进行升速调整,并实时判断是否收到所述cnp报文的步骤,直至收到所述cnp报文后,停止对服务器端发包速率的升速调整的步骤,包括:基于所述升速因子,对服务器端发包速率进行一次升速调整,并确定升速调整次数,同时实时判断是否收到所述cnp报文;若完成上一次升速调整后,未收到所述cnp报文,则增加一次所述升速调整次数,并重复基于所述升速因子,对服务器端发包速率进行一次升速调整,并确定升速调整次数的步骤;当所述升速调整次数达到预设的升速次数阈值,则对所述升速因子进行提升调整;基于提升调整后的升速因子对服务器端发包速率进行相应的升速调整,同时实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于提升调整后的升速因子对服务器端发包速率进行相应的升速调整,同时实时判断是否收到所述cnp报文;其中,收到所述cnp报文后,停止对服务器端发包速率的升速调整。
[0151]
可选地,所述获取交换机的第一状态信息的步骤,包括:采用带内网络遥测技术int,获取每一跳交换机的初始状态信息,其中,所述初始状态信息包括队列长度、数据包的传输字节、拥塞标记数据包的传输字节和链路带宽容量;将所述每一跳交换机的初始状态信息进行累加,得到交换机的第三状态信息;基于所述每一跳交换机,计算所述第三状态信息的平均值,得到交换机的第一状态信息。
[0152]
本技术存储介质具体实施方式与上述数据中心网络拥塞控制方法各实施例基本相同,在此不再赘述。
[0153]
本技术还提供一种计算机程序产品、包括计算机程序,该计算机程序被处理器执行时实现上述的数据中心网络拥塞控制方法的步骤。
[0154]
本技术计算机程序产品的具体实施方式与上述数据中心网络拥塞控制方法各实施例基本相同,在此不再赘述。
[0155]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0156]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0157]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
[0158]
以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。

技术特征:
1.一种数据中心网络拥塞控制方法,其特征在于,所述数据中心网络拥塞控制方法包括:当收到拥塞通知cnp报文时,获取交换机的第一状态信息;将所述第一状态信息输入至当前的拥塞控制模型,基于所述拥塞控制模型,对所述第一状态信息进行拥塞分析处理,得到决策结果,并基于所述决策结果,对服务器端进行降速处理,其中,所述拥塞控制模型是基于分布式深度强化学习drl训练得到的;获取服务器端降速后交换机的第二状态信息,并基于所述第二状态信息,确定决策评分值;基于所述决策评分值,对所述拥塞控制模型进行训练更新,得到更新后的拥塞控制模型,其中,所述更新后的拥塞控制模型用于下一轮的状态信息处理。2.如权利要求1所述的数据中心网络拥塞控制方法,其特征在于,所述第二状态信息包括队列长度、数据包的传输字节和链路带宽容量,所述基于所述第二状态信息,确定决策评分值的步骤,包括:基于所述第二状态信息中的队列长度、数据包的传输字节和链路带宽容量,采用以下公式计算决策评分值:公式计算决策评分值:其中,表示决策评分值,表示交换机的队列长度,表示链路带宽容量,表示数据包的传输字节,l表示吞吐量性能指标的评分值,q表示延迟性能指标的评分值,表示吞吐量性能指标的评分值的权重,表示延迟性能指标的评分值的权重,,表示目标队列长度。3.如权利要求1所述的数据中心网络拥塞控制方法,其特征在于,所述当收到拥塞通知cnp报文时,获取交换机的第一状态信息的步骤之前,所述方法包括:获取当前交换机的队列长度数据;若所述队列长度数据大于或者等于预设的拥塞标记最大值水线,则对当前的传输数据包进行拥塞标记;若所述队列长度数据小于或者等于预设的拥塞标记最小值水线,则不对当前的传输数据包进行拥塞标记;若所述队列长度数据大于所述拥塞标记最小值水线,并小于所述拥塞标记最大值水线,则计算标记概率,并基于所述标记概率,对当前的传输数据包进行拥塞标记处理;其中,若传输数据包存在拥塞标记,则收到拥塞通知cnp报文。4.如权利要求1所述的数据中心网络拥塞控制方法,其特征在于,所述决策结果包括降速因子和升速因子,所述基于所述决策结果,对服务器端进行降速处理的步骤,包括:基于所述降速因子,对服务器端发包速率进行降速调整,以实现对服务器端的降速处理;
判断是否需要对所述服务器端进行升速调整,若需要对所述服务器端进行升速调整,则基于所述升速因子,对服务器端发包速率进行升速调整,以实现对服务器端的升速处理。5.如权利要求4所述的数据中心网络拥塞控制方法,其特征在于,所述判断是否需要对所述服务器端进行升速调整,若需要对所述服务器端进行升速调整,则基于所述升速因子,对服务器端发包速率进行升速调整,以实现对服务器端的升速处理的步骤,包括:开启预设时间的定时器;当满足在所述定时器的时间内并未收到所述cnp报文的条件时,则确定需要对所述服务器端进行升速调整;基于所述升速因子,对服务器端发包速率进行一次升速调整,并实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于所述升速因子,对服务器端发包速率进行升速调整,并实时判断是否收到所述cnp报文的步骤,直至收到所述cnp报文后,停止对服务器端发包速率的升速调整。6.如权利要求5所述的数据中心网络拥塞控制方法,其特征在于,所述基于所述升速因子,对服务器端发包速率进行一次升速调整,并实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于所述升速因子,对服务器端发包速率进行升速调整,并实时判断是否收到所述cnp报文的步骤,直至收到所述cnp报文后,停止对服务器端发包速率的升速调整的步骤,包括:基于所述升速因子,对服务器端发包速率进行一次升速调整,并确定升速调整次数,同时实时判断是否收到所述cnp报文;若完成上一次升速调整后,未收到所述cnp报文,则增加一次所述升速调整次数,并重复基于所述升速因子,对服务器端发包速率进行一次升速调整,并确定升速调整次数的步骤;当所述升速调整次数达到预设的升速次数阈值,则对所述升速因子进行提升调整;基于提升调整后的升速因子对服务器端发包速率进行相应的升速调整,同时实时判断是否收到所述cnp报文,若完成上一次升速调整后,未收到所述cnp报文,则重复基于提升调整后的升速因子对服务器端发包速率进行相应的升速调整,同时实时判断是否收到所述cnp报文;其中,收到所述cnp报文后,停止对服务器端发包速率的升速调整。7.如权利要求1所述的数据中心网络拥塞控制方法,其特征在于,所述获取交换机的第一状态信息的步骤,包括:采用带内网络遥测技术int,获取每一跳交换机的初始状态信息,其中,所述初始状态信息包括队列长度、数据包的传输字节、拥塞标记数据包的传输字节和链路带宽容量;将所述每一跳交换机的初始状态信息进行累加,得到交换机的第三状态信息;基于所述每一跳交换机,计算所述第三状态信息的平均值,得到交换机的第一状态信息。8.一种数据中心网络拥塞控制装置,其特征在于,所述数据中心网络拥塞控制装置包括:获取模块,用于当收到拥塞通知cnp报文时,获取交换机的第一状态信息;降速模块,用于将所述第一状态信息输入至当前的拥塞控制模型,基于所述拥塞控制
模型,对所述第一状态信息进行拥塞分析处理,得到决策结果,并基于所述决策结果,对服务器端进行降速处理,其中,所述拥塞控制模型是基于分布式深度强化学习drl训练得到的;评分模块,用于获取服务器端降速后交换机的第二状态信息,并基于所述第二状态信息,确定决策评分值;更新模块,用于基于所述决策评分值,对所述拥塞控制模型进行训练更新,得到更新后的拥塞控制模型,其中,所述更新后的拥塞控制模型用于下一轮的状态信息处理。9.一种数据中心网络拥塞控制设备,其特征在于,所述数据中心网络拥塞控制设备包括:存储器、处理器以及存储在存储器上的用于实现所述数据中心网络拥塞控制方法的程序,所述存储器用于存储实现数据中心网络拥塞控制方法的程序;所述处理器用于执行实现所述数据中心网络拥塞控制方法的程序,以实现如权利要求1至7中任一项所述数据中心网络拥塞控制方法的步骤。10.一种存储介质,其特征在于,所述存储介质上存储有实现数据中心网络拥塞控制方法的程序,所述实现数据中心网络拥塞控制方法的程序被处理器执行以实现如权利要求1至7中任一项所述数据中心网络拥塞控制方法的步骤。

技术总结
本申请公开了一种数据中心网络拥塞控制方法、装置、设备及存储介质,所述数据中心网络拥塞控制方法包括:当收到拥塞通知报文时,获取交换机的第一状态信息;将第一状态信息输入至当前的拥塞控制模型,基于拥塞控制模型,对状态信息进行拥塞分析处理,得到决策结果,并基于决策结果,对服务器端进行降速处理;获取服务器端降速后交换机的第二状态信息,并基于第二状态信息,确定决策评分值;基于决策评分值,对所述拥塞控制模型进行训练更新,得到更新后的拥塞控制模型。本申请属于计算机技术领域,基于分布式深度强化学习训练的拥塞控制模型,通过在不需要先验知识的前提下自主探索环境并获得决策评分值更新模型的策略,能够适应网络动态变化。网络动态变化。网络动态变化。


技术研发人员:卢汉成 韩仁孝 王明辉 谢江轩 吴枫
受保护的技术使用者:新华三技术有限公司
技术研发日:2023.09.13
技术公布日:2023/10/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐