带宽调度方法及装置转让专利

申请号 : CN201810082837.3

文献号 : CN108337189B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李亮王攀

申请人 : 新华三技术有限公司

摘要 :

本发明涉及一种带宽调度方法及装置。该方法包括:当在网络中加载第一路径时,确定组成第一路径的至少一条链路;获取第一路径占用至少一条链路中每条链路的路径实际可占用带宽;识别路径实际可占用带宽是否满足第一路径的需求占用带宽;如果路径实际可占用带宽未满足需求占用带宽,则根据所述第一路径的路径属性,从至少一条链路中每条链路的剩余可分配带宽中为第一路径分配带宽。根据本发明的带宽调度方法及装置,可以根据加载的路径的路径属性为路径分配带宽,可以动态缩小备路径占用带宽,在尽量保证灾备效果的情况下,提高带宽的利用率,使得网络能承载更多的数据流业务。

权利要求 :

1.一种带宽调度方法,其特征在于,所述方法包括:当在网络中加载第一路径时,确定组成所述第一路径的至少一条链路;

获取所述第一路径占用所述至少一条链路中每条链路的路径实际可占用带宽,所述路径实际可占用带宽为所述至少一条链路中每条链路的剩余可分配带宽中的最小值;

识别所述路径实际可占用带宽是否满足所述第一路径的需求占用带宽;

如果所述路径实际可占用带宽满足所述需求占用带宽,则从所述至少一条链路中每条链路的剩余可分配带宽中为所述第一路径分配所述第一路径的实际可占用带宽;

如果所述路径实际可占用带宽未满足所述需求占用带宽,则根据所述第一路径的路径属性,从所述至少一条链路中每条链路的剩余可分配带宽中为所述第一路径分配带宽;

所述如果所述路径实际可占用带宽未满足所述需求占用带宽,根据所述第一路径的路径属性,从所述至少一条链路中每条链路的剩余可分配带宽中为所述第一路径分配带宽,包括:

若所述第一路径为主路径,则确定所述至少一条链路中的、剩余可分配带宽未满足所述需求占用带宽的至少一条第一链路;

释放所述至少一条第一链路中每条第一链路组成的备路径占用每条第一链路的带宽,并更新每条第一链路的剩余可分配带宽;

根据所述至少一条第一链路中每条第一链路的更新后的剩余可分配带宽,更新所述第一路径占用所述至少一条链路中每条链路的路径实际可占用带宽;

从所述至少一条链路中每条链路的更新后的剩余可分配带宽中为所述第一路径分配所述第一路径的更新后的路径实际可占用带宽。

2.根据权利要求1所述的方法,其特征在于,所述释放所述至少一条第一链路中每条第一链路组成的备路径占用每条第一链路的带宽,并更新每条第一链路的剩余可分配带宽,包括:

若所述第一链路存在可释放占用带宽的备路径,则依次释放所述第一链路组成的备路径中优先级最低的备路径占用所述第一链路的第一占用带宽;

每次根据释放的所述第一占用带宽更新所述第一链路的剩余可分配带宽;

若第一链路的更新后的剩余可分配带宽满足所述需求占用带宽,或者,所述第一链路未存在可释放带宽的备路径,则停止释放所述第一链路组成的备路径占用所述第一链路的第一占用带宽。

3.根据权利要求1所述的方法,其特征在于,所述释放所述至少一条第一链路中每条第一链路组成的备路径占用每条第一链路的带宽,并更新每条第一链路的剩余可分配带宽,包括:

在所述至少一条第一链路中存在未释放过备路径的占用带宽的链路的情况下,选择所述至少一条第一链路中的、未释放过备路径的占用带宽的一条链路作为当前第一链路;

若所述当前第一链路存在可释放带宽的备路径,则依次释放所述当前第一链路组成的备路径中优先级最低的备路径占用所述当前第一链路的第二占用带宽,并每次根据该次释放的所述第二占用带宽,更新所述当前第一链路的剩余可分配带宽,直至当前第一链路的更新后的剩余可分配带宽满足所述需求占用带宽,或者,所述当前第一链路未存在可释放带宽的备路径;

所述根据所述至少一条第一链路中每条第一链路的更新后的剩余可分配带宽更新所述第一路径占用所述至少一条链路中每条链路的路径实际可占用带宽,包括:当所述当前第一链路的更新后的剩余可分配带宽未满足所述需求占用带宽,且所述当前第一链路未存在可释放带宽的备路径时,根据所述当前第一链路的更新后的剩余可分配带宽更新所述第一路径的路径实际可占用带宽。

4.根据权利要求2或3所述的方法,其特征在于,所述如果所述路径实际可占用带宽未满足所述需求占用带宽,根据所述第一路径的路径属性,从所述至少一条链路中每条链路的剩余可分配带宽中为所述第一路径分配带宽,还包括:识别所述第一路径的更新后的路径实际可占用带宽是否满足所述第一路径的需求占用带宽;

如果所述第一路径的更新后的路径实际可占用带宽满足所述第一路径的需求占用带宽,则将所述第一路径的带宽状态标记为第一状态;

如果所述第一路径的更新后的路径实际可占用带宽未满足所述第一路径的需求占用带宽,则将所述第一路径的带宽状态标记为第二状态;

更新所述至少一条链路中每条链路组成的主路径的占用总带宽,并再次对所述至少一条链路中每条链路的更新后的所述剩余可分配带宽进行更新。

5.根据权利要求1所述的方法,其特征在于,所述如果所述路径实际可占用带宽未满足所述需求占用带宽,则根据所述第一路径的路径属性,从所述至少一条链路中每条链路的剩余可分配带宽中为所述第一路径分配带宽,还包括:若所述第一路径为备路径,从所述至少一条链路中每条链路的所述剩余可分配带宽中为所述第一路径分配所述第一路径的路径实际可占用带宽;

将所述第一路径的带宽状态标记为第二状态;

更新所述至少一条链路中每条链路的剩余可分配带宽,以及所述至少一条链路中每条链路组成的备路径的占用总带宽。

6.根据权利要求4所述的方法,其特征在于,所述方法还包括:当在网络中移除第二路径时,确定所述第二路径的路径属性,并释放所述第二路径的第三占用带宽;

根据释放的所述第三占用带宽,更新组成所述第二路径的当前链路的剩余可分配带宽;

根据所述第二路径的路径属性,从所述当前链路组成的全部路径中,选择具有所述第二状态的第三路径;

当所述当前链路的更新后的剩余可分配带宽大于0时,从所述剩余可分配带宽中,依次为所述第三路径中优先级最高的路径分配带宽,并再次对更新后的所述剩余可分配带宽进行更新;

当再次更新后的所述剩余可分配带宽大于0时,重复执行从所述剩余可分配带宽中,依次为所述第三路径中优先级最高的路径分配带宽,并再次对更新后的所述剩余可分配带宽进行更新的过程,直至所述当前链路的再次更新后的剩余可分配带宽为0,或者,所述当前链路组成的全部路径中,未存在所述第三路径。

7.根据权利要求6所述的方法,其特征在于,所述根据所述第二路径的路径属性,从所述当前链路组成的全部路径中,选择具有所述第二状态的第三路径,包括:在所述路径属性表征所述第二路径为主路径时,从所述当前链路组成的全部路径中,选择具有所述第二状态,且优先级低于所述第二路径的优先级的第三路径;

或者,

在所述路径属性表征所述第二路径为备路径时,从所述当前链路组成的全部路径中,选择具有所述第二状态的第三路径。

8.一种带宽调度装置,其特征在于,所述装置包括:第一确定模块,用于当在网络中加载第一路径时,确定组成所述第一路径的至少一条链路;

获取模块,用于获取所述第一路径占用所述至少一条链路中每条链路的路径实际可占用带宽,所述路径实际可占用带宽为所述至少一条链路中每条链路的剩余可分配带宽中的最小值;

识别模块,用于识别所述路径实际可占用带宽是否满足所述第一路径的需求占用带宽;

第一分配模块,用于如果所述路径实际可占用带宽满足所述需求占用带宽,则从所述至少一条链路中每条链路的剩余可分配带宽中为所述第一路径分配所述第一路径的实际可占用带宽;

第二分配模块,用于如果所述路径实际可占用带宽未满足所述需求占用带宽,则根据所述第一路径的路径属性,从所述至少一条链路中每条链路的剩余可分配带宽中为所述第一路径分配带宽;

所述第二分配模块包括:

确定单元,用于若所述第一路径为主路径,则确定所述至少一条链路中的、剩余可分配带宽未满足所述需求占用带宽的至少一条第一链路;

带宽释放单元,用于释放所述至少一条第一链路中每条第一链路组成的备路径占用每条第一链路的带宽,并更新每条第一链路的剩余可分配带宽;

第一更新单元,用于根据所述至少一条第一链路中每条第一链路的更新后的剩余可分配带宽,更新所述第一路径占用所述至少一条链路中每条链路的路径实际可占用带宽;

第一分配单元,用于从所述至少一条链路中每条链路的更新后的剩余可分配带宽中为所述第一路径分配所述第一路径的更新后的路径实际可占用带宽。

9.根据权利要求8所述的装置,其特征在于,所述带宽释放单元包括:第一释放子单元,用于若所述第一链路存在可释放占用带宽的备路径,则依次释放所述第一链路组成的备路径中优先级最低的备路径占用所述第一链路的第一占用带宽;

第一更新子单元,用于每次根据释放的所述第一占用带宽更新所述第一链路的剩余可分配带宽;

停止释放子单元,用于若第一链路的更新后的剩余可分配带宽满足所述需求占用带宽,或者,所述第一链路未存在可释放带宽的备路径,则停止释放所述第一链路组成的备路径占用所述第一链路的第一占用带宽。

10.根据权利要求8所述的装置,其特征在于,所述带宽释放单元包括:选择子单元,用于在所述至少一条第一链路中存在未释放过备路径的占用带宽的链路的情况下,选择所述至少一条第一链路中的、未释放过备路径的占用带宽的一条链路作为当前第一链路;

第二释放子单元,用于若所述当前第一链路存在可释放带宽的备路径,则依次释放所述当前第一链路组成的备路径中优先级最低的备路径占用所述当前第一链路的第二占用带宽,并每次根据该次释放的所述第二占用带宽,更新所述当前第一链路的剩余可分配带宽,直至当前第一链路的更新后的剩余可分配带宽满足所述需求占用带宽,或者,所述当前第一链路未存在可释放带宽的备路径;

所述更新单元包括:

第二更新子单元,用于当所述当前第一链路的更新后的剩余可分配带宽未满足所述需求占用带宽,且所述当前第一链路未存在可释放带宽的备路径时,根据所述当前第一链路的更新后的剩余可分配带宽更新所述第一路径的路径实际可占用带宽。

11.根据权利要求9或10所述的装置,其特征在于,所述第二分配模块还包括:识别单元,用于识别所述第一路径的更新后的路径实际可占用带宽是否满足所述第一路径的需求占用带宽;

第一标记单元,用于如果所述第一路径的更新后的路径实际可占用带宽满足所述第一路径的需求占用带宽,则将所述第一路径的带宽状态标记为第一状态;

第二标记单元,用于如果所述第一路径的更新后的路径实际可占用带宽未满足所述第一路径的需求占用带宽,则将所述第一路径的带宽状态标记为第二状态;

第二更新单元,用于更新所述至少一条链路中每条链路组成的主路径的占用总带宽,并再次对所述至少一条链路中每条链路的更新后的所述剩余可分配带宽进行更新。

12.根据权利要求8所述的装置,其特征在于,所述第二分配模块包括:第二分配单元,用于若所述第一路径为备路径,从所述至少一条链路中每条链路的所述剩余可分配带宽中为所述第一路径分配所述第一路径的路径实际可占用带宽;

第二标记单元还用于将所述第一路径的带宽状态标记为第二状态;

第三更新单元,用于更新所述至少一条链路中每条链路的剩余可分配带宽,以及所述至少一条链路中每条链路组成的备路径的占用总带宽。

13.根据权利要求11所述的装置,其特征在于,所述装置还包括:第二确定模块,用于当在网络中移除第二路径时,确定所述第二路径的路径属性,并释放所述第二路径的第三占用带宽;

更新模块,用于根据释放的所述第三占用带宽,更新组成所述第二路径的当前链路的剩余可分配带宽;

选择模块,用于根据所述第二路径的路径属性,从所述当前链路组成的全部路径中,选择具有所述第二状态的第三路径;

第三分配模块,用于当所述当前链路的更新后的剩余可分配带宽大于0时,从所述剩余可分配带宽中,依次为所述第三路径中优先级最高的路径分配带宽,并再次对更新后的所述剩余可分配带宽进行更新;

停止分配模块,用于当再次更新后的所述剩余可分配带宽大于0时,重复执行从所述剩余可分配带宽中,依次为所述第三路径中优先级最高的路径分配带宽,并再次对更新后的所述剩余可分配带宽进行更新的过程,直至所述当前链路的再次更新后的剩余可分配带宽为0,或者,所述当前链路组成的全部路径中,未存在所述第三路径。

14.根据权利要求13所述的装置,其特征在于,所述选择模块包括以下单元中的一个或多个:

第一选择单元,用于在所述路径属性表征所述第二路径为主路径时,从所述当前链路组成的全部路径中,选择具有所述第二状态,且优先级低于所述第二路径的优先级的第三路径;

第二选择单元,用于在所述路径属性表征所述第二路径为备路径时,从所述当前链路组成的全部路径中,选择具有所述第二状态的第三路径。

说明书 :

带宽调度方法及装置

技术领域

[0001] 本发明涉及网络通信技术领域,尤其涉及一种带宽调度方法及装置。

背景技术

[0002] 业务流是指包含源节点、源接口、目的节点、目的接口等标识属性和一些自定义属性的网络中的流量。例如:承载语音会议业务的流量、承载视频通信业务的流量都可以视为
一条业务流。数据流是指在软件定义网络(英文:Software Defined Network,简称:SDN)控
制器内部将网络中的一条业务流抽象成一条数据流。
[0003] 通常情况下,为了保证数据流的路径发生故障时业务不中断(也可称为流量不中断),需要为数据流同时选择多条路径。例如,为了实现灾备效果,在路径计算过程中,会为
数据流寻找两条路径:一条路径为主路径,另一条路径为备路径。正常情况下,主路径承载
数据流的流量,备路径只占用带宽(或预占带宽)但没有流量通过,当主路径发生故障时,数
据流的流量快速切换的备路径上。这样实现了路径故障时业务不中断。
[0004] 但是,备路径占用带宽会使链路带宽利用率降低,使得组网能承载的业务流量变少。例如,SDN控制器获取数据流属性以及占用的带宽值,SDN控制器为数据流计算主备路
径,主备路径都占用相同的带宽,即备路径100%占用带宽。这种方式操作简单,在计算路径
时,主备路径处理方式相同,灾备效果较好,但是,在实际应用中主路径故障的概率极低,若
备路径100%占用带宽会造成网络带宽浪费,使得组网能承载的数据流变少。
[0005] 若备路径不占用带宽,则无法保证主路径故障时业务灾备效果。例如,主路径占用的带宽为SDN控制器获取的带宽值,备路径占用的带宽为SDN控制器获取的带宽值的0%‑
100%,通常为20%。也即是,主路径完全占用带宽,备路径部分占用带宽。这种方式操作简
单,减少了带宽浪费。但是,当备路径占用的带宽比例较少时,很难保证灾备效果。
[0006] 因此,需要实现一种在尽量保证灾备效果的情况下,提高带宽的利用率的方法,使得网络能承载更多的数据流业务。

发明内容

[0007] 有鉴于此,本发明提出了一种带宽调度方法及装置,根据加载的路径的路径属性为路径分配带宽,可以动态缩小备路径占用带宽,在尽量保证灾备效果的情况下,提高带宽
的利用率,使得网络能承载更多的数据流业务。
[0008] 根据本发明的一方面,提供了一种带宽调度方法,所述方法包括:
[0009] 当在网络中加载第一路径时,确定组成所述第一路径的至少一条链路;
[0010] 获取所述第一路径占用所述至少一条链路中每条链路的路径实际可占用带宽,所述路径实际可占用带宽为所述至少一条链路中每条链路的剩余可分配带宽中的最小值;
[0011] 识别所述路径实际可占用带宽是否满足所述第一路径的需求占用带宽;
[0012] 如果所述路径实际可占用带宽满足所述需求占用带宽,则从所述至少一条链路中每条链路的剩余可分配带宽中为所述第一路径分配所述第一路径的实际可占用带宽;
[0013] 如果所述路径实际可占用带宽未满足所述需求占用带宽,则根据所述第一路径的路径属性,从所述至少一条链路中每条链路的剩余可分配带宽中为所述第一路径分配带
宽。
[0014] 根据本发明的另一方面,提供了一种带宽调度装置,所述装置包括:
[0015] 第一确定模块,用于当在网络中加载第一路径时,确定组成所述第一路径的至少一条链路;
[0016] 获取模块,用于获取所述第一路径占用所述至少一条链路中每条链路的路径实际可占用带宽,所述路径实际可占用带宽为所述至少一条链路中每条链路的剩余可分配带宽
中的最小值;
[0017] 识别模块,用于识别所述路径实际可占用带宽是否满足所述第一路径的需求占用带宽;
[0018] 第一分配模块,用于如果所述路径实际可占用带宽满足所述需求占用带宽,则从所述至少一条链路中每条链路的剩余可分配带宽中为所述第一路径分配所述第一路径的
实际可占用带宽;
[0019] 第二分配模块,用于如果所述路径实际可占用带宽未满足所述需求占用带宽,则根据所述第一路径的路径属性,从所述至少一条链路中每条链路的剩余可分配带宽中为所
述第一路径分配带宽。
[0020] 根据本实施方式的带宽调度方法及装置,在路径的路径实际可占用带宽不能满足路径的需求占用带宽时,根据加载的路径的路径属性为路径分配带宽,可以动态缩小备路
径占用带宽,在尽量保证灾备效果的情况下,提高带宽的利用率,使得网络能承载更多的数
据流业务。

附图说明

[0021] 图1示出根据本发明一实施例的带宽调度方法的流程图。
[0022] 图2示出根据本发明一实施例的带宽调度方法的流程图。
[0023] 图3示出根据本发明一实施例的带宽调度方法的流程图。
[0024] 图4示出根据本发明一示例的步骤S1052的示意图。
[0025] 图5示出根据本发明一实施例的带宽调度方法的流程图。
[0026] 图6示出根据本发明一示例的步骤S1052和步骤S1053的示意图。
[0027] 图7示出根据本发明一实施例的带宽调度方法的流程图。
[0028] 图8示出根据本发明一实施例的带宽调度方法的流程图。
[0029] 图9示出根据本发明一实施例的带宽调度装置的框图。
[0030] 图10示出根据本发明一实施例的带宽调度装置的框图。
[0031] 图11示出根据本发明一实施例的带宽调度装置的框图。

具体实施方式

[0032] 以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除
非特别指出,不必按比例绘制附图。
[0033] 在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
[0034] 另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于
本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
[0035] 为了解决上述技术问题,本发明实施例提供了一种带宽调度方法,根据加载的路径的路径属性为路径分配带宽,并动态调整备路径占用带宽,以此在尽量保证灾备效果的
情况下,提高带宽的利用率,使得网络能承载更多的数据流业务。
[0036] 图1示出根据本发明一实施例的带宽调度方法的流程图。如图1所示,该方法应用于SDN控制器,包括以下步骤:
[0037] 步骤S101,当在网络中加载第一路径时,确定组成第一路径的至少一条链路。
[0038] 当在SDN网络中建立新业务时,SDN控制器为该业务的数据流计算第一路径。在本发明实施例中,所述计算第一路径是指确定出用于传输数据流的节点、节点顺序以及将各
个节点之间的链路构成第一路径的过程。
[0039] SDN控制器将计算出的第一路径加载到SDN网络中,并为第一路径分配带宽。此时,SDN控制器确定组成第一路径的至少一条链路。
[0040] 第一路径可以是指当前网络支持的任何新业务的数据流对应的路径,本发明实施例对此不作限定。
[0041] 在本发明实施例中,路径的带宽指该路径占用组成其自身的链路的链路带宽,在SDN控制器内部,路径在每条链路上的占用带宽是相等的。
[0042] 步骤S102,获取第一路径占用至少一条链路中每条链路的路径实际可占用带宽,路径实际可占用带宽为至少一条链路中每条链路的剩余可分配带宽中的最小值。
[0043] 其中,路径实际可占用带宽是指,该路径组成的链路中每条链路的剩余可分配带宽中的最小值,其中,链路的剩余可分配带宽为该链路的总带宽与该链路组成的所有路径
占用该链路的带宽的差值。
[0044] 因此,当在网络中加载一条新路径时,为了确定路径实际可占用带宽,先确定组成该路径的至少一条链路,以及至少一条链路中每条链路的剩余可分配带宽。
[0045] 如步骤S101所述,SDN控制器确定组成第一路径的至少一条链路,之后SDN控制器获取至少一条链路中每条链路的剩余可分配带宽,然后选择每条链路的剩余可分配带宽的
最小值作为第一路径的路径实际可占用带宽。
[0046] 步骤S103,识别路径实际可占用带宽是否满足第一路径的需求占用带宽。
[0047] 其中,路径的需求占用带宽为用户指定的、该路径在组成其自身的每条链路上的占用带宽。
[0048] SDN控制器在获取第一路径的路径实际可占用带宽后,判断第一路径的路径实际可占用带宽与需求占用带宽的关系:如果第一路径的路径实际可占用带宽能够满足第一路
径的需求占用带宽,则表示组成第一路径的至少一条链路中每条链路的剩余可分配带宽都
能够满足第一路径的需求占用带宽;如果第一路径的路径实际可占用带宽不能满足第一路
径的需求占用带宽,则表示组成第一路径的至少一条链路中至少一条链路的剩余可分配带
宽不能满足第一路径的需求占用带宽。
[0049] 步骤S104,如果路径实际可占用带宽满足需求占用带宽,则从至少一条链路中每条链路的剩余可分配带宽中为第一路径分配第一路径的实际可占用带宽。
[0050] 如上,如果第一路径的路径实际可占用带宽能够满足第一路径的需求占用带宽,表示组成第一路径的至少一条链路中每条链路的剩余可分配带宽都能够满足第一路径的
需求占用带宽,则SDN控制器从至少一条链路中每条链路的剩余可分配带宽中为所述第一
路径分配所述第一路径的实际可占用带宽。
[0051] 可选的,SDN控制器还将第一路径的带宽状态标记为第一状态,即标记为严格状态,也就是为第一路径分配的带宽能够满足第一路径的需求占用带宽。
[0052] 进一步地,SDN控制器更新至少一条链路中每条链路的剩余可分配带宽。例如,SDN控制器将至少一条链路中每条链路分配之前的剩余可分配带宽与第一路径的路径实际可
占用带宽的差值作为更新后链路的剩余可分配带宽。
[0053] 根据第一路径的路径属性,SDN控制器更新至少一条链路中每条链路所组成的路径的占用总带宽。在本发明实施例中,至少一条链路中每条链路可能用于组成某一路径的
主路径或者备路径。也就是说,至少一条链路中每条链路可能是某一路径的主路径或者备
路径中的部分链路。
[0054] 在一个例子中,如果第一路径为主路径,SDN控制器将分配之前至少一条链路中每条链路组成的主路径的占用总带宽与第一路径的路径实际可占用带宽的和作为更新后每
条链路组成的主路径的占用总带宽;如果第一路径为备路径,将分配之前至少一条链路中
每条链路组成的备路径的占用总带宽与第一路径的路径实际可占用带宽的和作为更新后
每条链路组成的备路径的占用总带宽。
[0055] 步骤S105,如果路径实际可占用带宽未满足需求占用带宽,则根据第一路径的路径属性,从至少一条链路中每条链路的剩余可分配带宽中为第一路径分配带宽。
[0056] 如上,如果第一路径的路径实际可占用带宽不能满足第一路径的需求占用带宽,表示组成第一路径的至少一条链路中的至少一条链路的剩余可分配带宽不能满足第一路
径的需求占用带宽,也就是组成第一路径的至少一条链路中的部分链路的剩余可分配带宽
小于第一路径的需求占用带宽,如果按照目前第一路径的路径实际可占用带宽为第一路径
分配带宽,不能满足第一路径的需求。
[0057] 这种情况下,SDN控制器确定第一路径的路径属性,根据路径属性为第一路径分配带宽,路径属性表示第一路径的主备属性。
[0058] 如果第一路径为备路径,SDN控制器从至少一条链路中每条链路的剩余可分配带宽中为第一路径分配第一路径的实际可占用带宽。SDN控制器将第一路径的带宽状态标记
为第二状态,即标记为勉强状态,也就是为第一路径分配的带宽未能够满足第一路径的需
求占用带宽,动态的缩小备路径的占用带宽。
[0059] 可选的,SDN控制器还更新至少一条链路中每条链路的剩余可分配带宽,以及至少一条链路中每条链路组成的备路径的占用总带宽。例如,SDN控制器将至少一条链路中每条
链路分配之前的剩余可分配带宽与第一路径的路径实际可占用带宽的差值作为更新后的
剩余可分配带宽。SDN控制器将分配之前至少一条链路中每条链路组成的备路径的占用总
带宽与第一路径的路径实际可占用带宽的和作为更新后每条链路组成的备路径的占用总
带宽。
[0060] 如果第一路径为主路径,可以先释放组成第一路径的至少一条链路中,剩余可分配带宽不能满足第一路径的需求占用带宽的链路所组成的部分或全部备路径的占用带宽
(动态缩小备路径的带宽),使得链路的剩余可分配带宽满足需求占用带宽,然后,SDN控制
器再为第一路径分配带宽。具体方式本实施方式中不作限定。其中,释放路径的占用带宽是
指在路径所经过的链路上,将该路径的占用带宽设为0。
[0061] 根据本实施方式的带宽调度方法,在路径的路径实际可占用带宽不能满足路径的需求占用带宽时,根据加载的路径的路径属性为路径分配带宽,可以动态缩小备路径占用
带宽,在尽量保证灾备效果的情况下,提高带宽的利用率,使得网络能承载更多的数据流业
务。
[0062] 图2示出根据本发明一实施例的带宽调度方法的流程图。如图2所示,图1中的步骤S105具体包括:
[0063] 步骤S1051,若第一路径为主路径,则确定至少一条链路中的、剩余可分配带宽未满足需求占用带宽的至少一条第一链路。
[0064] 为了满足主路径的带宽需求,SDN控制器释放至少一条链路中的、剩余可分配带宽未满足第一路径的需求占用带宽的第一链路组成的备路径的占用带宽。
[0065] 具体地,SDN控制器可以逐一比较至少一条链路中每条链路的剩余可分配带宽与第一路径的需求占用带宽的关系,以此可以确定至少一条链路中的、剩余可分配带宽未满
足第一路径的需求占用带宽的至少一条第一链路。
[0066] 步骤S1052,释放至少一条第一链路中每条第一链路组成的备路径占用每条第一链路的带宽,并更新每条第一链路的剩余可分配带宽。
[0067] 在一个示例中,具体地,针对至少一条第一链路中的每条第一链路:若第一链路用于组成备路径,则SDN控制器释放第一链路组成的全部备路径中的一条备路径占用第一链
路的占用带宽。SDN控制器根据释放的占用带宽更新第一链路的剩余可分配带宽。例如,SDN
控制器将未释放备路径占用带宽的第一链路的剩余可分配带宽与释放的占用带宽的和设
置为第一链路的更新后的剩余可分配带宽。
[0068] 若第一链路的更新后的剩余可分配带宽满足需求占用带宽,或者,第一链路未存在可释放带宽的备路径,则SDN控制器停止释放第一链路组成的备路径占用第一链路的占
用带宽;若第一链路的更新后的剩余可分配带宽不能满足所述需求占用带宽,且,第一链路
仍然存在可释放带宽的备路径,则SDN控制器继续释放第一链路组成的备路径占用第一链
路的占用带宽。
[0069] 可选的,SDN控制器还可以每次释放第一链路组成的全部备路径中的多条备路径占用第一链路的占用带宽,本发明实施例对释放备路径占用第一链路的占用带宽的方式不
作限定,以上方式仅仅是本发明实施例的示例。
[0070] 这样,针对至少一条第一链路中的每条第一链路,都可以通过动态缩小备路径的占用带宽,获得每条第一链路的最大剩余可分配带宽(即停止释放第一链路组成的备路径
占用第一链路的占用带宽后、第一链路的更新后的剩余可分配带宽),以满足主路径的带宽
需求。
[0071] 步骤S1053,根据至少一条第一链路中每条第一链路的更新后的剩余可分配带宽,更新第一路径占用所述至少一条链路中每条链路的路径实际可占用带宽。
[0072] 如上所述,针对至少一条第一链路中的每条第一链路,SDN控制器完成步骤S1052释放备路径的占用带宽的过程后,还可以获得每条第一链路的更新后的剩余可分配带宽。
SDN控制器根据每条第一链路的更新后的剩余可分配带宽重新确定最小值,并根据每条第
一链路的更新后的剩余可分配带宽的最小值更新第一路径占用至少一条链路中每条链路
的路径实际可占用带宽,也就是将每条第一链路的更新后的剩余可分配带宽的最小值确定
为第一路径占用至少一条链路中每条链路的路径实际可占用带宽。
[0073] 步骤S1054,从至少一条链路中每条链路的更新后的剩余可分配带宽中为第一路径分配第一路径的更新后的路径实际可占用带宽。
[0074] SDN控制器在确定了第一路径的更新后的路径实际可占用带宽后,从组成第一路径的至少一条链路中每条链路的更新后的剩余可分配带宽中为第一路径分配第一路径的
更新后的路径实际可占用带宽。
[0075] 也就是说,对于组成第一路径的至少一条链路:SDN控制器从每条第一链路的更新后的剩余可分配带宽中为第一路径分配第一路径的更新后的路径实际可占用带宽。SDN控
制器从至少一条链路中的、第一链路以外的链路的剩余可分配带宽中为第一路径分配第一
路径的更新后的路径实际可占用带宽。
[0076] SDN控制器通过释放剩余可分配带宽未满足第一路径的需求占用带宽的第一链路的备路径的占用带宽,并更新每条第一链路的剩余可分配带宽。SDN控制器根据每条第一链
路的更新后的剩余可分配带宽更新第一路径的路径实际可占用带宽,然后为第一路径分配
第一路径的更新后的路径实际可占用带宽。根据本发明实施例的带宽调度方法,SDN控制器
可以通过动态调整备路径的占用带宽,提高加载的路径的路径实际可占用带宽,尽量保证
主路径上数据流的传输,在尽量保证灾备效果的情况下,提高带宽的利用率,使得网络能承
载更多的数据流业务。
[0077] 图3示出根据本发明一实施例的带宽调度方法的流程图。如图3所示,图2中的步骤S1052包括:
[0078] 步骤S10521,若第一链路存在可释放占用带宽的备路径,则依次释放第一链路组成的备路径中优先级最低的备路径占用第一链路的第一占用带宽。
[0079] 其中,第一链路存在可释放占用带宽的备路径是指,第一链路组成的备路径中存在备路径未被释放占用带宽。
[0080] 在本发明实施例中,将数据流的服务质量分为8个优先级,并可以根据数据流的属性或者用户的指定为数据流指定一个优先级。在SDN控制器中,根据数据流的优先级为数据
流的路径分配优先级。其中,为主路径分配的优先级为1‑8,为备路径分配的优先级为9‑16,
数值越小,优先级越高。
[0081] 例如,若用户指定的数据流的优先级为p,那么为数据流计算的主路径的优先级为p,备路径的优先级为p+8。
[0082] 在本发明实施例中,根据第一链路组成的备路径的优先级释放备路径的占用带宽,SDN控制器先释放优先级低的备路径的占用带宽,再释放优先级高的备路径的占用带
宽,以尽量满足优先级高的数据流的带宽需求。
[0083] 在一个示例中,根据第一链路组成的备路径的优先级,SDN控制器对备路径进行排序,以便于根据优先级释放备路径的占用带宽。排序的顺序可以由低到高,或者,由高到低,
本发明实施例对此不作限定。
[0084] 步骤S10522,每次根据释放的所述第一占用带宽更新所述第一链路的剩余可分配带宽。
[0085] 也就是说,SDN控制器在每次释放完第一链路组成的备路径中的一条优先级最低的备路径占用第一链路的第一占用带宽后,根据第一占用带宽更新第一链路的剩余可分配
带宽。例如,将未释放备路径占用带宽的第一链路的剩余可分配带宽与第一占用带宽的和
作为第一链路的更新后的剩余可分配带宽。
[0086] 步骤S10523,若第一链路的更新后的剩余可分配带宽满足所述需求占用带宽,或者,所述第一链路未存在可释放带宽的备路径,则停止释放所述第一链路组成的备路径占
用所述第一链路的第一占用带宽。
[0087] 如上所述,SDN控制器在每次更新完第一链路的剩余可分配带宽后,判断第一链路的更新后的剩余可分配带宽是否满足第一路径的需求占用带宽。如果满足,则SDN控制器停
止释放第一链路组成的备路径占用第一链路的第一占用带宽;如果不满足,SDN控制器继续
判断第一链路是否还存在可释放带宽的备路径,如果存在,则继续释放第一链路组成的备
路径中优先级最低的备路径占用第一链路的第一占用带宽,如果不存在,则停止释放第一
链路组成的备路径占用第一链路的第一占用带宽。
[0088] 通过图3、图4所示示例,可以实现第一路径的实际可占用带宽的更新,提高第一路径的更新后的路径实际可占用带宽,SDN控制器根据第一路径的更新后的路径实际可占用
带宽为第一路径分配带宽,动态缩小备路径占用带宽,能够在尽量保证灾备效果的情况下,
提高带宽的利用率,使得网络能承载更多的数据流业务。
[0089] 图4示出根据本发明一示例的步骤S1052的示意图,在本实施例中,假设确定至少一条链路中的、剩余可分配带宽未满足需求占用带宽的第一链路有m条,分别为L1、L2…Lm。
针对m条第一链路中的每条第一链路,以第一链路L1为例,如图4所示:
[0090] SDN控制器判断L1组成的备路径中是否存在可释放占用带宽的备路径。如果是,SDN控制器选择L1组成的备路径中优先级最低的备路径,并释放优先级最低的备路径占用
L1的第一占用带宽。SDN控制器根据释放的第一占用带宽更新L1的剩余可分配带宽;SDN控
制器判断L1的更新后的剩余可分配带宽是否满足第一路径的需求占用带宽,如果满足,则
停止释放L1组成的备路径占用L1的第一占用带宽;如果不满足,继续判断L1组成的备路径
中是否还存在可释放带宽的备路径,如果存在,则SDN控制器继续释放L1组成的备路径中优
先级最低的备路径占用L1的第一占用带宽,如果不存在,则停止释放L1组成的备路径占用
L1的第一占用带宽。
[0091] 在第一链路L1完成上述过程后,也即停止释放L1组成的备路径占用L1的第一占用带宽后,对第一链路L2…Lm都进行如图4所示的过程。
[0092] 之后,SDN控制器将L1、L2…Lm的更新后的剩余可分配带宽的最小值确定为第一路径占用至少一条链路中每条链路的路径实际可占用带宽。比如说,L1、L2…Lm的更新后的剩
余可分配带宽的最小值为L2的更新后的剩余可分配带宽,则将L2的更新后的剩余可分配带
宽作为第一路径的更新后的路径实际可占用带宽。
[0093] 图5示出根据本发明一实施例的带宽调度方法的流程图。如图5所示,图2中的步骤S1052、S1053包括:
[0094] 步骤S10531,在至少一条第一链路中存在未释放过备路径的占用带宽的链路的情况下,选择至少一条第一链路中的、未释放过备路径的占用带宽的一条链路作为当前第一
链路。
[0095] 步骤S10532,若当前第一链路存在可释放带宽的备路径,则依次释放当前第一链路组成的备路径中优先级最低的备路径占用当前第一链路的第二占用带宽,并每次根据该
次释放的第二占用带宽,更新当前第一链路的剩余可分配带宽,直至当前第一链路的更新
后的剩余可分配带宽满足需求占用带宽,或者,当前第一链路未存在可释放带宽的备路径。
[0096] 步骤S10533,当当前第一链路的更新后的剩余可分配带宽未满足需求占用带宽,且当前第一链路未存在可释放带宽的备路径时,根据当前第一链路的更新后的剩余可分配
带宽更新第一路径的路径实际可占用带宽。
[0097] 在前述图4所示的示例中,针对至少一条第一链路中的每条第一链路都进行如图4所示的过程之后,SDN控制器将至少一条第一链路中的每条第一链路的更新后的剩余可分
配带宽的最小值确定为第一路径占用至少一条链路中每条链路的路径实际可占用带宽。
[0098] 与图3、图4所示示例不同。在图5所示的示例中,针对至少一条第一链路中的每条第一链路,可以先任意选择一条第一链路作为当前第一链路,先释放当前第一链路组成的
备路径占用当前第一链路的占用带宽并更新当前第一链路的剩余可分配带宽,直到当前第
一链路的更新后的剩余可分配带宽满足需求占用带宽,或者,当前第一链路未存在可释放
带宽的备路径。
[0099] 然后,判断当前第一链路的更新后的剩余可分配带宽是否满足需求占用带宽,以及当前第一链路是否存在可释放带宽的备路径,若当前第一链路的更新后的剩余可分配带
宽未满足需求占用带宽,且当前第一链路未存在可释放带宽的备路径时,根据当前第一链
路的更新后的剩余可分配带宽更新第一路径的路径实际可占用带宽;若当前第一链路的更
新后的剩余可分配带宽满足需求占用带宽,或者当前第一链路仍然存在可释放带宽的备路
径时,则当前第一链路的剩余可分配带宽肯定不小于至少一条第一链路中每条链路的剩余
可分配带宽的最小值,不需要根据当前第一链路的更新后的剩余可分配带宽更新第一路径
的路径实际可占用带宽。
[0100] 再判断在至少一条第一链路中是否存在未释放过备路径的占用带宽的链路,如果存在,再任意选择至少一条第一链路中的、未释放过备路径的占用带宽的一条链路作为当
前第一链路,继续以上过程,直到至少一条第一链路中不存在未释放过备路径的占用带宽
的链路。以下通过图6更详细、清楚的说明图5所示的方法。
[0101] 图6示出根据本发明一示例的步骤S1052和步骤S1053的示意图。在本实施例中,假设确定至少一条链路中的、剩余可分配带宽未满足需求占用带宽的第一链路有m条,分别为
L1、L2…Lm。如图6所示,SDN控制器先判断L1、L2…Lm中是否存在未释放过备路径的占用带
宽的链路,此时L1、L2…Lm都未释放过备路径的占用带宽。如果存在,SDN控制器选择L1、
L2…Lm中的、未释放过备路径的占用带宽的一条链路作为当前第一链路。
[0102] 以当前第一链路为L1为例,SDN控制器判断L1组成的备路径中是否存在可释放占用带宽的备路径。如果是,SDN控制器选择L1组成的备路径中优先级最低的备路径,并释放
优先级最低的备路径占用L1的第一占用带宽。SDN控制器根据释放的第一占用带宽更新L1
的剩余可分配带宽;SDN控制器判断L1的更新后的剩余可分配带宽是否满足第一路径的需
求占用带宽。如果满足,则SDN控制器停止释放L1组成的备路径占用L1的第一占用带宽;如
果不满足,继续判断L1组成的备路径中是否还存在可释放带宽的备路径,如果存在,则SDN
控制器继续释放L1组成的备路径中优先级最低的备路径占用L1的第一占用带宽,如果不存
在,则停止释放L1组成的备路径占用L1的第一占用带宽。
[0103] 在第一链路L1完成上述过程后,也即停止释放L1组成的备路径占用L1的第一占用带宽后,若L1的更新后的剩余可分配带宽未满足第一路径的需求占用带宽,而且L1也不存
在可释放带宽的备路径时,SDN控制器根据L1的更新后的剩余可分配带宽更新第一路径的
路径实际可占用带宽。也就是说,SDN控制器将L1的更新后的剩余可分配带宽作为第一路径
的更新后的路径实际可占用带宽。需要说明的是,在第一链路L1完成上述过程后,若L1的更
新后的剩余可分配带宽满足第一路径的需求占用带宽,则SDN控制器不对第一路径的实际
可占用带宽进行更新。
[0104] 在更新完第一路径的实际可占用带宽后,判断L1、L2…Lm中是否存在未释放过备路径的占用带宽的链路,此时L1、L2…Lm中L1释放过备路径的占用带宽、L2…Lm未释放过备
路径的占用带宽,则存在,选择L2…Lm中的、未释放过备路径的占用带宽的一条链路作为当
前第一链路,以当前第一链路为L2为例,继续执行图6所示的过程,直到L1、L2…Lm中不存在
未释放过备路径的占用带宽的链路,也就是L1、L2…Lm都释放过备路径的占用带宽。
[0105] 通过图5、图6所示示例,可以实现第一路径的实际可占用带宽的更新,提高第一路径的更新后的路径实际可占用带宽,SDN控制器根据第一路径的更新后的路径实际可占用
带宽为第一路径分配带宽,动态缩小备路径占用带宽,能够在尽量保证灾备效果的情况下,
提高带宽的利用率,使得网络能承载更多的数据流业务。
[0106] 图7示出根据本发明一实施例的带宽调度方法的流程图。如图7所示,所述步骤S105还包括:
[0107] 步骤S1055,识别第一路径的更新后的路径实际可占用带宽是否满足第一路径的需求占用带宽。
[0108] 根据图4及图6两个示例可知,在释放完至少一条第一链路中每条第一链路的备路径的占用带宽后,每条第一链路的更新后的剩余可分配带宽的最小值可能满足第一路径的
需求占用带宽,也可能不满足第一路径的需求占用带宽,也就是说第一路径的更新后的路
径实际可占用带宽可能满足第一路径的需求占用带宽,也可能不满足第一路径的需求占用
带宽。因此,SDN控制器要判断第一路径的更新后的路径实际可占用带宽与第一路径的需求
占用带宽的关系,以标记第一路径的状态。
[0109] 步骤S1056,如果第一路径的更新后的路径实际可占用带宽满足第一路径的需求占用带宽,则将第一路径的带宽状态标记为第一状态。
[0110] 也就是说,SDN控制器为第一路径分配的带宽能够满足第一路径的需求占用带宽,并将第一路径的带宽状态标记为第一状态,即标记为严格状态。
[0111] 步骤S1057,如果第一路径的更新后的路径实际可占用带宽未满足第一路径的需求占用带宽,则将第一路径的带宽状态标记为第二状态。
[0112] 也就是说,SDN控制器为第一路径分配的带宽不能满足第一路径的需求占用带宽,并将第一路径的带宽状态标记为第二状态,即标记为勉强状态。
[0113] 步骤S1058,更新至少一条链路中每条链路组成的主路径的占用总带宽,并再次对至少一条链路中每条链路的更新后的剩余可分配带宽进行更新。
[0114] SDN控制器将至少一条链路中每条链路的更新后的剩余可分配带宽中的部分或全部分配给了第一路径。也就是说至少一条链路中每条链路组成的主路径增加了第一路径,
那么SDN控制器可以更新至少一条链路中每条链路组成的主路径的占用总带宽。例如,SDN
控制器可以将分配前至少一条链路中每条链路组成的主路径的占用总带宽与第一路径的
实际可占用带宽的和作为至少一条链路中每条链路组成的主路径的更新后的占用总带宽。
[0115] SDN控制器将至少一条链路中每条链路的更新后的剩余可分配带宽中的部分或全部分配给了第一路径。SDN控制器还可以再次更新至少一条链路中每条链路的更新后的剩
余可分配带宽。例如,SDN控制器将每条链路的更新后的剩余可分配带宽与第一路径的实际
可占用带宽的差作为每条链路的再次更新后的剩余可分配带宽。
[0116] 通过根据为第一路径分配的带宽的情况,标记第一路径的带宽状态,可以在网络中的链路存在多余的剩余可分配带宽时,优先选择带宽状态满足一定条件的路径为其分配
带宽。根据本发明实施例的带宽调度方法,可以提高带宽的利用率,使得网络能承载更多的
数据流业务。
[0117] 图8示出根据本发明一实施例的带宽调度方法的流程图。如图8所示,所述方法还包括:
[0118] 步骤S201,当在网络中移除第二路径时,确定第二路径的路径属性,并释放第二路径的第三占用带宽。
[0119] 当业务对应的数据流传输完成时,SDN控制器可以将网络中与该数据流对应的路径移除,或者如上所述,由于带宽调度的需要、路径故障等情况需要将路径从网络中移除,
释放路径的占用带宽。
[0120] 作为一个示例,第二路径可以是指对应的数据流传输完成的任意路径,本发明实施例对此不作限定。在释放第二路径的占用带宽之前,SDN控制器先确定第二路径的路径属
性,以便于后续分配带宽时,确定分配带宽的路径。
[0121] 针对组成第二路径的每条链路,SDN控制器释放第二路径的第三占用带宽。如前文所述,第二路径在其经过的每条链路上的占用带宽是相等的,因此,第三占用带宽也可以是
指第二路径在当前链路占用的带宽。
[0122] 步骤S202,根据释放的第三占用带宽,更新组成第二路径的当前链路的剩余可分配带宽。
[0123] 举例来说,针对组成第二路径的每条链路,SDN控制器将第三占用带宽和当前链路的剩余可分配带宽的和作为更新后当前链路的剩余可分配带宽。
[0124] 步骤S203,根据第二路径的路径属性,从当前链路组成的全部路径中,选择具有第二状态的第三路径。
[0125] 在一个示例中,在路径属性表征第二路径为主路径时,SDN控制器从当前链路组成的全部路径中,选择具有第二状态,且优先级低于第二路径的优先级的第三路径。
[0126] 在步骤S201中,SDN控制器确定了第二路径的路径属性。如果确定的路径属性表征第二路径为主路径,那么,SDN控制器可以为当前链路组成的全部路径中的带宽状态为勉
强、且优先级低于第二路径的路径(第三路径)分配带宽。
[0127] 由于带宽状态为勉强的路径在之前的分配过程中没有满足其需要占用的带宽。因此,当具有剩余可分配带宽时,SDN控制器可以优先考虑这些路径;另外,为了保证数据流的
正常传输,应尽量保证主路径的带宽。
[0128] 所以,本发明实施例中,SDN控制器从当前链路组成的全部路径中选择带宽状态为勉强且优先级低于第二路径的优先级的第三路径,从更新后的当前链路的剩余可分配带宽
中为第三路径分配带宽,保证主路径数据流传输的同时,动态调整备路径的带宽。
[0129] 在另一个示例中,在路径属性表征所述第二路径为备路径时,SDN控制器从当前链路组成的全部路径中,选择具有第二状态的第三路径。
[0130] 在步骤S201中,SDN控制器确定了第二路径的路径属性。如果确定的路径属性表征第二路径为备路径,那么,SDN控制器可以为当前链路组成的全部路径中的带宽状态为勉强
的路径分配带宽。
[0131] 步骤S204,当当前链路的更新后的剩余可分配带宽大于0时,从剩余可分配带宽中,依次为第三路径中优先级最高的路径分配带宽,并再次对更新后的剩余可分配带宽进
行更新。
[0132] SDN控制器在步骤S201、S202中释放了第二路径的第三占用带宽,并更新了当前链路的剩余可分配带宽。如果当前链路的更新后的剩余可分配带宽大于0,表示可以为当前链
路组成的其他路径分配带宽。在本发明实施例中,SDN控制器优先为上述第三路径分配带
宽。
[0133] 具体地,可以根据第三路径的优先级,SDN控制器对第三路径进行排序。根据排序结果,按照优先级由高到低依次从剩余可分配带宽中,SDN控制器为第三路径(其中优先级
最高的一条)分配带宽,具体分配的带宽数量可以根据第三路径需求的带宽、第三路径目前
占用当前链路的带宽以及当前链路的剩余可分配带宽确定。
[0134] 进一步地,SDN控制器为第三路径分配带宽后,第三路径的占用带宽为min(第三路径已占用的带宽+剩余可分配带宽,min(第三路径在其他链路上的路径实际可占用带宽)),
也就是第三路径在其经过的每条链路的剩余可分配带宽的最小值。
[0135] SDN控制器在为第三路径中优先级最高的一条路径分配完带宽后,再次对当前链路的更新后的剩余可分配带宽进行更新,更新的具体数值可以根据为第三路径分配的带宽
确定。
[0136] 步骤S205,当再次更新后的剩余可分配带宽大于0时,重复执行从剩余可分配带宽中,依次为第三路径中优先级最高的路径分配带宽,并再次对更新后的剩余可分配带宽进
行更新的过程,直至当前链路的再次更新后的剩余可分配带宽为0,或者,当前链路组成的
全部路径中,未存在第三路径。
[0137] 如果分配一次之后,当前链路的剩余可分配带宽仍然大于0,也就是如上所述的当再次更新后的所述剩余可分配带宽大于0时,SDN控制器重复执行分配的过程,直到当前链
路的剩余可分配带宽全部分配给当前链路组成的第三路径,也就是直至当前链路的再次更
新后的剩余可分配带宽为0,或者,当前链路组成的全部路径中不存在带宽状态为勉强、且
优先级低于第三路径的路径时,SDN控制器停止执行带宽分配的过程。
[0138] 根据本发明实施例的带宽调度方法,可以尽量保证主路径上数据流的传输,并且动态调整备路径的占用带宽,在尽量保证灾备效果的情况下,提高带宽的利用率,使得网络
能承载更多的数据流业务。
[0139] 可选地,在一种可能的实现方式中,所述方法还可以包括路径的需求占用带宽扩大后,为该路径分配占用带宽的步骤,通过该步骤可以提高带宽的利用率。具体可以包括以
下步骤:
[0140] 当探测到第一路径的需求占用带宽扩大,且需求占用带宽的扩大值不超过至少一条链路中每条链路的链路剩余可分配带宽中的最小值时,则SDN控制器从至少一条链路中
每条链路的剩余可分配带宽中为第一路径分配需求占用带宽的扩大值对应的带宽。
[0141] 当探测到第一路径的需求占用带宽扩大,且需求占用带宽的扩大值超过至少一条链路中每条链路的链路剩余可分配带宽中的最小值时,则SDN控制器根据第一路径的路径
属性,从至少一条链路中每条链路的剩余可分配带宽中为第一路径分配带宽。
[0142] 其中,第一路径可以是指图1所述方法中已经分配带宽后的第一路径,也可以是指网络中的任一路径,本发明实施例对此不作限定,本实施方式中以图1所述方法中已经分配
带宽后的第一路径为例进行说明。
[0143] 可以通过相关软件探测路径的需求占用带宽的变化,以第一路径为例,若探测到第一路径的需求占用带宽扩大,SDN控制器可以确定需求占用带宽的扩大值,然后判断需求
占用带宽的扩大值与至少一条链路中每条链路的链路剩余可分配带宽中的最小值之间的
大小关系。第一路径的需求占用带宽扩大后,SDN控制器为第一路径分配带宽的具体过程可
参考在网络加载第一路径的过程,具体描述如下:
[0144] 若需求占用带宽的扩大值不超过(小于或等于)至少一条链路中每条链路的剩余可分配带宽中的最小值,则SDN控制器根据步骤S104部分所述的方式为第一路径分配带宽
即可,不再赘述。
[0145] 若需求占用带宽的扩大值超过(大于)至少一条链路中每条链路的剩余可分配带宽中的最小值,则SDN控制器根据第一路径的路径属性,从至少一条链路中每条链路的剩余
可分配带宽中为第一路径分配带宽。
[0146] 具体地,若第一路径为备路径,则SDN控制器从至少一条链路中每条链路的剩余可分配带宽中为第一路径分配至少一条链路中每条链路的剩余可分配带宽中的最小值对应
的带宽。
[0147] 若第一路径为主路径,则SDN控制器确定所述至少一条链路中的、剩余可分配带宽未满足需求占用带宽的扩大值的至少一条第二链路。
[0148] 具体地,可以逐一比较至少一条链路中每条链路的剩余可分配带宽与需求占用带宽的扩大值的关系,以此可以确定至少一条链路中的、剩余可分配带宽未满足需求占用带
宽的扩大值的至少一条第二链路。
[0149] SDN控制器释放至少一条第二链路中每条第二链路组成的第四路径占用每条第二链路的带宽,并更新每条第二链路的剩余可分配带宽,其中,第四路径的优先级低于第一路
径的优先级。
[0150] SDN控制器根据至少一条第二链路中每条第二链路的更新后的剩余可分配带宽更新至少一条链路中每条链路的剩余可分配带宽中的最小值。
[0151] 以上过程可参见步骤S10521、S10522和S10523,或者步骤S10531、S10532和S10533部分的描述,不再赘述。区别仅在于:将第一链路替换为第二链路,备路径替换为第四路径,
将第一路径的路径实际可占用带宽替换为至少一条链路中每条链路的剩余可分配带宽中
的最小值。
[0152] SDN控制器从至少一条链路中每条链路的更新后的剩余可分配带宽中为第一路径分配至少一条链路中每条链路的剩余可分配带宽中的最小值对应的带宽。
[0153] 在更新了至少一条链路中每条链路的剩余可分配带宽中的最小值之后,SDN控制器从组成第一路径的至少一条链路中每条链路的更新后的剩余可分配带宽中为第一路径
分配至少一条链路中每条链路的剩余可分配带宽中的最小值对应的带宽,并再次对至少一
条链路中每条链路的更新后的剩余可分配带宽进行更新。
[0154] 可选的,如果至少一条链路中每条链路的再次更新后的剩余可分配带宽仍然大于0,SDN控制器可以选择扩大最后释放带宽的第四路径的占用带宽,扩大后的第四路径的最
大占用带宽为min(该第四路径已占用的带宽+剩余可分配带宽,min(该第四路径在其他链
路上的路径实际可占用带宽)),也就是该第四路径在其经过的每条链路的剩余可分配带宽
的最小值。其他过程不再赘述。
[0155] 可选地,在一种可能的实现方式中,所述方法还可以包括路径的需求占用带宽缩小后,为其他路径分配占用带宽的步骤,通过该步骤可以提高带宽的利用率。具体可以包括
以下步骤:
[0156] 当探测到第一路径的需求占用带宽缩小时,SDN控制器释放第一路径的需求占用带宽的缩小值对应的带宽。
[0157] SDN控制器根据释放的缩小值对应的带宽(第一路径的原需求占用带宽和现在需求占用带宽之差),更新组成第一路径的当前链路的剩余可分配带宽。
[0158] SDN控制器从当前链路组成的全部路径中选择具有第二状态的第五路径。
[0159] 当当前链路的更新后的剩余可分配带宽大于0时,SDN控制器从剩余可分配带宽中,依次为第五路径中优先级最高的路径分配带宽,并再次对更新后的剩余可分配带宽进
行更新。
[0160] 当再次更新后的剩余可分配带宽大于0时,SDN控制器重复执行从剩余可分配带宽中,依次为第五路径中优先级最高的路径分配带宽,并再次对更新后的所述剩余可分配带
宽进行更新的过程,直至当前链路的剩余可分配带宽为0,或者所述当前链路组成的全部路
径中,未存在第五路径。
[0161] SDN控制器可以通过相关软件探测路径的需求占用带宽的变化,以第一路径为例,若探测到第一路径的需求占用带宽缩小,SDN控制器可以确定需求占用带宽的缩小值,针对
组成第一路径的至少一条链路中的每一条链路执行如下过程:释放第一路径的需求占用带
宽的缩小值对应的带宽,将释放前当前链路的剩余可分配带宽与缩小值对应的带宽的和作
为当前链路的更新后的剩余可分配带宽;判断当前链路组成的全部路径中是否存具有第二
状态的第五路径,若存在,根据第五路径的优先级,对第五路径进行排序,具体过程可以参
见步骤S204‑S205部分的描述,不再赘述,区别仅在于:为第五路径分配带宽后,第五路径的
占用带宽为min(第五路径已占用的带宽+剩余可分配带宽,min(第五路径在其他链路上的
路径实际可占用带宽)),也就是第五路径在其经过的每条链路的剩余可分配带宽的最小
值。其他过程不再赘述。
[0162] 可选地,在一种可能的实现方式中,所述方法还可以包括链路的带宽变大后,为该链路组成的路径分配占用带宽的步骤,通过该步骤可以提高带宽的利用率。具体可以包括
以下步骤:
[0163] 当探测到第三链路的带宽变大时,SDN控制器确定第三链路的带宽增量。
[0164] 第三链路可以是网络中的任何一个链路,本发明实施例对此不作限定。
[0165] 链路的带宽一般是指链路上每秒所能传送的比特数,取决于链路时钟速率和信道编码。可以通过相关技术探测网络中每一条链路的带宽变化,当探测到链路的带宽变化时,
需要根据链路的带宽变化调整链路所组成的路径的占用带宽。
[0166] 举例来说,如上所述,当探测到第三链路的带宽变大时,SDN控制器确定第三链路的带宽增量,以为第三链路组成的路径分配带宽。
[0167] SDN控制器根据第三链路的带宽增量,更新第三链路的剩余可分配带宽。
[0168] 例如,SDN控制器将第三链路的带宽增量与链路带宽变大之前第三链路的剩余可分配带宽的和作为第三链路的更新后的剩余可分配带宽。
[0169] SDN控制器从第三链路组成的全部路径中选择具有第二状态的第六路径。
[0170] 具体地,SDN控制器判断第三链路组成的全部路径中是否存在具有勉强状态的第六路径,若存在,SDN控制器根据第六路径的优先级对第六路径进行排序,具体过程参见步
骤S10521部分的描述,不再赘述。若不存在,可以结束操作。
[0171] 当第三链路的更新后的剩余可分配带宽大于0时,SDN控制器从剩余可分配带宽中,依次为第六路径中优先级最高的路径分配带宽,并再次对更新后的剩余可分配带宽进
行更新。
[0172] 当再次更新后的剩余可分配带宽大于0时,SDN控制器重复执行从剩余可分配带宽中,依次为第六路径中优先级最高的路径分配带宽,并再次对更新后的剩余可分配带宽进
行更新的过程,直至第三链路的再次更新后的剩余可分配带宽为0,或者,第三链路组成的
全部路径中,未存在第六路径。
[0173] 以上过程可参见步骤S204‑S205部分的描述(当前链路替换为第三链路、第三路径替换为第六路径),为第六路径分配带宽后,第六路径的占用带宽为min(第六路径已占用的
带宽+剩余可分配带宽,min(第六路径在其他链路上的路径实际可占用带宽)),也就是第六
路径在其经过的每条链路的剩余可分配带宽的最小值。其他过程不再赘述。
[0174] 可选地,在一种可能的实现方式中,所述方法还包括链路的带宽变小后,释放该链路组成的路径的占用带宽的步骤,通过该步骤可以提高带宽的利用率。具体可以包括以下
步骤:
[0175] 当探测到第三链路的带宽变小时,则SDN控制器确定第三链路的带宽缩小量;
[0176] SDN控制器根据第三链路的带宽缩小量,更新第三链路的总带宽。
[0177] 上述过程执行完成后,SDN控制器可以确定第三链路组成的全部路径,并计算第三链路上全部路径的占用带宽,然后根据第三链路的更新后的总带宽判断第三链路上全部路
径的占用带宽是否能够得到满足,根据判断的结果决定是否释放部分路径。
[0178] 若第三链路的更新后的总带宽小于第三链路组成的全部路径的占用带宽,则SDN控制器根据第三链路组成的全部路径的优先级,对全部路径进行排序。具体排序过程参见
上文描述,不再赘述。
[0179] 当第三链路组成的全部路径存在可释放带宽的路径时,SDN控制器根据排序结果,依次释放第三链路组成的全部路径在第三链路上的占用带宽,并更新第三链路组成的全部
路径的占用带宽。
[0180] 具体地,SDN控制器可以按优先级由低到高依次释放优先级最低的路径的占用带宽,并根据释放的优先级最低的路径的占用带宽更新第三链路组成的全部路径的占用带
宽。举例来说,SDN控制器可以将释放前第三链路组成的全部路径的占用带宽与当前释放的
优先级最低的路径的占用带宽的差作为更新后第三链路组成的全部路径的占用带宽。
[0181] 当第三链路组成的全部路径的更新后的占用带宽大于第三链路的更新后的总带宽,SDN控制器重复执行当存在可释放的路径时,根据排序结果,依次释放第三链路组成的
全部路径在第三链路上的占用带宽,并更新第三链路组成的全部路径的占用带宽的过程,
直至第三链路组成的更新后的全部路径的占用带宽不大于第三链路的更新后的总带宽,或
者,第三链路组成的全部路径中未存在可释放带宽的路径。
[0182] 根据判断的结果,若第三链路的更新后的总带宽小于第三链路组成的全部路径的占用带宽,则SDN控制器需要释放第三链路组成的全部路径中的部分路径的占用带宽以满
足第三链路的更新后的总带宽。若第三链路的更新后的总带宽大于第三链路组成的全部路
径的占用带宽或者第三链路组成的全部路径中未存在可释放的路径,则可以结束操作。
[0183] 可选的,上述过程结束后,当第三链路的更新后的总带宽大于第三链路组成的全部路径的更新后的占用带宽,SDN控制器扩大最后一条释放占用第三链路带宽的路径的占
用带宽,扩大该路径的占用带宽后,该路径的占用带宽为min(该路径已占用的带宽+第三链
路的剩余可分配带宽,min(该路径在其他链路上路径实际可占用带宽)),也就是该路径在
其经过的每条链路的剩余可分配带宽的最小值。
[0184] 图9示出根据本发明一实施例的带宽调度装置的框图。如图9所示,该装置应用于SDN控制器,包括:
[0185] 第一确定模块31,用于当在网络中加载第一路径时,确定组成所述第一路径的至少一条链路;
[0186] 获取模块32,用于获取所述第一路径占用所述至少一条链路中每条链路的路径实际可占用带宽,所述路径实际可占用带宽为所述至少一条链路中每条链路的剩余可分配带
宽中的最小值;
[0187] 识别模块33,用于识别所述路径实际可占用带宽是否满足所述第一路径的需求占用带宽;
[0188] 第一分配模块34,用于如果所述路径实际可占用带宽满足所述需求占用带宽,则从所述至少一条链路中每条链路的剩余可分配带宽中为所述第一路径分配所述第一路径
的实际可占用带宽;
[0189] 第二分配模块35,用于如果所述路径实际可占用带宽未满足所述需求占用带宽,则根据所述第一路径的路径属性,从所述至少一条链路中每条链路的剩余可分配带宽中为
所述第一路径分配带宽。
[0190] 根据本实施方式的带宽调度装置,在路径的路径实际可占用带宽不能满足路径的需求占用带宽时,根据加载的路径的路径属性为路径分配带宽,可以动态缩小备路径占用
带宽,在尽量保证灾备效果的情况下,提高带宽的利用率,使得网络能承载更多的数据流业
务。
[0191] 图10示出根据本发明一实施例的带宽调度装置的框图。如图10所示,在一种可能的实现方式中,所述第二分配模块35包括:
[0192] 确定单元351,用于若所述第一路径为主路径,则确定所述至少一条链路中的、剩余可分配带宽未满足所述需求占用带宽的至少一条第一链路;
[0193] 带宽释放单元352,用于释放所述至少一条第一链路中每条第一链路组成的备路径占用每条第一链路的带宽,并更新每条第一链路的剩余可分配带宽;
[0194] 第一更新单元353,用于根据所述至少一条第一链路中每条第一链路的更新后的剩余可分配带宽,更新所述第一路径占用所述至少一条链路中每条链路的路径实际可占用
带宽;
[0195] 第一分配单元354,用于从所述至少一条链路中每条链路的更新后的剩余可分配带宽中为所述第一路径分配所述第一路径的更新后的路径实际可占用带宽。
[0196] 在一种可能的实现方式中,所述带宽释放单元352包括:
[0197] 第一释放子单元3521,用于若所述第一链路存在可释放占用带宽的备路径,则依次释放所述第一链路组成的备路径中优先级最低的备路径占用所述第一链路的第一占用
带宽;
[0198] 第一更新子单元3522,用于每次根据释放的所述第一占用带宽更新所述第一链路的剩余可分配带宽;
[0199] 停止释放子单元3523,用于若第一链路的更新后的剩余可分配带宽满足所述需求占用带宽,或者,所述第一链路未存在可释放带宽的备路径,则停止释放所述第一链路组成
的备路径占用所述第一链路的第一占用带宽。
[0200] 在一种可能的实现方式中,所述带宽释放单元352包括:
[0201] 选择子单元3531,用于在所述至少一条第一链路中存在未释放过备路径的占用带宽的链路的情况下,选择所述至少一条第一链路中的、未释放过备路径的占用带宽的一条
链路作为当前第一链路;
[0202] 第二释放子单元3532,用于若所述当前第一链路存在可释放带宽的备路径,则依次释放所述当前第一链路组成的备路径中优先级最低的备路径占用所述当前第一链路的
第二占用带宽,并每次根据该次释放的所述第二占用带宽,更新所述当前第一链路的剩余
可分配带宽,直至当前第一链路的更新后的剩余可分配带宽满足所述需求占用带宽,或者,
所述当前第一链路未存在可释放带宽的备路径;
[0203] 所述更新单元353包括:
[0204] 第二更新子单元3533,用于当所述当前第一链路的更新后的剩余可分配带宽未满足所述需求占用带宽,且所述当前第一链路未存在可释放带宽的备路径时,根据所述当前
第一链路的更新后的剩余可分配带宽更新所述第一路径的路径实际可占用带宽。
[0205] 在一种可能的实现方式中,所述第二分配模块35还包括:
[0206] 识别单元355,用于识别所述第一路径的更新后的路径实际可占用带宽是否满足所述第一路径的需求占用带宽;
[0207] 第一标记单元356,用于如果所述第一路径的更新后的路径实际可占用带宽满足所述第一路径的需求占用带宽,则将所述第一路径的带宽状态标记为第一状态;
[0208] 第二标记单元357,用于如果所述第一路径的更新后的路径实际可占用带宽未满足所述第一路径的需求占用带宽,则将所述第一路径的带宽状态标记为第二状态;
[0209] 第二更新单元358,用于更新所述至少一条链路中每条链路组成的主路径的占用总带宽,并再次对所述至少一条链路中每条链路的更新后的所述剩余可分配带宽进行更
新。
[0210] 在一种可能的实现方式中,所述第二分配模块35包括:
[0211] 第二分配单元359,用于若所述第一路径为备路径,从所述至少一条链路中每条链路的所述剩余可分配带宽中为所述第一路径分配所述第一路径的路径实际可占用带宽;
[0212] 第二标记单元357还用于将所述第一路径的带宽状态标记为第二状态;
[0213] 第三更新单元360,用于更新所述至少一条链路中每条链路的剩余可分配带宽,以及所述至少一条链路中每条链路组成的备路径的占用总带宽。
[0214] 在一种可能的实现方式中,所述装置还包括:
[0215] 第二确定模块41,用于当在网络中移除第二路径时,确定所述第二路径的路径属性,并释放所述第二路径的第三占用带宽;
[0216] 更新模块42,用于根据释放的所述第三占用带宽,更新组成所述第二路径的当前链路的剩余可分配带宽;
[0217] 选择模块43,用于根据所述第二路径的路径属性,从所述当前链路组成的全部路径中,选择具有所述第二状态的第三路径;
[0218] 第三分配模块44,用于当所述当前链路的更新后的剩余可分配带宽大于0时,从所述剩余可分配带宽中,依次为所述第三路径中优先级最高的路径分配带宽,并再次对更新
后的所述剩余可分配带宽进行更新;
[0219] 停止分配模块45,用于当再次更新后的所述剩余可分配带宽大于0时,重复执行从所述剩余可分配带宽中,依次为所述第三路径中优先级最高的路径分配带宽,并再次对更
新后的所述剩余可分配带宽进行更新的过程,直至所述当前链路的再次更新后的剩余可分
配带宽为0,或者,所述当前链路组成的全部路径中,未存在所述第三路径。
[0220] 在一种可能的实现方式中,所述选择模块43包括以下单元中的一个或多个:
[0221] 第一选择单元431,用于在所述路径属性表征所述第二路径为主路径时,从所述当前链路组成的全部路径中,选择具有所述第二状态,且优先级低于所述第二路径的优先级
的第三路径;
[0222] 第二选择单元432,用于在所述路径属性表征所述第二路径为备路径时,从所述当前链路组成的全部路径中,选择具有所述第二状态的第三路径。
[0223] 图11是根据一示例性实施例示出的一种带宽调度装置900的框图。参照图11,该装置900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机
器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质
902中与带宽调度逻辑对应的机器可执行指令以执行上文所述的带宽调度方法。
[0224] 本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:随
机存取存储器(英文:Radom Access Memory,简称:RAM)、易失存储器、非易失性存储器、闪
存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似
的存储介质,或者它们的组合。
[0225] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技
术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨
在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领
域的其它普通技术人员能理解本文披露的各实施例。