本发明属于无线通信技术领域,具体是涉及一种网络拥塞控制方法和控制器。
背景技术:
在互联网络中,网络拥塞是影响骨干网络性能的主要因素,造成网络拥塞的原因很多,比如网络资源不足,网络负载不均衡导致局部拥塞等。因此,在为待传输的数据包选择传输路由的时候,合理的路由选择方法能够保证网络负载的均衡,对降低网络拥塞至关重要。
MPLS-TE是目前骨干网络中常用的一种解决由网络负载不均衡导致网络拥塞的方案。MPLS-TE结合了MPLS技术和流量工程TE,通过建立到达目的地的隧道来为确定的用户进行网络资源的预留,从而使网络流量能够绕开骨干网络中的一些核心路径即容易发生拥塞的路径,实现均衡网络负载、优化网络资源使用的目的。
但是,上述MPLS-TE方案中,往往会出现资源预留过渡的情况,而且选择确定的数据传输路径由于缺乏对网络全局负载的考虑,往往使得网络资源的利用率不高。
技术实现要素:
针对现有技术中存在的问题,本发明实提供一种网络拥塞控制方法和控制器,以用于克服现有技术所导致的网络资源利用率不高的缺陷。
本发明第一方面提供了一种网络拥塞控制方法,包括:
接收openflow交换机转发的数据包,并获取所述数据包的特征信息,所述特征信息包括目的IP地址和服务质量QoS信息;
根据所述QoS信息和预先获得的覆盖网络中每跳路径的状态信息确定所述每跳路径的评价函数值,所述每跳路径描述的是所述网络中相邻openflow交换机间的连接路径;
确定传输所述数据包的路径为达到所述目的IP地址的评价函数值之和最小的各跳路径。
在第一方面的第一种可能的实现方式中,所述接收openflow交换机转发的数据包,获取所述数据包的特征信息,所述特征信息包括目的IP地址和服务质量QoS信息,包括:
接收openflow交换机转发的数据包,并从所述数据包中提取所述特征信息;
或者,
接收openflow交换机转发的数据包,从所述数据包中提取所述目的IP地址和源IP地址;
根据所述源IP地址从本地存储的用户需求中获取所述QoS信息,所述源IP地址指示了所述数据包的发送用户。
根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述QoS信息和预先获得的网络中每跳路径的状态信息确定所述每跳路径的评价函数值之前,还包括:
若所述QoS信息中不包含QoS参数,则确定所述每跳路径的类型为一般类型;
相应的,所述根据所述QoS信息和预先获得的网络中每跳路径的状态信息确定所述每跳路径的评价函数值,包括:
根据公式(1)确定所述每跳路径的评价函数值:
C=α·e-λ·bw+β·M2+Λ+ζ.Mn (1)
其中,M1~Mn为任一跳路径的状态信息中包括的n个路径状态参数的取值,n≥1,其中,取M1=bw,为该任一跳路径的可用带宽,λ、α、β和ζ为权重系数。
根据第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,,所述根据所述QoS信息和预先获得的网络中每跳路径的状态信息确定所述每跳路径的评价函数值之前,还包括:
若所述QoS信息中包含至少一个QoS参数,则确定所述每跳路径的类型为特定类型;
根据所述每个QoS参数的优先级,确定所述数据包的QoS特征值;
相应的,所述根据所述QoS信息和预先获得的网络中每跳路径的状态信息确定所述每跳路径的评价函数值,包括:
根据公式(2)确定所述每跳路径的评价函数值:
其中,Cmetric为所述数据包的QoS特征值,Cm1~Cmm分别为所述QoS信息中包含的m个QoS参数的取值,m≥1,M1~Mm为分别与Cm1~Cmm对应的路径状态参数的取值。
根据第一方面、第一方面的第一种、第二种或第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据所述QoS信息和预先获得的网络中每跳路径的状态信息确定所述每跳路径的评价函数值之前,还包括:
根据公式(3)确定所述每跳路径的惩罚函数值:
其中,u为从所述M1~Mn的n个路径状态参数中预先规定的一个作为衡量路径状态的路径状态衡量参数的取值,uc为预设惩罚阈值,U为路径状态衡量阈值;
相应的,所述根据所述QoS信息和预先获得的网络中每跳路径的状态信息确定所述每跳路径的评价函数值,包括:
根据公式(4)确定所述每跳路径的评价函数值。
其中,w为惩罚因子,对于一般类型的路径,根据η·|α·e-λ·bw+β·M2+γ·M3+Λ+ζ·Mn|确定,对于特定类型的路径,根据确定,η为权重系数,|.|为取模运算。
根据第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述根据所述QoS信息和预先获得的网络中每跳路径的状态信息确定所述每跳路径的评价函数值之前,还包括:
根据所述每跳路径的状态信息,确定所述网络中的拥塞区域;
判断所述每跳路径中是否存在位于所述拥塞区域中的路径;
若存在,则根据公式(5)确定位于所述拥塞区域中的每跳路径的评价函数值:
若不存在,则根据所述公式(4)确定所述每跳路径的评价函数值。
根据第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述根据所述每跳路径的状态信息,确定所述网络中的拥塞区域,包括:
确定所述路径状态衡量参数的取值高于所述路径状态衡量阈值,且路径距离小于预设距离阈值的各跳路径所组成的区域为拥塞区域。
根据第一方面、第一方面的第一种、第二种、第三种、第四种、第五种或第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述接收openflow交换机转发的数据包,并提取所述数据包的特征信息,包括:
接收多个openflow交换机转发的多个数据包,所述多个数据包中的每个数据包的所述特征信息中还包括数据包的优先级信息;
所述接收openflow交换机转发的数据包之后,还包括:
根据预设规则对所述每个数据包的优先级信息进行汇聚,得到多个优先级等级,所述多个优先级等级的数量小于或等于所述多个优先级信息的数量;
根据所述优先级等级由高到低的顺序依次处理所述多个数据包,并且并行确定同一优先级等级的各数据包的传输路径。
本发明第二方面提供了一种控制器,包括:
接收模块,用于接收openflow交换机转发的数据包,并获取所述数据包的特征信息,所述特征信息包括目的IP地址和服务质量QoS信息;
处理模块,用于根据所述QoS信息和预先获得的覆盖网络中每跳路径的状态信息确定所述每跳路径的评价函数值,所述每跳路径描述的是所述网络中相邻openflow交换机间的连接路径;
第一确定模块,用于确定传输所述数据包的路径为达到所述目的IP地址的评价函数值之和最小的各跳路径。
在第二方面的第一种可能的实现方式中,所述接收模块,用于:
接收openflow交换机转发的数据包,并从所述数据包中提取所述特征信息;
或者,
接收openflow交换机转发的数据包,从所述数据包中提取所述目的IP地址和源IP地址;
根据所述源IP地址从本地存储的用户需求中获取所述QoS信息,所述源IP地址指示了所述数据包的发送用户。
根据第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述控制器,还包括:
第二确定模块,用于若所述QoS信息中不包含QoS参数,则确定所述每跳路径的类型为一般类型;
相应的,所述处理模块,用于:
根据公式(1)确定每跳路径的评价函数值:
C=α·e-λ·bw+β·M2+Λ+ζ.Mn (1)
其中,M1~Mn为任一跳路径的状态信息中包括的n个路径状态参数的取值,n≥1,其中,取M1=bw,为该任一跳路径的可用带宽,λ、α、β和ζ为权重系数。
根据第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第二确定模块,还用于:
若所述QoS信息中包含至少一个QoS参数,则确定所述每跳路径的类型为特定类型;
相应的,所述控制器,还包括:
第三确定模块,用于根据所述每个QoS参数的优先级,确定所述数据包的QoS特征值;
相应的,所述处理模块,用于:
根据公式(2)确定所述每跳路径的评价函数值:
其中,Cmetric为所述数据包的QoS特征值,Cm1~Cmm分别为所述QoS信息中包含的m个QoS参数的取值,m≥1,M1~Mm为分别与Cm1~Cmm对应的路径状态参数的取值。
根据第二方面、第二方面的第一种、第二种或第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述控制器还包括:
第四确定模块,用于根据公式(3)确定所述每跳路径的惩罚函数值:
其中,u为从所述M1~Mn的n个路径状态参数中预先规定的一个作为衡量路径状态的路径状态衡量参数的取值,uc为预设惩罚阈值,U为路径状态衡量阈值;
相应的,所述处理模块,用于:
根据公式(4)确定所述每跳路径的评价函数值。
其中,w为惩罚因子,对于一般类型的路径,根据η·|α·e-λ·bw+β·M2+γ·M3+Λ+ζ·Mn|确定,对于特定类型的路径,根据确定,η为权重系数,|.|为取模运算。
根据第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述控制器,还包括:
第五确定模块,用于根据所述每跳路径的状态信息,确定所述网络中的拥塞区域;
判断模块,用于判断所述每跳路径中是否存在位于所述拥塞区域中的路径;
若存在,则所述处理模块用于:根据公式(5)确定位于所述拥塞区域中的每跳路径的评价函数值:
若不存在,则所述处理模块用于:根据所述公式(4)确定所述每跳路径的评价函数值。
根据第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述第五确定模块,具体用于:
确定所述路径状态衡量参数的取值高于所述路径状态衡量阈值,且路径距离小于预设距离阈值的各跳路径所组成的区域为拥塞区域。
根据第二方面、第二方面的第一种、第二种、第三种、第四种、第五种或第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述接收模块,具体用于:
接收多个openflow交换机转发的多个数据包,所述多个数据包中的每个数据包的所述特征信息中还包括数据包的优先级信息;
所述控制器,还包括:
汇聚模块,用于根据预设规则对所述每个数据包的优先级信息进行汇聚,得到多个优先级等级,所述多个优先级等级的数量小于或等于所述多个优先级信息的数量;
相应的,所述处理模块,用于根据所述优先级等级由高到低的顺序依次处理所述多个数据包,并且并行确定同一优先级等级的各数据包的传输路径。
本发明提供的网络拥塞控制方法和控制器,在SDN架构下,当控制器接收到openflow交换机转发的数据包时,提取该数据包的特征信息,其中,特征信息包括目的IP地址和服务质量QoS信息,并根据该QoS信息和预先获得的覆盖的网络中每跳路径的状态信息确定网络中每跳路径的评价函数值,最终选择到达目的IP地址的、由评价函数之和最小的各跳路径所构成的路径来传输该数据包。根据综合考虑了数据包特征和网络状态特征的评价函数来进行路径的选择,既有利于保证数据包的QoS需求,又有利于保证网络的负载均衡,从而有效降低了网络拥塞的可能性的同时,提高了网络的资源利用率。
附图说明
图1为本发明实施例一提供的网络拥塞控制方法的流程图;
图2为本发明实施例二提供的网络拥塞控制方法的流程图;
图3为本发明实施例三提供的控制器的结构示意图;
图4为本发明实施例四提供的控制器的结构示意图;
图5为本发明实施例五提供的控制器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的网络拥塞控制方法的流程图,如图1所示,本实施例提供的所述方法适用于在采用软件定义网络(Software Defined Network,以下简称SDN)网络架构的网络中进行网络拥塞控制。所谓SDN,就是将传统网络架构下的网络交换机或路由器中的控制功能从设备中分离出来,交由SDN中的控制器(Controller)来完成,原有的网络交换机或路由器只负责数据转发功能,从而实现了控制层面与数据层面的分离。在SDN中,控制器和交换机间使用openflow协议进行通信,因此,称SDN网络中的交换机为openflow交换机。在SDN网络中,由控制器对SDN网络中的所有数据流的传输进行集中的控制管理,openflow交换机仅通过执行控制器下发的流处理规则以完成数据流的转发等处理。本实施例提供的所述方法可以由SDN网络中的控制器来执行。
本实施例提供的所述方法具体包括如下步骤:
步骤101、接收openflow交换机转发的数据包,并提取所述数据包的特征信息,所述特征信息包括目的IP地址和服务质量QoS信息;
在SDN网络中,当某openflow交换机接收到一个数据包时,会根据本地存储的流表匹配该数据包,当未匹配到与该数据包对应的流表项时,将该数据包转发给控制器,以由控制器为该数据包计算传输路径。
控制器在接收到该openflow交换机转发的数据包后,需获取该数据包的特征信息,具体地,一方面可以从该数据包中提取所述特征信息,比如提取该数据包头部中所包含的特征信息,该特征信息例如包括目的IP地址、QoS信息,该QoS信息例如可以包括时延、带宽等参数。可以理解的是,该数据包的特征信息例如还可以包括业务类型、网络协议类型等信息。另一方面,还可以从所述数据包中提取所述目的IP地址和源IP地址,并根据所述源IP地址从本地存储的用户需求中获取所述QoS信息,所述源IP地址指示了所述数据包的发送用户。比如说,控制器中存储有各用户的用户需求信息,该用户需求信息例如包括各用户对其发送的数据包在延时、优先级、业务类型等QoS方面提出具体要求,从而控制器在接收到数据包后,以该数据包中的源IP地址为用户标识查找到对应用户的用户需求,以从中获得该数据包的QoS信息。除此之外,控制器也可以根据预先获得的网络负荷情况、网络中各openflow交换机的处理能力等情况自定义接收到的数据包的QoS信息,比如是否为接收到的数据包配置QoS参数,配置哪些QoS参数等。
步骤102、根据所述QoS信息和预先获得的覆盖网络中每跳路径的状态信息确定所述每跳路径的评价函数值;
在SDN网络架构中,控制器可以实时或周期获得其覆盖网络中每跳路径的状态信息,即各相邻openflow交换机间连接路径的状态信息,该状态信息可以是控制器通过查询其覆盖范围内各openflow交换机的端口信息统计获得的,比如,控制器可以查询获得两相邻openflow交换机的端口信息中包含的计数器的值、已用带宽值等,进而可以根据计数器所记录的转发次数和已用带宽值获得这两个相邻openflow交换机间路径的利用率、可用带宽等状态信息。
本实施例中,控制器根据接收到的数据包的QoS信息和预先获得的覆盖网络中每跳路径的状态信息确定所述每跳路径的评价函数值。该评价函数值作为选择数据包传输路径的依据,综合考虑了数据包的特征信息和网络中每跳路径的状态信息,比如既考虑了数据包的QoS、业务类型等特征信息,又考虑了当前网络中每跳路径的可用带宽、利用率、时延等状态信息。以该评价函数为依据,有利于保证用户体验、满足用户对服务质量的需求,同时,有利于实现负载均衡。值得说明的是,根据网络的实际运行情况,可以适当合理调整每跳路径的评价函数中各参数的权重,突出重要参数对网络负载均衡的影响。
步骤103、确定传输所述数据包的路径为达到所述目的IP地址的评价函数值之和最小的各跳路径。
最后,控制器确定能够到达所述目的IP地址的,且每跳路径的评价函数值之和最小的各跳路径作为传输所述数据包的路径。
可以理解的是,控制器可以采用现有技术中的路由算法来计算将数据包从源IP地址传输到目的IP地址的路径,只是,在计算过程中,路径选择的基于采用本实施例所述的评价函数。比如说,控制器可以先计算出多条达到目的IP地址的路径,之后在这多条可能路径中选择每跳的评价函数值之和最小的那条路径来传输数据包;或者,控制器可以先计算网络中每跳路径的评价函数值,之后以达到目的IP地址的矢量方向为指导,确定出到达目的IP地址的每跳路径的评价函数值之和最小的那条路径作为数据包的传输路径。
本实施例中,当控制器接收到openflow交换机转发的数据包时,提取该数据包的特征信息,其中,特征信息包括目的IP地址和服务质量QoS信息,并根据该QoS信息和预先获得的网络中每跳路径的状态信息确定网络中每跳路径的评价函数值,最终选择到达目的IP地址的、由评价函数之和最小的各跳路径所构成的路径来传输该数据包。根据综合考虑了数据包特征和网络状态特征的评价函数来进行路径的选择,既有利于保证数据包的QoS需求,又有利于保证网络的负载均衡,从而有效降低了网络拥塞的可能性的同时,提高了网络的资源利用率。
图2为本发明实施例二提供的网络拥塞控制方法的流程图,如图2所示,本实施例的方法包括:
步骤201、接收多个openflow交换机转发的多个数据包,所述多个数据包中的每个数据包的所述特征信息中还包括数据包的优先级信息;
本实施例中,同一时间,控制器很有可能接收到多个不同的openflow交换机转发的多个数据包。此时,既可以对这些多个数据包进行随机缓存,即随机排序这些数据包并进行队列缓存,之后逐个处理,优选地,也可以采用本实施例提供的方法对多个数据包进行优先级等级划分,按照优先级等级顺序依次处理,对于属于同一优先级等级的各数据包,并行同时处理。
因此,控制器接收到多个数据包之后,提取的数据包的特征信息中不仅包含诸如QoS信息、目的IP地址等信息,还包括对应数据包的优先级信息,该优先级信息例如包括业务类型、网络协议类型、端口号等的任一种或多种。
步骤202、根据预设规则对所述每个数据包的优先级信息进行汇聚,得到多个优先级等级,所述多个优先级等级的数量小于或等于所述多个优先级信息的数量;
本实施例中,以业务类型举例说明,不同数据包的业务类型具有不同的优先级,比如语音类业务具有最高优先级,以5标识,FTP业务的优先级为4、WEB业务的优先级为3、FTTP业务的优先级为2,其他业务优先级为1。假设当前接收到5个数据包,优先级分别为5、2、4、1、4,假设上述汇聚优先级的预设规则为对接收到的多个(5个)数据包的优先级按照从高到低进行排序,相邻的两种优先级为一个汇聚单位,且相同优先级汇聚在一起,从而上述举例中获得的汇聚结果为[5,4]、[2]和[1]三个优先级等级,其中,[5,4]代表的是将优先级为5和4的所有数据包汇聚为一个优先级等级。
本实施例中,控制器按照优先级等级从高到低的顺序依次处理各优先级等级中包括的数据包,对于属于同一个优先级等级的各数据包进行并行处理,即同时分别计算同一优先级等级中各数据包的传输路径,相当于控制器以多个并行的处理进程分别计算该各数据包的传输路径。由于对同一优先级等级中各数据包的传输路径的确定方法相似,以下仅以同一优先级等级中的任一个数据包为例进行说明。
步骤203、确定所述QoS信息中是否包含至少一个QoS参数,若包含,则执行步骤204,否则执行步骤206;
步骤204、确定所述每跳路径的类型为特定类型;
步骤205、根据所述每个QoS参数的优先级,确定所述数据包的QoS特征值;
步骤206、确定所述每跳路径的类型为一般类型;
根据公式(1)确定所述每跳路径的评价函数值:
C=α·e-λ·bw+β·M2+Λ+ζ.Mn (1)
其中,M1~Mn为所述状态信息中包括的n个路径状态参数的取值,n≥1,其中,取M1=bw,为路径的可用带宽,λ、α、β和ζ为权重系数。
本实施例中,针对属于同一优先级等级中的任一个数据包,根据该数据包的QoS信息来确定当前网络中每跳路径的路径类型。具体的,如果该QoS信息中包含至少一个QoS参数,那么确定每跳路径的路径类型为特定类型。之后,根据QoS信息中包含的各QoS参数的优先级,确定该数据包的QoS特征值,进而,可选的,可以根据公式(2)确定所述每跳路径的评价函数值:
其中,M1~Mn为每跳路径的状态信息中包括的n个路径状态参数的取值,n≥1,λ、α、β、τ和ζ为权重系数,Cmetric为所述数据包的QoS特征值,Cm1~Cmm分别为所述QoS信息中包含的m个QoS参数的取值,m≥1,M1~Mm为分别与Cm1~Cmm对应的路径状态参数的取值。进一步地,上述各状态信息为进行归一化处理后的结果,即,为实时获得的任一跳路径的路径状态参数值,为当前网络中对应的该路径状态参数值的最大值。
其中,根据QoS信息中包含的各QoS参数的优先级,确定该数据包的QoS特征值,举例来说,比如该数据包的QoS信息中包含的QoS参数为最小时延、带宽和抖动,且要求优先保证最小时延,其次是带宽,最后是抖动,即QoS参数的优先级排序为时延、带宽、抖动。针对时延、带宽、抖动,假设分别的取值为Cm1=4,Cm2=2,Cm3=1,则将该取值转换为十进制的,得到数据包的QoS特征值为Cmetric=7。可以理解的是,上述公式(2)中相加的各项参数是按照重要程度依次递减排列的,即比如按照QoS参数的优先级顺序排列。另外,假设数据包中包含m个QoS参数,而且公式(2)中每跳路径的n个状态参数中,也有m个路径状态参数是与m个QoS参数一一对应的,即比如QoS参数中包括带宽,路径的状态信息中也包括带宽这个路径状态参数,那么两者相乘的乘机取对数作为公式(2)中相加的一项,从而突出了带宽对路径选择的影响。
进一步地,如果数据包的QoS信息中不包含QoS参数,那么确定每跳路径的路径类型为一般类型,则可选的,可以采用公式(1)来确定所述每跳路径的评价函数值。在公式(1)中,对于一般类型的路径,路径的状态信息中包括带宽,通过对带宽取指数的方式,加大带宽在传输路径选择过程中的影响比重。
步骤207、根据公式(3)确定所述每跳路径的惩罚函数值:
其中,u为从M1~Mn的n个路径状态参数中预先规定的一个作为衡量路径状态的路径状态衡量参数的取值,uc为预设惩罚阈值,U为路径状态衡量阈值;
本实施例中每跳路径的评价函数中不仅包括每跳路径的状态信息和数据包的QoS信息,进一步地,还根据每跳路径的路径状态,赋予每跳路径一个惩罚函数值。具体地,可以从每跳路径的状态信息中包含的n个路径状态参数中预先根据各状态参数的影响重要程度,预先确定一个用于衡量每跳路径的路径状态的路径状态衡量参数,进而分别获取每跳路径中该路径状态衡量参数的取值,采用上述公式(3)分别计算获得与每跳路径对应的各惩罚函数值。该惩罚函数的存在,有利于在进行数据包传输路径选择的时候,避免选择惩罚函数值较高的各跳路径,从而有利于均衡网络负载,控制网络拥塞。
步骤208、确定所述网络状态衡量参数的取值高于所述网络状态衡量阈值,且路径距离小于预设距离阈值的各跳路径所组成的区域为拥塞区域;
步骤209、判断所述每跳路径中是否存在位于所述拥塞区域中的路径,若存在,则执行步骤210,否则执行步骤211;
步骤210、根据公式(5)确定位于所述拥塞区域中的每跳路径的评价函数值:
步骤211、根据所述公式(4)确定所述每跳路径的评价函数值:
其中,w为惩罚因子,对于一般类型的路径,根据η·|α·e-λ·bw+β·M2+γ·M3+Λ+ζ·Mn|确定,对于特定类型的路径,根据确定,η为权重系数,|.|为取模运算。
步骤212、确定传输所述数据包的路径为达到所述目的IP地址的评价函数值之和最小的各跳路径。
再进一步,本实施例中对每跳路径还加入了区域性惩罚策略。具体来说,控制器根据每跳路径的状态信息,首先确定网络中的拥塞区域。具体地,确定预先规定的所述路径状态衡量参数的取值高于所述路径状态衡量阈值,且路径距离小于预设距离阈值的各跳路径所组成的区域为拥塞区域。以路径状态衡量参数为利用率为例说明,对于利用率高于利用率阈值的各跳路径,若该各跳路径呈现区域性特点,即之间的路径距离小于预设距离阈值,则确定满足该条件的各跳路径所构成的区域为拥塞区域。进而,判断网络中的每跳路径中是否存在位于所述拥塞区域中的路径,若存在,则根据公式(5)确定每跳路径的评价函数值,否则根据公式(4)确定所述每跳路径的评价函数值。公式(5)中,加重了对属于拥塞区域中的各跳路径的惩罚,进一步提高了网络负载的均衡。值得说明的是,本实施例中仅加重了对位于拥塞区域中各跳路径的惩罚,进一步的,还可以加重对位于拥塞区域中各openflow交换机的惩罚,比如将该各openflow交换机的处理能力减半。
最后,确定传输所述数据包的路径为达到所述目的IP地址的评价函数值之和最小的各跳路径。
本实施例中,当控制器接收到多个数据包,需要为该多个数据包进行传输路径的确定时,通过以数据包的优先级信息为依据,进行处理优先级等级的划分,可以并行处理同一优先级等级中的各数据包,有利于提高处理效率;在确定传输路径的过程中,每跳路径的评价函数中综合考虑了数据包的特征信息、每跳路径的状态信息,针对每跳路径,根据每跳路径的状态信息和网络的拥塞区域,进一步设置了每跳路径的惩罚机制,进一步提高了网络负载的均衡,从而有利于提高对网络拥塞的控制效果。
图3为本发明实施例三提供的控制器的结构示意图,如图3所示,该控制器包括:
接收模块11,用于接收openflow交换机转发的数据包,并获取所述数据包的特征信息,所述特征信息包括目的IP地址和服务质量QoS信息;
处理模块12,用于根据所述QoS信息和预先获得的覆盖网络中每跳路径的状态信息确定所述每跳路径的评价函数值,所述每跳路径描述的是所述网络中相邻openflow交换机间的连接路径;
第一确定模块13,用于确定传输所述数据包的路径为达到所述目的IP地址的评价函数值之和最小的各跳路径。
具体地,所述接收模块11,用于:
接收openflow交换机转发的数据包,并从所述数据包中提取所述特征信息;
或者,
接收openflow交换机转发的数据包,从所述数据包中提取所述目的IP地址和源IP地址;
根据所述源IP地址从本地存储的用户需求中获取所述QoS信息,所述源IP地址指示了所述数据包的发送用户。
本实施例的控制器可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图4为本发明实施例四提供的控制器的结构示意图,如图4所示,该控制器在图3所示实施例的基础上,还包括:
第二确定模块21,用于若所述QoS信息中不包含QoS参数,则确定所述每跳路径的类型为一般类型;
相应的,所述处理模块12,用于:
根据公式(1)确定每跳路径的评价函数值:
C=α·e-λ·bw+β·M2+Λ+ζ.Mn (1)
其中,M1~Mn为所述状态信息中包括的n个路径状态参数的取值,n≥1,其中,取M1=bw,为路径的可用带宽,λ、α、β和ζ为权重系数。
进一步地,所述第二确定模块21,还用于:
若所述QoS信息中包含至少一个QoS参数,则确定所述每跳路径的类型为特定类型;
相应的,所述控制器,还包括:
第三确定模块22,用于根据所述每个QoS参数的优先级,确定所述数据包的QoS特征值;
相应的,所述处理模块12,用于:
根据公式(2)确定所述每跳路径的评价函数值:
其中,Cmetric为所述数据包的QoS特征值,Cm1~Cmm分别为所述QoS信息中包含的m个QoS参数的取值,m≥1,M1~Mm为分别与Cm1~Cmm对应的路径状态参数的取值。
进一步地,所述控制器还包括:
第四确定模块23,用于根据公式(3)确定所述每跳路径的惩罚函数值:
其中,u为从M1~Mn的n个路径状态参数中预先规定的一个作为衡量路径状态的路径状态衡量参数的取值,uc为预设惩罚阈值,U为路径状态衡量阈值;
相应的,所述处理模块12,用于:
根据公式(4)确定所述每跳路径的评价函数值。
其中,w为惩罚因子,对于一般类型的路径,根据η·|α·e-λ·bw+β·M2+γ·M3+Λ+ζ·Mn|确定,对于特定类型的路径,根据确定,η为权重系数,|.|为取模运算。
进一步地,所述控制器还包括:
第五确定模块24,用于根据所述每跳路径的状态信息,确定所述网络中的拥塞区域;
判断模块25,用于判断所述每跳路径中是否存在位于所述拥塞区域中的路径;
若存在,则所述处理模块12用于:根据公式(5)确定位于所述拥塞区域中的每跳路径的评价函数值:
若不存在,则所述处理模块12用于:根据所述公式(4)确定所述每跳路径的评价函数值。
具体地,所述第五确定模块24,具体用于:
确定所述路径状态衡量参数的取值高于所述路径状态衡量阈值,且路径距离小于预设距离阈值的各跳路径所组成的区域为拥塞区域。
具体地,所述接收模块11,具体用于:
接收多个openflow交换机转发的多个数据包,所述多个数据包中的每个数据包的所述特征信息中还包括数据包的优先级信息;
所述控制器,还包括:
汇聚模块26,用于根据预设规则对所述每个数据包的优先级信息进行汇聚,得到多个优先级等级,所述多个优先级等级的数量小于或等于所述多个优先级信息的数量;
相应的,所述处理模块12,用于根据所述优先级等级由高到低的顺序依次处理所述多个数据包,并且并行确定同一优先级等级的各数据包的传输路径。
本实施例的控制器可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明实施例五提供的处理设备的结构示意图,该处理设备包括:
接收器31、存储器32以及与所述存储器32连接的处理器33,其中,所述接收器31用于接收openflow交换机转发的数据包,并获取所述数据包的特征信息,所述特征信息包括目的IP地址和服务质量QoS信息;
所述存储器32用于存储一组程序代码,所述处理器33用于调用所述存储器32中存储的程序代码,以执行如图1所示网络拥塞控制方法中的:根据所述QoS信息和预先获得的覆盖网络中每跳路径的状态信息确定所述每跳路径的评价函数值,所述每跳路径描述的是所述网络中相邻openflow交换机间的连接路径;确定传输所述数据包的路径为达到所述目的IP地址的评价函数值之和最小的各跳路径。
进一步地,所述接收器31还用于接收openflow交换机转发的数据包,并从所述数据包中提取所述特征信息;或者,接收openflow交换机转发的数据包,从所述数据包中提取所述目的IP地址和源IP地址;根据所述源IP地址从本地存储的用户需求中获取所述QoS信息,所述源IP地址指示了所述数据包的发送用户。
进一步地,所述处理器33还用于若所述QoS信息中不包含QoS参数,则确定所述每跳路径的类型为一般类型;根据公式(1)确定所述每跳路径的评价函数值:
C=α·e-λ·bw+β·M2+Λ+ζ.Mn (1)
其中,M1~Mn为任一跳路径的状态信息中包括的n个路径状态参数的取值,n≥1,其中,取M1=bw,为该任一跳路径的可用带宽,λ、α、β和ζ为权重系数。
进一步地,所述处理器33还用于若所述QoS信息中包含至少一个QoS参数,则确定所述每跳路径的类型为特定类型;根据所述每个QoS参数的优先级,确定所述数据包的QoS特征值;根据公式(2)确定所述每跳路径的评价函数值:
其中,Cmetric为所述数据包的QoS特征值,Cm1~Cmm分别为所述QoS信息中包含的m个QoS参数的取值,m≥1,M1~Mm为分别与Cm1~Cmm对应的路径状态参数的取值。
进一步地,所述处理器33还用于根据公式(3)确定所述每跳路径的惩罚函数值:
其中,u为从所述M1~Mn的n个路径状态参数中预先规定的一个作为衡量路径状态的路径状态衡量参数的取值,uc为预设惩罚阈值,U为路径状态衡量阈值;根据公式(4)确定所述每跳路径的评价函数值。
其中,w为惩罚因子,对于一般类型的路径,根据η·|α·e-λ·bw+β·M2+γ·M3+Λ+ζ·Mn|确定,对于特定类型的路径,根据确定,η为权重系数,|.|为取模运算。
进一步地,所述处理器33还用于根据所述每跳路径的状态信息,确定所述网络中的拥塞区域;判断所述每跳路径中是否存在位于所述拥塞区域中的路径;若存在,则根据公式(5)确定位于所述拥塞区域中的每跳路径的评价函数值:
若不存在,则根据所述公式(4)确定所述每跳路径的评价函数值。
进一步地,所述处理器33还用于确定所述路径状态衡量参数的取值高于所述路径状态衡量阈值,且路径距离小于预设距离阈值的各跳路径所组成的区域为拥塞区域。
进一步地,所述接收器31还用于接收多个openflow交换机转发的多个数据包,所述多个数据包中的每个数据包的所述特征信息中还包括数据包的优先级信息;
相应的,所述处理器33还用于根据预设规则对所述每个数据包的优先级信息进行汇聚,得到多个优先级等级,所述多个优先级等级的数量小于或等于所述多个优先级信息的数量;根据所述优先级等级由高到低的顺序依次处理所述多个数据包,并且并行确定同一优先级等级的各数据包的传输路径。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。