一种基于离散化模型的网络拥塞控制方法与流程

文档序号:11878498阅读:262来源:国知局
一种基于离散化模型的网络拥塞控制方法与流程

本发明涉及网络技术,尤其涉及一种基于离散化模型的网络拥塞控制方法。



背景技术:

网络拥塞是指由于网络中的存储和转发节点的性能有限、端点对有限以及资源利用不当等原因而导致的网络传输效率下降的情况。网络拥塞不但降低了网络用户实际上网体验以及增加网络的不稳定因素,严重情况下还会导致网络通信的中断。在互联网飞速发展的今天,随着接入网络端点数量的迅速增长,这一问题发生的频率也大大增加,已经成为了制约网络发展、影响网络性能、浪费网络资源的主要原因之一。然而,现有的网络拥塞控制技术对于网络拥塞的控制效果较差。因此,研究如何有效地解决网络的拥塞问题对于提高网络的通信性能,完善网络服务质量具有非常重要的意义。



技术实现要素:

在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。

鉴于此,本发明提供了一种基于离散化模型的网络拥塞控制方法,以至少解决现有的网络拥塞控制技术对于网络拥塞的控制效果较差的问题。

根据本发明的一个方面,提供了一种基于离散化模型的网络拥塞控制方法,所述网络拥塞控制方法包括:预先建立一个离散化拥塞控制模型;所述离散化拥塞控制模型包括多个预定离散化状态,每个预定离散化状态分别对应N个拥塞窗口可选值,每个拥塞窗口可选值分别对应一个评估值;N为正整数;所述离散化状态用M类离散的网络状态参数表示,所述模型中多个预定离散化状态中第p个离散化状态可记为其中表示第p个离散化状态中第i类离散的网络状态参数,M为正整数;在TCP连接中的发送端向接收端发送第t+1个数据包之后,当所述发送端接收到所述接收端针对所述第t+1个数据包所回复的确认包时,所述发送端计算M类网络状态参数,并对M类网络状态参数进行离散化,作为第t+1次M类离散的网络状态参数,记为根据所述第t+1次M类离散的网络状态参数在上述离散化拥塞控制模型中找到M类参数均相同的预定离散化状态,作为第t+1次离散化网络状态;基于所述第t+1次离散化网络状态对应的N个拥塞窗口可选值各自的评估值,在该N个拥塞窗口可选值之中选择一个拥塞窗口可选值作为第t+1次拥塞窗口大小的确定值;计算所述第t+1次离散化网络状态对应的奖赏值,所述奖赏值用于描述网络状态变化情况;根据所述第t+1次离散化网络状态对应的奖赏值,应用离散化模型学习方法,对与离散化拥塞控制模型中第t次拥塞窗口大小的确定值相对应的评估值进行更新。

进一步地,所述离散化拥塞控制模型通过如下方式建立:所述网络状态参数包括M类参数,分别将M类参数中的每类参数作为M维连续空间中的一个维度,M为大于0的正整数;选取所述M维连续空间的预定空间范围,采用离散化方法对所述M维连续空间的预定空间范围进行离散化,以获得与所述M维连续空间的预定空间范围对应的多个离散化状态,作为多个预定离散化状态;确定拥塞窗口的取值范围,采用离散化方法对所述拥塞窗口的取值范围进行离散化,以获得与所述拥塞窗口的取值范围对应的N个值,作为N个拥塞窗口可选值;建立所述多个预定离散化状态与所述N个拥塞窗口可选值之间的对应关系,以使每个预定离散化状态分别对应所述N个拥塞窗口可选值,每个可选值对应一个的评估值;设置每个拥塞窗口可选值对应的评估值的初值。

进一步地,所述采用离散化方法对所述M维连续空间的预定空间范围进行离散化的步骤包括:对所述M维连续空间每一维的预定范围进行归一化,使得每一维归一化后的范围区间为[0,1];将每一维归一化后的范围区间[0,1]从0到1依次划分为连续的j个子区间,按照j个子区间在[0,1]内的先后顺序对j个子区间进行编号,j为预设正整数;对于M维连续空间每一维上的值进行离散化,使用M维连续空间中每一维归一化后的值所在区间的编号来代替对应的值;将M维连续空间中的值所对应M个编号记为(s1,s2,...,sM),其中si表示第i维上的值所对应的编号,取值共有j种;使用M个编号(s1,s2,...,sM)表示离散化状态,将上述M维连续空间离散化为jM个离散化状态,其中第p个离散化状态可表示为

进一步地,所述采用离散化方法对所述拥塞窗口的取值范围进行离散化、以获得与所述拥塞窗口的取值范围对应的N个值的步骤包括:在0到所述拥塞窗口的取值范围的最大值之间选择N个值,将该N个值确定为与所述拥塞窗口的取值范围对应的N个值。

进一步地,所述网络状态参数包括:所述发送端接收到所述接收端针对所述第t+1个和第t个数据包所回复的两个确认包的接收时间间隔;所述发送端发送所述第t+1个和第t个数据包的发送时间间隔;以及所述发送端发送所述第t+1个数据包的发送时间与接收到所述接收端针对所述第t+1个数据包所回复的确认包的接收时间之间的时间间隔;使用这三类网络状态参数,可以对网络状态进行有效区分,使发送端能够准确判断自身所处的网络状态。

进一步地,所述发送端计算当前的M类网络状态参数,并对M类网络状态参数进行离散化,作为第t+1次M类离散的网络状态参数的步骤包括:根据当前收到的所述第t+1个数据包所回复的确认包中包含的信息,计算当前M类网络状态参数;对当前计算出M类网络状态参数中的每个参数进行归一化,以使每个参数归一化后的值在[0,1]之间;将归一化后的第t+1次M类网络状态参数对应到上述M维连续空间中,使用第t+1次M类网络状态参数每一类所在M维连续空间对应维度中的区间的编号来代替该参数,使用被编号代替的M类网络状态参数作为第t+1次M类离散的网络状态参数,也记为(s1t+1,s2t+1,...,sMt+1),其中sit+1表示第t+1次第i类离散的网络状态参数。

进一步地,所述基于所述第t+1次离散化网络状态对应的N个拥塞窗口可选值各自的评估值,在该N个拥塞窗口可选值之中选择一个拥塞窗口可选值作为第t+1次拥塞窗口大小的确定值步骤包括:在第t+1次离散化网络状态对应的可选值中,将评估值最大的可选值确定为最优可选值;在第t+1次离散化网络状态对应的可选值中,随机选择一个可选值确定为随机可选值;预设选择拥塞窗口可选值的参数ε,ε∈[0,1],在最优可选值和随机可选值中选择一个作为第t+1次拥塞窗口大小的确定值,其中,选择最优可选值的几率为ε,选择随机可选值的几率为1-ε;上述基于评估值对拥塞窗口大小的确定值进行设置的方式,充分利用了模型中保留的经验,使模型可以选择出较为有效的拥塞窗口值;同时在选择过程中加入了随机成分,一方面可以充分探索不同拥塞窗口值对网络环境的影响,加快所述模型的更新速度,另一方面可以使所述模型更加灵活,增强了对网络环境的适应性。进一步地,所述计算所述第t+1次离散化网络状态对应的奖赏值的步骤包括:根据如下公式计算所述第t+1次离散化网络状态对应的网络状态变化参数diff,

<mrow> <mi>d</mi> <mi>i</mi> <mi>f</mi> <mi>f</mi> <mo>=</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mfrac> <mrow> <msub> <mi>BaseRTT</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> </mrow> <mrow> <msub> <mi>BaseRTT</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <msub> <mi>b</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> </mrow> </mfrac> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>)</mo> </mrow> <mo>*</mo> <msub> <mi>Cwnd</mi> <mi>t</mi> </msub> </mrow>

其中,Cwndt为第t次离散化网络状态下选中的拥塞窗口大小的确定值,BaseRTT为一段时间内数据包往返时间平均值的估计值,其初始值为0,并随上述离散化网络状态变化而更新,更新公式如下,

BaseRTTt+1=BaseRTTt*a+CurRTT*(1-a)

其中,BaseRTTt+1为所述第t+1次离散化网络状态对应的一段时间内数据包往返时间平均值的估计值,BaseRTTt为所述第t次离散化网络状态对应的一段时间内数据包往返时间平均值的估计值,α为预先定义的参数,范围在0到1之间;其中,bt+1为所述第t+1次离散化网络状态对应的数据包往返时间变化情况的估计值,其初始值为0,并随上述离散化网络状态变化而更新,更新公式如下,

bt+1=bt*β+|CurRTT-BaseRTTt+1|*(1-β)

其中,CurRTT为发送端所发送的第t+1个数据包和发送端接收到所述接收端针对所述第t+1个数据包所回复的确认包的时间间隔,bt为第t次离散化网络状态对应的数据包往返时间变化情况的估计值,β为预先定义的参数,范围在0到1之间;

当计算的diff小于1.0、且未出现数据包丢失情况时,将所述第t+1次离散化网络状态对应的奖赏值确定为1.0;当计算的diff在1.0与2.0之间、且未出现数据包丢失情况时,将所述第t+1次离散化网络状态对应的奖赏值确定为0.01;当计算的diff大于2.0、且未出现数据包丢失情况时,将所述第t+1次离散化网络状态对应的奖赏值确定为-0.5;当出现数据包丢失情况时,将所述第t+1次离散化网络状态对应的奖赏值确定为-10.0;其中,所述数据包丢失情况是指当前所述发送端收到的确认包为重复的对第t+1个数据包的确认包;使用上述方式计算奖赏值,可以使其较为平滑地表示网络环境的变化情况,增强了所述模型的稳定性。

进一步地,所述应用离散化模型学习方法对第t次拥塞窗口大小的确定值相对应的评估值进行更新的步骤包括:根据如下公式计算与第t次拥塞窗口大小的确定值相对应的评估值的修正值Q’:Q’=Q(st,at)+μ[rt+1+γQ(st+1,at+1)-Q(st,at)];其中,st表示第t次离散化网络状态,at为在第t次离散化网络状态st下的第t次拥塞窗口大小的确定值,rt+1表示第t+1次离散化网络状态对应的奖赏值,Q(st,at)表示at所对应的评估值,st+1表示第t+1次离散化网络状态,at+1表示st+1下的第t+1次拥塞窗口大小的确定值,Q(st+1,at+1)表示at+1所对应的评估值,μ为预先定义的更新速率、其范围在0到1之间,γ为预先定义的衰减速率、其范围在0到1之间;将计算得到的修正值Q’作为评估值Q(st,at)更新后的值;使用上述方式对所述模型进行更新,可以令所述模型保留并更新各网络状态下不同拥塞窗口值对应的评估值,从而使所述模型不断地自我完善。

通过以上描述可知,本发明的基于离散化模型的网络拥塞控制方法,其首先建立一个离散化拥塞控制模型,在所述发送端收到针对所发送的第t+1个数据包的确认包时,通过对当前网络状态参数进行离散化来获得当前的离散化网络状态(即第t+1次离散化网络状态),利用离散化模型确定当前离散化网络状态对应的多个拥塞窗口可选值,基于每个拥塞窗口可选值的评估值在其中选择一个拥塞窗口可选值,作为发送端本次(即第t+1次)拥塞窗口大小的确定值,计算当前离散化网络状态对应的奖赏值,并应用离散化模型学习方法来更新上一次被选择作为拥塞窗口大小的确定值的可选值(也就是被选作第t次拥塞窗口大小的确定值的拥塞窗口可选值)所对应的评估值,该方法能够有效地控制网络拥塞。

相比于现有的拥塞控制方法中通过检测网络中数据包的丢失情况来判断当前的网络状态的方式,本发明的网络拥塞控制方法不会造成大量不必要的数据丢失;而且,相比于传统拥塞控制方法中通过线性增长倍数降低的方法对数据发送进行控制的方式,本发明的网络拥塞控制方法能够充分利用网络资源;同时,本发明的网络拥塞控制方法通过对离散化拥塞控制模型的不断更新,可以不断地自我完善,进而充分适应各种网络环境。

通过以下结合附图对本发明的最佳实施例的详细说明,本发明的这些以及其他优点将更加明显。

附图说明

本发明可以通过参考下文中结合附图所给出的描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明本发明的优选实施例和解释本发明的原理和优点。在附图中:

图1是示出本发明的基于离散化模型的网络拥塞控制方法的一种示例性处理的流程图;

图2是图1中的步骤S120的一种可能处理的流程图;

图3是离散化拥塞控制模型的构建方法的一个示例的流程图;

图4是对M维连续空间的预定空间范围进行离散化的过程的一个示例的流程图;

图5是图1所示的步骤S160的一种可能处理的流程图。

本领域技术人员应当理解,附图中的元件仅仅是为了简单和清楚起见而示出的,而且不一定是按比例绘制的。例如,附图中某些元件的尺寸可能相对于其他元件放大了,以便有助于提高对本发明实施例的理解。

具体实施方式

在下文中将结合附图对本发明的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。

在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。

本发明的实施例提供了一种基于离散化模型的网络拥塞控制方法,网络拥塞控制方法包括:预先建立一个离散化拥塞控制模型;所述离散化拥塞控制模型包括多个预定离散化状态,每个预定离散化状态分别对应N个拥塞窗口可选值,每个拥塞窗口可选值分别对应一个评估值;N为正整数;所述离散化状态用M类离散的网络状态参数表示,所述模型中多个预定离散化状态中第p个离散化状态可记为其中表示第p个离散化状态中第i类离散的网络状态参数,M为正整数;在TCP连接中的发送端向接收端发送第t+1个数据包之后,当所述发送端接收到所述接收端针对所述第t+1个数据包所回复的确认包时,所述发送端计算M类网络状态参数,并对M类网络状态参数进行离散化,作为第t+1次M类离散的网络状态参数,记为根据所述第t+1次M类离散的网络状态参数在上述离散化拥塞控制模型中找到M类参数均相同的预定离散化状态,作为第t+1次离散化网络状态;基于所述第t+1次离散化网络状态对应的N个拥塞窗口可选值各自的评估值,在该N个拥塞窗口可选值之中选择一个拥塞窗口可选值作为第t+1次拥塞窗口大小的确定值;计算所述第t+1次离散化网络状态对应的奖赏值,所述奖赏值用于描述网络状态变化情况;根据所述第t+1次离散化网络状态对应的奖赏值,应用离散化模型学习方法,对与离散化拥塞控制模型中第t次拥塞窗口大小的确定值相对应的评估值进行更新。

下面结合图1来描述本发明的一种基于离散化模型的网络拥塞控制方法的一个示例的处理流程S110。

如图1所示,处理流程开始之后,预先建立一个离散化拥塞控制模型,然后执行步骤S110。

在步骤S110中,在TCP连接中的发送端向接收端发送第t+1个数据包之后,当发送端接收到接收端针对第t+1个数据包所回复的确认包(即ACK包)时,发送端计算当前的网络状态参数,作为第t+1次网络状态参数。其中,t为正整数。然后,执行步骤S120。例如,可将“第t+1个数据包”记为set+1,,而将“接收端针对第t+1个数据包所回复的确认包”记为ackt+1;类似地,可将下文提到的“第t个数据包”记为set,,以及将“接收端针对第t个数据包所回复的确认包”记为ackt

当前的网络状态参数是能够对当前网络状态进行量化描述的参数。

根据一种实现方式,当前的网络状态参数可以包括:发送端接收到接收端针对第t+1个和第t个数据包所回复的两个确认包的接收时间间隔(作为第一类参数);发送端发送第t+1个和第t个数据包的发送时间间隔(作为第二类参数);以及发送端发送第t+1个数据包的发送时间与接收到接收端针对第t+1个数据包所回复的确认包的接收时间之间的时间间隔(作为第三类参数)。

也就是说,第一类参数即是发送端接收到ackt+1的时间与发送端接收到ackt的时间之差;第二类参数即是发送端发送set+1,的时间与发送端发送set,的时间之差;而第三类参数即是发送端接收ackt+1的时间与发送端发送set+1,的时间之差。

这样,通过该实现方式,能够利用以上三类参数来共同描述当前网络状态,这三类参数可以对网络状态进行有效区分,使发送端能够准确判断自身所处的网络状态。

在步骤S120中,通过离散化方法对第t+1次网络状态参数进行离散化,得到“第t+1次网络状态参数”的离散化结果,也即,获得第t+1次网络状态参数对应的第t+1次离散化网络状态。然后,执行步骤S130。

根据一种实现方式,步骤S120可以通过如图2所示的步骤S210~S230来实现。

如图2所示,在步骤S210中,对第t+1次网络状态参数中的每个参数进行归一化,以使每个参数归一化后的值在[0,1]之间。然后,执行步骤S220。

在步骤S220中,将区间[0,1]依次划分为连续的j个子区间,按照j个子区间在[0,1]内的先后顺序对j个子区间进行编号,j为预设正整数。然后,执行步骤S230。

在步骤S230中,使用第t+1次网络状态参数中的每个参数归一化后的值所在区间的编号来代替该参数。

举例来说,假设经过计算所得到的第t+1次网络状态参数包括pa1、pa2和pa3。经过步骤S210,对pa1进行归一化后得到pa1归一化后的值为pa1’,对pa2进行归一化后得到pa2归一化后的值为pa2’,对pa3进行归一化后得到pa3归一化后的值为pa3’。在步骤S220中,将区间[0,1]依次划分为连续的10(作为j的示例)个子区间,即,[0,0.1)(编号为0)、[0.1,0.2)(编号为1)、[0.2,0.3)(编号为2)、[0.3,0.4)(编号为3)、[0.4,0.5)(编号为4)、[0.5,0.6)(编号为5)、[0.6,0.7)(编号为6)、[0.7,0.8)(编号为7)、[0.8,0.9)(编号为8)以及[0.9,1](编号为9)。假设pa1’在子区间[0.1,0.2)内,则采用[0.1,0.2)的编号1来代替pa1;假设pa2’在子区间[0.5,0.6)内,则采用[0.5,0.6)的编号5来代替pa2;假设pa3’在子区间[0.3,0.4)内,则采用[0.3,0.4)的编号3来代替pa3。这样,经过步骤S210~S230后,获得的“第t+1次网络状态参数对应的第t+1次离散化网络状态”即为1、5和3。

在步骤S130中,根据预定的离散化拥塞控制模型,确定第t+1次离散化网络状态对应的N个拥塞窗口可选值;其中,离散化拥塞控制模型包括多个预定离散化状态,每个预定离散化状态分别对应N个拥塞窗口可选值,每个拥塞窗口可选值分别对应一个评估值;N为正整数。然后,执行步骤S140。

根据一种实现方式,离散化拥塞控制模型可以通过图3所示的步骤S310~S340来获得。

假设网络状态参数包括M类参数,M是大于0的正整数。

在步骤S310中,构建一个M维连续空间,使得M类参数中的每一类参数分别作为该M维连续空间中的一个维度。例如,M=3时,可以将上文所描述的第一类参数、第二类参数和第三类参数分别作为三维连续空间的三个维度,也即,分别作为该三维连续空间对应的坐标系中的三个坐标轴。然后,执行步骤S320。

在步骤S320中,选取M维连续空间的预定空间范围。例如,M=3时,用x轴(对应第一类参数)、y轴(对应第二类参数)和z轴(对应第三类参数)分别表示该三维连续空间的坐标系的三个坐标轴,可以在x轴选取范围[-50秒,50秒],在y轴选取范围[-50秒,50秒],z轴选取范围[-50秒,50秒],这样便可确定所选取的预定空间范围。

然后,采用离散化方法对M维连续空间的上述预定空间范围进行离散化,以获得与M维连续空间的上述预定空间范围对应的多个离散化状态,来作为用于构建离散化拥塞控制模型的多个预定离散化状态。其中,步骤S320中对M维连续空间的上述预定空间范围进行离散化的过程可以采用与步骤S120中相类似的离散化方法来实现,比如可以采用图4所示的处理来实现。

例如,如图4所示,在步骤S410中,首先对M维连续空间的预定空间范围内的每一类参数进行归一化,使得每一类参数归一化后的值都在[0,1]之间。然后,执行步骤S420。

在步骤S420中,将区间[0,1]依次划分为连续的j个子区间,按照j个子区间在[0,1]内的先后顺序对j个子区间进行编号,j与上文定义相同。然后,执行步骤S430。

在步骤S430中,使用步骤S410中每一类参数归一化后的值所在区间的编号来代替对应的参数。这样,在M维连续空间的预定空间范围内,在将M个参数分别离散化完成后,也即实现了对上述预定空间范围内的M维连续空间的离散化。

举例来说,假设M=3,该三维连续空间的预定空间范围为:x轴的[-50秒,50秒],y轴的[-50秒,50秒],以及z轴的[-50秒,50秒]。

经过步骤S410,对上述预定空间范围归一化。

假设步骤S420中的j=10,10个子区间分别为[0,0.1)(编号为0)、[0.1,0.2)(编号为1)、[0.2,0.3)(编号为2)、[0.3,0.4)(编号为3)、[0.4,0.5)(编号为4)、[0.5,0.6)(编号为5)、[0.6,0.7)(编号为6)、[0.7,0.8)(编号为7)、[0.8,0.9)(编号为8)以及[0.9,1](编号为9)。

于是,经过步骤S430,可以得到该预定空间范围的离散化结果,也即,可以得到上述预定空间范围对应的多个离散化状态。

以x轴为例,[-50秒,-40秒)所在子区间为[0,0.1),对应的编号为0;[-40秒,-30秒)所在子区间为[0.1,0.2),对应的编号为1;[-30秒,-20秒)所在子区间为[0.2,0.3),对应的编号为2;[-20秒,-10秒)所在子区间为[0.3,0.4),对应的编号为3;[-10秒,0秒)所在子区间为[0.4,0.5),对应的编号为4;[0秒,10秒)所在子区间为[0.5,0.6),对应的编号为5;[10秒,20秒)所在子区间为[0.6,0.7),对应的编号为6;[20秒,30秒)所在子区间为[0.7,0.8),对应的编号为7;[30秒,40秒)所在子区间为[0.8,0.9),对应的编号为8;[40秒,50秒]所在子区间为[0.9,1],对应的编号为9。

这样,x轴的[-50秒,50秒]被离散化为0,1,2,…,9这10个离散化后的值。

类似地,y轴的[-50秒,50秒]也可以被离散化为0,1,2,…,9这10个离散化后的值;z轴的[-50秒,50秒]也可以被离散化为0,1,2,…,9这10个离散化后的值。

这样,该三维连续空间的预定空间范围(即:x轴的[-50秒,50秒],y轴的[-50秒,50秒],以及z轴的[-50秒,50秒])可以被离散化成103个离散化状态。该103个离散化状态作为用于构建离散化拥塞控制模型的多个预定离散化状态。

由此,通过步骤S320,可以得到用于构建离散化拥塞控制模型的多个预定离散化状态。然后,在步骤S330中,确定拥塞窗口的取值范围,采用离散化方法对拥塞窗口的取值范围进行离散化,以获得与拥塞窗口的取值范围对应的N个值,作为N个拥塞窗口可选值。然后,执行步骤S340。

根据一种实现方式,可以通过如下方式来对拥塞窗口的取值范围进行离散化:在0到拥塞窗口的取值范围的最大值之间选择N个值,将该N个值确定为与拥塞窗口的取值范围对应的N个值。

例如,假设确定的拥塞窗口的取值范围是[0,20],对该取值范围离散化后,得到的结果例如是0,5,10,15(作为[0,20]对应的4个值);或者,得到的结果例如是0,1,2,3,…,19(作为[0,20]对应的20个值);等等。

在步骤S340中,建立多个预定离散化状态与N个拥塞窗口可选值之间的对应关系,以使每个预定离散化状态分别对应N个拥塞窗口可选值。举例来说,假设步骤S320得到103个预定离散化状态,步骤S330得到0,5,10,15这4个拥塞窗口可选值,则可以令每一个预定离散化状态均对应于0,5,10,15这4个拥塞窗口可选值。

然后,对于N个拥塞窗口可选值中的每个可选值,设置该可选值对应的评估值的初值。例如,可以将每个拥塞窗口可选值对应的评估值的初值均设置为随机值,或者均设置为0,也可以根据经验设为其他值。

这样,通过步骤S310~S340,可以建立一个离散化网络拥塞控制模型。

在通过步骤S130确定第t+1次离散化网络状态对应的N个拥塞窗口可选值之后,可以在步骤S140中基于第t+1次离散化网络状态对应的N个拥塞窗口可选值各自的评估值,在该N个拥塞窗口可选值之中选择一个拥塞窗口可选值作为第t+1次拥塞窗口大小的确定值,发送端以该值作为发送数据包数量上限,以控制发送速率。然后,执行步骤S150。

对于第t+1次离散化网络状态来说,其对应的各个拥塞窗口可选值的评估值可能相同,也可能不同,也就是说,使用所述的离散化模型学习方法,经过t次更新,部分拥塞窗口可选值的评估值已得到了学习。

由此,在一个实现方式中,可以依据各拥塞窗口可选值的评估值的大小,(在第t+1次离散化网络状态对应的N个拥塞窗口可选值之中)选择评估值最大的那个拥塞窗口可选值(如果不止一个,则随机选择一个最大的),然后将此拥塞窗口可选值作为第t+1次拥塞窗口大小的确定值。

此外,在另一个实现方式中,也可以依据各拥塞窗口可选值的评估值的大小,(在第t+1次离散化网络状态对应的N个拥塞窗口可选值之中)选择评估值最大的那个拥塞窗口可选值(如果不止一个,则随机选择一个最大的),将此拥塞窗口可选值确定为最优可选值,并随机选择一个拥塞窗口可选值确定为随机可选值;预设选择拥塞窗口可选值的参数ε,ε∈[0,1],在最优可选值和随机可选值中选择一个作为第t+1次拥塞窗口大小的确定值,其中,选择最优可选值的几率为ε,选择随机可选值的几率为1-ε。

例如,确定最优可选值a和随机可选值b后,在[1,10]之间生成一个随机数,如果该随机数小于3,则选择最优可选值a作为最终可选值;如果该随机数大于等于3,则选择随机可选值b作为最终可选值。这一过程即为以几率20%选择最优可选值a,以几率80%选择随机可选值b。

这样,通过该实现方式,根据评估值来设置拥塞窗口大小的确定值,充分利用了模型中保留的经验,使选择出的拥塞窗口值较为有效;同时在选择过程中加入了随机成分,一方面可以充分探索不同拥塞窗口值对网络环境的影响,加快了所述模型的更新速度,另一方面可以使所述模型更加灵活,增强了对网络环境的适应性。

在步骤S150中,计算第t+1次离散化网络状态对应的奖赏值,奖赏值描述状态变化情况,即从状态t到t+1网络情况变好还是变差。其中,若网络状态变差,得出的奖赏值较小,网络状态变好,得出的奖赏值较大。然后,执行步骤S160。

根据一种实现方式,可以通过如下方式来计算第t+1次离散化网络状态对应的奖赏值。

首先,根据如下公式计算第t+1次离散化网络状态对应的网络状态变化参数diff,

<mrow> <mi>d</mi> <mi>i</mi> <mi>f</mi> <mi>f</mi> <mo>=</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mfrac> <mrow> <msub> <mi>BaseRTT</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> </mrow> <mrow> <msub> <mi>BaseRTT</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <msub> <mi>b</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> </mrow> </mfrac> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>)</mo> </mrow> <mo>*</mo> <msub> <mi>Cwnd</mi> <mi>t</mi> </msub> </mrow>

其中,Cwndt为第t次离散化网络状态下选中的拥塞窗口大小的确定值,BaseRTT为一段时间内数据包往返时间平均值的估计值,其初始值为0,并随上述离散化网络状态变化而更新,更新公式如下,

BaseRTTt+1=BaseRTTt*a+CurRTT*(1-a)

其中,BaseRTTt+1为所述第t+1次离散化网络状态对应的一段时间内数据包往返时间平均值的估计值,BaseRTTt为所述第t次离散化网络状态对应的一段时间内数据包往返时间平均值的估计值,α为预先定义的参数,范围在0到1之间;其中,bt+1为所述第t+1次离散化网络状态对应的数据包往返时间变化情况的估计值,其初始值为0,并随上述离散化网络状态变化而更新,更新公式如下,

bt+1=bt*β+|CurRTT-BaseRTTt+1|*(1-β)

其中,CurRTT为发送端所发送的第t+1个数据包和发送端接收到所述接收端针对所述第t+1个数据包所回复的确认包的时间间隔,bt为第t次离散化网络状态对应的数据包往返时间变化情况的估计值,β为预先定义的参数,范围在0到1之间;

当计算的diff小于1.0、且未出现数据包丢失情况时,将所述第t+1次离散化网络状态对应的奖赏值确定为1.0;

当计算的diff在1.0与2.0之间、且未出现数据包丢失情况时,将所述第t+1次离散化网络状态对应的奖赏值确定为0.01;

当计算的diff大于2.0、且未出现数据包丢失情况时,将所述第t+1次离散化网络状态对应的奖赏值确定为-0.5;

当出现数据包丢失情况时,将所述第t+1次离散化网络状态对应的奖赏值确定为-10.0;

其中,所述数据包丢失情况是指当前发送端收到的确认包为重复的对第t+1个数据包的确认包。

在步骤S160中,根据第t+1次离散化网络状态对应的奖赏值,应用离散化模型学习方法,对与第t次拥塞窗口大小的确定值相对应的评估值进行更新。

根据一种实现方式,可以通过如图5所示的步骤S510和S520来对第t次拥塞窗口大小的确定值相对应的评估值进行更新。

这样,通过该实现方式,可以令奖赏值较为平滑地表示网络环境的变化情况,使所述模型更加稳定。

如图5所示,在步骤S510中,根据如下公式计算Q’,其中,Q’是用于对第t次拥塞窗口大小的确定值相对应的评估值进行修正的修正值Q’:

Q’=Q(st,at)+μ[rt+1+γQ(st+1,at+1)-Q(st,at)]。

其中,其中,st表示第t次离散化网络状态,at为在第t次离散化网络状态st下的第t次拥塞窗口大小的确定值,rt+1表示第t+1次离散化网络状态对应的奖赏值,Q(st,at)表示at所对应的评估值,st+1表示第t+1次离散化网络状态,at+1表示st+1下的第t+1次拥塞窗口大小的确定值,Q(st+1,at+1)表示at+1所对应的评估值,μ为预先定义的更新速率、其范围在0到1之间,γ为预先定义的衰减速率、其范围在0到1之间。

然后,在步骤S520中,将计算得到的修正值Q’赋给更新后的评估值Q(st,at),也即是说,更新后的评估值Q(st,at)等于Q’。

通过该实现方式,可以令所述模型保留并更新各网络状态下不同拥塞窗口值对应的评估值,从而使所述模型不断地自我完善。

通过以上描述可知,本发明的基于离散化模型的网络拥塞控制方法,其通过对当前网络状态参数进行离散化来获得当前的离散化网络状态(即第t+1次离散化网络状态),利用离散化拥塞控制模型确定当前离散化网络状态对应的多个拥塞窗口可选值,基于每个拥塞窗口可选值的评估值在其中选择一个拥塞窗口可选值,作为发送端本次(即第t+1次)拥塞窗口大小的确定值,计算第t+1次离散化网络状态对应的奖赏值,并通过离散化模型学习方法来更新上一次被选择作为拥塞窗口大小的确定值的可选值(也就是被选作第t次拥塞窗口大小的确定值的拥塞窗口可选值)所对应的评估值,该方法能够有效地控制网络拥塞。

相比于现有的拥塞控制方法中通过检测网络中数据包的丢失情况来判断当前的网络状态的方式,本发明的网络拥塞控制方法不会造成大量不必要的数据丢失;而且,相比于现有的拥塞控制方法中通过线性增长倍数降低的方法对数据发送进行控制的方式,本发明的网络拥塞控制方法能够充分利用网络资源;同时,本发明的网络拥塞控制方法通过对离散化拥塞控制模型的不断更新,可以不断地自我完善,进而充分适应各种网络环境。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

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