CN108199961B - 一种流量转发控制方法及装置 - Google Patents

一种流量转发控制方法及装置 Download PDF

Info

Publication number
CN108199961B
CN108199961B CN201810045885.5A CN201810045885A CN108199961B CN 108199961 B CN108199961 B CN 108199961B CN 201810045885 A CN201810045885 A CN 201810045885A CN 108199961 B CN108199961 B CN 108199961B
Authority
CN
China
Prior art keywords
preempted
data stream
bandwidth
data
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810045885.5A
Other languages
English (en)
Other versions
CN108199961A (zh
Inventor
李亮
王攀
蒋文栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN201810045885.5A priority Critical patent/CN108199961B/zh
Publication of CN108199961A publication Critical patent/CN108199961A/zh
Application granted granted Critical
Publication of CN108199961B publication Critical patent/CN108199961B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种流量转发控制方法及装置,所述方法包括:若待调度的目标数据流的源节点和目的节点之间不存在剩余可分配带宽大于等于所述目标数据流的带宽的转发路径时,确定所述目标数据流的候选转发路径;确定候选转发路径对应的待抢占的数据流集合;若存在一条候选转发路径,则将对应的待抢占的数据流集合确定为被抢占的数据流集合;若存在多条候选转发路径,则从对应的多个待抢占的数据流集合中选择一个作为被抢占的数据流集合;释放所述被抢占的数据流集合中各数据流,并将所述被抢占的数据流集合对应的候选转发路径确定为所述目标数据流的转发路径。应用本发明可以保证优先级更高的数据流的转发。

Description

一种流量转发控制方法及装置
技术领域
本发明涉及网络通信技术领域,尤其涉及一种流量转发控制方法及装置。
背景技术
SDN(Software Defined Network,软件定义网络)是一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制。SDN控制器是SDN网络中的应用程序,负责SDN网络中的流量控制。
在实际网络中,不同的数据流业务的重要程度可能是不相同的。其中,某些数据流业务的质量需要得到保障,比如语音通话、视频会议、重要数据的传输。同时,某些业务的质量变差也能够被容忍,如在线视频业务等。因此,SDN控制器需要根据数据流业务的重要程度来提供不同级别的数据流业务通信质量的功能,使得重要程度较高的数据流业务优先得被保障。
发明内容
本发明提供一种流量转发控制方法及装置,以实现优先保障重要程度较高的数据流业务。
根据本发明实施例的第一方面,提供一种流量转发控制方法,应用于自定义网络SDN控制器,所述方法包括:
若待调度的目标数据流的源节点和目的节点之间不存在剩余可分配带宽大于等于所述目标数据流的带宽的转发路径时,确定所述目标数据流的候选转发路径;其中,若转发路径上优先级低于所述目标数据流的数据流的总带宽与该转发路径的剩余可分配带宽之和大于等于所述目标数据流的带宽,则转发路径为候选转发路径;
确定候选转发路径对应的待抢占的数据流集合;其中,所述待抢占的数据流集合中各数据流的优先级小于所述目标数据流的优先级,且待抢占的数据流集合中所有数据流的总带宽与该候选转发路径的剩余可分配带宽之和大于等于所述目标数据流的带宽;
若存在一条候选转发路径,则将对应的待抢占的数据流集合确定为被抢占的数据流集合;
若存在多条候选转发路径,则从对应的多个待抢占的数据流集合中选择一个作为被抢占的数据流集合;
释放所述被抢占的数据流集合中各数据流,并将所述被抢占的数据流集合对应的候选转发路径确定为所述目标数据流的转发路径。
根据本发明实施例的第二方面,提供一种流量转发控制装置,应用于自定义网络SDN控制器,所述装置包括:
第一确定单元,用于若待调度的目标数据流的源节点和目的节点之间不存在剩余可分配带宽大于等于所述目标数据流的带宽的转发路径时,确定所述目标数据流的候选转发路径;其中,若转发路径上优先级低于所述目标数据流的数据流的总带宽与该转发路径的剩余可分配带宽之和大于等于所述目标数据流的带宽,则转发路径为候选转发路径;
第二确定单元,用于确定候选转发路径对应的待抢占的数据流集合;其中,所述待抢占的数据流集合中各数据流的优先级小于所述目标数据流的优先级,且待抢占的数据流集合中所有数据流的总带宽与该候选转发路径的剩余可分配带宽之和大于等于所述目标数据流的带宽;
所述第二确定单元,还用于若存在一条候选转发路径,则将对应的待抢占的数据流集合确定为被抢占的数据流集合;若存在多条候选转发路径,则从对应的多个待抢占的数据流集合中选择一个作为被抢占的数据流集合;
控制单元,用于释放所述被抢占的数据流集合中各数据流,并将所述被抢占的数据流集合对应的候选转发路径确定为所述目标数据流的转发路径。
应用本发明实施例,通过在存在待调度的目标数据流,且待调度的目标数据流的源节点和目的节点之间不存在剩余可分配带宽大于等于目标数据流的带宽的转发路径时,确定目标数据流的候选转发路径,并确定候选转发路径对应的待抢占的数据流集合;若存在一条候选转发路径,则将对应的待抢占的数据流集合确定为被抢占的数据流集合;若存在多条候选转发路径,则从对应的多个待抢占的数据流集合中选择一个作为被抢占的数据流集合;进而,释放被抢占的数据流集合中各数据流,并将被抢占的数据流集合对应的候选转发路径确定为目标数据流的转发路径,保证了优先级更高的数据流的转发。
附图说明
图1是本发明实施例提供的一种流量转发控制方法的流程示意图;
图2A是本发明实施例提供的一种具体应用场景的架构示意图;
图2B是图2A所示场景中一种数据流分布示意图;
图2C是图2B所示场景中路径抢占后的数据流分布示意图;
图3是本发明实施例提供的一种流量转发控制装置的结构示意图;
图4是本发明实施例提供的一种流量转发控制装置的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图1,为本发明实施例提供的一种流量转发控制方法的流程示意图,其中,该流量转发控制方法可以应用于SDN控制器,如图1所示,该流量控制方法可以包括:
步骤101、若待调度的目标数据流的源节点和目的节点之间不存在剩余可分配带宽大于等于目标数据流的带宽的转发路径时,确定目标数据流的候选转发路径。
本发明实施例中,待调度的数据流(本文中称为目标数据流)可以包括新加入SDN网络,还未进行路径部署的数据流,或,已进行路径部署,但是转发路径被抢占的数据流。
本发明实施例中,当存在待调度的目标数据流时,SDN控制器可以根据目标数据流的源节点和目的节点信息,查询源节点和目的节点之间存在的各转发路径,并判断其中是否存在剩余可分配带宽大于等于目标数据流的带宽的转发路径。
若不存在,则SDN控制器可以确定需要进行转发路径抢占,此时,SDN控制器可以根据目标数据流的优先级分别确定目标数据流的源节点和目的节点之间的各转发路径上是否存在优先级低于目标数据流的优先级的数据流。
其中,在SDN网络中,使用数据流路径质量服务优先级(本文中简称为优先级)表示数据流业务的重要程度,其中优先级越高,相应的数据流业务越重要。
可选地,可以用一个整数表示优先级,其范围为1-n,通常情况下n小于等于10,数值越大则优先级越高。
为便于描述,下文中若未特殊说明,所提及的源节点和目的节点均指目标数据流的源节点和目的节点,转发路径均指目标数据流的源节点和目的节点之间的转发路径,本发明实施例后续不再复述。
本发明实施例中,对于任一转发路径,当SDN控制器确定该转发路径上存在优先级低于目标数据流的优先级的数据流时,SDN控制器可以进一步判断该转发路径上优先级低于目标数据流的优先级的数据流的总带宽与该转发路径的剩余可分配带宽之和是否大于等于目标数据流的带宽。若是,则SDN控制器将该转发路径确定为目标数据流的候选转发路径。
其中,对于任一转发路径,若该转发路径上任一链路上优先级低于目标数据流的数据流的总带宽与该链路的剩余可分配带宽之和大于等于目标数据流的带宽,则表明该转发路径上优先级低于目标数据流的数据流的总带宽与该转发路径的剩余可分配带宽大于等于目标数据流的带宽。
举例来说,假设转发路径1包括链路1和链路2,则当链路1上优先级低于目标数据流的数据流的总带宽与链路1的剩余可分配带宽之和大于等于目标数据流的带宽,且链路2上优先级低于目标数据流的数据流的总带宽与链路2的剩余可分配带宽之和大于等于目标数据流的带宽,则转发路径1上优先级低于目标数据流的优先级的数据流的总带宽与该转发路径的剩余可分配带宽之和大于等于目标数据流的带宽。
需要说明的是,在本发明实施例中,当源节点和目的节点之间存在剩余可分配带宽大于等于目标数据流的带宽的转发路径时,SDN控制器可以直接对目标流量进行路径部署,而不需要进行转发路径抢占。
此外,当需要进行转发路径抢占,但源节点和目的节点之间的各转发路径上均不存在优先级低于目标数据流的优先级的数据流,或,存在优先级低于目标数据流的优先级的数据流,但该数据流的总带宽与转发路径上的剩余可分配带宽之和小于目标数据流的带宽时,SDN控制器可以直接丢弃目标数据流。
步骤102、确定候选转发路径对应的待抢占的数据流集合。若存在一条候选转发路径,则转至步骤103;若存在多条候选转发路径,则转至步骤104。
本发明实施例中,考虑到数据流的转发路径被抢占之后,可能会需要为该数据流抢占更低优先级(若存在)的数据流的转发路径,而网络中被抢占的数据流的数量越多,对网络的稳定的影响性越高,因此,为了降低转发路径抢占对网络稳定性的影响,SDN控制器进行路径抢占时,可以在保证带宽满足需求的前提下,优先抢占优先级最低的数据流的转发路径,并尽量减少被抢占的数据流的数量。
此外,考虑到当被抢占的数据流的总带宽超出需要的带宽(即目标数据流的带宽与剩余可分配带宽的差值)过多会降低网络带宽利用率,因此,为了提高网络带宽利用率,SDN控制器进行路径抢占时,还需要尽量减少被抢占的数据流的总带宽超出需要的带宽的量。
例如,当需要进行路径抢占,且存在多个数据流抢占方案时,优先选择被抢占的数据流的优先级最低的数据流抢占方案;当存在多个被抢占的数据流的优先级最低的数据流抢占方案,优先选择被抢占的数据流的数量最少的数据流抢占方案;当存在多个被抢占的数据流的优先级最低,且数量最少的数据流抢占方案时,优先选择被抢占的数据流的总带宽与剩余可分配带宽之和超出目标数据流的带宽最少的数据流抢占方案。
其中,数据流抢占方案的优先级可以为数据流抢占方案中各被抢占的数据流的优先级的算术平均值或加权平均值(不同优先级的数据流的权重可以根据实际场景设定)。
相应地,在本发明实施例中,SDN控制器确定了候选转发路径之后,可以确定候选转发路径对应的待抢占的数据流集合。其中,待抢占的数据流集合中各数据流的优先级小于所述目标数据流的优先级,且待抢占的数据流集合中所有数据流的总带宽与该候选转发路径的剩余可分配带宽之和大于等于所述目标数据流的带宽。
步骤103、将对应的待抢占的数据流集合确定为被抢占的数据流集合。
本发明实施例中,当存在一条候选转发路径,即候选转发路径的数量为一条时,SDN控制器可以将该候选转发路径对应的待抢占的数据流集合确定为被抢占的数据流集合。
步骤104、从对应的多个待抢占的数据流集合中选择一个作为被抢占的数据流集合。
本发明实施例中,当存在多条候选转发路径,即候选转发路径的数量为多条时,SDN控制器可以从对应的多个待抢占的数据流集合中选择一个作为被抢占的数据流集合。
在本发明其中一个实施例中,上述从对应的多个待抢占的数据流集合中选择一个作为被抢占的数据流集合,可以包括:
从对应的多个待抢占的数据流集合中,选择优先级最低的待抢占的数据流集合作为被抢占的数据流集合;
当存在多个优先级最低的待抢占的数据流集合时,选择优先级最低,且数据流的数量最少的待抢占的数据流集合作为被抢占的数据流集合;
当存在多个优先级最低,且数据流的数量最少的待抢占的数据流集合时,选择优先级最低、数据流的数量最少,且数据流的总带宽与剩余可分配带宽之和超出目标数据流的带宽最少的待抢占的数据流集合作为被抢占的数据流集合。
在该实施例中,为了降低路径抢占对网络稳定性的影响,并提高带宽利用率,SDN控制器确定被抢占的数据流集合时,可以以被抢占的数据流的优先级尽量低、被抢占的数据流的数量尽量少以及被抢占的数据流的总带宽与剩余可分配带宽之和超出所需带宽尽量少的原则确定被抢占的数据流集合。
相应地,在该实施例中,当SDN控制器分别确定了各候选转发路径对应的待抢占的数据流集合之后,SDN控制器可以比较各待抢占的数据流集合的优先级。
若优先级最低的待抢占的数据流集合的数量为一个,则SDN控制器可以将该待抢占的数据流集合确定为被抢占的数据流集合。
若优先级最低的待抢占的数据流集合的数量为多个,则SDN控制器可以进一步比较该多个待抢占的数据流集合中的数据流的数量。
若优先级最低,且数据流的数量最少的待抢占数据流集合的数量为一个,则SDN控制器可以将该待抢占的数据流集合确定为被抢占的数据流集合。
若优先级最低,且数据流的数量最少的待抢占数据流集合的数量为多个,则SDN控制器可以进一步比较该多个待抢占的数据流集合中各待抢占的数据流集合的总带宽与各自所在转发路径的剩余可分配带宽之和与目标数据流的带宽差值,并将该多个待抢占的数据流集合中总带宽与剩余可分配带宽之和与目标数据流的带宽的差值最小,即超出目标数据流的带宽最少的待抢占的数据流集合确定为被抢占的数据流集合。
其中,转发路径的剩余可分配带宽为该转发路径上各链路的剩余可分配带宽的最小值。
需要说明的是,在本发明实施例中,当优先级最低、数据流的数量最少,且数据流的总带宽与剩余可分配带宽之和超出目标数据流的带宽最少的待抢占的数据流集合的数量仍然为多个时,则SDN控制器可以按照其它策略进一步选择被抢占的数据流集合,如按照随机选择的方式,其具体实现在此不做赘述。
本发明实施例中,SDN控制器按照步骤103或步骤104的方式确定了被抢占的数据流集合之后,可以转至步骤105。
步骤105、释放该被抢占的数据流集合中各数据流,并将被抢占的数据流集合中各数据流对应的候选转发路径确定为目标数据流的转发路径。
本发明实施例中,SDN控制器确定了被抢占的数据流集合之后,可以释放该被抢占的数据流集合中的各数据流,并将该被抢占的数据流集合对应的候选转发路径确定为目标数据流的转发路径,进而,SDN控制器可以向该转发路径上各节点下发针对目标数据流的流量调度指令,以实现针对目标数据流的路径部署。
可见,在图1所示的方法流程中,通过在存在需要调度的数据流,且不存在剩余可分配带宽满足该数据流的要求的转发路径的情况下,通过抢占优先级低于该数据流的优先级的已部署数据流的转发路径的方式,为该数据流分配转发路径,保证了优先级更高(即重要程度更高)的数据流的转发。
此外,在进行路径抢占时,按照被抢占的数据流的优先级尽量低、被抢占的数据流的数量尽量少、被抢占的数据流的总带宽与剩余可分配带宽之和超出所述目标数据流的带宽尽量少的原则确定被抢占的数据流,在降低了转发路径抢占对网络稳定性的影响的情况下,提高了带宽利用率。
在本发明其中一个实施例中,上述确定候选转发路径对应的待抢占的数据流集合,可以包括:
对于候选转发路径对应的任一链路,确定该链路对应的待抢占的数据流集合;
将候选转发路径对应的所有链路对应的待抢占的数据流集合的并集确定为该候选转发路径对应的待抢占的数据流集合。
在该实施例中,SDN控制器确定了候选转发路径之后,对于任一候选转发路径,可以分别确定该候选转发路径对应的各链路对应的待抢占的数据流集合,并将该候选转发路径对应的所有链路对应的待抢占的数据流集合的并集确定为该候选转发路径对应的待抢占的数据流集合。
在该实施例其中一种实施方式中,上述确定该链路对应的待抢占的数据流集合,可以包括:
确定该链路对应的待抢占数据流的最高优先级MAXPRI;
将该链路上优先级小于等于MAXPRI的数据流加入到该链路对应的待抢占的数据流集合。
在该实施方式中,当SDN控制器需要确定任一链路对应的待抢占的数据流集合时,SDN控制器可以先确定该链路对应的待抢占数据流的最高优先级(本文中称为MAXPRI)。
例如,SDN控制器可以将MAXPRI的初始值设置为1,并判断
Figure BDA0001550892090000091
是否小于need。
其中,1≤x≤MAXPRI,pribandwidth(x)为该链路上优先级为x的数据流的总带宽,need为待抢占的带宽,其为目标数据流的带宽与该链路的剩余可分配带宽的差值。
若是,则SDN控制器可以设置MAXPRI=MAXPRI+1,返回执行上述判断(即判断
Figure BDA0001550892090000092
是否小于need);
若否,则SDN控制器可以确定对应的MAXPRI取值为该链路对应的待抢占数据流的最高优先级。
其中,SDN控制器确定的MAXPRI的取值满足以下公式:
Figure BDA0001550892090000101
在该实施方式中,SDN控制器确定了MAXPRI之后,可以将该链路上优先级小于等于MAXPRI的数据流加入到该链路对应的待抢占的数据流集合中。
进一步地,为了保证待抢占的数据流集合的优先级尽量低、数据流的数据量尽量少以及总带宽与剩余可分配带宽之和超出目标数据流的带宽尽量少,SDN控制器还可以在保证待抢占的数据流集合的总带宽大于等于need的前提下,确定是否可以删除部分数据流。
相应地,在该实施方式中,当
Figure BDA0001550892090000102
时,将该链路上优先级小于等于MAXPRI的数据流加入到该链路对应的待抢占的数据流集合。
具体地,当
Figure BDA0001550892090000103
时,即该链路上优先级小于等于MAXPRI的数据流的总带宽等于need时,SDN控制器需要将该链路上优先级小于等于MAXPRI的数据流均作为待抢占的数据流,并将其加入到待抢占的数据流集合。
在该实施方式中,当
Figure BDA0001550892090000104
时,确定带宽抢占粒度;
若带宽抢占粒度大于预设第一阈值,则将该链路上优先级小于等于MAXPRI的数据流加入到待抢占的数据流候选集合,并对该待抢占的数据流候选集合中各数据流按照优先级从高到低排序,对于优先级相同的数据流按照带宽由小到大排序;
按排序依次选择该待抢占的数据流候选集合中各数据流,对于所选择的数据流:判断删除该数据流后该待抢占的数据流候选集合中剩余数据流的总带宽是否大于等于need,若是,则从该待抢占的数据流候选集合中删除该数据流,并继续选择下一条数据流,并返回执行所述判断;否则,将该待抢占的数据流候选集合中各数据流加入到该链路对应的待抢占的数据流集合。
具体地,在该实施方式中,当SDN控制器确定
Figure BDA0001550892090000111
时,SDN控制器可以先确定带宽抢占粒度(下文中简称为粒度),以便根据该带宽抢占粒度确定待抢占的数据流集合。
具体地,在该实施例中,可以将粒度(Gra)的初始值设置为1KB/S,并判断need/Gra是否大于第二预设阈值(可以根据实际场景设定,如10),若是,则设置Gra=Gra*第二预设阈值,并重复执行该操作,直至need/Gra小于等于第二预设阈值,并将第一个满足该条件(即need/Gra≤第二预设阈值)的Gra的值确定为Gra的最大值。
进一步地,SDN控制器可以判断该链路上优先级小于等于MAXPRI的数据流中带宽大于等于Gra(该Gra的初始值即为上述Gra的最大值)的数据流的总带宽小于need,则将设置Gra=Gra/第二预设阈值,重复执行该操作,直至该链路上优先级小于等于MAXPRI的数据流中带宽大于等于Gra的数据流的总带宽大于等于need,将此时的Gra的值确定为最终的粒度。
在该实施例中,为了节省确定待抢占的数据流集合的时间和空间资源,SDN控制器确定了最终的Gra后,可以比较Gra与第一预设阈值(可以根据实际场景设定,如1000),若Gra小于等于第一预设阈值,则SDN控制器可以通过动态规划方式确定待抢占的数据流集合;若Gra大于第一预设阈值,则SDN控制器可以通过以下方式确定待抢占的数据流集合:
将该链路上优先级小于等于MAXPRI的数据流均加入到待抢占的数据流候选集合,并对该待抢占的数据流候选集合中各数据流按照优先级从高到低排序,对于优先级相同的数据流按照带宽由小到大排序;
按上述排序依次选择该待抢占的数据流候选集合中各数据流,对于所选择的数据流,SDN控制器可以判断删除该数据流后该待抢占的数据流候选集合中剩余数据流的总带宽是否大于等于need,若是,则从该待抢占的数据流候选集合中删除该数据流,并继续选择下一条数据流,返回执行上一判断;否则,将该待抢占的数据流候选集合中各数据流加入到该链路对应的待抢占的数据流集合。
优选地,第一预设阈值大于第二预设阈值。
举例来说,假设待抢占的数据流候选集合中各数据流按照优先级从高到低,带宽从小到大的顺序依次为f1、f2…fn,则SDN控制器可以判断从该待抢占的数据流候选集合中移除f1之后,剩余的数据流的总带宽是否大于等于need,若否,则SDN控制器将{f1、f2…fn}确定为待抢占的数据流集合;若是,则SDN控制器可以将f1从该待抢占的数据流候选集合中移除,并进一步判断从该待抢占的数据流候选集合中移除f2之后,剩余的数据流的总带宽是否大于等于need,重复执行上述操作。假设SDN控制器从待抢占的数据流候选集合中移除f1和f2之后,剩余的数据流的总带宽大于等于need,且移除f1、f2和f3之后,剩余的数据流的总带宽小于need,则SDN控制器可以将{f3、f4…fn}确定为待抢占的数据流集合。
在该实施例中,当Gra小于等于第一预设阈值时,SDN控制器可以通过动态规划方式确定待抢占的数据流集合。
具体地,SDN控制器可以将该链路上优先级小于等于MAXPRI的数据流均加入到待抢占的数据流候选集合,并对该待抢占的数据流候选集合中各数据流按照优先级从低到高排序,对于优先级相同的数据流按照带宽由大到小排序;
将该待抢占的数据流候选集合中各数据流的带宽单位转化为粒度,以得到数据流集合S;其中,S={S1,S2,...,Sk,...,Sn},S1,S2,...,Sk,...,Sn依次为该抢占的数据流候选集合中排序后的各数据流;
使用如下公式从数据流集合S中选择数据流集合X:
F(S,need')=min[F(S-1,need'),F(S-1,need'-bandwidth)+1]
其中,need'为将need的带宽单位转化为所述带宽抢占粒度后的数值,F(S,need')为从数据流集合S中选择出的总带宽超出need'最少的数据流集合中的数据流条数,F(S-1,need')为从数据流集合S-1中选择出的总带宽超出need'最少的数据流集合中的数据流条数,F(S-1,need'-bandwidth)为从数据流集合S-1中选择出的总带宽超出need'-bandwidth最少的数据流集合中的数据流条数,数据流集合S-1为数据流集合S中被移除一条数据流之后的数据流集合,bandwidth为该被移除的数据流的带宽。
SDN控制器通过上述方式确定了数据路集合X之后,可以将数据流集合X确定为该链路对应的待抢占的数据流集合。
应该认识到,在本发明实施例中,上述确定被抢占的数据流集合的方式仅仅是本发明实施例中SDN控制器确定被抢占的数据流集合的实现方式的一种具体示例,而并不是对本发明保护范围的限定,即在本发明实施例中,SDN控制器也可以通过其它方式确定被抢占的数据流集合,例如,SDN控制器可以通过遍历的方式列举出所有满足条件的待抢占的数据流集合,并按照被抢占的数据流的优先级尽量低、被抢占的数据流的数量尽量少、被抢占的数据流的总带宽与剩余可分配带宽之和超出所述目标数据流的带宽尽量少的原则从中选择最终的被抢占的数据流集合;
或者,对于任一链路,当
Figure BDA0001550892090000131
时,SDN控制器可以不计算粒度,直接将所有优先级小于等于MAXPRI均加入到待抢占的数据流候选集合,并按照上述实施例中描述的依次筛选的方式确定待抢占的数据流集合,或者,按照动态规划方式确定待抢占的数据流集合;
或者,对于任一链路,当
Figure BDA0001550892090000132
时,SDN控制器可以在确定粒度之后,直接将该链路上优先级小于等于MAXPRI的数据流的带宽单位转化为所确定的粒度,并按照动态规划方式确定待抢占的数据流集合,而不需要比较所确定的粒度和第一预设阈值,其具体实现在本发明实施例中均不做赘述。
进一步地,在本发明实施例中,上述释放被抢占的数据流集合中各数据流之后,还包括:
将被抢占的数据流集合中各数据流加入到被抢占数据流队列;其中,该被抢占数据流队列中各数据流按照优先级从高到低,对于优先级相同的数据流按照带宽从大到小排序;
按照上述排序,依次将被抢占数据流队列中的各数据流确定为待调度的目标数据流。
在该实施例中,考虑到网络中可能会存在转发路径有足够的剩余可分配带宽用于部署某被抢占的数据流,或者,网络中也可能会存在优先级低于被抢占的数据流的其它未被抢占的数据流,因此,为了尽量保证高优先级的数据流的正常转发,被抢占的数据流可以重新尝试进行路径部署。
相应地,SDN控制器确定了被抢占的数据流集合,并释放了被抢占的数据流集合中的各数据流之后,还可以将该被抢占的数据流集合中各数据流加入到被抢占数据流队列,并将该被抢占数据流队列中各数据流按照优先级从高到低排序,对于优先级相同的数据流按照带宽从大到小排序。
SDN控制器每次完成数据流的路径部署之后,均可以判断被抢占数据流队列中是否存在数据流,若存在,则按照各数据流在被抢占数据流队列中的排序,依次将该被抢占数据流队列中的各数据流确定为待调度的目标数据流,并按照上述方法实施例中描述的方式进行路径部署。
需要说明的是,对于新加入网络的数据流,SDN控制器也可以比较该新加入网络的数据流的优先级与被抢占数据流队列中存在的数据流的优先级,并按照优先级从高到低,带宽从大到小的顺序依次进行路径部署。其中,当被抢占数据流队列中存在优先级高于新加入网络的数据流的优先级的数据流时,SDN控制器可以先将该新加入的数据流缓存在特定队列中(如被抢占数据流队列或新加入数据流队列),并当其它优先级更高的数据流均完成路径部署后,再对该新加入的数据流进行路径部署,其具体实现在此不做赘述。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体应用场景对本发明实施例提供的技术方案进行说明。
请参见图2A,为本发明实施例提供的一种具体应用场景的架构示意图,如图2A所示,在该应用场景中,节点A和节点E之间共存在3条转发路径,分别为A->B->E、A->C->E和A->D->E;其中,各链路的可用带宽如图中所示。
假设节点A和节点E之间已存在数据流Flow1、Flow2、Flow3和Flow4,各数据流的带宽依次为60M、45M、20M和10M,优先级依次为7、5、4和6,其中,Flow1的转发路径为A->D->E(以下称为路径3),Flow2的转发路径为A->C->E(以下称为路径2),Flow3和Flow4的转发路径为A->B->E(以下称为路径1),数据流在组网上的分布情况如图2B所示。
假设某一时刻,Flow5新加入组网,其源节点和目的节点分别为节点A和节点E,带宽为80M,优先级为8,基于该场景,本发明实施例提供的流量转发控制方案实现如下:
SDN控制器确定Flow5需要进行路径选择,此时,SDN控制器可以分别确定节点A和节点E之间各转发路径的剩余可分配带宽。其中:
对于路径1,其包括“A->B”和“B->E”两条链路,其中,链路“A->B”的剩余可分配带宽为30M(60M-20M-10M=30M),链路“B->E”的剩余可分配带宽为70M(100M-20M-10M=70M),路径1的剩余可分配带宽为该两条链路的剩余可分配带宽中的最小值,即路径1的剩余可分配带宽为30M;
同理可得,路径2的剩余可分配带宽为25M,路径3的剩余可分配带宽为40M,
可见,节点A和节点E之间各转发路径的剩余可分配带宽均小于Flow5的带宽(80M),因此,需要进行转发路径抢占。
由于各转发路径上均存在优先级低于Flow5的优先级(8)的流量,因此,SDN控制器可以分别确定各转发路径上优先级低于Flow5的优先级的数据流的总带宽与剩余可分配带宽之和。其中:
对于路径1,其上已承载的数据流(Flow3和Flow4)的优先级(4和6)均低于Flow5的优先级(8),因此,路径1上优先级低于Flow5的优先级的数据流的总带宽与剩余可分配带宽之和为Flow3的带宽(20M)、Flow4的带宽(10M)以及路径1的剩余可分配带宽(30M)三者之和,即60M(20M+10M+30M=60M);
对于路径2,其上已承载的数据流(Flow2)的优先级(5)低于Flow5的优先级(8),因此,路径2上优先级低于Flow5的优先级的数据流的总带宽与剩余可分配带宽之和为Flow2的带宽(45M)与路径2的剩余可分配带宽(25M)二者之和,即70M(45M+25M=70M);
对于路径3,其上已承载的数据流(Flow1)的优先级(7)低于Flow5的优先级(8),因此,路径3上优先级低于Flow5的优先级的数据流的总带宽与剩余可分配带宽之和为Flow1的带宽(60M)与路径3的剩余可分配带宽(40M)二者之和,即100M(60M+40M=100M)。
可见,仅有路径3满足条件,因此,SDN控制器将路径3确定为候选转发路径。
对于路径3,其包括“A->D”和“D->E”两条链路,其中,对于链路“A->D”,SDN控制器可以先确定该链路对应的待抢占的数据流的MAXPRI,具体地:
SDN控制器可以先将MAXPRI的初始值设置为1,由于链路“A->D”上不存在优先级为1的数据流,即
Figure BDA0001550892090000161
显然小于need(need=80M-40M=40M);
因此,SDN控制器可以设置MAXPRI=MAXPRI+1,并重新判断
Figure BDA0001550892090000162
是否小于need;由于链路“A->D”不存在优先级1~6的数据流,即MAXPRI=6时,
Figure BDA0001550892090000163
仍然为0,而当MAXPRI=7时,
Figure BDA0001550892090000171
即为链路“A->D”上优先级为7的数据流(Flow1)的带宽(60M),即
Figure BDA0001550892090000172
因而,SDN控制器可以确定该链路对应的待抢占数据流的最高优先级为7。
由于
Figure BDA0001550892090000173
因此,SDN控制器可以确定带宽抢占粒度,具体地:
假设预设第一阈值为1000,预设第二阈值为10,SDN控制器可以将带宽抢占粒度Gra的初始值设置为1KB/S;此时,need/Gra=60K>10,因而,SDN控制器可以设置Gra=Gra*10,并继续判断need/Gra是否大于10,若大于,则重新执行该操作,直至need/Gra≤10。
由于Gra=1000KB/S时,need/Gra=61.4>10,Gra=10000KB/S时,need/Gra=6.14<10,因此,SDN控制器可以将Gra设置为10000KB/S。
进一步地,由于链路“A->D”上优先级小于等于7的数据流中带宽为60M(即Flow1的带宽),其大于10000KB/S,因此,Gra的最终值为10000KB/S。
由于Gra>1000,因此,SDN控制器可以将链路“A->D”上优先级小于等于7的数据流均加入到待抢占的数据流候选集合,并对该待抢占的数据流候选集合中各数据流按照优先级从高到低排序,对于优先级相同的数据流按照带宽由小到大排序,其中,待抢占的数据流集合为{Flow1}。
由于该待抢占的数据流集合中仅包括一条数据流,当删除该数据流时,待抢占的数据流集合的总带宽为0,小于need,因此,SDN控制器确定的链路“A->D”对应的待抢占的数据流集合为{Flow1}。
同理,SDN控制器可以得到链路“D->E”对应的待抢占的数据流集合为{Flow1}。
因此,路径3对应的待抢占的数据流集合为{Flow1}∪{Flow1}={Flow1}。
SDN控制器释放Flow1,并路径3作为Flow5的转发路径。
在该实施例中,SDN控制器释放Flow1之后,由于不存在剩余可分配带宽满足条件的转发路径,因此,需要再次进行路径抢占。
由于路径1和路径2上均存在优先级低于Flow1的优先级的数据流,且路径1上优先级低于Flow1的优先级的数据流(Flow3和Flow4)的总带宽(20M+10M=30M)和剩余可分配带宽(30M)之和(30M+30M=60M)等于Flow1的带宽(60M),且路径2上优先级低于Flow1的优先级的数据流(Flow2)的总带宽(45M)和剩余可分配带宽(25M)之和(45M+25M=70M)大于Flow1的带宽(60M),因此,SDN控制器可以将路径1和路径2均确定为候选转发路径。
其中,对于路径2,按照上述确定路径3对应的待抢占的数据流集合的方式,所确定的待抢占的数据流集合为{Flow2},其优先级为5,被抢占的数据流的数量为1条,被抢占的带宽为45M;
对于路径1,其包括“A->B”和“B->E”两条链路,其中,对于链路“A->B”,SDN控制器可以先确定该链路对应的待抢占的数据流的MAXPRI,具体地:
SDN控制器可以先将MAXPRI的初始值设置为1,由于链路“A->B”上不存在优先级1的数据流,即
Figure BDA0001550892090000181
显然小于need(need=60M-30M=30M);
因此,SDN控制器可以设置MAXPRI=MAXPRI,并重新判断
Figure BDA0001550892090000182
是否小于need;由于链路“A->B”不存在优先级1~3的数据流,即MAXPRI=3时,
Figure BDA0001550892090000183
仍然为0,而当MAXPRI=4时,
Figure BDA0001550892090000184
(即Flow3的带宽)<need,SDN控制器可以设置MAXPRI=MAXPRI+1,并重新判断
Figure BDA0001550892090000191
是否小于need;由于MAXPRI=5时,
Figure BDA0001550892090000192
而MAXPRI=6时,
Figure BDA0001550892090000193
(即Flow3和Flow4的总带宽)=need。
因而,SDN控制器可以确定该链路对应的待抢占数据流的最高优先级为6。
由于
Figure BDA0001550892090000194
因此,SDN控制器将链路优先级小于等于6的数据流加入到该链路对应的待抢占的数据流集合,即SDN控制器确定的链路“A->B”对应的待抢占的数据流集合为{Flow3,Flow4};
同理,SDN控制器可以得到链路“B->E”对应的待抢占的数据流集合为{Flow3,Flow4}。
因此,路径1对应的待抢占的数据流集合为{Flow3,Flow4}∪{Flow3,Flow4}={Flow3,Flow4},其优先级为5((6+4)/2=5),被抢占的数据流的数量为2条,被抢占的带宽为30M(20M+10M=30M)。
SDN控制器按照被抢占的数据流的优先级尽量低、被抢占的数据流的数量尽量少、被抢占的数据流的总带宽与剩余可分配带宽之和超出所述目标数据流的带宽尽量少的原则,将待抢占的数据流集合为{Flow2}确定为被抢占的数据流集合。
SDN控制器释放Flow2,并将路径2作为Flow1的转发路径。
在该实施例中,SDN控制器释放Flow2之后,由于不存在剩余可分配带宽满足条件的转发路径,因此,需要再次进行路径抢占。
由于路径1存在优先级低于Flow2的优先级的数据流(Flow3),且路径1优先级低于Flow2的优先级的数据流(Flow3)的总带宽(20M)和剩余可分配带宽(30M)之和(20M+30M=50M)大于Flow2的带宽(45M),因此,SDN控制器可以将路径1确定为候选转发路径。
其中,对于路径1,按照上述确定路径3对应的待抢占的数据流集合的方式,所确定的被抢占的数据流集合为{Flow3}。
SDN控制器可以释放Flow3,并将路径1确定为Flow2的转发路径。
在该实施例中,SDN控制器释放Flow3之后,由于路径3上的剩余可分配带宽(100M-80M=20M)满足带宽需求,因此,不需要进行路径抢占,SDN控制器可以将路径3确定为Flow3的转发路径。
进过上述路径抢占操作,最终的路径规划方案可以如下表所示:
数据流 操作类型 原路径 新路径
Flow1 重新下发新路径 路径3 路径2
Flow2 重新下发新路径 路径2 路径1
Flow3 重新下发新路径 路径1 路径3
Flow5 下发路径 路径3
其中,Flow4的转发路径未发生变化,路径抢占后各数据流在组网上的分布情况如图2C所示。
通过以上描述可以看出,在本发明实施例提供的技术方案中,通过在存在待调度的目标数据流,且待调度的目标数据流的源节点和目的节点之间不存在剩余可分配带宽大于等于目标数据流的带宽的转发路径时,确定目标数据流的候选转发路径,并确定候选转发路径对应的待抢占的数据流集合;若存在一条候选转发路径,则将对应的待抢占的数据流集合确定为被抢占的数据流集合;若存在多条候选转发路径,则从对应的多个待抢占的数据流集合中选择一个作为被抢占的数据流集合;进而,释放被抢占的数据流集合中各数据流,并将被抢占的数据流集合对应的候选转发路径确定为目标数据流的转发路径,保证了优先级更高的数据流的转发。
请参见图3,为本发明实施例提供的一种流量转发控制装置的结构示意图,其中,所述装置可以应用于上述方法实施例中的SDN控制器,如图3所示,该流量转发控制装置可以包括:
第一确定单元310,用于若待调度的目标数据流的源节点和目的节点之间不存在剩余可分配带宽大于等于所述目标数据流的带宽的转发路径时,确定所述目标数据流的候选转发路径;其中,若转发路径上优先级低于所述目标数据流的数据流的总带宽与该转发路径的剩余可分配带宽之和大于等于所述目标数据流的带宽,则转发路径为候选转发路径;
第二确定单元320,用于确定候选转发路径对应的待抢占的数据流集合;其中,所述待抢占的数据流集合中各数据流的优先级小于所述目标数据流的优先级,且待抢占的数据流集合中所有数据流的总带宽与该候选转发路径的剩余可分配带宽之和大于等于所述目标数据流的带宽;
所述第二确定单元320,还用于若存在一条候选转发路径,则将对应的待抢占的数据流集合确定为被抢占的数据流集合;若存在多条候选转发路径,则从对应的多个待抢占的数据流集合中选择一个作为被抢占的数据流集合;
控制单元330,用于释放所述被抢占的数据流集合中各数据流,并将所述被抢占的数据流集合对应的候选转发路径确定为所述目标数据流的转发路径。
在可选实施例中,所述第一确定单元310,具体用于对于所述候选转发路径对应的任一链路,确定该链路对应的待抢占的数据流集合;将所述候选转发路径对应的所有链路对应的待抢占的数据流集合的并集确定为该候选转发路径对应的待抢占的数据流集合。
在可选实施例中,所述第二确定单元320,具体用于确定该链路对应的待抢占数据流的最高优先级MAXPRI;将该链路上优先级小于等于MAXPRI的数据流加入到该链路对应的待抢占的数据流集合。
在可选实施例中,所述第二确定单元320,具体用于将MAXPRI的初始值设置为1;
判断
Figure BDA0001550892090000221
是否小于need;
若是,则设置MAXPRI=MAXPRI+1,返回执行所述判断;
若否,则确定对应的MAXPRI取值为该链路对应的待抢占数据流的最高优先级;
其中,1≤x≤MAXPRI,pribandwidth(x)为该链路上优先级为x的数据流的总带宽,need为待抢占的带宽,其为所述目标数据流的带宽与该链路的剩余可分配带宽的差值
在可选实施例中,所述第二确定单元320,具体用于当
Figure BDA0001550892090000222
时d,将该链路上优先级小于等于MAXPRI的数据流加入到该链路对应的待抢占的数据流集合;
其中,1≤x≤MAXPRI,pribandwidth(x)为该链路上优先级为x的数据流的总带宽,need为待抢占的带宽,其为所述目标数据流的带宽与该链路的剩余可分配带宽的差值
在可选实施例中,所述第二确定单元320,具体用于当
Figure BDA0001550892090000223
时d,确定带宽抢占粒度;
若所述带宽抢占粒度大于预设第一阈值,则将该链路上优先级小于等于MAXPRI的数据流加入到待抢占的数据流候选集合,并对该待抢占的数据流候选集合中各数据流按照优先级从高到低排序,对于优先级相同的数据流按照带宽由小到大排序;
按所述排序依次选择该待抢占的数据流候选集合中各数据流,对于所选择的数据流:判断删除该数据流后该待抢占的数据流候选集合中剩余数据流的总带宽是否大于等于need,若是,则从该待抢占的数据流候选集合中删除该数据流,并继续选择下一条数据流,并返回执行所述判断;否则,将该待抢占的数据流候选集合中各数据流加入到该链路对应的待抢占的数据流集合;
其中,1≤x≤MAXPRI,pribandwidth(x)为该链路上优先级为x的数据流的总带宽,need为待抢占的带宽,其为所述目标数据流的带宽与该链路的剩余可分配带宽的差值。
在可选实施例中,所述第二确定单元320,具体用于将带宽抢占粒度Gra的初始值设置为1KB/S;
若need/Gra大于第二预设阈值,则将Gra设置为Gra*第二预设阈值,重复执行该操作,直至need/Gra小于等于所述第二预设阈值;其中,所述第二预设阈值小于所述第一预设阈值;
若该链路上优先级小于等于MAXPRI的数据流中带宽大于等于Gra的数据流的总带宽小于need,则将Gra设置为Gra/第二预设阈值,重复执行该操作,直至该链路上优先级小于等于MAXPRI的数据流中带宽大于等于Gra的数据流的总带宽大于等于need,将此时的Gra的值确定为所述带宽抢占粒度。
在可选实施例中,所述第二确定单元320,还用于若所述带宽抢占粒度小于等于预设第一阈值,则使用动态规划方式确定该链路对应的待抢占的数据流集合;
所述第二确定单元,具体用于将该链路上优先级小于等于MAXPRI的数据流加入到待抢占的数据流候选集合,并对该待抢占的数据流候选集合中各数据流按照优先级从低到高排序,对于优先级相同的数据流按照带宽由大到小排序;
将该待抢占的数据流候选集合中各数据流的带宽单位转化为所述带宽抢占粒度,以得到数据流集合S;其中,S={S1,S2,...,Sk,...,Sn},S1,S2,...,Sk,...,Sn依次为该抢占的数据流候选集合中排序后的各数据流;
使用如下公式从数据流集合S中选择数据流集合X:
F(S,need')=min[F(S-1,need'),F(S-1,need'-bandwidth)+1]
其中,need'为将need的带宽单位转化为所述带宽抢占粒度后的数值,F(S,need')为从数据流集合S中选择出的总带宽超出need'最少的数据流集合中的数据流条数,F(S-1,need')为从数据流集合S-1中选择出的总带宽超出need'最少的数据流集合中的数据流条数,F(S-1,need'-bandwidth)为从数据流集合S-1中选择出的总带宽超出need'-bandwidth最少的数据流集合中的数据流条数,数据流集合S-1为数据流集合S中被移除一条数据流之后的数据流集合,bandwidth为该被移除的数据流的带宽;
将数据流集合X确定为该链路对应的待抢占的数据流集合。
在可选实施例中,所述控制单元330,还用于将所述被抢占的数据流集合中各数据流加入到被抢占数据流队列;其中,所述被抢占数据流队列中各数据流按照优先级从高到低排序,对于优先级相同的数据流按照带宽从大到小排序;
所述第一确定单元310,还用于按照所述排序,依次将所述被抢占数据流队列中的各数据流确定为待调度的目标数据流。
在可选实施例中,所述第二确定单元320,具体用于从对应的多个待抢占的数据流集合中,选择优先级最低的待抢占的数据流集合作为被抢占的数据流集合;
当存在多个优先级最低的待抢占的数据流集合时,选择优先级最低,且数据流的数量最少的待抢占的数据流集合作为被抢占的数据流集合;
当存在多个优先级最低,且数据流的数量最少的待抢占的数据流集合时,选择优先级最低、数据流的数量最少,且数据流的总带宽与剩余可分配带宽之和超出目标数据流的带宽最少的待抢占的数据流集合作为被抢占的数据流集合。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
请参见图4,为本发明实施例提供的一种流量转发控制装置的硬件结构示意图。该流量转发控制装置可以包括处理器401、存储有机器可执行指令的机器可读存储介质402。处理器401与机器可读存储介质402可经由系统总线403通信。并且,通过读取并执行机器可读存储介质402中与流量转发控制逻辑对应的机器可执行指令,处理器401可执行上文描述的流量转发控制方法。
本文中提到的机器可读存储介质402可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
本发明实施例还提供了一种包括机器可执行指令的机器可读存储介质,例如图4中的机器可读存储介质402,所述机器可执行指令可由流量转发控制装置中的处理器401执行以实现以上描述的流量转发控制方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (14)

1.一种流量转发控制方法,应用于自定义网络SDN控制器,其特征在于,所述方法包括:
若待调度的目标数据流的源节点和目的节点之间不存在剩余可分配带宽大于等于所述目标数据流的带宽的转发路径时,确定所述目标数据流的候选转发路径;其中,若转发路径上优先级低于所述目标数据流的数据流的总带宽与该转发路径的剩余可分配带宽之和大于等于所述目标数据流的带宽,则转发路径为候选转发路径;
确定候选转发路径对应的待抢占的数据流集合;其中,所述待抢占的数据流集合中各数据流的优先级小于所述目标数据流的优先级,且待抢占的数据流集合中所有数据流的总带宽与该候选转发路径的剩余可分配带宽之和大于等于所述目标数据流的带宽;
若存在一条候选转发路径,则将对应的待抢占的数据流集合确定为被抢占的数据流集合;
若存在多条候选转发路径,则从对应的多个待抢占的数据流集合中选择一个作为被抢占的数据流集合;
释放所述被抢占的数据流集合中各数据流,并将所述被抢占的数据流集合对应的候选转发路径确定为所述目标数据流的转发路径;
其中,所述确定候选转发路径对应的待抢占的数据流集合,包括:
对于所述候选转发路径对应的任一链路,确定该链路对应的待抢占数据流的最高优先级MAXPRI;
Figure FDA0003205408380000011
时,确定带宽抢占粒度;
若所述带宽抢占粒度小于等于第一预设阈值,则将该链路上优先级小于等于MAXPRI的数据流加入到待抢占的数据流候选集合,并对该待抢占的数据流候选集合中各数据流按照优先级从低到高排序,对于优先级相同的数据流按照带宽由大到小排序;
将该待抢占的数据流候选集合中各数据流的带宽单位转化为所述带宽抢占粒度,以得到数据流集合S;其中,S={S1,S2,...,Sk,...,Sn},S1,S2,...,Sk,...,Sn依次为该抢占的数据流候选集合中排序后的各数据流;
使用如下公式从数据流集合S中选择数据流集合X:
F(S,need')=min[F(S-1,need'),F(S-1,need'-bandwidth)+1]
其中,need'为将need的带宽单位转化为所述带宽抢占粒度后的数值,F(S,need')为从数据流集合S中选择出的总带宽超出need'最少的数据流集合中的数据流条数,F(S-1,need')为从数据流集合S-1中选择出的总带宽超出need'最少的数据流集合中的数据流条数,F(S-1,need'-bandwidth)为从数据流集合S-1中选择出的总带宽超出need'-bandwidth最少的数据流集合中的数据流条数,数据流集合S-1为数据流集合S中被移除一条数据流之后的数据流集合,bandwidth为该被移除的数据流的带宽;
将数据流集合X确定为该链路对应的待抢占的数据流集合;
将所述候选转发路径对应的所有链路对应的待抢占的数据流集合的并集确定为该候选转发路径对应的待抢占的数据流集合。
2.根据权利要求1所述的方法,其特征在于,所述确定该链路对应的待抢占数据流的最高优先级MAXPRI,包括:
将MAXPRI的初始值设置为1;
判断
Figure FDA0003205408380000021
是否小于need;
若是,则设置MAXPRI=MAXPRI+1,返回执行所述判断;
若否,则确定对应的MAXPRI取值为该链路对应的待抢占数据流的最高优先级;
其中,1≤x≤MAXPRI,pribandwidth(x)为该链路上优先级为x的数据流的总带宽,need为待抢占的带宽,其为所述目标数据流的带宽与该链路的剩余可分配带宽的差值。
3.根据权利要求1所述的方法,其特征在于,所述确定该链路对应的待抢占数据流的最高优先级MAXPRI之后,还包括:将该链路上优先级小于等于MAXPRI的数据流加入到该链路对应的待抢占的数据流集合,包括:
Figure FDA0003205408380000031
时,将该链路上优先级小于等于MAXPRI的数据流加入到该链路对应的待抢占的数据流集合;
其中,1≤x≤MAXPRI,pribandwidth(x)为该链路上优先级为x的数据流的总带宽,need为待抢占的带宽,其为所述目标数据流的带宽与该链路的剩余可分配带宽的差值。
4.根据权利要求1所述的方法,其特征在于,所述确定带宽抢占粒度之后,还包括:
若所述带宽抢占粒度大于第一预设阈值,则将该链路上优先级小于等于MAXPRI的数据流加入到待抢占的数据流候选集合,并对该待抢占的数据流候选集合中各数据流按照优先级从高到低排序,对于优先级相同的数据流按照带宽由小到大排序;
按所述排序依次选择该待抢占的数据流候选集合中各数据流,对于所选择的数据流:判断删除该数据流后该待抢占的数据流候选集合中剩余数据流的总带宽是否大于等于need,若是,则从该待抢占的数据流候选集合中删除该数据流,并继续选择下一条数据流,并返回执行所述判断;否则,将该待抢占的数据流候选集合中各数据流加入到该链路对应的待抢占的数据流集合;
其中,1≤x≤MAXPRI,pribandwidth(x)为该链路上优先级为x的数据流的总带宽,need为待抢占的带宽,其为所述目标数据流的带宽与该链路的剩余可分配带宽的差值。
5.根据权利要求1所述的方法,其特征在于,所述确定带宽抢占粒度,包括:
将带宽抢占粒度Gra的初始值设置为1KB/S;
若need/Gra大于第二预设阈值,则将Gra设置为Gra*第二预设阈值,重复执行该操作,直至need/Gra小于等于所述第二预设阈值;其中,所述第二预设阈值小于所述第一预设阈值;
若该链路上优先级小于等于MAXPRI的数据流中带宽大于等于Gra的数据流的总带宽小于need,则将Gra设置为Gra/第二预设阈值,重复执行该操作,直至该链路上优先级小于等于MAXPRI的数据流中带宽大于等于Gra的数据流的总带宽大于等于need,将此时的Gra的值确定为所述带宽抢占粒度。
6.根据权利要求1所述的方法,其特征在于,所述释放所述被抢占的数据流集合中各数据流之后,还包括:
将所述被抢占的数据流集合中各数据流加入到被抢占数据流队列;其中,所述被抢占数据流队列中各数据流按照优先级从高到低排序,对于优先级相同的数据流按照带宽从大到小排序;
按照所述排序,依次将所述被抢占数据流队列中的各数据流确定为待调度的目标数据流。
7.根据权利要求1所述的方法,其特征在于,所述从对应的多个待抢占的数据流集合中选择一个作为被抢占的数据流集合,包括:
从对应的多个待抢占的数据流集合中,选择优先级最低的待抢占的数据流集合作为被抢占的数据流集合;
当存在多个优先级最低的待抢占的数据流集合时,选择优先级最低,且数据流的数量最少的待抢占的数据流集合作为被抢占的数据流集合;
当存在多个优先级最低,且数据流的数量最少的待抢占的数据流集合时,选择优先级最低、数据流的数量最少,且数据流的总带宽与剩余可分配带宽之和超出目标数据流的带宽最少的待抢占的数据流集合作为被抢占的数据流集合。
8.一种流量转发控制装置,应用于自定义网络SDN控制器,其特征在于,所述装置包括:
第一确定单元,用于若待调度的目标数据流的源节点和目的节点之间不存在剩余可分配带宽大于等于所述目标数据流的带宽的转发路径时,确定所述目标数据流的候选转发路径;其中,若转发路径上优先级低于所述目标数据流的数据流的总带宽与该转发路径的剩余可分配带宽之和大于等于所述目标数据流的带宽,则转发路径为候选转发路径;
第二确定单元,用于确定候选转发路径对应的待抢占的数据流集合;其中,所述待抢占的数据流集合中各数据流的优先级小于所述目标数据流的优先级,且待抢占的数据流集合中所有数据流的总带宽与该候选转发路径的剩余可分配带宽之和大于等于所述目标数据流的带宽;
所述第二确定单元,还用于若存在一条候选转发路径,则将对应的待抢占的数据流集合确定为被抢占的数据流集合;若存在多条候选转发路径,则从对应的多个待抢占的数据流集合中选择一个作为被抢占的数据流集合;
控制单元,用于释放所述被抢占的数据流集合中各数据流,并将所述被抢占的数据流集合对应的候选转发路径确定为所述目标数据流的转发路径;
其中,所述第二确定单元,具体用于对于所述候选转发路径对应的任一链路,确定该链路对应的待抢占数据流的最高优先级MAXPRI;
Figure FDA0003205408380000051
时,确定带宽抢占粒度;
若所述带宽抢占粒度小于等于第一预设阈值,则将该链路上优先级小于等于MAXPRI的数据流加入到待抢占的数据流候选集合,并对该待抢占的数据流候选集合中各数据流按照优先级从低到高排序,对于优先级相同的数据流按照带宽由大到小排序;
将该待抢占的数据流候选集合中各数据流的带宽单位转化为所述带宽抢占粒度,以得到数据流集合S;其中,S={S1,S2,...,Sk,...,Sn},S1,S2,...,Sk,...,Sn依次为该抢占的数据流候选集合中排序后的各数据流;
使用如下公式从数据流集合S中选择数据流集合X:
F(S,need')=min[F(S-1,need'),F(S-1,need'-bandwidth)+1]
其中,need'为将need的带宽单位转化为所述带宽抢占粒度后的数值,F(S,need')为从数据流集合S中选择出的总带宽超出need'最少的数据流集合中的数据流条数,F(S-1,need')为从数据流集合S-1中选择出的总带宽超出need'最少的数据流集合中的数据流条数,F(S-1,need'-bandwidth)为从数据流集合S-1中选择出的总带宽超出need'-bandwidth最少的数据流集合中的数据流条数,数据流集合S-1为数据流集合S中被移除一条数据流之后的数据流集合,bandwidth为该被移除的数据流的带宽;
将数据流集合X确定为该链路对应的待抢占的数据流集合;
所述第一确定单元,具体用于将所述候选转发路径对应的所有链路对应的待抢占的数据流集合的并集确定为该候选转发路径对应的待抢占的数据流集合。
9.根据权利要求8所述的装置,其特征在于,
所述第二确定单元,具体用于将MAXPRI的初始值设置为1;
判断
Figure FDA0003205408380000061
是否小于need;
若是,则设置MAXPRI=MAXPRI+1,返回执行所述判断;
若否,则确定对应的MAXPRI取值为该链路对应的待抢占数据流的最高优先级;
其中,1≤x≤MAXPRI,pribandwidth(x)为该链路上优先级为x的数据流的总带宽,need为待抢占的带宽,其为所述目标数据流的带宽与该链路的剩余可分配带宽的差值。
10.根据权利要求8所述的装置,其特征在于,
所述第二确定单元,具体用于当
Figure FDA0003205408380000062
时,将该链路上优先级小于等于MAXPRI的数据流加入到该链路对应的待抢占的数据流集合;
其中,1≤x≤MAXPRI,pribandwidth(x)为该链路上优先级为x的数据流的总带宽,need为待抢占的带宽,其为所述目标数据流的带宽与该链路的剩余可分配带宽的差值。
11.根据权利要求8所述的装置,其特征在于,
所述第二确定单元,还用于若所述带宽抢占粒度大于第一预设阈值,则将该链路上优先级小于等于MAXPRI的数据流加入到待抢占的数据流候选集合,并对该待抢占的数据流候选集合中各数据流按照优先级从高到低排序,对于优先级相同的数据流按照带宽由小到大排序;
按所述排序依次选择该待抢占的数据流候选集合中各数据流,对于所选择的数据流:判断删除该数据流后该待抢占的数据流候选集合中剩余数据流的总带宽是否大于等于need,若是,则从该待抢占的数据流候选集合中删除该数据流,并继续选择下一条数据流,并返回执行所述判断;否则,将该待抢占的数据流候选集合中各数据流加入到该链路对应的待抢占的数据流集合;
其中,1≤x≤MAXPRI,pribandwidth(x)为该链路上优先级为x的数据流的总带宽,need为待抢占的带宽,其为所述目标数据流的带宽与该链路的剩余可分配带宽的差值。
12.根据权利要求8所述的装置,其特征在于,
所述第二确定单元,具体用于将带宽抢占粒度Gra的初始值设置为1KB/S;
若need/Gra大于第二预设阈值,则将Gra设置为Gra*第二预设阈值,重复执行该操作,直至need/Gra小于等于所述第二预设阈值;其中,所述第二预设阈值小于所述第一预设阈值;
若该链路上优先级小于等于MAXPRI的数据流中带宽大于等于Gra的数据流的总带宽小于need,则将Gra设置为Gra/第二预设阈值,重复执行该操作,直至该链路上优先级小于等于MAXPRI的数据流中带宽大于等于Gra的数据流的总带宽大于等于need,将此时的Gra的值确定为所述带宽抢占粒度。
13.根据权利要求8所述的装置,其特征在于,
所述控制单元,还用于将所述被抢占的数据流集合中各数据流加入到被抢占数据流队列;其中,所述被抢占数据流队列中各数据流按照优先级从高到低排序,对于优先级相同的数据流按照带宽从大到小排序;
所述第一确定单元,还用于按照所述排序,依次将所述被抢占数据流队列中的各数据流确定为待调度的目标数据流。
14.根据权利要求8所述的装置,其特征在于,
所述第二确定单元,具体用于从对应的多个待抢占的数据流集合中,选择优先级最低的待抢占的数据流集合作为被抢占的数据流集合;
当存在多个优先级最低的待抢占的数据流集合时,选择优先级最低,且数据流的数量最少的待抢占的数据流集合作为被抢占的数据流集合;
当存在多个优先级最低,且数据流的数量最少的待抢占的数据流集合时,选择优先级最低、数据流的数量最少,且数据流的总带宽与剩余可分配带宽之和超出目标数据流的带宽最少的待抢占的数据流集合作为被抢占的数据流集合。
CN201810045885.5A 2018-01-17 2018-01-17 一种流量转发控制方法及装置 Active CN108199961B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810045885.5A CN108199961B (zh) 2018-01-17 2018-01-17 一种流量转发控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810045885.5A CN108199961B (zh) 2018-01-17 2018-01-17 一种流量转发控制方法及装置

Publications (2)

Publication Number Publication Date
CN108199961A CN108199961A (zh) 2018-06-22
CN108199961B true CN108199961B (zh) 2021-09-21

Family

ID=62589988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810045885.5A Active CN108199961B (zh) 2018-01-17 2018-01-17 一种流量转发控制方法及装置

Country Status (1)

Country Link
CN (1) CN108199961B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110365588B (zh) * 2019-07-16 2021-11-09 新华三技术有限公司合肥分公司 数据流调度方法、装置及sdn控制器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127708A (zh) * 2007-09-25 2008-02-20 中兴通讯股份有限公司 一种对用户实现分时分级带宽控制的方法和装置
CN101155131A (zh) * 2006-09-29 2008-04-02 中国电信股份有限公司 最小化路径抢占代价的标签交换路径建立方法
CN102255792A (zh) * 2010-05-21 2011-11-23 中兴通讯股份有限公司 组播业务的管理方法和装置
CN105263166A (zh) * 2015-09-06 2016-01-20 上海理工大学 基于优先级的双路径路由无线准入控制方法
CN105530202A (zh) * 2015-12-31 2016-04-27 迈普通信技术股份有限公司 一种带宽分配方法及服务器
CN105610712A (zh) * 2015-12-10 2016-05-25 北京理工大学 基于软件定义网络架构降低全网数据流转发延迟的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9848049B2 (en) * 2015-10-06 2017-12-19 Ciena Corporation Service preemption selection systems and methods in networks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155131A (zh) * 2006-09-29 2008-04-02 中国电信股份有限公司 最小化路径抢占代价的标签交换路径建立方法
CN101127708A (zh) * 2007-09-25 2008-02-20 中兴通讯股份有限公司 一种对用户实现分时分级带宽控制的方法和装置
CN102255792A (zh) * 2010-05-21 2011-11-23 中兴通讯股份有限公司 组播业务的管理方法和装置
CN105263166A (zh) * 2015-09-06 2016-01-20 上海理工大学 基于优先级的双路径路由无线准入控制方法
CN105610712A (zh) * 2015-12-10 2016-05-25 北京理工大学 基于软件定义网络架构降低全网数据流转发延迟的方法
CN105530202A (zh) * 2015-12-31 2016-04-27 迈普通信技术股份有限公司 一种带宽分配方法及服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
New preemption policies for diffserv-aware traffic engineering to minimize rerouting in mpls networks;Jaudelice C.de Oliveira;《IEEE/ACM》;20040831;第Ⅰ节introduction-第Ⅵ节 Conclusion *

Also Published As

Publication number Publication date
CN108199961A (zh) 2018-06-22

Similar Documents

Publication Publication Date Title
Intharawijitr et al. Analysis of fog model considering computing and communication latency in 5G cellular networks
US20140105023A1 (en) System and Method for Assigning Paths for Data Flows Through a Wide-Area Network
US9740534B2 (en) System for controlling resources, control pattern generation apparatus, control apparatus, method for controlling resources and program
JP5174667B2 (ja) 複数のインタフェイスを備える端末におけるリソースの最適化された管理方法
CN106411558B (zh) 一种数据流量限制的方法及系统
CN108965014A (zh) QoS感知的服务链备份方法及系统
US10917355B1 (en) Methods, systems and apparatuses for optimizing time-triggered ethernet (TTE) network scheduling by using a directional search for bin selection
CN107332766B (zh) 一种基于软件定义网络流调度下的提高网络吞吐量的方法
CN111694517B (zh) 分布式数据迁移方法、系统和电子设备
CN110414928B (zh) 业务流分类处理方法、装置和通信设备
US10261833B2 (en) Scheduling tasks to resources for a network using fuzzy logic
CN110708242A (zh) 流量调度方法、装置、电子设备及存储介质
CN108199961B (zh) 一种流量转发控制方法及装置
CN106533979B (zh) 一种网络更新方法及装置
CN110049018B (zh) 基于增强学习的spma协议参数优化方法、系统及介质
CN112995341B (zh) 一种面向复杂信息系统的云资源动态分配方法
WO2022062648A1 (zh) 一种自动驾驶仿真任务调度方法、装置、设备及可读介质
US20170344266A1 (en) Methods for dynamic resource reservation based on classified i/o requests and devices thereof
KR102461257B1 (ko) 네트워크 처리량 예측 장치 및 방법
CN114978913B (zh) 一种基于切链的服务功能链跨域部署方法及系统
CN107749819B (zh) 一种栅格网络条件下的路由选择方法及装置
WO2018161754A1 (zh) 一种隧道带宽资源回收方法及装置
CN110322078B (zh) 扇区边界的航班流量控制方法及计算机存储介质
Sato et al. Program file placement strategies for machine-to-machine service network platform in dynamic scenario
CN110780993A (zh) 一种基于Kubernetes的资源调度优化的方法、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant