专利名称:网络拥塞控制方法、设备及系统的制作方法
技术领域:
本发明涉及网络通信技术,尤其涉及一种网络拥塞控制方法、设备及系统。
背景技术:
网络拥塞是当今网络中一个比较突出的问题,利用拥塞控制来保证网络服务质量(Quality of Service,QoS)极为重要。网络拥塞可以表现为数据包分组延迟增加、丢包率增加、上层应用性能下降等。现有的拥塞控制技术,可以根据拥塞控制在网络层的位置分为两类,一类是基于源端的传输控制协议(Transport Control Protocol,TCP)拥塞控制,在主机和网络边缘设备中执行;另一类是基于网络的IP拥塞控制,在网络设备中执行。网络拥塞控制也可以称 为接纳控制,对应的接纳控制算法包括基于参数的接纳控制算法、基于测量的接纳控制算法,基于带宽代理的接纳控制算法和基于策略的接纳控制算法。现有的拥塞控制技术只能反映网络中单个节点的拥塞情况,不能有效缓解整条链路的拥塞情况。现有的接纳控制算法不能体现用户意愿,网络利用率不高。
发明内容
本发明实施例是提供一种网络拥塞控制方法、设备及系统,有效缓解整条链路的拥塞情况,并且能够体现用户意愿且网络利用率高。本发明实施例提供了一种网络拥塞控制方法,包括入口网络节点获取数据流对应的拥塞判断参数和输入参考速率,所述拥塞判断参数根据积聚物确定,所述输入参考速率为保证网络不拥塞的极优解;入口网络节点根据所述拥塞判断参数确定是否发生网络拥塞,如果发生网络拥塞,根据所述输入参考速率和所述数据流对应的SLA信息,对所述数据流进行网络拥塞控制。本发明实施例提供了一种网络拥塞控制设备,包括获取模块,用于获取数据流对应的拥塞判断参数和输入参考速率,所述拥塞判断参数根据积聚物确定,所述输入参考速率为保证网络不拥塞的极优解;控制模块,用于根据所述拥塞判断参数确定是否发生网络拥塞,如果发生网络拥塞,根据所述输入参考速率和所述数据流对应的SLA信息,对所述数据流进行网络拥塞控制。本发明实施例提供了一种网络拥塞控制系统,包括网络代理,用于获取入口网络节点的输入速率,以及获取出口网络节点的输出速率,根据所述输入速率和输出速率确定积聚物,根据所述积聚物确定拥塞判断参数,并确定保证网络不拥塞的极优解作为输入参考速率;入口网络节点,用于根据所述拥塞判断参数确定是否发生网络拥塞,如果发生网络拥塞,根据所述输入参考速率和所述数据流对应的SLA信息,对所述数据流进行网络拥塞控制。由上述技术方法可知,本发明实施例通过根据拥塞判断参数判断网络是否拥塞,而拥塞判断参数是根据积聚物确定的,积聚物可以体现整个网络的拥塞情况,因此,本发明实施例可以反映整个网络的拥塞情况而不单单是一个节点的拥塞情况,从而有效缓解整个链路的拥塞状况。通过在网络拥塞控制时采用SLA,而SLA是用户意愿的体现,因此本发明实施例可以反映用户意愿;通过在网络拥塞控制时采用输入参考速率,该输入参考速率为保证整个网络不拥塞时的极优解,可以在保证网络不拥塞的基础上最大限度地提高网络利用率。
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本发明第一实施例的方法流程示意图;图2为本发明第二实施例的系统的结构示意图;图3为本发明第二实施例对应的方法流程示意图;图4为本发明第三实施例的系统的结构示意图;图5为本发明实施例中拥塞判断模块的处理流程示意图;图6为本发明实施例中域内网络拓扑的结构示意图;图7为本发明实施例中动态接纳控制的方法流程示意图;图8为本发明第二实施例的方法流程不意图;图9为本发明第四实施例的设备结构示意图;图10为本发明第五实施例的系统结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图I为本发明第一实施例的方法流程示意图,包括步骤11 :入口网络节点获取数据流对应的拥塞判断参数和输入参考速率,所述拥塞判断参数根据积聚物确定,所述输入参考速率为保证网络不拥塞的极优解;其中,入口网络节点可以从网络代理处获取上述的拥塞判断参数和输入参数速率。此时,网络代理可以获取所述入口网络节点的输入速率,以及获取出口网络节点的输出速率,根据所述输入速率和输出速率确定所述积聚物。进而根据积聚物确定拥塞判断参数,并确定表明网络拥塞情况的函数,之后求取该函数的极优解作为输入参考速率。计算积聚物、拥塞判断参数及输入参考速率的公式可以参见下述实施例。步骤12 :入口网络节点根据所述拥塞判断参数确定是否发生网络拥塞,如果发生网络拥塞,根据所述输入参考速率和所述数据流对应的SLA信息,对所述数据流进行网络拥塞控制。例如,如果所述数据流对应的SLA信息表明需要进行静态降级,则将所述数据流在入口网络节点的输出速率调整为所述静态降级对应的阈值与所述输入参考速率中的较小值;或者,如果所述数据流对应的SLA信息表明需要进行动态降级,则将所述数据流在入口网络节点的输出速率调整为所述输入参考速率;或者,如果所述数据流对应的SLA信息表明需要停止当前业务,则停止所述数据流的链接。本实施例通过根据拥塞判断参数判断网络是否拥塞,而拥塞判断参数是根据积聚物确定的,积聚物可以体现整个网络的拥塞情况,因此,可以反映整个网络的拥塞情况而不单单是一个节点的拥塞情况,从而有效缓解整个链路的拥塞状况。通过在网络拥塞控制时采用SLA,而SLA是用户意愿的体现,因此可以反映用户意愿;通过在网络拥塞控制时采用输入参考速率,该输入参考速率为保证整个网络不拥塞时的极优解,可以在保证网络不拥塞的基础上最大限度地提高网络利用率。 图2为本发明第二实施例的系统的结构示意图,图3为本发明第二实施例对应的方法流程示意图。参见图2,包括源端21、入口网络节点22、出口网络节点23、目的端24和网络代理25。其中,源端21用于提出业务请求,向入口网络节点22发送数据流。源端21可以通过现有的FAST TCP协议,根据拥塞窗口大小进行源端拥塞控制。入口网络节点22是数据流从源端进入网络的网关或者网络边缘节点,完成对数据流的控制,实现资源分配。其中,数据流的控制可以包括基于服务等级协议(Service-Level Agreement, SLA)的静态限流、基于SLA和输入参考速率的动态接纳控制。具体地,入口网络节点22在接收到数据流后,如果根据拥塞判断参数确定不拥塞,或者不存在拥塞判断参数后,即在正常情况下,根据用户和运营商签订的SLA信息,针对每个数据流中携带的IP地址或与IP地址动态绑定的用户名,进行前端的限流,以免单个用户发送过大的流量;在入口网络节点的后端,对已经分类的数据流进行流量整形,以免某类业务的流量占用过多的带宽。当根据拥塞判断参数确定发生拥塞时,则执行动态接纳控制,以进行拥塞控制。其中,动态接纳控制可以包括静态降级、动态降级或停止当前业务。如果是静态降级,则将数据流的流速调整到事先签订的SLA信息对应的静态阈值;如果是动态降级,则根据输入参考速率调整数据流的流速;如果是停止当前业务,则停止该业务的数据流的链接。进一步地,如果采用静态降级后,流速大于输入参考速率,可以再次进行动态降级。另夕卜,入口网络节点22还将自身的输入速率发送给网络代理25。出口网络节点23是数据流从网络进入目的端24的网关或者网络边缘节点。另外,出口网络节点23还将自身的输出速率发送给网络代理25。网络代理25用于获取入口网络节点22的输入速率和出口网络节点23的出口速率,并据此计算拥塞判断参数和输入参考速率,之后将拥塞判断参数和输入参考速率发送给入口网络节点。另外,数据流可以通过源端21由入口网络节点22进入网络,之后入口网络节点22将该数据流通过网络发送给出口网络节点23,进而由出口网络节点23发送给目的端24。
参见图3,本实施例的方法可以包括步骤31 :源端向网络边界入口网络节点发送数据流。其中,在源端可以进行基于拥塞窗口的控制。步骤32 :入口网络节点通过网络中间设备及出口网络节点转发数据流给目的端。例如,在正常情况下,基于SLA信息进行静态限流,按照数据流对应的SLA信息,该SLA信息包括对应的流速,之后按照该流速处理数据流。步骤33 :网络代理获取入口网络节点的输入速率和出口网络节点的输出速率。
可以是,入口网络节点主动采集输入速率以及出口网络节点主动采集输出速率,之后分别发送各网络代理;也可以是,网络代理从入口网络节点以及出口网络节点分别主动获取输入速率和输出速率。步骤34 网络代理计算拥塞判断参数和输入参考速率;其中,网络代理可以根据每条数据流的输入速率和输出速率计算每条数据流的拥塞判断参数和输入参考速率。具体计算过程可以参见图5所示实施例。步骤35 网络代理将拥塞判断参数和输入参考速率发送给入口网络节点。其中,可以是网络代理主动将拥塞判断参数和输入参考速率发送给入口网络节点,也可以是网络代理在接收到入口网络节点的请求后将拥塞判断参数和输入参考速率发送给入口网络节点。步骤36 :入口网络节点进行动态接纳控制。其中,如果入口网络节点根据拥塞判断参数确定发生拥塞后可以执行动态接纳控制。例如,根据数据流对应的SLA信息,确定是静态降级、动态降级、或停止当前业务,之后执行相应的处理。具体处理过程可以参见图7所示实施例。步骤37 :入口网络节点发送动态接纳控制后的数据流。通过接纳控制,数据流减少,拥塞缓解。图2、3给出了本发明实施例整体上的示意,在具体实施时,上述设备可以具体包括如下实施例所示的模块。图4为本发明第三实施例的系统的结构示意图,本实施例中,源端41可以包括拥塞窗口估算模块411和拥塞窗口控制模块412 ;拥塞窗口估算模块411测量或计算出用于确定拥塞窗口大小的参数,以此计算出拥塞窗口的大小。拥塞窗口控制模块412根据该拥塞窗口估算模块计算得到的拥塞窗口的大小控制数据包转发速率,使得数据包转发速率不超过拥塞窗口的大小。A 口网络节点42包括静态限流模块421、动态接纳控制模块422、第一流速采集模块423。静态限流模块421根据从SLA数据库中获取的SLA信息,在正常情况下对数据流进行静态限流;动态接纳控制模块422在发生拥塞后,进行动态接纳控制。第一流速采集模块423用于将入口网络节点的输入速率发送给网络代理。另外,入口网络节点42还可以包括计费数据库模块424和计费模块425,以便对客户消费业务进行计费。出口网络节点43可以包括第二流速采集模块431,用于向网络代理发送输出速率。网络代理44可以包括SLA数据库441和拥塞判断模块442 ;SLA数据库441用于保存数据流对应的SLA信息,拥塞判断模块442用于得到拥塞判断参数和输入参考速率。
拥塞判断模块位于网络代理上,用于计算拥塞判断参数和输入参考速率。同时,把计算得出的拥塞判断参数和输入参考速率提供给动态接纳控制模块。拥塞判断模块需要从第一流速采集模块和第二流速采集模块收集到流速信息后,计算出每个数据流的积聚物、拥塞判断参数以及输入参考速率。拥塞判断模块具体的处理流程可以参见下图。另外,在数据流传输时,该数据流是由入口网络节点发送给出口网络节点,因此,如图2所示入口网络节点和出口网络节点之间存在连接关系。但是,本实施例中主要是针对各参数的计算及进行相应的控制,因此,入口网络节点和出口网络节点之间的连接关系没有体现。但是,可以理解的是,如果入口网络节点和出口网络节点之间有数据传输时,入口网络节点和出口网络节点之间是存在连接关系的。图5为本发明实施例中拥塞判断模块的处理流程示意图,包括步骤501 :获取入口网络节点的输入速率和出口网络节点的输出速率。
其中,λ 1表示数据流i的输入速率,Ui表示数据流i的输出速率。步骤502 :根据输入速率和输出速率,计算积聚物。其中,积聚物是针对一个链接,在数据流经过的所有节点中,排队等待的数据包的
口 O以图6所示的网络系统为例,积聚物可以采用如下方式计算图6为本发明实施例中域内网络拓扑的结构示意图,其中,λ"表示数据流i在瓶颈j处的输入速率,I!"表示数据流i在瓶颈j处的输出速率。η为检测周期的序号,τ为数据采样时间间隔。数据流i经过瓶颈j处的输入输出速率差如公式(I)表示qiJ(n) = λ iJ (n) _uiJ (η)(I)积聚物如公式(2)计算得出a'(n) = (η) χτ(2)
j积聚物的递推公式如公式(3)表示a1 (n) = a1 (η_1) + ( λ 1 (n)-U1 (η)) X τ(3)SP,对于数据流 i,在周期 η 时,积聚物为 “(η) =Bi (η-1) + ( λ 1 (n)-Ui (η)) X τ。步骤503 :判断积聚物是否大于阈值,若是,执行步骤504,否则,执行步骤505。其中,该阈值b可以设定,例如根据物理特性或者人为经验设定。客观上,当积聚物大于阈值时,表明发生网络拥塞,否则未发生网络拥塞。本发明实施例中,网络代理根据积聚物确定拥塞判断参数,进而入口网络节点可以根据该拥塞判断参数判断网络是否拥塞,以进行相应的控制。步骤504 :将拥塞判断参数置为r,之后执行步骤507。其中,r可以为任一设定的值,通常该r可以为2或3。步骤505 :判断拥塞判断参数是否为0,若是,执行步骤508,否则,执行步骤506。步骤506 :将拥塞判断参数减I。通过上述步骤可以得到拥塞判断参数的计算公式如下其中,Ki(Ii)表示数据流i在周期η时的拥塞判断参数,其计算公式可以为
权利要求
1.一种网络拥塞控制方法,其特征在于,包括 入口网络节点获取数据流对应的拥塞判断参数和输入参考速率,所述拥塞判断参数根据积聚物确定,所述输入参考速率为保证网络不拥塞的极优解; 入口网络节点根据所述拥塞判断参数确定是否发生网络拥塞,如果发生网络拥塞,根据所述输入参考速率和所述数据流对应的SLA信息,对所述数据流进行网络拥塞控制。
2.根据权利要求I所述的方法,其特征在于,还包括 网络代理获取所述入口网络节点的输入速率,以及获取出口网络节点的输出速率,根据所述输入速率和输出速率确定所述积聚物。
3.根据权利要求2所述的方法,其特征在于,所述拥塞判断参数的计算公式为
4.根据权利要求I所述的方法,其特征在于,所述输入参考速率的计算公式为
5.根据权利要求I所述的方法,其特征在于,所述根据所述输入参考速率和所述数据流对应的SLA信息,对所述数据流进行网络拥塞控制,包括 如果所述数据流对应的SLA信息表明需要进行静态降级,则将所述数据流在入口网络节点的输出速率调整为所述静态降级对应的阈值与所述输入参考速率中的较小值;或者, 如果所述数据流对应的SLA信息表明需要进行动态降级,则将所述数据流在入口网络节点的输出速率调整为所述输入参考速率;或者, 如果所述数据流对应的SLA信息表明需要停止当前业务,则停止所述数据流的链接。
6.根据权利要求3所述的方法,其特征在于,所述根据所述拥塞判断参数确定是否发生网络拥塞,包括 如果所述拥塞判断参数大于O,则确定发生网络拥塞。
7.根据权利要求2所述的方法,其特征在于,所述网络代理获取所入口网络节点的输入速率,以及获取出口网络节点的输出速率,包括 网络代理接收所述入口网络节点和出口网络节点分别主动发送的所述输入速率和输出速率; 或者, 网络代理分别向所述入口网络节点和出口网络节点发送请求,并接收所述入口网络节点和出口网络节点在接收到所述请求后分别发送的所述输入速率和输出速率。
8.根据权利要求I所述的方法,其特征在于,所述入口网络节点获取数据流对应的拥塞判断参数和输入参考速率,包括 所述入口网络节点接收网络代理主动发送的所述拥塞判断参数和输入参考速率; 或者, 所述入口网络节点向所述网络代理发送请求,并接收所述网络代理在接收到所述请求后发送的所述拥塞判断参数和输入参考速率。
9.一种网络拥塞控制设备,其特征在于,包括 获取模块,用于获取数据流对应的拥塞判断参数和输入参考速率,所述拥塞判断参数根据积聚物确定,所述输入参考速率为保证网络不拥塞的极优解; 控制模块,用于根据所述拥塞判断参数确定是否发生网络拥塞,如果发生网络拥塞,根据所述输入参考速率和所述数据流对应的SLA信息,对所述数据流进行网络拥塞控制。
10.根据权利要求9所述的设备,其特征在于,所述控制模块具体用于 如果所述数据流对应的SLA信息表明需要进行静态降级,则将所述数据流在入口网络节点的输出速率调整为所述静态降级对应的阈值与所述输入参考速率中的较小值;或者,如果所述数据流对应的SLA信息表明需要进行动态降级,则将所述数据流在入口网络节点的输出速率调整为所述输入参考速率;或者, 如果所述数据流对应的SLA信息表明需要停止当前业务,则停止所述数据流的链接。
11.根据权利要求9所述的设备,其特征在于,所述获取模块具体用于 接收网络代理主动发送的所述拥塞判断参数和输入参考速率;或者, 向所述网络代理发送请求,并接收所述网络代理在接收到所述请求后发送的所述拥塞判断参数和输入参考速率。
12.—种网络拥塞控制系统,其特征在于,包括 网络代理,用于获取入口网络节点的输入速率,以及获取出口网络节点的输出速率,根据所述输入速率和输出速率确定积聚物,根据所述积聚物确定拥塞判断参数,并确定保证网络不拥塞的极优解作为输入参考速率; 入口网络节点,用于根据所述拥塞判断参数确定是否发生网络拥塞,如果发生网络拥塞,根据所述输入参考速率和所述数据流对应的SLA信息,对所述数据流进行网络拥塞控制。
13.根据权利要求12所述的系统,其特征在于,所述网络代理采用如下公式确定网络拥塞判断参数
14.根据权利要求12所述的系统,其特征在于,所述网络代理采用如下公式确定输入参考速率
15.根据权利要求13所述的系统,其特征在于,所述入口网络节点具体用于如果所述拥塞判断参数大于O,则确定发生网络拥塞。
16.根据权利要求12所述的系统,其特征在于,所述网络代理具体用于 接收所述入口网络节点和出口网络节点分别主动发送的所述输入速率和输出速率; 或者, 分别向所述入口网络节点和出口网络节点发送请求,并接收所述入口网络节点和出口网络节点在接收到所述请求后分别发送的所述输入速率和输出速率。
全文摘要
本发明提供一种网络拥塞控制方法、设备及系统。该方法包括入口网络节点获取数据流对应的拥塞判断参数和输入参考速率,所述拥塞判断参数根据积聚物确定,所述输入参考速率为保证网络不拥塞的极优解;入口网络节点根据所述拥塞判断参数确定是否发生网络拥塞,如果发生网络拥塞,根据所述输入参考速率和所述数据流对应的SLA信息,对所述数据流进行网络拥塞控制。本发明实施例可以有效缓解整条链路的拥塞情况,并且能够体现用户意愿且网络利用率高。
文档编号H04L29/06GK102868671SQ20111019149
公开日2013年1月9日 申请日期2011年7月8日 优先权日2011年7月8日
发明者张登银, 陈齐标, 程春玲, 李正 申请人:华为技术有限公司, 南京邮电大学