基于网络状态分类的网络拥塞控制方法、装置及系统与流程

文档序号:13839096阅读:157来源:国知局

本发明涉及网络技术,尤其涉及一种基于网络状态分类的网络拥塞控制方法、装置及系统。



背景技术:

网络拥塞(networkcongestion)是指在分组交换网络中传送分组的数目太多时,由于存储转发节点的资源有限而造成网络传输性能下降的情况。网络拥塞是一种持续过载的网络状态,此时用户对网络资源(包括链路带宽、存储空间和处理器处理能力等)的需求超过了固有的处理能力和容量。在internet的体系结构中,拥塞的发生是其固有的属性。

目前,现有的网络拥塞控制技术往往存在诸如控制效率低、效果差的缺陷。



技术实现要素:

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

鉴于此,本发明提供了一种基于网络状态分类的网络拥塞控制方法、装置及系统,以至少解决现有的网络拥塞控制技术往往存在诸如控制效率低、效果差等缺陷的问题。

根据本发明的一个方面,提供了一种基于网络状态分类的网络拥塞控制方法,网络拥塞控制方法包括:其适于在tcp连接中的发送端向接收端发送多个数据包之后,当所述发送端接收到第t个所述接收端回复的确认包时,获取所述发送端接收的第t个确认包对应的网络状态参数向量作为第t次网络状态参数向量,根据预先建立的网络状态参数向量与网络状态类别的对应关系,获得第t次网络状态参数向量对应的网络状态类别,作为第t次网络状态类别,根据预先建立的网络状态类别与拥塞窗口调节方式的对应关系,获得第t次网络状态类别对应的拥塞窗口调节方式,作为第t次拥塞窗口调节方式,以根据第t次拥塞窗口调节方式对发送端的拥塞窗口进行调节,根据第t次网络状态参数向量对网络状态参数向量与网络状态类别的对应关系进行更新。

进一步地,预先建立的网络状态参数向量与网络状态类别的对应关系包括多个预设网络状态参数向量与多个预设网络状态类别,其中,每个预设网络状态参数向量对应一个预设网络状态类别,而每个预设网络状态类别对应一个或多个预设网络状态参数向量。

进一步地,所述网络状态参数向量与网络状态类别的对应关系通过如下方式获得:构建网络状态分类模型,在该模型中,以网络状态参数向量作为模型的输入,以网络状态类别作为模型的输出;获得训练数据,其中,所述训练数据包括多条网络状态参数向量以及与每一条网络状态参数向量相对应的网络状态类别;采用预定分类算法并利用所述训练数据对所述网络状态分类模型进行训练,以利用训练完成的所述网络状态分类模型描述所述网络状态参数向量与网络状态类别的对应关系。

进一步地,预先建立的网络状态类别与拥塞窗口调节方式的对应关系包括多个预设网络状态类别和多个预设拥塞窗口调节方式。

进一步地,在预先建立的网络状态类别与拥塞窗口调节方式的对应关系中,第i个预设网络状态类别li以p(li,mj)的概率与第j个预设拥塞窗口调节方式mj对应,其中p(li,mj)的范围在0到1之间,σjp(li,mj)=1,i=1,2,…,p,j=1,2,…,q,p表示预设网络状态类别的数量,q表示预设拥塞窗口调节方式的数量。

进一步地,多个预设拥塞窗口调节方式包括:将拥塞窗口的大小变为原来的a倍,a>0;将拥塞窗口的大小增加b,b>0;将拥塞窗口的大小减小b;不改变拥塞窗口的大小。

进一步地,根据第t次网络状态参数向量对网络状态参数向量与网络状态类别的对应关系进行更新的步骤包括:根据第t次网络状态参数向量判断是否需要对网络状态参数向量与网络状态类别的对应关系进行更新;当需要对网络状态参数向量与网络状态类别的对应关系进行更新时,生成更新网络状态参数向量与网络状态类别的对应关系所需的训练数据,以使用该训练数据完成对网络状态参数向量与网络状态类别的对应关系的更新。

进一步地,网络状态参数向量包括以下至少一种参数:发送端本次收到的回复包与上一次收到的回复包之间的时间间隔ack;发送端本次收到的回复包所回复的数据包的发送时间与上一次收到的回复包所回复的数据包发送时间之间的时间间隔send;发送端本次收到的回复包的时间与该回复包所回复的数据包的发送时间的时间间隔rtt;发送端目前为止所计算出的rtt的最小值rtt_min;发送端收到的连续两个确认包的时间间隔的加权平均值ack_ewma;发送端收到的连续两个确认包所回复的数据包发送时间的时间间隔的加权平均值send_ewma;rtt与rtt_min的比值rtt_ratio;本次计算出的rtt与上一次计算出的rtt的差rtt_diff;rtt_diff与rtt_min的比值rtt_diff_ratio;发送端本次收到的回复包与最近一次收到表示发送端所发送数据包丢失的回复包的时间间隔lost_time;发送端最近一次收到表示发送端所发送数据包丢失的回复包时的拥塞窗口大小lost_cwnd;发送端所收到的连续的表示发送端所发送数据包丢失的回复包的个数dupacks;发送端在收到本次回复包的时间与该回复包所回复的数据包的发送时间的时间间隔内收到的回复包个数ack_count。

根据本发明的另一方面,还提供了基于网络状态分类的网络拥塞控制装置,网络拥塞控制装置包括:网络状态获取单元,其适于在tcp连接中的发送端向接收端发送多个数据包之后,当所述发送端接收到第t个所述接收端回复的确认包时,获取所述发送端接收的第t个确认包对应的网络状态参数向量作为第t次网络状态参数向量;网络状态分类单元,其适于根据预先建立的网络状态参数向量与网络状态类别的对应关系,获得第t次网络状态参数向量对应的网络状态类别,作为第t次网络状态类别;拥塞窗口调节单元,其适于根据预先建立的网络状态类别与拥塞窗口调节方式的对应关系,获得第t次网络状态类别对应的拥塞窗口调节方式,作为第t次拥塞窗口调节方式,以根据第t次拥塞窗口调节方式对发送端的拥塞窗口进行调节;更新单元,其适于根据第t次网络状态参数向量对网络状态参数向量与网络状态类别的对应关系进行更新。

此外,根据本发明的又一方面,还提供了一种基于网络状态分类的网络拥塞控制系统,包括tcp连接中的发送端和接收端,还包括如上所述的基于网络状态分类的网络拥塞控制装置。

本发明的基于网络状态分类的网络拥塞控制方法、装置及系统,能够根据预先建立的网络状态参数向量与网络状态类别的对应关系,有效地区分不同的网络状态,能够及时的发现并控制网络拥塞;本发明的基于网络状态分类的网络拥塞控制方法、装置及系统,能够根据不同的网络状态类别选取不同的拥塞窗口调节方式,对网络拥塞的控制更为灵活和高效;本发明的基于网络状态分类的网络拥塞控制方法、装置及系统,能够对自身包括的网络状态参数向量与网络状态类别的对应关系的更新,适用性更强。

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

附图说明

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

图1是示意性地示出本发明的基于网络状态分类的网络拥塞控制方法的一个示例性处理的流程图;

图2是示意性地示出本发明的基于网络状态分类的网络拥塞控制装置的一个示例的结构框图。

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

具体实施方式

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

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

本发明的实施例提供了一种基于网络状态分类的网络拥塞控制方法。基于网络状态分类的网络拥塞控制方法,网络拥塞控制方法包括:在tcp连接中的发送端向接收端发送多个数据包之后,当所述发送端接收到第t个所述接收端回复的确认包时,获取所述发送端接收的第t个确认包对应的网络状态参数向量作为第t次网络状态参数向量,根据预先建立的网络状态参数向量与网络状态类别的对应关系,获得第t次网络状态参数向量对应的网络状态类别,作为第t次网络状态类别,根据预先建立的网络状态类别与拥塞窗口调节方式的对应关系,获得第t次网络状态类别对应的拥塞窗口调节方式,作为第t次拥塞窗口调节方式,以根据第t次拥塞窗口调节方式对发送端的拥塞窗口进行调节,根据第t次网络状态参数向量对网络状态参数向量与网络状态类别的对应关系进行更新。

图1给出了本发明的基于网络状态分类的网络拥塞控制方法的一个示例性处理的流程图。

如图1所示,该方法开始之后,执行步骤s110。

在步骤s110中,在tcp连接中的发送端向接收端发送多个数据包之后,当发送端接收到第t个接收端回复的确认包时,获取发送端接收的第t个确认包对应的网络状态参数向量作为第t次网络状态参数向量。然后,执行步骤s120。

其中,t例如可以是1、2、3等等正整数,表示发送端收到接收端回复的确认包的序数。

需要说明的是,发送端接收到的第t个确认包不一定是接收端回复的第t个确认包。举例来说,在tcp连接中,发送端按照预定频率向接收端发送数据包,例如在发送端已经向接收端发送了x1(例如x1=100)个数据包之后,接收端接收到的数据包数量例如为x2(如x2=80);接收端每接收到一个数据包后,即向发送端发送一个确认包,这样,接收端向发送端发送了x2个确认包;发送端接收到来自接收端的确认包数量例如为x3(如x3=60)。

在步骤s120中,根据预先建立的网络状态参数向量与网络状态类别的对应关系,获得第t次网络状态参数向量对应的网络状态类别,作为第t次网络状态类别。然而,执行步骤s130。

根据一个实现方式,网络状态参数向量与网络状态类别的对应关系可以通过如下方式获得:构建网络状态分类模型,在该模型中,以网络状态参数向量作为模型的输入,以网络状态类别作为模型的输出;获得训练数据,其中,训练数据包括多条网络状态参数向量以及与每一条网络状态参数向量相对应的网络状态类别;采用预定分类算法并利用训练数据对网络状态分类模型进行训练,以利用训练完的网络状态分类模型描述网络状态参数向量与网络状态类别的对应关系。其中,预定分类算法例如可以采用多分类逻辑回归分类算法(可参考文献appliedlogisticregression[m].johnwiley&sons出版社.2013)或多分类支持向量机(可参考文献multi-classsupportvectormachines[j].departmentofcomputerscience,royalholloway,universityoflondon出版社.1998)等。

在步骤s130中,根据预先建立的网络状态类别与拥塞窗口调节方式的对应关系,获得第t次网络状态类别对应的拥塞窗口调节方式,作为第t次拥塞窗口调节方式,以根据第t次拥塞窗口调节方式对发送端的拥塞窗口进行调节。然后,执行步骤s140。

在步骤s140中,根据第t次网络状态参数向量对网络状态参数向量与网络状态类别的对应关系进行更新。

根据一个实现方式,预先建立的网络状态参数向量与网络状态类别的对应关系可以包括多个预设网络状态参数向量与多个预设网络状态类别,其中,每个预设网络状态参数向量对应一个预设网络状态类别,而每个预设网络状态类别对应一个或多个预设网络状态参数向量。

根据一个实现方式,预先建立的网络状态类别与拥塞窗口调节方式的对应关系可以包括多个预设网络状态类别和多个预设拥塞窗口调节方式。

根据一个实现方式,在预先建立的网络状态类别与拥塞窗口调节方式的对应关系中,第i个预设网络状态类别li以p(li,mj)的概率与第j个预设拥塞窗口调节方式mj对应,其中p(li,mj)的范围在0到1之间,σjp(li,mj)=1,i=1,2,…,p,j=1,2,…,q,p表示预设网络状态类别的数量,q表示预设拥塞窗口调节方式的数量。

在一个例子中,预设网络状态类别共三个,例如用1,2,3表示,预设拥塞窗口调节方式共三个,例如用a,b,c表示。网络状态类别1例如以20%的几率对应拥塞窗口调节方式a,以80%的几率对应拥塞窗口调节方式b,以0%的几率对应拥塞窗口调节方式c;网络状态类别2例如以50%的几率对应拥塞窗口调节方式a,50%的几率对应拥塞窗口调节方式b,以0%的几率对应拥塞窗口调节方式c;网络状态类别3例如以0%的几率对应拥塞窗口调节方式a,0%的几率对应拥塞窗口调节方式b,以100%的几率对应拥塞窗口调节方式c。即:

p(1,a)=0.2,p(1,b)=0.8,p(1,c)=0;

p(2,a)=0.5,p(2,b)=0.5,p(2,c)=0;

p(3,a)=0,p(3,b)=0,p(3,c)=1。

在另一个例子中,多个预设网络状态类别和多个预设拥塞窗口调节方式之间可以是一一对应的,例如预设网络状态类别共两个,例如用1,2表示,预设拥塞窗口调节方式共两个,例如用a,b表示。网络状态类别1例如以100%的几率对应拥塞窗口调节方式a,以0%的几率对应拥塞窗口调节方式b;网络状态类别2例如以0%的几率对应拥塞窗口调节方式a,100%的几率对应拥塞窗口调节方式b,p(1,a)=1,p(1,b)=0,p(2,a)=0,p(2,b)=1,即网络状态类别与拥塞窗口调节方式之间一一对应。

根据一个实现方式,多个预设拥塞窗口调节方式例如包括但不限于以下四种方式:第一种方式,将拥塞窗口的大小变为原来的a倍,a>0;第二种方式,将拥塞窗口的大小增加b,b>0;第三种方式,将拥塞窗口的大小减小b;第四种方式,不改变拥塞窗口的大小。

其中,a、b都可以为预设值,a、b的预设值范围均在0到1之间。

根据一个实现方式,根据第t次网络状态参数向量对网络状态参数向量与网络状态类别的对应关系进行更新的步骤例如包括:根据第t次网络状态参数向量判断是否需要对网络状态参数向量与网络状态类别的对应关系进行更新;当需要对网络状态参数向量与网络状态类别的对应关系进行更新时,生成更新网络状态参数向量与网络状态类别的对应关系所需的训练数据,以使用该训练数据完成对网络状态参数向量与网络状态类别的对应关系的更新。

根据一个实现方式,网络状态参数向量例如包括但不限于以下至少一种参数:发送端本次收到的回复包与上一次收到的回复包之间的时间间隔ack;发送端本次收到的回复包所回复的数据包的发送时间与上一次收到的回复包所回复的数据包发送时间之间的时间间隔send;发送端本次收到的回复包的时间与该回复包所回复的数据包的发送时间的时间间隔rtt;发送端目前为止所计算出的rtt的最小值rtt_min;发送端收到的连续两个确认包的时间间隔的加权平均值ack_ewma;发送端收到的连续两个确认包所回复的数据包发送时间的时间间隔的加权平均值send_ewma;rtt与rtt_min的比值rtt_ratio;本次计算出的rtt与上一次计算出的rtt的差rtt_diff;rtt_diff与rtt_min的比值rtt_diff_ratio;发送端本次收到的回复包与最近一次收到表示发送端所发送数据包丢失的回复包的时间间隔lost_time;发送端最近一次收到表示发送端所发送数据包丢失的回复包时的拥塞窗口大小lost_cwnd;发送端所收到的连续的表示发送端所发送数据包丢失的回复包的个数dupacks;发送端在收到本次回复包的时间与该回复包所回复的数据包的发送时间的时间间隔内收到的回复包个数ack_count。

此外,本发明的实施例还提供了一种基于网络状态分类的网络拥塞控制装置,网络拥塞控制装置包括:网络状态获取单元,其适于在tcp连接中的发送端向接收端发送多个数据包之后,当发送端接收到第t个接收端回复的确认包时,获取发送端接收的第t个确认包对应的网络状态参数向量作为第t次网络状态参数向量;网络状态分类单元,其适于根据预先建立的网络状态参数向量与网络状态类别的对应关系,获得第t次网络状态参数向量对应的网络状态类别,作为第t次网络状态类别;拥塞窗口调节单元,其适于根据预先建立的网络状态类别与拥塞窗口调节方式的对应关系,获得第t次网络状态类别对应的拥塞窗口调节方式,作为第t次拥塞窗口调节方式,以根据第t次拥塞窗口调节方式对发送端的拥塞窗口进行调节;更新单元,其适于根据第t次网络状态参数向量对网络状态参数向量与网络状态类别的对应关系进行更新。

如图2所示,网络拥塞控制装置可以包括网络状态获取单元210、网络状态分类单元220、拥塞窗口调节单元230和更新单元240。

网络状态获取单元210,其适于在tcp连接中的发送端向接收端发送第t个数据包之后,当发送端接收到接收端针对第t个数据包所回复的确认包时,获取第t个数据包对应的网络状态参数向量来作为第t次网络状态参数向量。

网络状态分类单元220,其适于根据预先建立的网络状态参数向量与网络状态类别的对应关系,获得第t次网络状态参数向量对应的网络状态类别,作为第t次网络状态类别;

拥塞窗口调节单元230,其适于根据预先建立的网络状态类别与拥塞窗口调节方式的对应关系,获得第t次网络状态类别对应的拥塞窗口调节方式,作为第t次拥塞窗口调节方式,以根据第t次拥塞窗口调节方式对发送端的拥塞窗口进行调节。

更新单元240,其适于根据第t次网络状态参数向量对网络状态参数向量与网络状态类别的对应关系进行更新。

此外,根据本发明的又一方面,还提供了一种基于网络状态分类的网络拥塞控制系统,包括tcp连接中的发送端和接收端,还包括如上所述的基于网络状态分类的网络拥塞控制装置。

下面,描述本发明的一个优选实施例。

1.网络状态获取模块,在收到确认包时计算网络状态参数向量。

在tcp连接中的发送端向接收端发送多个数据包之后,当所述发送端接收到第t个所述接收端回复的确认包时,计算以下网络状态参数:

所述发送端接收到所述第t个和第t-1个确认包的接收时间间隔ackt;

所述发送端发送所述第t个和第t-1个确认包所回复的数据包的发送时间间隔sendt;

所述发送端发送所述第t个确认包所回复的数据包的发送时间与接收到所述第t个确认包的接收时间之间的时间间隔rttt;

所述发送端收到的连续两个确认包的时间间隔的加权平均值ack_ewmat;

所述发送端收到的连续两个确认包所回复的数据包发送时间的时间间隔的加权平均值send_ewmat;

rttt与到目前为止计算出的最小rtt的比值rtt_ratiot;

rttt与rttt-1的差rtt_difft

将上述网络状态参数作为第t次网络状态参数向量st={ackt,sendt,rttt,send_ewmat,send_ewmat,rtt_ratiot,rtt_difft}。

2.网络状态分类模块,输入网络状态参数向量s,输出其对应的网络状态类别l。

预先定义n种网络状态类别,用从1到n的数字表示,l∈{1,2,…,n};

预先定义n组参数向量wi,i∈[1,n],wi表示第i种网络状态类别对应参数向量。每组参数向量中有k+1个分量,wi={wi1,wi2,…,wik+1},k为网络状态参数向量s中的分量个数;

分别计算网络状态向量st={s1,s2,…,sk}属于n种网络状态类别每一种的概率,pi表示st属于第i种网络状态类别的概率,其计算公式如下:

其中sq表示st中的第q个分量,wip表示第i类网络状态类别对应的参数向量中第p个分量的值;计算n种网络类别对应的pi后,选取概率最大的一种作为st所属的类别,即使用下式计算l:

在本例中,st由7个分量组成,故k=7,同时我们设定n=5,即l可取1、2、3、4、5这5个值。

3.拥塞窗口控制模块,输入网络状态类别l,找到与其对应的拥塞窗口调节方式m,并根据m调节拥塞窗口大小。

在本例中,l共有5种,则预设5种拥塞窗口调节方式,与l一一对应,其对应关系如下:

l=1对应拥塞窗口大小增加1,cwndt=cwndt-1+1;

l=2对应拥塞窗口大小增加1与原拥塞窗口大小的比值,cwndt=cwndt-1+1/cwndt-1;

l=3对应拥塞窗口大小不变,cwndt=cwndt-1;

l=4对应拥塞窗口大小减小1与原拥塞窗口大小的比值,cwndt=cwndt-1-1/cwndt-1;

l=5对应拥塞窗口大小减小1,cwndt=cwndt-1-1;

其中cwndt表示所述发送端接收到第t个所述接收端回复的确认包后,得出的第t次拥塞窗口大小,在拥塞窗口调节模块确认输入的网络状态类别l所对应的拥塞窗口调节方式后,根据拥塞窗口调节方式对第t-1次拥塞窗口大小进行调节,得到第t次拥塞窗口大小。

4.根据所述网络状态信息向量st,对所述网络状态分类模块中的对应关系f进行更新。

在本例子中,若rtt_difft<0则认为需要对所述对应关系f进行更新,rtt_difft为网络状态信息向量st中的分量;

若需要对所述对应关系进行更新,则生成训练数据;定义target_lt为:

其中rtt_ratiot为st中的分量,将st和target_lt作为更新所述对应关系f的训练数据,并根据下式更新对应关系f中每一种网络类别对应的参数向量wi:

其中1{target_lt=i}表示当target_l与i相等时其值为1,否则为0,α为预先设定的训练速率,通常取0.01,pi使用公式(1)计算。

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

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