一种自适应调节拥塞控制初始窗口的方法和系统与流程

文档序号:20608213发布日期:2020-05-01 22:18阅读:359来源:国知局
一种自适应调节拥塞控制初始窗口的方法和系统与流程

本发明涉及通信技术领域,尤其涉及一种自适应调节拥塞控制初始窗口的方法和系统。



背景技术:

tcp(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,拥塞控制是一种用来调整tcp中拥塞窗口大小的算法,许多应用通过传输控制协议实现互相通信。开始通信时,客户端会与服务器建立一个tcp连接,然后客户端向服务器发送请求,服务器收到请求后,给客户端发送响应。在进行响应数据传输时,客户端将根据拥塞控制算法动态的调整拥塞窗口的大小,拥塞窗口大小的初始值很小,通常设置成2或10。

适当提高初始窗口的大小能够减少流传输时间并且提升网络的吞吐量,然而如果一味地增大初始窗口,则可能导致网络拥塞从而增加流传输时间。所以需要设置一个最佳的初始窗口大小,使得网络在不发生额外拥塞的情况下最小化流传输时间。

初始窗口的设置可应用于多种场景,例如在边缘计算场景中,大多数应用对网络延迟非常敏感,因此网络拥塞将产生非常严重的影响。因此如何设置适当的初始拥塞窗口,才能使得流传输时间最短并且网络拥塞发生最少是一个至关重要的问题。

在现有技术中,一些研究表明,增加初始拥塞窗口能够减少http响应的延迟,例如将tcp的初始拥塞窗口大小增加到10个数据段时,http平均响应时间减少了大约10%,平均的重传率也仅增长了0.5%。然而这种方式不能动态地调整初始窗口值,会对网络传输效率产生严重影响。例如在5g边缘计算场景中,网络带宽有极大的提高,同时网络中会有大量的短流需要传输,导致这些短流往往在“慢启动”阶段就会传输结束,所以动态调整初始窗口大小能够极大的提高网络的传输效率。

有研究提出使用ucb(置信区间上界)算法动态地设置初始窗口值,最大化网路吞吐量并且最小化网络延时。然而,这种方法无法适应动态变化的网络环境,无法达到最优的性能。



技术实现要素:

本发明的目的在于克服上述现有技术的缺陷,提供一种自适应调节拥塞控制初始窗口的方法和系统,通过引入a3c强化学习模型,利用深度神经网络动态设置拥塞控制初始窗口来适用网络环境变化。

根据本发明的第一方面,提供一种自适应调节拥塞控制初始窗口的方法。该方法包括以下步骤:

构建神经网络决策模型,以历史的流传输状态作为输入,以拥塞控制初始窗口的分布作为输出动作;

构建马尔科夫学习过程通过在线学习获得所述神经网络决策模型的优化参数,其中,一个决策对应神经网络决策模型中一组参数θ,并且该决策对应一个状态轨迹{s0,a0,s1,a1,...,st,at,...}和流传输性能集合{d0,d1,...,dt,...},经过多个轮次的迭代更新,找到最佳的决策参数θ,使得期望的流传输性能最优,其中s表示输入的流传输状态,a表示输出动作;

利用所优化的神经网络决策模型获得拥塞控制初始窗口值,用于后续的流传输过程。

在一个实施例中,使用流完成传输时间、流到达的间隔时间、流结束的间隔时间、流数据量、流吞吐量、流往返时延等六个状态量生成所述神经网络决策模型的输入。具体方式是对每个状态量,利用最新的k个样本构建统计直方图来描述所述神经网络决策模型在一段时间内的流传输状态。上述所述流完成传输时间是衡量流传输性能的指标。

在一个实施例中,所述神经网络决策模型包括特征提取器和预测器,所述特征提取器用于从输入数据中提取特征,其包括依次连接的五个卷积层和一个全连接层;所述预测器用于预测拥塞控制窗口值分布,其输入是所述特征提取器提取的特征输出,所述预测器包括两个全连接层和一个输出层,并且输出层通过使用softmax激活函数将输出转换为拥塞控制初始窗口值的概率分布。

在一个实施例中,该方法还包括:在所述神经网络决策模型的输入直方图信息的变化达到预设目标的情况下,初始化所述神经神经网络决策模型的最后两层的参数进行重新优化。

在一个实施例中,采用以下指标来衡量所述神经网络决策模型的输入直方图信息的变化:

其中,s神经网络决策模型的当前输入,s'是神经网络决策模型之前的输入。

在一个实施例中,该方法还包括:在获得拥塞控制初始窗口值后,在一段时间内重复使用该值用于流传输;以及当发送方开始传输流时同时启动一个计时器,在计时器到期而流传输尚未完成的情况下,利用估计的流完成传输时间作为样本训练所述神经网络决策模型。

在一个实施例中,所述流传输性能是流完成传输时间或吞吐量中一项或多项。

在一个实施例中,通过并行架构实现所述在线学习,该架构包括一个中央代理器,多个子代理器和网络环境,其中所述中央代理器负责维护最新的神经网络决策模型的参数,每一个子代理器通过决策函数做出拥塞控制初始窗口的决策并且计算参数更新。

根据本发明的第二方面,提供一种自适应调节拥塞控制初始窗口的系统。该系统包括:模型构建单元,其用于构建神经网络决策模型,以历史的流传输状态作为输入,以拥塞控制初始窗口的分布作为输出动作;在线学习单元,其用于构建马尔科夫学习过程通过在线学习获得所述神经网络决策模型的优化参数,其中,一个决策对应神经网络决策模型中一组参数θ,并且该决策对应一个状态轨迹{s0,a0,s1,a1,...,st,at,...}和流传输性能集合{d0,d1,...,dt,...},经过多个轮次的迭代更新,找到最佳的决策参数θ,使得期望的流传输性能最优,其中s表示输入的流传输状态,a表示输出动作;预测单元,其用于利用所优化的神经网络决策模型获得拥塞控制初始窗口值,用于后续的流传输过程。

与现有技术相比,本发明的优点在于:实现了自主学习,不需要分析无线传输系统和基站系统的内部原理,能够自主调整初始窗口的大小,无需人力进行分析;实现了最优决策,能够获得最优的初始窗口,从而提高了流传输效率;实现了自适应调节,能够根据网络状况动态地调节初始窗口,在变化的网络环境中也能得到最优性能。

附图说明

以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:

图1是根据本发明一个实施例的自适应调节拥塞控制初始窗口的方法的过程示意;

图2是根据本发明一个实施例的自适应调节拥塞控制初始窗口的方法的流程图;

图3是根据本发明一个实施例的神经网络决策模型的结构示意图;

图4是根据本发明一个实施例的并行训练模型结构的示意图;

图5是根据本发明一个实施例的仿真结果示意图。

具体实施方式

为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。

在本文示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

根据本发明的一个实施例,提供一种自适应调节拥塞控制初始窗口的方法,该方法自适应地在线学习最优的初始窗口决策模型。参见图1所示,首先,当一个数据流开始传输之前,收集网络环境(network)的历史状态(states),并将其转换成统计直方图(histogram);然后,将该直方图输入到神经网络决策模型(model),经过神经网络前向运算得到输出值,即拥塞控制初始窗口值;接着,网络环境采取该值设定此数据流传输的初始窗口,并进行传输。该数据流传输进而产生了一个新的系统状态和奖励值(reward);接下来,利用该奖励值计算出神经网络决策模型的参数更新值(updateparameters),进而优化模型参数。通过这种方式,经过多轮迭代计算,最终获得一个收敛的神经网络决策模型,输出最优的初始窗口值。

需说明的是,本文涉及的网络环境,可以是移动边缘计算系统(如5g边缘计算)或其他的采用tcp/ip协议传输数据流的固定网络或移动网络环境。在下文中,将以5g边缘计算场景为例,分别介绍神经网络决策模型、在线学习算法、自适应学习算法以及优化神经网络决策模型的策略。

参见图2所示,本发明实施例提供的自适应调节拥塞控制初始窗口的方法包括以下步骤:

步骤s210,构建神经网络决策模型,以网络环境的流传输历史状态作为输入,以拥塞控制初始窗口值作为输出动作。

对于神经网络决策模型的输入,在选择输入状态时有两个原则,即:每个输入的数据能够从边缘服务器端获得;每个输入状态都与拥塞控制问题有关。根据这两个原则,在一个实施例中,选择以下六个状态量做输入:流完成传输时间、流到达的间隔时间、流结束的间隔时间、流数据量、流吞吐量和流往返时延。当服务器发送响应的第一个数据包时,流传输开始,直到这个流传输结束所经历的时间称为流传输时间。连续的两个流到达时的时间间隔称为流到达时间间隔。连续的两个流结束的时间间隔称为流结束时间间隔。

对于上述每一个状态量,即流完成传输时间、流到达的间隔时间、流结束的间隔时间、流数据量、流吞吐量和流往返时延,,收集最新的k(k是大于等于2的整数)个样本后构建出一个直方图来描述网络环境在一段时间内的状态。这些直方图的集合形成了系统状态st。通过使用直方图来代替原始的采样数据,使得神经网络模型的输入更简洁,并且无需归一化处理。

对于神经网络决策模型的输出,可以输出一个值作为初始窗口大小或者输出一组值作为离散初始窗口大小的概率分布。前者探索一个连续的概率分布,后者探索一个离散的概率分布。本发明使用离散初始窗口大小的概率分布作为输出动作空间,因为这种方式使得神经网络决策模型更容易被训练。

进一步地,为了减少计算复杂度,选择2i个数据段作为输出动作空间的大小。例如,i从4开始然后增加到一个会产生明显网络拥塞的值例如[16,32,64,128,256,512]。

对于神经网络决策模型的结构,可采用多种形式,例如,参见图3所示(其中括号中的数字是对应层的大小),该神经网络决策模型整体上包含特征提取器(featureextractor)和预测器(predictor)两部分。具体地,特征提取器是从输入中提取特征,它由5个卷积层(conv1至conv5)组成,前4个卷积层的内核大小为5*1,第5个卷积层的内核大小为1*1,在第5个卷积层之后是一个全连接层。特征提取器中每一层的结构如下:1)10个步幅为1的卷积核;2)20个步幅为2的卷积核;3)20个步幅为1的卷积核;4)40个步幅为2的卷积核;5)10个步幅为1的卷积核。然后将输出转换为一个180*1(flatten)的向量,最后再通过一个全连接层(fc1)将向量输出成一个具有10个神经元的一维向量。至此,完成了输入数据的特征提取。

对于神经网络决策模型的预测器部分,它的输入是特征提取器提取的特征,预测器负责预测初始窗口大小。它由两个全连接层(fc2和fc3)和一个输出层(output)组成,每个全连接层有128神经元,输出层通过使用softmax激活函数将输出转换为一个概率分布。

基于图3的神经网络决策模型,可利用强化学习进行反复试验,因此,在训练开始时尽量避免选择偏见是非常重要的。否则由于行为选择上缺乏探索性,可能会找不到最佳选择。因此在神经网络决策模型中使用批量归一化(batchnormalization)技术。该技术的使用将有利于神经网络决策模型产生均匀的概率分布。图3的模型中,仅将批量归一化技术应用到第二个全连接层上(图3中bn表示批标准化)。

图3是经过反复实验确定了一个可行的神经网络决策模型结构,但应理解的是,本领域技术人员根据应用场景或训练精度要求,也可采用其他的改进结构来提升模型性能,例如,采用更多的卷积层或不同的卷积核大小等。

步骤s220,利用在线学习方法,获得优化的神经网络决策模型。

在一个实施例中,将需要解决的问题构建成一个马尔科夫决策过程,例如使用强化学习中的a3c算法获得最佳决策。

具体地,给定的一个决策对应神经网络决策模型中一组参数θ,同时这个决策对应一个状态轨迹{s0,a0,s1,a1,...,st,at,...}和流传输时间集合{d0,d1,...,dt,...}其中,s0,s1,…,st表示状态,a0,a1,…,at表示输出动作。待求解的问题是找到最佳的决策参数θ,使得期望的累计流传输时间值最小,表示为

让πθ(as)表示带有参数θ的决策函数,它表示在状态s下采取动作a的概率大小,通过该决策函数来选择要执行的动作。让vω(s)表示带有参数ω的价值函数,对于每一个价值函数,采取与决策函数相同的神经网络决策模型结构,唯一的区别是价值函数在最后一层输出的是数值,而不是概率分布。此外,让决策函数和价值函数共享神经网络决策模型中特征提取器的所有参数,a3c算法不断地更新参数θ和ω直到他们收敛。γ表示影响因子,例如可取常数0.9。

在一个优选实施例中,为了模型的稳定性,采用a3c并行学习框架。参见图4所示,它由一个中央代理器(centralagent),多个子代理器(subagents)和网络环境组成。中央代理器负责维护最新的参数θ和ω,每一个子代理器通过决策函数做出初始窗口的决策并且计算更新子代理器中参数θ和ω,所有子代理器所处的网络环境是相似的,表示子代理器具有相似的网络状态。同时并行学习在现实网络环境中是可以实现的,例如,通过对3g/lte移动流量的研究表明,许多蜂窝塔共享与其地理位置相关的相同流量模式,这种模式在5g蜂窝网络中同样适用。此外,相互协同的移动边缘计算节点是一个可行的框架,并行学习中的每个子代理器都可以在带蜂窝塔的边缘服务器上运行,中央代理器可以在边缘服务器或者专用服务器中的任何一个上运行。

在图4的并行框架中,当一个边缘服务器想获得当前网络环境下最佳初始窗口大小时,它将当前的环境状态发送到关联的子代理器中,子代理器使用决策函数计算出最佳的初始窗口大小,并且立即返回结果给边缘服务器。当子代理器收集了一批数据后,根据这批数据开始计算梯度δθ和δω,子代理器将更新的梯度发送给中央代理器,中央代理器利用这些梯度更新参数θ和ω,这次参数更新是异步发生的。

对于每一个子代理器而言,a3c算法是从t=0时刻开始的,每次迭代子代理器都会经历下面的步骤:

1)、重置梯度:δθ←0,δω←0;

2)、将子代理器的参数(θ'和ω')和中央代理器的参数(θ和ω)同步:θ'←θ,ω'←ω;

3)、使用当前决策与网络环境进行交互并收集状态轨迹{st,at,...,st+t-1,at+t-1}和流传输时间集合{dt,...,dt+t-1},其中t是大于n(n步返回的参数)的超参数;

4)、对于所有的i∈[0,t-1-n],计算n步返回值

5)、计算优势价值

6)、计算梯度

7)、计算梯度

8)、对这些全局参数θ和ω执行异步更新:θ←θ+η1δθ,ω←ω+η2δω,其中η1和η2是学习率;

9)、设t←t+t;

10)、重复上述步骤,直到达到最大迭代次数。

步骤s230,根据网络环境的动态变化自适应学习神经网络决策模型的优化参数。

如上所述,本发明实施例使用批量归一化技术使神经网络决策模型输出的概率分布尽可能均匀,在反复探索决策过程中使算法收敛。网络环境会动态地发生变化,并且在之前的网络环境中训练的神经网络决策模型可能不适用于当前的网络环境。为了解决这个问题,本发明进一步提出一种自适应算法,通过检测网络环境的变化并根据需求重新开始训练神经网络决策模型。

例如,为了检测网络中环境的变化,观察神经网络决策模型的输入,即直方图。如果观察到连续的直方图之间存在显著差异,则网络环境可能正在发生重大变化。具体地,首先使用神经网络决策模型输入(如直方图信息)的变化来检测网络环境的变化,接着使用余弦相似度来评估两个输入之间的相似度,并将输入s和之前的输入s'之间的差值定义为该差值越大,表示网络环境的变化越大。

自适应算法的第二个任务是重新训练神经网络决策模型。例如,可重新初始化神经网络决策模型中的所有参数,但这种方式会破坏模型以前学到的许多信息。为了使神经网络决策模型输出均匀的概率,使得每个动作都有可能再次被选到,本发明实施例重新初始化神经网络决策模型最后两层的参数。

自适应算法可在中央代理器上运行。在每次迭代中,包括的步骤如下:

1)、获得本次迭代的平均状态s和过去的l次迭代的平均状态,用s'表示;

2)、根据公式计算

3)、当δs大于阈值时,重新初始化决策函数和价值函数的神经网络决策模型的最后两层。

此外,为了使本发明提供的技术方案更加的完善,进一步提出两种优化策略,分别是减轻未来决策影响机制和提前反馈机制。

对于减轻未来决策影响机制,具体包括:

如果要更新神经网络决策模型的参数,需要训练样本,每个样本都由三元组组成:网络状态st,模型输出动作at(初始窗口值)和流传输时间dt。

理想情况下,dt仅取决于st和at,并且训练算法将根据dt的大小更新神经网络决策模型的参数来惩罚或鼓励动作at。但是,dt不仅取决于st和at,还可能取决于将来的at+1,at+2等动作。这是因为在时间t发送的数据流不会立即完成,它可能会在一段时间之后才会传输完毕,当采取at+1...at+k这个序列动作时,这些将来的动作可能会导致网络拥塞并影响在时间t发送的流,从而影响dt,进而误导模型训练做出错误的惩罚或鼓励。

为了减轻这种未来决策动作带来的影响,本发明实施例将在接下来一段时间内,重复利用当前初始窗口值,从而降低上述介绍的这种影响。这种方式还能够避免初始窗口的频繁调整。

对于提前反馈机制,具体包括:

流的传输时间不仅有延迟,而且延迟有所不同。这种差异将使神经网络决策模型的训练产生偏差,从而影响模型性能。根据上面的说明,在采取动作at使得初始窗口大小保持一段时间之后,系统必须等待其对应的流传输完毕,等待时间正好是这个流的传输时间dt。如果dt很大,那么这种消极样本(抑制使用at)只会在模型处理许多积极样本(鼓励使用at)之后才能到达模型进行训练。由于模型训练不能及时利用消极样本,因此往往过于激进,从而减慢了训练的收敛速度。

为了解决这个问题,本发明提出一种提前反馈机制,即在完成传输之前估算某些流的传输时间。具体来讲,当发送方开始传输流,它还同时启动了一个计时器。当计时器到期时,如果传输尚未完成,则估计这个流的传输时间。估算的方法有很多种,为了简单起见,可将估计的传输时间设置为一个常数。如果该值很大,那么将对拥塞进行严重惩罚;如果值很小,那么对拥塞的惩罚就很小。

相应地,本发明还提供一种自适应调节拥塞控制初始窗口的系统,用于实现上述方法的一个方面或多个方面。例如,该系统包括:模型构建单元,其用于构建神经网络决策模型,以历史的流传输状态作为输入,以拥塞控制初始窗口的分布作为输出动作;在线学习单元,其用于构建马尔科夫学习过程获得所述神经网络决策模型的优化参数,其中,一个决策对应神经网络决策模型中一组参数θ,并且该决策对应一个状态轨迹{s0,a0,s1,a1,...,st,at,...}和流传输性能集合{d0,d1,...,dt,...},找到最佳的决策参数θ,使得期望的流传输性能最优,其中s表示输入的流传输状态,a表示输出动作;预测单元,其用于利用所优化的神经网络决策模型获得拥塞控制初始窗口值,用于后续的流传输过程。该系统中的各单元可采用逻辑硬件或处理器实现。

为了进一步验证本发明的可行性和技术效果,进行了多种仿真实验。在仿真实验中,将本发明的方法与两种现有技术的方法进行对比,这两种方法是:将拥塞控制初始窗口大小固定设置为10个数据段;利用ucb算法动态调整初始窗口大小。本发明实施例使用8个子代理器进行并行学习,对于现有技术的对比方法,使用不同的随机种子运行8次模拟,并取平均结果。

在仿真实验中,首先模拟了动态网络负载场景,客户端请求的平均到达间隔时间在50ms(低负载)和5ms(高负载)之间交替,实验结果如图5所示,其中iw-10表示固定初始窗口大小为10不变,smartiw是利用ucb算法来决策初始窗口大小,neuroiw是本发明提出的技术方案。在图5(a)中,横轴表示时间步长,纵轴是8个子代理器流传输时间的平均值,图5(b)的纵轴表示初始窗口大小(单位是数据段(segments)),每个子代理器都有1000个流。由图5(a)可知,相比于其他现有的两种算法,本发明的自适应调节拥塞控制初始窗口的方法在每种类型负载下都能获得最佳性能。在低负载下,本发明的传输时间大约是10毫秒,在高负载下,传输时间是20毫秒左右。由图5(b)可知,本发明能够根据网络环境的变化自适应的调节初始窗口的设置,从而适应性更强。

综上所述,本发明提出的自适应调节拥塞控制窗口的方法,将在线学习算法用于实时决策初始窗口,使用了强化学习中的a3c算法实现了模型的自主学习。当需要动态调整当前初始窗口大小时,边缘服务器能够将当前的网络环境状态发送给子代理器,子代理器用神经网络决策模型计算出一个最优的初始窗口值返回给边缘服务器,边缘服务器利用该初始窗口传输数据。当子代理器收集了一批数据后会联合中央代理器更新神经网络决策模型的参数值,从而优化模型性能;进一步地,本发明能够检测网络环境是否发生了显著的变化,进而根据变化情况自动重启初始窗口决策函数的训练过程,这种方式使得一个决策函数在经历了长时间的训练收敛以后,在新环境中仍然能够重新探索发现新的最优解。

需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1