一种软件定义网络的控制方法和控制装置与流程

文档序号:13168854阅读:348来源:国知局
一种软件定义网络的控制方法和控制装置与流程

本申请涉及通信技术领域,尤其涉及一种软件定义网络的控制方法和控制装置。



背景技术:

为解决数据通信过程中的网络拥塞问题,基于openflow协议的软件定义网络(softwaredefinednetwork)已经得到了广泛应用;软件定义网络包括openflow交换机和控制器;控制器维护网络拓扑,建立端到端数据传输的流表,并将流表下发给对应的openflow交换机,使得数据流在流表确定的转发路径中传输。

为避免网络拥塞,控制器需要监控网络的流量状态,避免网络出现严重的拥塞问题。目前,控制器通过监测网络核心层和边缘层的链路负载状态,并针对网络链路中的拥塞情况下重新规划边缘层的网络转发路由;由于这一监控方法采用终端处的拥塞管理,信令开销较大,控制器的运算量较大。



技术实现要素:

本申请提供了一种软件定义网络的控制方法和控制装置,以解决软件定义网络采用终端处的拥塞管理而信令开销较大、控制器运算量较大的问题。

本发明实施例提供一种软件定义网络的控制方法,包括以下步骤:

当链路的负载大于设定的拥塞上限时,确定此链路为关键度最大的链路;

更改关键度最大的链路中数据流的转发流表并下发所述转发流表,以使所述数据流按照所述转发流表对应的转发路由传输。

可选的,按照下述步骤更改关键度最大链路中数据流的转发流表:

确定关键度最大链路中数据流中的最大数据流;

更改所述最大数据流的转发流表。

可选的,按照下述步骤更改所述最大数据流的转发流表:

计算所述最大数据流的所有可用流表;

将最大数据流的转发流表更改为所有可用流表中开销最小的转发流表。

可选的,还包括:监测所述转发流表对应链路的拥塞度;

如果拥塞度大于设定的拥塞上限,则降低源主机的发包速率。

本发明实施例提供一种软件定义网络的控制装置,包括:

监测模块,用于监测链路的负载是否大于设定的拥塞上限;

选择模块,用于当监测模块监测到链路的负载大于设定的拥塞上限时,选择此链路为关键度最大的链路;

控制模块,用于更改关键度最大的链路中数据流的转发流表并下发所述转发流表,以使所述数据流按照所述转发流表对应的转发路由传输。

可选的,所述选择模块确定关键度最大链路中数据流的最大数据流,更改所述最大数据流的转发流表。

可选的,所述选择模块计算所述最大数据流的所有可用流表,并将最大数据流的转发流表更改为所有可用流表中开销最小的转发流表。

可选的,监测模块还用于监测所述转发流表对应的转发路由中各个链路的拥塞度;

还包括调整模块;所述调整模块用于在所述转发流表对应的链路拥塞度大于设定的拥塞上限时,降低源主机的发包速率。

采用本实施例提供的控制方法和控制装置,当控制器在确定关键度最大的链路时,即修改经过关键度最大的链路中的数据流的转发流表,使得关键度最大链路中的数据流通过其他的转发路径转发,解除关键度最大链路的拥塞状况,提高网络的效率。

附图说明

为更清楚地说明背景技术或本发明的技术方案,下面对现有技术或具体实施方式中结合使用的附图作简单地介绍;显而易见地,以下结合具体实施方式的附图仅是用于方便理解本发明实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图;

图1是实施例提供的软件定义网络的控制方法流程图;

图2是实施例提供的软件定义网络控制装置示意图;

其中:11-监测模块,12-选择模块,13-控制模块,14-调整模块。

具体实施方式

本发明实施例提供一种软件定义网络的控制方法和控制装置,可以有效地调度网络的拥塞程度,避免网络中链路超过拥塞上限。

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

图1是实施例提供的软件定义网络的控制方法流程图。如图1所示,本实施例提供的控制方法包括以下步骤。

s101:监测网络的链路负载,当链路的负载大于设定的拥塞上限时,确定此链路关键度最大的链路。

当软件定义网络部署完成后,也就是控制器以及openflow交换机部署完成后,软件定义网络开始初始化;控openflow交换机向控制发送各个网络接口的接口数据;控制器在获得各个openflow交换机发送的接口数据后,建立整个网络的网络拓扑,并计算每一个节点之间的所有可能路径。

控制器将所有可能的路径按照条数的升序的方式排列,并从基于条数的多条最短路径中选择一条可用带宽最大的路径作为主路径,实现相应数据流的转发。

当然,此时如果网络中增加新的openflow交换机或者一些openflow交换机脱离网络时,控制器也会对网络拓扑进行更新。

本实施例中,控制器会周期性的向各个openflow交换机发送查询命令,以查询各个openflow交换机的结构状态,并实现对所有链路的流量监控、计算链路的负载状态。

当控制器确定交换机的的链路负载大于设定的拥塞上限时,控制器即确定了链路关键度最大的链路。而正式因为此链路的负载过大,降低了数据流的转发效率。

s102:更改关键度最大的链路中数据流的转发流表。

应当注意,本实施例中,软件定义网络中存在冗余路径,以保证当某一链路断开时,网络可以更改转发流表实现相应数据流的传输。当前述链路出现拥塞时,为避免因为拥塞而造成数据流传输效率,本实施例中,控制器在确定关键度最大的链路时,即修改经过关键度最大的链路中的数据流的转发流表,使得关键度最大链路中的数据流通过其他的转发路径转发,解除关键度最大链路的拥塞状况,提高网络的效率。

实际应用中,当部分数据流被重新规划路由表后,关键度最大链路中的负荷就可以得到缓解,关键度最大链路也就可以按照正常的转发速率实现数据流的转发,因此实际应用中不需要转移关键度最大链路中所有数据流。因此,本实施例中按照下述步骤更改链路关键度最大链路中数据流的转发流表,首先是确定链路关键度最大链路中数据流中的最大数据流;其次,更改最大数据流的转发流表。

在进行数据转发过程中,openflow交换机会统计各种数据流的是否为同一转发路径的数据流,并统计各个数据流的数据包数量。因为最大数据流占用最多的openflow交换机的内存资源和链路资源,所以转移最大数据流,openflow交换机的负荷可以得到很大缓解。另外,仅更改最大数据流的转发流表还可以降低控制器计算消耗,减小控制器开销以及下发流表、实现数据流转发路径改变的开销。

当然,在其他实施例中,也可以更改多个数据流的转发路径,;多个数据流可以是按照流量大小确定,也可以随机选择确定。

进一步的,更改最大数据流的转发流表包括以下步骤:首先,计算最大数据流的所有可用流表;随后,选择所有可用流表中开销最小的转发流表作为前述转发流表,并将转发流表的下发至对应的openflow交换机。采用此种选择方法,可以减小整个网络的负载。

此外,在一些具体应用中,网络出现拥塞(表现为关键度最大链路出现拥塞)可能是因为整个网络负载过大,也就是源主机发送的数据流的速率过大造成。因此,即使更改了最大数据流的转发流表,相应的转发流表对应的转发路由中的各个链路仍可能出现拥塞,此时即使再更改转发流表仍不能解决拥塞问题。为此,本发明实施例提供的方法还包括步骤s103和s104。

s103:监测转发流表对应的转发路由中各个链路的拥塞度;

s104:如果拥塞度大于设定的拥塞上限,则降低源主机的发包速率。

因为源主机的发包速率降低,所以整个转发流表中openflow交换机的数据流量降低,也就减小了拥塞的可能性。

应当注意,本实施例提供的软件定义网络的控制方法可以应用于由实际存在的控制器和openflow交换机组成的实际网络中,也可以设置在由虚拟控制器和虚拟交换机组成的网络中,例如可以应用在架构在数据中心之上的云计算网络之中。

除了提供前述的软件定义网络控制方法外,本发明实施例还提供实现前述方法的控制装置。

图2是实施例提供的软件定义网络控制装置示意图。如图2所示,本实施例提供的控制装置包括监测模块11、选择模块12和控制模块13。

其中:监测模块11用于监测链路的负载是否大于设定的拥塞上限;选择模块12用于当监测模块11监测到的链路负载大于设定的拥塞上限时,选择链路关键度最大的链路;控制模块13用于更改链路关键度最大的链路中数据流的转发流表表,下发前述的转发流表,是数据流按照转发流表对应的转发路由传输。

与前述方法对应的,选择模块12确定关键度最大链路中数据流的最大数据流,仅更改最大数据例的转发流表。

进一步的,选择模块12计算最大数据流的所有可用流表,并将最大数据流的转发流表更改为所有可用流表中开销最小的转发流表。

更进一步的,检测模块还监测新的转发流表对应的转发路由中各个链路的拥塞度;此外,控制装置还包括调整模块14,调整模块14用于在新的转发流表对应的转发路由中各个链路拥塞度设定的拥塞上限时,降低源主机的发包速率。

以上对本发明实施例中的软件定义网络的控制方法和控制装置进行了详细介绍。本部分采用具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的核心思想,在不脱离本发明原理的情况下,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

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