基于SDN的网络阻塞解决方法及系统与流程

文档序号:13212767阅读:376来源:国知局
基于SDN的网络阻塞解决方法及系统与流程

本发明涉及网络通信技术领域,尤其涉及一种基于sdn的网络阻塞解决方法及系统。



背景技术:

当前庞大的数据中心能够实现海量的计算任务和海量信息的存储,为用户提供云计算服务,并在商业应用上取得了成功。云计算技术的迅速发展带动了数据中心的变革,数据中心可以有效整合资源、提高资源利用率、节约能源、降低运行成本。数据中心是信息系统的核心,主要功能是通过网络向用户提供信息服务。数据中心通过虚拟化技术将资源构建成动态的虚拟资源池,使用虚拟资源管理技术可以实现云计算资源自动部署、动态扩展和按需分配的功能。

sdn(softwaredefinednetwork,软件定义网络)是一种新型的基于软件的网络架构及技术,其核心在于控制平面与数据平面相分离、灵活的编程接口开放。对比传统网络,sdn技术通过集中控制器取代了原来的路由协议自协商方式,极大地提升了网络的管控效率和开放程度。云计算背景下密集型数据中心中,sdn技术可以提供大规模、高拓展性、灵活资源调度和高带宽等网络需求,表现出了天然适用于新型数据中心网络的特性,因此sdn的首要应用场景是数据中心网络;sdn技术面临诸多问题和挑战。

当前数据中心网络经常发生网络阻塞的问题,传统的解决网络阻塞方案为:产生一个随机数作为标记写在分组头部,中间路由器根据标记决定分组的路由方案,该路由方案提前为每条数据流选择k条最短路径,当发生阻塞的时候,按顺序遍历这k条路径直到找到一条不阻塞的路径,但是,这种传统的解决网络阻塞方案计算开销大。



技术实现要素:

针对上述技术的不足,本发明实施例提供了一种基于sdn的网络阻塞解决方法及系统,其能够有效解决网络阻塞的问题,且计算开销小。

本发明实施例解决其技术问题采取的技术方案是:

一方面,提供了一种基于sdn的网络阻塞解决方法,它包括以下步骤:

获取拓扑信息:获取网络全局拓扑信息;

确定转发路径:通过计算路径负载确定数据流的转发路径;

分配转发路径:采用确定的转发路径进行数据流转发。

作为本实施例一种可能的实现方式,所述获取拓扑信息的过程为:利用lldp协议获取网络全局拓扑信息。

作为本实施例一种可能的实现方式,所述确定转发路径的过程为:首先计算任意两个节点之间的所有路径,并依照跳数升序的方式对路径进行排序,然后依次计算每条路径中各个链路的负载,并统计出每条路径的最大负载,如果路径的负载超过门限值就判定为阻塞,则选择不阻塞的路径作为数据流的转发路径。

作为本实施例一种可能的实现方式,所述门限值设定为链路利用率=90%。

作为本实施例一种可能的实现方式,所述分配转发路径的过程为:将确定的转发路径分别分配给数据流的不同数据包,相同数据流的所有数据包通过不同的转发路径进行同时转发。

作为本实施例一种可能的实现方式,本实施例的基于sdn的网络阻塞解决方法还包括步骤:

降低源主机的发送速率。

作为本实施例一种可能的实现方式,所述降低源主机的发送速率的过程为:计算目的主机的缓存大小,如果发生网络阻塞则通知源主机降低发送数据包的速率。

另一方面,还提供了一种基于sdn的网络阻塞解决方法,其特征是,当检测到网络中有节点处于阻塞状态时,选择一条或者多条合适的数据流在阻塞节点进行重路由,并降低发送速率。

作为本实施例一种可能的实现方式,所述进行重路由的过程包括以下步骤:

获取拓扑信息:获取网络全局拓扑信息;

确定转发路径:通过计算路径负载确定数据流的转发路径;

分配转发路径:采用确定的转发路径进行数据流转发。

作为本实施例一种可能的实现方式,所述获取拓扑信息的过程为:利用lldp协议获取网络全局拓扑信息。

作为本实施例一种可能的实现方式,所述确定转发路径的过程为:首先计算任意两个节点之间的所有路径,并依照跳数升序的方式对路径进行排序,然后依次计算每条路径中各个链路的负载,并统计出每条路径的最大负载,如果路径的负载超过门限值就判定为阻塞,则选择不阻塞的路径作为数据流的转发路径。

作为本实施例一种可能的实现方式,所述门限值设定为链路利用率=90%。

作为本实施例一种可能的实现方式,所述分配转发路径的过程为:将确定的转发路径分别分配给数据流的不同数据包,相同数据流的所有数据包通过不同的转发路径进行同时转发。

作为本实施例一种可能的实现方式,所述降低发送速率的过程为:计算目的主机的缓存大小,如果发生网络阻塞则通知源主机降低发送数据包的速率。

再一方面,还提供了一种基于sdn的网络阻塞解决系统,包括:

阻塞检测模块,用以检测网络是否发生阻塞;

拓扑发现模块,用以获取网络全局拓扑信息;

转发路径确定模块,用以通过计算路径负载确定数据流的转发路径;

转发路径分配模块,用以采用确定的转发路径进行数据流转发;

流表下发模块,用以通知源主机在发生网络阻塞时降低发送数据包的速率。

作为本实施例一种可能的实现方式,所述检测网络是否发生阻塞的过程为:通过下发查询消息检测端口和链路状态,当超过设定的门限值,即链路利用率达到90%就判定为阻塞。作为本实施例一种可能的实现方式,所述拓扑发现模块通过发送lldp信息到每个openflow交换机来获取网络全局拓扑信息。

作为本实施例一种可能的实现方式,所述计算路径负载的过程包括计算链路长度的过程和计算链路负载的过程,所述计算链路长度的过程为:通过计算任意两个节点之间所有可能的路径,并按照跳数从小到大的顺序对所有可能的路径排序;所述计算链路负载的过程为:通过检测链路上流量大小和链路利用率,通过周期性的向openflow交换机发送状态请求消息得到,然后根据每条链路的负载计算路径的最大负载。

本发明实施例提供的技术方案具有以下有益效果:

本发明的实施例技术方案提出了一种基于sdn的数据中心阻塞控制机制,它通过获取拓扑信息、确定转发路径和分配转发路径措施来解决网络阻塞的问题,当检测到网络中有节点处于阻塞状态,选择一条或者多条合适的数据流在阻塞节点进行重路由,且使同一个数据流的不同数据包采用不同的路径进行转发传输,并通知源主机降低发送数据包的速率,这样不仅效解决了网络阻塞的问题,而且计算开销小,且保证数据流的转发路径为最优路径。

附图说明

下面结合说明书附图对本发明进行说明。

图1是根据一示例性实施例示出的一种基于sdn的网络阻塞解决方法的流程图;

图2是根据一示例性实施例示出的另一种基于sdn的网络阻塞解决方法的流程图;

图3是根据一示例性实施例示出的一种基于sdn的网络阻塞解决系统的框图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

图1是根据一示例性实施例示出的一种基于sdn的网络阻塞解决方法的流程图。如图1所示,本实施例中的基于sdn的网络阻塞解决方法可以包括以下步骤:

s11,获取拓扑信息:获取网络全局拓扑信息;

s12,确定转发路径:通过计算路径负载确定数据流的转发路径;

s13,分配转发路径:采用确定的转发路径进行数据流转发。

在一种可能的实现方式中,所述获取拓扑信息的过程为:利用lldp协议获取网络全局拓扑信息。

在一种可能的实现方式中,所述确定转发路径的过程为:首先计算任意两个节点之间的所有路径,并依照跳数升序(即跳数从小到大的顺序)的方式对路径进行排序,然后依次计算每条路径中各个链路的负载,并统计出每条路径的最大负载,如果路径的负载超过门限值(即链路利用率达到90%)就判定为阻塞,则选择不阻塞的路径作为数据流的转发路径。

在一种可能的实现方式中,所述分配转发路径的过程为:将确定的转发路径分别分配给数据流的不同数据包,相同数据流的所有数据包通过不同的转发路径进行同时转发。

在一种可能的实现方式中,本实施例的基于sdn的网络阻塞解决方法还可以包括步骤:降低源主机的发送速率。所述降低源主机的发送速率的过程为:计算目的主机的缓存大小,如果发生网络阻塞则通知源主机降低发送数据包的速率。

本实施例的技术方案通过获取拓扑信息、确定转发路径和分配转发路径措施来解决网络阻塞的问题,这样不仅效解决了网络阻塞的问题,而且计算开销小,且保证数据流的转发路径为最优路径。

图2是根据一示例性实施例示出的另一种基于sdn的网络阻塞解决方法的流程图。当检测到网络中有节点处于阻塞状态时,选择一条或者多条合适的数据流在阻塞节点进行重路由,并降低发送速率。

如图2所示,本实施例中的基于sdn的网络阻塞解决方法可以报考以下步骤:

s21,网络阻塞检测:当检测到网络中有节点处于阻塞状态时进入下一步骤;

s22,获取拓扑信息:获取网络全局拓扑信息;

s23,确定转发路径:通过计算路径负载确定数据流的转发路径;

s24,分配转发路径:采用确定的转发路径进行数据流转发;

s25,降低发送速率:通过源主机降低发送数据包的速率。

计算目的主机的缓存大小,如果发生网络阻塞则通知源主机降低发送数据包的速率。

在一种可能的实现方式中,所述网络阻塞检测的过程为:通过下发查询消息检测网络中各个端口和链路的状态,当超过设定的门限值(链路利用率90%)就判定为网络阻塞。

在一种可能的实现方式中,所述获取拓扑信息的过程为:利用lldp协议获取网络全局拓扑信息。

在一种可能的实现方式中,所述确定转发路径的过程为:首先计算任意两个节点之间的所有路径,并依照跳数升序(即跳数从小到大的顺序)的方式对路径进行排序,然后依次计算每条路径中各个链路的负载,并统计出每条路径的最大负载,如果路径的负载超过门限值(即链路利用率达到90%)就判定为阻塞,则选择不阻塞的路径作为数据流的转发路径。

在一种可能的实现方式中,所述分配转发路径的过程为:将确定的转发路径分别分配给数据流的不同数据包,相同数据流的所有数据包通过不同的转发路径进行同时转发。

在一种可能的实现方式中,所述降低源主机的发送速率的过程为:计算目的主机的缓存大小,如果发生网络阻塞则通知源主机降低发送数据包的速率。

本发明的实施例技术方案提出了一种基于sdn的数据中心阻塞控制机制,当检测到网络中有节点处于阻塞状态,选择一条或者多条合适的数据流在阻塞节点进行重路由,且使同一个数据流的不同数据包采用不同的路径进行转发传输,并通知源主机降低发送数据包的速率,不仅效解决了网络阻塞的问题,而且计算开销小,且保证数据流的转发路径为最优路径。

图3是根据一示例性实施例示出的一种基于sdn的网络阻塞解决系统的框图。如图3所示,基于sdn的网络阻塞解决系统可以包括:

阻塞检测模块,用以检测网络是否发生阻塞;

拓扑发现模块,用以获取网络全局拓扑信息;

转发路径确定模块,用以通过计算路径负载确定数据流的转发路径;

转发路径分配模块,用以采用确定的转发路径进行数据流转发;

流表下发模块,用以通知源主机在发生网络阻塞时降低发送数据包的速率。

作为本实施例一种可能的实现方式,所述检测网络是否发生阻塞的过程为:通过下发查询消息检测端口和链路状态,当超过设定的门限值,即链路利用率达到90%就判定为阻塞。作为本实施例一种可能的实现方式,所述拓扑发现模块通过发送lldp信息到每个openflow交换机来获取网络全局拓扑信息。

作为本实施例一种可能的实现方式,所述计算路径负载的过程包括计算链路长度的过程和计算链路负载的过程,所述计算链路长度的过程为:通过计算任意两个节点之间所有可能的路径,并按照跳数从小到大的顺序对所有可能的路径排序;所述计算链路负载的过程为:通过检测链路上流量大小和链路利用率,通过周期性的向openflow交换机发送状态请求消息得到,然后根据每条链路的负载计算路径的最大负载。

本实施例中所述网络阻塞解决系统中的各个模块均设置在sdn控制器中。拓扑发现模块是为了让sdn控制器掌握全局的拓扑信息,通过openflow.discovery单元发送lldp信息到每个openflow交换机查询网络的拓扑信息。转发路径确定模块主要计算链路长度和链路负载两方面指标,其中,路径所包含链路的长度体现在跳数,通过计算任意两个节点之间所有可能的路径,并按照跳数从小到大的顺序对所有可能的路径排序,同时把路径信息储存在控制器中;链路负载主要是通过检测链路上流量大小和链路利用率,通过控制器周期性的向openflow交换机发送状态请求消息得到,然后根据每条链路的负载计算路径的最大负载。阻塞检测模块是为了及时检测网络是否发生阻塞,如果发生阻塞则启动阻塞控制算法,对数据中心网络资源调度,解决网络阻塞问题。sdn控制器可以通过下发查询消息检测端口和链路状态,当超过设定的门限值(链路利用率90%)就判定为阻塞,启动阻塞控制算法同时给源端主机下发降低数据包发送速率的消息。sdn中的交换机只对数据包进行转发处理,

交换机通过转发路径分配模块和流表下发模块添加转发规则并根据更新的流表项来指导流量转发。其中,转发规则封装到packet_out消息中并由控制器下发给支持openflow的交换机,交换机流表会伴随阻塞控制算法实时的动态的更新,而且过期的流表项会被删除。

本申请涉及到的术语如下:

sdn(softwaredefinednetwork,软件定义网络):是emulex网络一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术openflow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。

lldp(linklayerdiscoveryprotocol链路层发现协议):是一个厂商无关的二层协议,它允许网络设备在本地子网中通告自己的设备标识和性能。

openflow网络:由openflowswitch(openflow交换机)、flowvisor(网络虚拟化层)和controller(控制器)三部分组成。

以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。

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