一种拥塞控制方法及装置与流程

文档序号:27116869发布日期:2021-10-27 19:12阅读:286来源:国知局
一种拥塞控制方法及装置与流程

1.本技术涉及网络通信技术领域,特别是涉及一种拥塞控制方法及装置。


背景技术:

2.网络环境复杂,影响网络传输效率的因素众多。拥塞控制是保证网络高效传输的重要环节。拥塞控制方法包括启发式拥塞控制方法和基于学习的拥塞控制方法。启发式拥塞控制方法利用拥塞控制信号,调节拥塞窗口(congestion window,cwnd)值和发送速率。启发式拥塞控制方法难以分辨某些拥塞控制信号是否为网络拥塞所产生,难以适应复杂的网络环境。基于学习的拥塞控制方法可以通过学习网络的整体特征来做出决策,调节cwnd值和发送速率。基于学习的拥塞控制方法能够更快速地响应网络环境的变化,并大大减少拥塞控制方法的开发周期。
3.由于基于学习的拥塞控制方法具有上述优点,基于学习的拥塞控制方法引起了广泛的研究。但是,相关技术中基于学习的拥塞控制方法对状态数据的使用不够合理,无法适应复杂的网络环境,拥塞控制效果较差。


技术实现要素:

4.本技术实施例的目的在于提供一种拥塞控制方法及装置,以提高拥塞控制效果。具体技术方案如下:
5.第一方面,本技术实施例提供了一种拥塞控制方法,所述方法包括:
6.获取m个往返时延rtt的状态数据,并根据预设奖励函数,确定当前网络环境的奖励值,所述m大于1;
7.利用所获取的状态数据,构建状态向量;
8.将所述状态向量和所述奖励值输入预设神经网络模型,得到目标动作项;
9.按照所述目标动作项,进行拥塞控制。
10.可选的,每个rtt包括n个时间段,所述n大于1;
11.所述获取m个rtt的状态数据的步骤,包括:
12.收集m个rtt中每个rtt内预设的多个状态特征关联的状态数据;
13.针对m个rtt中的每个rtt,基于所述多个状态特征,对该rtt内的状态数据进行整合,得到该rtt中每个时间段的状态数据。
14.可选的,所述针对m个rtt中的每个rtt,基于所述多个状态特征,对该rtt内的状态数据进行整合,得到该rtt中每个时间段的状态数据的步骤,包括:
15.针对m个rtt中的每个rtt的每个时间段,若该时间段内发生预设事件,则将上一时间段的状态数据中,所述预设事件关联的状态特征对应的特征值置为预设值,得到该时间段的状态数据。
16.可选的,所述状态数据包括多个状态特征和每个状态特征对应的一个特征值;
17.所述利用所获取的状态数据,构建状态向量的步骤,包括:
18.利用所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值,构建状态向量。
19.可选的,所述利用所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值,构建状态向量的步骤,包括:
20.由所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值构建一维行向量,以得到状态向量。
21.可选的,所述特征值为最小值、最大值、均值、和值或方差;所述m为2。
22.可选的,所述将所述状态向量和所述奖励值输入预设神经网络模型,得到目标动作项的步骤,包括:
23.将所述状态向量和所述奖励值输入预设神经网络模型,得到多个动作项的概率;
24.将概率最大的动作项作为目标动作项。
25.可选的,所述将所述状态向量和所述奖励值输入预设神经网络模型,得到目标动作项的步骤,包括:
26.将所述状态向量和所述奖励值输入预设神经网络模型,得到多个动作项的概率;
27.按照动作项的概率分布,从所述多个动作项中确定目标动作项。
28.第二方面,本技术实施例提供了一种拥塞控制装置,所述装置包括:
29.第一获取单元,用于获取m个往返时延rtt的状态数据,并根据预设奖励函数,确定当前网络环境的奖励值,所述m大于1;
30.构建单元,用于利用所获取的状态数据,构建状态向量;
31.预测单元,用于将所述状态向量和所述奖励值输入预设神经网络模型,得到目标动作项;
32.控制单元,用于按照所述目标动作项,进行拥塞控制。
33.可选的,每个rtt包括n个时间段,所述n大于1;
34.所述第一获取单元,具体用于:收集m个rtt中每个rtt内预设的多个状态特征关联的状态数据;针对m个rtt中的每个rtt,基于所述多个状态特征,对该rtt内的状态数据进行整合,得到该rtt中每个时间段的状态数据。
35.可选的,所述第一获取单元,具体用于:
36.针对m个rtt中的每个rtt的每个时间段,若该时间段内发生预设事件,则将上一时间段的状态数据中,所述预设事件关联的状态特征对应的特征值置为预设值,得到该时间段的状态数据。
37.可选的,所述状态数据包括多个状态特征和每个状态特征对应的一个特征值;
38.所述构建单元,具体用于:
39.利用所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值,构建状态向量。
40.可选的,所述构建单元,具体用于:
41.由所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值构建一维行向量,以得到状态向量。
42.可选的,所述特征值为最小值、最大值、均值、和值或方差;所述m为2。
43.可选的,所述预测单元,具体用于:
44.将所述状态向量和所述奖励值输入预设神经网络模型,得到多个动作项的概率;将概率最大的动作项作为目标动作项。
45.可选的,所述预测单元,具体用于:
46.将所述状态向量和所述奖励值输入预设神经网络模型,得到多个动作项的概率;按照动作项的概率分布,从所述多个动作项中确定目标动作项。
47.第三方面,本技术实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
48.存储器,用于存放计算机程序;
49.处理器,用于执行存储器上所存放的程序时,实现第一方面提供的任一拥塞控制方法步骤。
50.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的任一拥塞控制方法步骤。
51.本技术实施例有益效果:
52.本技术实施例提供的技术方案中,利用m个rtt的状态数据,进行拥塞控制。在执行一次拥塞控制后,需要经过一个rtt后才能体现出本次拥塞控制所带来的效果。即,在执行一次拥塞控制后的第一个rtt的状态数据为:体现上一次拥塞控制对网络环境的影响;后续m

1个rtt的状态数据为:体现本次拥塞控制对网络环境的影响。因此,本技术实施例提供的技术方案中,将m个rtt作为一次状态观测的时间间隔,基于m个rtt的状态数据进行拥塞控制,即考虑了历史拥塞控制对网络环境的影响,也考虑了当前拥塞控制对网络环境的影响,这使得预设神经网络模型更容易理解网络环境,从而使得预设神经网络模型更为准确的进行拥塞控制,提高了拥塞控制效果。
53.当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
54.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
55.图1为相关技术中网络传输线程与rl推理线程的一种交互示意图。
56.图2为相关技术中torchbeast与网络环境的一种交互示意图;
57.图3为相关技术中神经网络模型的一种结构示意图;
58.图4为相关技术中排队时延的一种示意图;
59.图5为本技术实施例提供的拥塞控制方法的第一种流程示意图;
60.图6为本技术实施例提供的网络状态观测过程的一种示意图;
61.图7为本技术实施例提供的拥塞控制方法的第二种流程示意图;
62.图8为本技术实施例提供的拥塞控制方法的第三种流程示意图;
63.图9为本技术实施例提供的拥塞控制方法的第四种流程示意图;
64.图10为本技术实施例提供的拥塞控制装置的一种结构示意图;
65.图11为本技术实施例提供的电子设备的一种结构示意图。
具体实施方式
66.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本技术保护的范围。
67.网络环境复杂,随机丢包、往返时延(round trip time,rtt)变化范围大、带宽变化范围大、缓存深度不一、流量整形、防火墙、数据中心、无线连接、卫星网络连接和虚拟私网等因素均会影响网络传输效率。拥塞控制是保证网络高效传输的重要环节。
68.目前,常用的拥塞控制方法为基于学习的拥塞控制方法。基于学习的拥塞控制方法包括:基于传统机器学习的remy和pcc系列等拥塞控制方法,基于模仿学习的indigo拥塞控制方法,基于强化学习(reinforcement learning,rl)的qtcp、aurora和mvfst

rl等拥塞控制方法。
69.基于学习的拥塞控制方法需要消耗较多的计算资源,并且学习计算的耗时较长,对数据发送过程会产生较大的负面影响。这使得大部分基于学习的拥塞控制方法停留在实验室阶段。
70.mvfst为facebook实现的基于udp的低时延的互联网(quick user datagram protocol internet connection,quic)传输协议。
71.mvfst

rl拥塞控制方法为基于mvfst的有时延的异步强化学习的拥塞控制可拓展框架,即拥塞控制策略线程(即rl推理线程)独立于网络传输线程。在整个拥塞控制框架中,mvfst

rl拥塞控制方法对强化学习的状态数据使用不够合理,且强化学习的状态数据设计不合理,会导致基于学习的拥塞控制方法表现适应性差。
72.状态特征s为强化学习中的状态数据中的一个要素,状态特征s
t
表示对t时刻网络环境的状态描述。对网络环境的状态做出准确描述可以使拥塞控制方法对网络环境的理解更准确,从而做出更合理的决策。拥塞控制任务中,状态特征表示为当前网络的传输状态,如当前的发送速率、ack(确认消息)回复速率、丢包状况和延时状况等。但由于强化学习对计算资源耗费较多,学习计算耗时较大,因此无法做到时刻进行拥塞控制调节。通常为,间隔一定时间或累计一定个数的ack进行一次拥塞控制调节,这使得网络环境状态的描述变得困难。
73.下面以mvfst

rl拥塞控制方法为例,对相关技术中的拥塞控制方法进行详细说明。mvfst

rl拥塞控制方法分为三个部分:1)mvfst;2)torchbeast,基于pytorch实现的impala强化学习算法,pytorch为一个开源的python机器学习库;3)pantheon网络模拟器,用于模拟网路环境。
74.在mvfst

rl框架中,网络传输线程与rl推理线程相互独立,如图1所示。mvfst运行在网络传输线程中,torchbeast运行在rl推理线程中。s
t
表示状态数据,a
t
表示动作项。图1中,t为1、2、3或4。
75.以预设时间间隔为100毫秒(ms)。在计时100ms内,在每次触发ack事件或者丢包事
件时,发送端的mvfst收集ack及状态数据。其中,状态数据空间包括如表1所示的状态特征。
76.表1
77.call,rpc)服务进行状态数据与动作项的交互。
86.mvfst在获取到状态数据后,利用预设奖励函数,确定当前网络环境的奖励值。该当前网络环境的奖励值用于引导神经网络模型(即后续强化学习网络)调整参数。在得到状态向量和当前网络环境的奖励值后,mvfst通过rpc服务将状态向量和当前网络环境的奖励值传递给rl推理线程中的actor;另外,mvfst继续按照之前的cwnd值发送数据包。
87.强化学习网络结构如图3所示,包括2个全连接层(fully connected,fc)层和一个长短期记忆人工神经网络(long

short term memory,lstm)层,每个fc层包含512个神经元节点,每个fc层后接有一个线性整流函数(rectified linear unit,relu)。relu是一种人工神经网络中常用的激活函数(activation function),通常指代以斜坡函数及其变种为代表的非线性函数。actor获取到状态向量和奖励值(reward)后,将状态向量输入底层的fc层,经过2个fc层状态特征提取后,将状态特征与reward进行合并,以输入lstm层。对lstm层输出的结果进行线性变化得到策略(policy)和价值(value),完成了对状态向量进行推理,得到推理结果,即policy和value,并将状态向量、奖励值及推理结果存放在队列中。
88.其中,policy中包括多个动作项和每个动作项的概率,value为强化学习网络基于policy进行拥塞控制,所预估的网络环境的奖励值。actor按照policy中动作项的概率分布确定目标动作项,并按照目标动作项进行拥塞控制。
89.另外,在训练过程中,经过一个roll_length(滚动长度,如80),即actor在队列中存放了80组状态向量及推理结果后,actor通知learner。learner为评判者(critic),其将队列中数据取出,利用取出的数据(如强化学习网络输出的policy和value、以及输入强化学习网络的当前网络环境的奖励值)进行学习,以计算损失值,更新参数。learner更新参数后,将更新后的参数同步给actor。
90.在训练结束后,actor得到policy,将policy中概率最大的动作项作为目标动作项,按照目标动作项进行拥塞控制。
91.上述mvfst

rl拥塞控制方法具有以下几个优点:
92.1)mvfst

rl拥塞控制方法使用pantheon网络模拟器,可以同时产生多个网络环境,使得训练数据变得易获取;
93.2)mvfst

rl拥塞控制方法使用impala强化学习算法,是一个off

policy(离策略)的actor

critic算法,可以在多网络环境下实现快速高并发的训练,快速收敛;
94.3)mvfst

rl拥塞控制方法使用异步模式进行拥塞控制,强化学习推理过程不会阻塞网络数据包的收发;
95.4)mvfst

rl拥塞控制方法适用于mvfst,即基于quic的拥塞控制。
96.虽然mvfst

rl拥塞控制方法具有上述优点,但它同样具有如下缺点,如下:
97.a)通过“求和”、“求均值”、“求最小值”、“求最大值”以及“求方差”的方式,来表达一个时间间隔内的状态特征,对时序特征丢失严重;例如图4所示的排队时延,图4的(a)中排队时延逐渐增加,图4的(b)中排队时延逐渐减小,当“求和”、“求均值”、“求最小值”、“求最大值”以及“求方差”处理后,这两组数据的表达是一致的;
98.b)状态特征冗余,导致计算量较大;
99.c)以固定时间间隔进行一次拥塞控制调节,难以平衡不同时延的网络环境的差异;例如,以固定10ms或100ms的时间间隔进行一次拥塞控制调节,对不同时延的网络影响
不同;
100.d)以固定ack个数进行一次拥塞控制调节,难以平衡不同带宽的网络环境的差异;例如,以固定收集100个ack进行一次拥塞调节,对10mbps和1000mbps的网络环境的影响不同。
101.为解决上述问题,本技术实施例提供了一种拥塞控制方法,该方法中,利用m个rtt的状态数据,进行拥塞控制。
102.在执行一次拥塞控制后,需要经过一个rtt后才能体现出本次拥塞控制所带来的效果。即,在执行一次拥塞控制后的第一个rtt的状态数据为:体现上一次拥塞控制对网络环境的影响;后续m

1个rtt的状态数据为:体现本次拥塞控制对网络环境的影响。因此,本技术实施例提供的技术方案中,将m个rtt作为一次状态观测的时间间隔,基于m个rtt的状态数据进行拥塞控制,即考虑了历史拥塞控制对网络环境的影响,也考虑了当前拥塞控制对网络环境的影响,这使得预设神经网络模型更容易理解网络环境,从而使得预设神经网络模型更为准确的进行拥塞控制,进一步提高了拥塞控制效果。
103.下面通过具体实施例,对本技术实施例提供的拥塞控制方法进行详细说明。为便于理解,下面以电子设备为执行主体进行说明,并不起限定作用。该电子设备中可以包括网络传输线程与rl推理线程。
104.参见图5,图5为本技术实施例提供的拥塞控制方法的第一种流程示意图,该方法包括如下步骤:
105.步骤s51,获取m个rtt的状态数据,并根据预设奖励函数,确定当前网络环境的奖励值,其中,m大于1。
106.本技术实施例中,状态数据可以包括多个状态特征,以及每个状态特征对应的一个特征值,如表2所示。
107.表2
[0108][0109][0110]
本技术实施例中,每个状态特征对应的一个特征值的类型可以根据实际需求进行设定。一个示例中,一个状态特征对应的一个特征值的类型可以为最能体现该状态特征的物理意义的类型。
[0111]
本技术实施例中,每个状态特征可以对应多个特征值,这多个特征值的类型可以
包括但不限于最小值、最大值、平均值、总和方差等。
[0112]
本技术实施例中,电子设备中的网络传输线程以m个rtt作为一次状态观测的时间间隔,依次获取m个rtt的状态数据。
[0113]
本技术实施例中,电子设备的网络传输线程可以在收到ack或者检测到丢包时,收集状态数据;当收集完成一个rtt的状态数据后,对收集的该rtt的状态数据进行整合,得到整合后的rtt的状态数据,即后续用于拥塞控制的rtt的状态数据。重复状态数据收集的操作,直至收集完成m个rtt的状态数据。
[0114]
例如,在t1时刻,电子设备的网络传输线程确定发送端与接收端之间的rtt为rtt1,其中,发送端即为该电子设备。网络传输线程在收到ack或者检测到丢包时,收集状态数据。当到达t2时刻时,t1至t2的时长为rtt1,网络传输线程对收集的rtt1的状态数据进行整合,得到整合后的rtt1的状态数据。
[0115]
另外,当到达t2时刻时,网络传输线程重新确定发送端与接收端之间的rtt为rtt2,网络传输线程在收到ack或者检测到丢包时,收集状态数据。当到达t3时刻时,t2至t3的时长为rtt2,网络传输线程对收集的rtt2的状态数据进行整合,得到整合后的rtt2的状态数据。
[0116]
此外,当到达t3时刻时,网络传输线程重新确定发送端与接收端之间的rtt为rtt3,网络传输线程在收到ack或者检测到丢包时,收集状态数据。以此类推,重复执行上述收集rtt的状态数据,直至得到m个整合后的rtt的状态数据为止。
[0117]
在执行一次拥塞控制后,需要经过一个rtt后才能体现出本次拥塞控制所带来的效果。即,在执行一次拥塞控制后的第一个rtt的状态数据为:体现上一次拥塞控制对网络环境的影响;后续m

1个rtt的状态数据为:体现本次拥塞控制对网络环境的影响。因此,本技术实施例提供的技术方案中,将m个rtt作为一次状态观测的时间间隔,基于m个rtt的状态数据进行拥塞控制,即考虑了历史拥塞控制对网络环境的影响,也考虑了当前拥塞控制对网络环境的影响,这使得预设神经网络模型更容易理解网络环境,从而使得预设神经网络模型更为准确的进行拥塞控制,提高了拥塞控制效果。
[0118]
一个可选的实施例中,为提高执行拥塞控制的效率,上述m可以为2。也就是,以一个计时器,计时2个rtt作为一次状态观测的时间间隔,如图6所示的状态观测的过程,其中,行动指示的时刻即为执行拥塞控制的时刻,该时刻为当前一次状态观测的起始时刻,该时刻也是上一次状态观测的结束时刻。在一个状态观测的周期内,第一个rtt内收集的状态数据可以被看做是:前一次拥塞控制对网络环境产生影响得到的状态数据,而第二rtt内收集的状态数据可以被看做是:当前一次调节对网络环境产生影响得到的状态数据。
[0119]
由于网络存在传输时延,发送端执行一次拥塞控制后,需要经过1个rtt,发送端能感知这次拥塞控制引起的状态特征变化,如排队时延的变化。本技术实施例中,计时2个rtt作为一次状态观测的时间间隔,基于这2个rtt进行拥塞控制,同样可以考虑到历史拥塞控制对网络环境的影响,以及当前拥塞控制对网络环境的影响,这在保证拥塞控制效果的同时,减少了一次拥塞控制所需的rtt的状态数据,提高了执行拥塞控制的效率。
[0120]
依据上述方法获取状态数据,使得电子设备的rl推理线程中的预设神经网络模型更容易理解网络环境,状态数据更具备规律性,且更符合马尔科夫模型,从而使预设神经网络模型进行拥塞控制更准确。
[0121]
在本技术实施例中,在获取到m个rtt的状态数据后,电子设备的网络传输线程可以利用预设奖励函数,根据当前网络状态,确定当前网络环境的奖励值。其中,预设奖励函数可以参见相关技术,此处不再赘述。
[0122]
步骤s52,利用所获取的状态数据,构建状态向量。
[0123]
本技术实施例中,电子设备的网络传输线程对所获取的状态数据进行组合,得到状态向量。例如,电子设备中的网络传输线程按照时间顺序,将所获取的状态数据包括的特征值平铺为一维向量,得到状态向量。
[0124]
步骤s53,将状态向量和奖励值输入预设神经网络模型,得到目标动作项。
[0125]
预设神经网络模型的输入为状态向量和奖励值,输出为policy和value。预设神经网络模型的结构可参见上述图3所示。本技术实施例中,预设神经网络模型也可以采用其他结构,对此不进行限定。
[0126]
本技术实施例中,电子设备的网络传输线程将状态向量和奖励值传输给电子设备中的rl推理线程。rl推理线程获取到状态向量和奖励值后,将状态向量和奖励值输入预设神经网络模型,预设神经网络模型对状态向量和奖励值进行推理,得到policy和value,并从policy中确定目标动作项。
[0127]
一个实施例中,rl推理线程可以将policy反馈给网络传输线程,网络传输线程根据policy,确定目标动作项。
[0128]
具体的确定目标动作项的方式,可参见上述图1

4部分的描述。
[0129]
步骤s54,按照目标动作项,进行拥塞控制。
[0130]
电子设备中的网络传输线程获取到目标动作项后,按照目标动作项,调节cwnd值,按照调整后的cwnd值进行拥塞控制。
[0131]
例如,动作项空间包括:“0,/2,

10,+10,*2”这5个动作项,其中,动作项“0”表示cwnd值加0,即cwnd值不变;动作项“/2”表示cwnd值除以2,动作项
“‑
10”表示cwnd值

10,动作项“+10”表示cwnd值+10,动作项“*2”表示cwnd值乘以2。假设cwnd值为100,电子设备中的网络传输线程确定目标动作项为“+10”,则网络传输线程按照目标动作项调节cwnd值为100+10=110。网络传输线程按照cwnd值=110进行拥塞控制,即向网络中最多同时传输110个数据包。
[0132]
本技术实施例中,网络传输线程执行步骤s54,进行拥塞控制后,进入状态观测的周期,重新执行步骤s51,获取新的m个rtt的状态数据。
[0133]
本技术实施例提供的技术方案中,将m个rtt作为一次状态观测的时间间隔,基于m个rtt的状态数据进行拥塞控制,即考虑了历史拥塞控制对网络环境的影响,也考虑了当前拥塞控制对网络环境的影响,这使得预设神经网络模型更容易理解网络环境,从而使得预设神经网络模型更为准确的进行拥塞控制,提高了拥塞控制效果。
[0134]
在本技术的一个实施例中,本技术实施例还提供了一种拥塞控制方法,如图7所示,该方法中,步骤s51可以细化为步骤s511、s512和s513。
[0135]
步骤s511,收集m个rtt中每个rtt内预设的多个状态特征关联的状态数据。
[0136]
本技术实施例中,状态特征如上述表1和表2所示,状态特征关联的状态数据为统计状态特征的特征值所需的状态数据。针对m个rtt中每个rtt,网络传输线程收集该rtt内预设的多个状态特征关联的状态数据。该收集状态数据的时刻可以为上述接收到ack或检
测到丢包的时刻。
[0137]
步骤s512,针对m个rtt中的每个rtt,基于多个状态特征,对该rtt内的状态数据进行整合,得到该rtt中每个时间段的状态数据。
[0138]
本技术实施例中,针对m个rtt中的每个rtt,在收集完成该rtt的状态数据后,网络传输线程基于多个状态特征,对该rtt内的状态数据划分为4个时间段的状态数据,并进行整合,得到该rtt中每个时间段的状态数据。此时,每个时间段的状态数据包括上述多个状态特征的特征值。
[0139]
步骤s513,根据预设奖励函数,确定当前网络环境的奖励值。
[0140]
本技术实施例中,将每个rtt划分为多个时间段,获取多个时间段的状态数据,此时,一个rtt的状态数据实际具有多个时间段的状态数据,基于这多个时间段的状态数据,可以确定一个rtt内状态数据随时间的变化,即一个rtt的状态数据具有了时序特征,利用包括时序特征的rtt的状态数据进行拥塞控制,进一步提高了拥塞控制效果。
[0141]
在本技术的一个实施例中,本技术实施例还提供了一种拥塞控制方法,如图8所示,该方法中,步骤s52可以细化为步骤s521。
[0142]
步骤s521,利用所获取的状态数据包括的特征值、预设数量个历史动作项以及执行历史动作项后的拥塞窗口值,构建状态向量。
[0143]
本技术实施例中,特征值的类型是有限的,例如,特征值的类型包括均值、最小值、最大值或方差等。
[0144]
动作项的类是多种多样的,例如,“0”,“/2”,
“‑
10”,“+10”,*2”,“*10”,“/10”等。若需要预设神经网络模型识别出这多种多样的动作项,需要预设神经网络模块学习到这多种多样的动作项,这就增加了预设神经网络模块训练的复杂度。
[0145]
为了降低预设神经网络模块训练的复杂度,本技术实施例中,可以利用预设编码算法对历史动作项进行编码处理。基于编码后的历史动作项,所获取的状态数据包括的特征值,以及执行历史动作项后的拥塞窗口值,网络传输线程构建状态向量。
[0146]
上述编码后的历史动作项采用特定类型的特征值表示,例如利用“0”和“1”表示,简化了预设神经网络模块学习的数据的类型,降低了预设神经网络模块训练的复杂度。
[0147]
本技术实施例中,预设编码算法可以为one hot编码算法,动作项空间包括5个动作项,分别为动作项1

5,该动作项空间与一个长度为5的特征向量0对应,且该特征向量0中元素与动作项一一对应。当历史动作项为动作项1时,电子设备利用one hot编码算法,将特征向量0中动作项1对应元素的元素值置为1,其他元素的元素值置为0,得到该历史动作项对应的特征向量1为[1,0,0,0,0]。
[0148]
当历史动作项为动作项2时,电子设备利用one hot编码算法,将特征向量0中动作项2对应元素的元素值置为1,其他元素的元素值置为0,得到该历史动作项对应的特征向量2为[0,1,0,0,0]。
[0149]
当历史动作项为动作项3、4或5时,历史动作项的编码过程参见上述历史动作项为动作项1或2时的操作,此处不做赘述。
[0150]
一个可选的实施例中,电子设备的网络传输线程可以按照时间顺序,将所获取的状态数据包括的特征值、预设数量个历史动作项以及执行历史动作项后的拥塞窗口值构建一维行向量,得到状态向量。
[0151]
例如,预设数量为5,动作项空间包括{k1,k2,k3,k4,k5}。按照时间先后顺序,所获取的状态数据包括的特征值包括{s1,s2,s3,s4};按照时间先后顺序,历史动作项和执行历史动作项后的拥塞窗口值包括{(k2,cwnd1),(k1,cwnd2),(k3,cwnd3),(k2,cwnd4),(k4,cwnd5)}。历史动作项采用one hot编码算法进行编码,则网络传输线程最终获得的状态向量可以为:{(s1,s2,s3,s4),(0,1,0,0,0,cwnd0),(1,0,0,0,0,cwnd2),(0,0,1,0,0,cwnd3),(0,1,0,0,0,cwnd4),(0,0,0,1,0,cwnd5)}。
[0152]
本技术实施例中,电子设备的网络传输线程还可以采用他方式确定状态向量,对此不进行限定。
[0153]
本技术实施例中,在状态向量中增加了预设数量个历史动作项以及执行历史动作项后的拥塞窗口值,这使得预设神经网络模型推理得到目标动作项所考虑的参数增多,提高了推理结果的准确性,进而提高了后续拥塞控制的准确性。
[0154]
本技术实施例提供的技术方案中,考虑了多个rtt的状态数据,且每个rtt的状态数据又分为多个时间段的状态数据,即考虑了时序特征以及网络环境的变化。另外,本技术实施例中,每个状态特征对应的一个特征值,即只考虑最能体现状态特征的物理意义的特征值。
[0155]
基于本技术实施例提供的技术方案,发明人进行试验发现:以2个rtt为一次状态观测的时间间隔,将每个rtt划分为4个时间段,采用如表2所示的8个状态特征以及相应的特征值,选用5个历史动作项,在动作项空间包括5个动作项的情况下,本技术实施例提供的技术方案能够取得较好的拥塞控制效果。而本技术实施例提供的技术方案中,状态向量的长度为:
[0156]
状态特征个数
×
一个rtt划分的时间段个数
×
一次拥塞控制的状态数据的统计时间间隔包括的rtt个数+历史动作项个数
×
(动作项空间对应的特征向量的长度(即动作项空间包括的动作项的个数)+执行历史动作项后的拥塞窗口值的个数(即1))=8
×4×
2+5
×
(5+1)=94。如上述相关技术中,状态向量的长度为220。可见,本技术实施例提供的技术方案,在保证拥塞控制效果的情况下,状态向量的长度降低了(1

94/220)=57.27%。
[0157]
因此,应用本技术实施例提供的技术方案,可以减少状态数据中冗余的状态特征,进而降低强化学习对计算资源的耗费,减少学习计算耗时。
[0158]
在本技术的一个实施例中,本技术实施例还提供了一种拥塞控制方法,如图9所示,该方法中,步骤s512可以细化为步骤s5121。
[0159]
步骤s5121,针对m个rtt中的每个rtt的每个时间段,若该时间段内发生预设事件,则将上一时间段的状态数据中,预设事件关联的状态特征对应的特征值置为预设值,得到该时间段的状态数据。
[0160]
预设事件为指示拥塞未发生的事件,具体可以根据实际需求进行设定。预设事件关联的状态特征为预设事件发生时所影响的状态特征。预设值可以根据实际需求进行设定。例如。预设值可以为0、1或2等。
[0161]
例如,状态数据包括的状态特征和对应的特征值,如上述表2所示。为便于理解,以下以“状态特征(特征值)”方式表示,例如,状态数据包括:rtt_min(min)表示状态特征rtt_min对应的特征值大小为min。相应的,以上述表2所示状态特征为例,状态数据还可以包括lrtt(mean),delay(mean),cwnd_bytes(mean),inflight_bytes(mean),sent_bytes(sum),
acked_bytes(sum),lost_bytes(sum)。
[0162]
假设,预设值为0,预设事件可以为没有收到ack且没有检测到丢包。此时,预设事件关联的状态特征为sent_bytes,acked_bytes,lost_bytes。
[0163]
这种情况下,若t1时间段内收到ack和/或检测到丢包,则网络传输线程从网络中采集t1时间段的状态数据为:rtt_min(min1),lrtt(mean2),delay(mean3),cwnd_bytes(mean4),inflight_bytes(mean5),sent_bytes(sum6),acked_bytes(sum7),lost_bytes(sum8)。
[0164]
在t1的下一时间段t2内没有收到ack且没有检测到丢包,则网络传输线程无需从网络中采集状态数据,继承t1的状态数据,并将t1的状态数据中sent_bytes、acked_bytes和lost_bytes的特征值设置为0,此时,时间段t2的状态数据为:rtt_min(min1),lrtt(mean2),delay(mean3),cwnd_bytes(mean4),inflight_bytes(mean5),sent_bytes(0),acked_bytes(0),lost_bytes(0)。
[0165]
在一个时间段内发生预设事件,表明该时间段未发生拥塞,该时间段的状态数据无需整合。本技术实施例中,在一个时间段内发生预设事件时,网络传输线程可以继承上一时间段获取的状态数据,并将上一时间段获取的状态数据中预设事件关联的状态特征对应的特征值置为预设值,得到该时间段的状态数据。这样,可以保留该时间段的时序信息,进而网络传输线程可以利用rtt内多个时间段的状态数据来描述时序特征,以保证后续拥塞控制的准确性。
[0166]
本技术实施例中,拥塞控制方法可以分为应用阶段和训练阶段。
[0167]
在训练阶段,rl推理线程中的actor将状态向量和奖励值输入预设神经网络模型,得到多个动作项的概率,即policy中包括的动作项的概率;按照动作项的概率分布,从多个动作项中确定目标动作项。
[0168]
例如,动作项空间为:“0,/2,

10,+10,*2”。rl推理线程中的actor将状态向量和奖励值输入预设神经网络模型,得到:“0”的概率为0.7,“/2”的概率为0.2,
“‑
10”的概率为0.05,“+10”的概率为0.03,“*2”的概率为0.02。此时,可以理解为,选择“0”的概率为0.7,选择“/2”的概率为0.2,选择
“‑
10”的概率为0.05,选择“+10”的概率为0.03,选择“*2”的概率为0.02。rl推理线程中的actor按照动作项的概率分布,从多个动作项中确定目标动作项。
[0169]
在应用阶段,rl推理线程中的actor将状态向量和奖励值输入预设神经网络模型,得到多个动作项的概率。rl推理线程中的actor可将概率最大的动作项作为目标动作项。
[0170]
例如,动作项空间为:“0,/2,

10,+10,*2”。actor将状态向量和奖励值输入预设神经网络模型,得到:“0”的概率为0.7,“/2”的概率为0.2,
“‑
10”的概率为0.05,“+10”的概率为0.03,“*2”的概率为0.02。0.7最大,因此,rl推理线程中的actor将0.7对应的动作项“0”作为目标动作项。
[0171]
在本技术的一个实施例中,rl推理线程中的actor将状态向量和奖励值输入预设神经网络模型,除了可以得到多个动作项的概率,还可以得到价值(value)。rl推理线程中的actor记录下输入的状态向量、奖励值、目标动作项和value,作为一组拥塞控制数据。
[0172]
经过预设时长后,rl推理线程中的actor获取到多组拥塞控制数据,这多组拥塞控制数据按时间顺序排序。rl推理线程中的learner利用多组拥塞控制数据,确定损失值;若根据损失值确定所述预设神经网络模型收敛,则结束预设神经网络模型的训练;若根据所
损失值确定所述预设神经网络模型未收敛,则调整预设神经网络模型的参数,并返回执行上述步骤s51,进行训练预设神经网络模型,直至预设神经网络模型收敛。
[0173]
上述仅以目标动作项由actor确定为例进行说明,并不起限定作用。具体的训练过程可参见上述actor和learner部分的相关描述。
[0174]
与上述拥塞控制方法对应,本技术实施例还提供了一种拥塞控制装置,如图10所示,该装置包括:
[0175]
第一获取单元101,用于获取m个rtt的状态数据,并根据预设奖励函数,确定当前网络环境的奖励值,m大于1;
[0176]
构建单元102,用于利用所获取的状态数据,构建状态向量;
[0177]
预测单元103,用于将状态向量和奖励值输入预设神经网络模型,得到目标动作项;
[0178]
控制单元104,用于按照目标动作项,进行拥塞控制。
[0179]
一个可选的实施例中,每个rtt包括n个时间段,n大于1;
[0180]
第一获取单元101,具体可以用于:收集m个rtt中每个rtt内预设的多个状态特征关联的状态数据;针对m个rtt中的每个rtt,基于多个状态特征,对该rtt内的状态数据进行整合,得到该rtt中每个时间段的状态数据。
[0181]
一个可选的实施例中,第一获取单元101,具体可以用于:
[0182]
针对m个rtt中的每个rtt的每个时间段,若该时间段内发生预设事件,则将上一时间段的状态数据中,预设事件关联的状态特征对应的特征值置为预设值,得到该时间段的状态数据。
[0183]
一个可选的实施例中,状态数据包括多个状态特征和每个状态特征对应的一个特征值;
[0184]
构建单元102,具体可以用于:
[0185]
利用所获取的状态数据包括的特征值、预设数量个历史动作项以及执行历史动作项后的拥塞窗口值,构建状态向量。
[0186]
一个可选的实施例中,构建单元102,具体用于:
[0187]
由所获取的状态数据包括的特征值、预设数量个历史动作项以及执行历史动作项后的拥塞窗口值构建一维行向量,以得到状态向量。
[0188]
一个可选的实施例中,特征值可以为最小值、最大值、均值、和值或方差;m为2。
[0189]
一个可选的实施例中,预测单元103,具体可以用于:
[0190]
将状态向量和奖励值输入预设神经网络模型,得到多个动作项的概率;将概率最大的动作项作为目标动作项。
[0191]
一个可选的实施例中,预测单元103,具体可以用于:
[0192]
将状态向量和奖励值输入预设神经网络模型,得到多个动作项的概率;按照动作项的概率分布,从多个动作项中确定目标动作项。
[0193]
本技术实施例提供的技术方案中,利用m个rtt的状态数据,进行拥塞控制。在执行一次拥塞控制后,需要经过一个rtt后才能体现出本次拥塞控制所带来的效果。即,在执行一次拥塞控制后的第一个rtt的状态数据为:体现上一次拥塞控制对网络环境的影响;后续m

1个rtt的状态数据为:体现本次拥塞控制对网络环境的影响。因此,本技术实施例提供的
技术方案中,将m个rtt作为一次状态观测的时间间隔,基于m个rtt的状态数据进行拥塞控制,即考虑了历史拥塞控制对网络环境的影响,也考虑了当前拥塞控制对网络环境的影响,这使得预设神经网络模型更容易理解网络环境,从而使得预设神经网络模型更为准确的进行拥塞控制,提高了拥塞控制效果。
[0194]
与上述拥塞控制方法对应,本技术实施例还提供了一种电子设备,如图11所示,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信,
[0195]
存储器113,用于存放计算机程序;
[0196]
处理器111,用于执行存储器113上所存放的程序时,实现上述图5

9任一所示的拥塞控制方法。
[0197]
上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0198]
通信接口用于上述电子设备与其他设备之间的通信。
[0199]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non

volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0200]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0201]
在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一拥塞控制方法的步骤。
[0202]
在本技术提供的又一实施例中,还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述实施例中任一拥塞控制方法。
[0203]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘
solid state disk(ssd))等。
[0204]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0205]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算机程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0206]
以上所述仅为本技术的较佳实施例,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1