Sdn控制器和sdn中的最短路径确定方法

文档序号:7822694阅读:1625来源:国知局
Sdn控制器和sdn中的最短路径确定方法
【专利摘要】本发明涉及通信技术,尤其涉及一种软件定义网络SDN控制器和SDN中的最短路径确定方法,用以提高SDN中路由计算效率。在本发明实施例提供的一种SDN控制器中,接收模块接收客户端发送的连接建立请求,建立从指定起始节点到指定终止节点的连接;处理模块根据指定起始节点和指定终止节点的地理环境信息选择最短路径算法,并根据选择的最短路径算法确定从指定起始节点到指定终止节点的最短路径。实现了在SDN中自适应地选择最短路径算法,从而选择的最短路径算法能够适应应用场景的变化,使得在不同应用场景下均能获得较高效率的路由计算效率,进而提高了连接建立速度。
【专利说明】 SDN控制器和SDN中的最短路径确定方法

【技术领域】
[0001]本发明涉及通信技术,尤其涉及一种软件定义网络(Software Defined Network,SDN)控制器和SDN中的最短路径确定方法。

【背景技术】
[0002]最短路径算法是常见的路由算法,该算法可用于确定网络中起始节点到终止节点的最短路径。常见的最短路径算法包括:戴克斯特拉(Dijkstra)算法、贝尔曼-福特(bellman-ford)算法、前K最短路径(K Shortest Path,KSP)算法,最短路径优先(Shortest Path First, SPF)算法,弗洛伊德(Floyd-Warshall)算法等。
[0003]在传统网络中,网络中的各网络节点均维护有整个网络的拓扑信息,由各网络节点采用诸如上述最短路径算法独立计算路由。
[0004]软件定义网络(Software Defined Network, SDN)是近年来新出现的一种新型网络。在SDN中,控制平面与转发平面相分离,由统一的SDN控制器负责整个网络的路由计算。
[0005]目前SDN控制器采用固定的最短路径算法算法(比如:采用固定的Dijkstra算法或采用固定的bellman-ford算法),无法适应不同的应用环境或业务场景,比如:Dijkstra算法对于小规模网络,或在网络中路径跳数较少的情况下,计算效率高。但对于大规模网络,或在路径跳数较多的情况下,计算效率却不如并行的beI lman-ford算法,这样导致在有些场景下,路由计算效率低,导致连接建立速度慢。


【发明内容】

[0006]本发明实施例提供一种软件定义网络SDN控制器和SDN中的最短路径确定方法,以提高SDN中路由计算效率,进而提高连接建立速度。
[0007]第一方面,本发明实施例提供一种软件定义网络SDN控制器,所述SDN控制器位于SDN中,包括:
[0008]接收模块,用于接收客户端发送的连接建立请求,所述连接建立请求用于建立从指定起始节点到指定终止节点的连接;
[0009]处理模块,用于确定所述指定起始节点和所述指定终止节点的地理环境信息;根据确定的所述地理环境信息,从预设的多个最短路径算法中选择一个最短路径算法;以及根据选择的所述最短路径算法,确定从所述指定起始节点到所述指定终止节点的最短路径。
[0010]结合第一方面,在第一种可能的实现方式中,所述处理模块具体用于:
[0011]通过所述接收模块,从所述指定起始节点处接收所述指定起始节点的地理环境信息,以及从所述指定终止节点处接收所述指定终止节点的地理环境信息。
[0012]结合第一方面,在第二种可能的实现方式中,所述SDN控制器还包括:
[0013]存储模块,用于存储所述SDN中各节点的地理环境信息;
[0014]所述处理模块具体用于:从所述存储模块中,获取所述指定起始节点和所述指定终止节点的地理环境信息。
[0015]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理模块还用于:
[0016]通过所述接收模块接收所述SDN中的节点发送的该节点的地理环境信息更新消息;
[0017]从所述地理环境信息更新消息中,获取该节点更新后的地理环境信息;
[0018]根据获取的该节点的更新后的地理环境信息,更新所述存储模块中存储的该节点的地理环境信息。
[0019]结合第一方面,在第四种可能的实现方式中,所述处理模块具体用于:
[0020]根据确定的所述地理环境信息,以及网络参数信息,从预设的多个最短路径算法中选择一个最短路径算法。
[0021]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述网络参数信息包括:所述指定起始节点到所述指定终止节点之间路径的跳数约束信息;
[0022]所述处理模块还用于:在选择最短路径算法之前,从所述连接建立请求中,获取所述跳数约束信息。
[0023]结合第一方面的第四种可能的实现方式,在第六种可能的实现方式中,所述网络参数信息包括:所述SDN的网络拓扑信息;
[0024]所述处理模块还用于:在选择最短路径算法之前,确定所述SDN的网络拓扑信息。
[0025]结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述网络拓扑信息包括下列信息中的至少一项:
[0026]节点个数、边个数、平均度数、平均路径长度或网络聚类系数。
[0027]结合第一方面的第四种可能的实现方式,在第八种可能的实现方式中,所述网络参数信息包括:所述指定终止节点所在区域的网络规模信息;
[0028]所述处理模块还用于:在选择最短路径算法之前,获取所述指定终止节点所在区域的网络规模信息。
[0029]第二方面,本发明实施例提供一种软件定义网络SDN中的最短路径确定方法,包括:
[0030]所述SDN中的控制器接收客户端发送的连接建立请求,所述连接建立请求用于建立从指定起始节点到指定终止节点的连接;
[0031]所述控制器确定所述指定起始节点和所述指定终止节点的地理环境信息;
[0032]所述控制器根据确定的所述地理环境信息,从预设的多个最短路径算法中选择一个最短路径算法;
[0033]所述控制器根据选择的所述最短路径算法,确定从所述指定起始节点到所述指定终止节点的最短路径。
[0034]结合第二方面,在第一种可能的实现方式中,所述控制器确定所述指定起始节点和所述指定终止节点的地理环境信息,包括:
[0035]所述控制器从所述SDN中的地理环境信息库中,分别获取所述指定起始节点和所述指定终止节点的地理环境信息;其中,所述地理环境信息库中包括所述SDN中各节点的地理环境信息;或
[0036]所述控制器从所述指定起始节点处获取所述指定起始节点的地理环境信息,以及从所述指定终止节点处获取所述指定终止节点的地理环境信息。
[0037]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,若所述控制器从所述SDN中的地理环境信息库中,分别获取所述指定起始节点和所述指定终止节点的地理环境信息,则所述方法还包括:
[0038]所述控制器接收所述SDN中的节点发送的该节点的地理环境信息更新消息;
[0039]所述控制器从所述地理环境信息更新消息中,获取该节点更新后的地理环境信息;
[0040]根据获取的该节点的更新后的地理环境信息,更新所述地理环境信息库中该节点的地理环境信息。
[0041]结合第二方面,在第三种可能的实现方式中,所述控制器根据确定的所述地理环境信息,从预设的多个最短路径算法中选择一个最短路径算法,包括:
[0042]所述控制器根据确定的所述地理环境信息,以及网络参数信息,从预设的多个最短路径算法中选择一个最短路径算法。
[0043]结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述网络参数信息包括:所述指定起始节点到所述指定终止节点之间路径的跳数约束信息;
[0044]在所述控制器选择最短路径算法之前,所述方法还包括:从所述连接建立请求中,获取所述跳数约束信息。
[0045]结合第二方面的第三种可能的实现方式,在第五种可能的实现方式中,所述网络参数信息包括:所述SDN的网络拓扑信息;
[0046]在所述控制器选择最短路径算法之前,所述方法还包括:所述控制器确定所述SDN的网络拓扑信息。
[0047]结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述网络拓扑信息包括下列信息中的至少一项:
[0048]节点个数、边个数、平均度数、平均路径长度或网络聚类系数。
[0049]结合第二方面的第三种可能的实现方式,在第七种可能的实现方式中,所述网络参数信息包括:所述指定终止节点所在区域的网络规模信息;
[0050]在所述控制器选择最短路径算法之前,还包括:所述控制器获取所述指定终止节点所在区域的网络规模信息。
[0051]通过上述技术方案的描述可知,本发明实施例中,根据连接建立请求所请求建立的连接的指定起始节点和指定终止节点的地理环境信息,从预设的多个最短路径算法中选择一个最短路径算法,能够实现在SDN中自适应地选择最短路径算法,从而通过本发明实施例提供的技术方案,使得选择的最短路径算法能够适应应用场景的变化,使得在不同应用场景下均能获得较高效率的路由计算效率,进而提高了连接建立速度。

【专利附图】

【附图说明】
[0052]图1为本发明实施例提供的数据通信系统的结构示意图;
[0053]图2为本发明实施例提供的SDN控制器的结构示意图;
[0054]图3为本发明实施例提供的SDN控制器中的处理模块根据获取的信息选择最短路径算法的一个具体方案的示意图;
[0055]图4为本发明实施例提供的SDN控制器中的处理模块根据获取的信息选择最短路径算法的另一个具体方案的示意图;
[0056]图5为本发明实施例提供的另一种SDN控制器的结构示意图;
[0057]图6为本发明实施例提供的SDN中的最短路径确定方法的流程图。

【具体实施方式】
[0058]本发明实施例提供一种软件定义网络SDN控制器和SDN中的最短路径确定方法,用以提高SDN中路由计算效率,进而提高连接建立速度。
[0059]本发明实施例提供的SDN控制器位于SDN中,包括:接收模块,用于接收用户端发送的连接建立请求;处理模块,用于确定该SDN中处理连接建立请求的起始节点和终止节点;确定从起始节点到终止节点的地理距离;根据确定的地理距离,选择最短路径算法;以及根据选择的最短路径算法,确定从起始节点到终止节点的最短路径。
[0060]采用本发明实施例提供的SDN控制器,可实现根据处理连接建立请求的起始节点到终止节点的地理距离,来选择最短路径算法,提供了一种在SDN中自适应地选择最短路由算法的方案。
[0061]下面,结合附图对本发明实施例进行详细说明。首先,说明本发明实施例提供的数据通信系统,然后说明本发明实施例提供的SDN控制器,最后说明本发明实施例提供的最短路径确定方法。
[0062]图1为本发明实施例提供的数据通信系统10的结构示意图。如图1所示,该数据通信系统10包括:客户端101和SDN102,其中SDN102中包括SDN控制器1021和包括节点A和节点B在内的多个网络节点,这些网络节点可为路由器或交换机等网络设备;
[0063]其中,客户端101,用于向SDN102中的SDN控制器1021发送连接建立请求,该连接建立请求用于建立从指定起始节点到指定终止节点的连接;
[0064]SDN控制器1021,用于接收客户端101发送的上述连接建立请求,设上述指定起始节点为图1中的节点A,指定终止终止节点为图1中的节点B,SDN控制器1021分别确定节点A和节点B的地理环境信息,根据确定的地理环境信息,从预设的多个最短路径算法中选择一个最短路径算法;根据选择的最短路径算法,确定从节点A到节点B的最短路径。
[0065]传统网络中,对流量的控制和转发都依赖于网络中各节点的实现,且节点中集成了与业务特性紧耦合的操作系统和专用硬件,这些操作系统和专用硬件都是各个厂家自己开发和设计的。
[0066]SDN是一种新型的网络架构,其设计理念是将网络的控制平面与数据转发平面进行分离,从而通过集中的SDN控制器中的软件平台去实现可编程化控制底层硬件,实现对网络资源灵活的按需调配。在SDN中,各节点只负责单纯的数据转发,可以采用通用的硬件;而原来负责控制的操作系统将提炼为独立的网络操作系统,负责对不同业务特性进行适配,而且网络操作系统和业务特性以及硬件设备之间的通信都可以通过编程实现。
[0067]在SDN中,SDN控制器控制整个SDN中的各节点,可获得全局的网络状态视图,用于进行数据平面资源的分配、维护网络拓扑结构,计算网络路由。
[0068]SDN控制器掌握整个SDN拓扑结构,负责整个网络的路由计算,正是基于此,本发明实施例中,SDN控制器1021才能根据客户端101发送的连接建立请求的指定起始节点节点A和指定终止节点节点B的地理环境彳目息,选择最短路径算法。
[0069]本发明实施例中,SDN控制器1021可由一台或多台物理服务器实现。
[0070]其中,节点的地理环境信息可包括但不限于:节点所在区域的位置信息、节点的经玮度信息、节点周围的地理构造信息,比如:高山、盆地等。
[0071]可选地,SDN控制器1021可获取节点A和节点B的地理环境信息,根据获取的两个节点的地理环境信息,比如:两个节点的经玮度信息,计算节点A到节点B的地理距离,根据计算得到的地理距离,选择最短路径算法。
[0072]—种简单的计算节点A到节点B的地理距离的方法是,根据节点A和节点B的经玮度信息计算节点A和节点B之间的直线距离;
[0073]另一种计算方法是:计算节点A所在城市和节点B所在城市之间的之间直线距离。若节点A和节点B在一个城市,则计算节点A所在行政区和节点B所在行政区之间的直线距离,以此类推。
[0074]再比如:SDN控制器1021可根据节点A和节点B的经玮度信息,以及节点A和节点B周围的地理构造彳目息,来选择最短路径算法。
[0075]—种可能的方案包括:
[0076]SDN控制器1021根据节点A和节点B的经玮度信息,计算出节点A到节点B之间的直线距离D,作为节点A到节点B的地理距离;
[0077]获取节点A和节点B周围的地理构造信息:节点A周围为山区,且到节点B的方向上山区的覆盖半径为Rm ;节点B周围为平原;
[0078]按照预设的山区修正因子α,对Rm加权得到Rm* α ;
[0079]对节点A到节点B的地理距离D修正,得到D+Rm* α,作为修正后的节点A到节点B的地理距离;
[0080]根据修正后的节点A到节点B的地理距离,选择最短路径算法。
[0081]其中,α可依产品实现而定,比如α =0.5。
[0082]SDN控制器1021根据节点A和节点B的地理环境信息,选择最短路径算法的可行方案有很多,这里不列举。一个简单的方案包括:
[0083]SDN控制器1021根据节点A和节点B的经玮度信息,计算出节点A到节点B的地理距离,将计算出的地理距离与预设的地理距离阈值进行比较,若小于该阈值,则选择串行的最短路径算法,若不小于该阈值,则选择并行的最短路径算法,这里将串行的最短路径算法和并行的最短路径算法视为两种最短路径算法。
[0084]可选地,SDN控制器1021可通过如下可选方式获取节点A和节点B的地理环境信息:
[0085]方式一
[0086]SDN控制器1021分别向节点A和节点B发送地理环境信息查询请求,并从节点A返回的地理环境信息查询响应中获取节点A的地理环境信息,从节点B返回的地理环境信息查询响应中获取节点B的地理环境信息。
[0087]方式二
[0088]SDN控制器1021可向地理环境信息库发送地理环境信息查询请求,请求查询节点A和节点B的地理环境信息,其中,地理环境信息库中预存了 SDN102中各节点的地理环境信息,SDN控制器1021从地理环境信息库返回的地理环境信息查询响应中获取节点A和节点B的地理环境信息。
[0089]可选地,该地理环境信息库可存储于SDN控制器1021中,也可存储于SDN102中独立于SDN控制器1021的设备。
[0090]可选地,如图2所示,SDN控制器1021包括:接收模块1021a和处理模块1021b,其中,
[0091]接收模块1021a,用于接收客户端101发送的上述连接建立请求;
[0092]处理模块1021b,用于确定节点A和节点B的地理环境信息,根据确定的该地理环境信息,选择最短路径算法;根据选择的最短路径算法,确定从节点A到节点B的最短路径。
[0093]若地理环境信息库位于SDN控制器1021中,则可选地,如图2所示,SDN控制器1021还包括存储模块1021c,该地理环境信息库则存储于该存储模块1021c中。SDN控制器1021通过南向接口或其他通信协议接收SDN102中各节点上传的地理环境信息。
[0094]比如:SDN控制器1021通过接收模块1021a接收SDN102中的节点发送的该节点的地理环境更新消息,根据该消息遵循的通信协议(比如:前述的南向接口的协议或其他通信协议),对该消息进行解析,获得该节点的更新后的地理环境信息,根据获取的该节点的更新后的地理环境信息,更新存储模块1021c中存储的地理环境信息库中该节点的地理环境信息。
[0095]此外,如图2所示,客户端101通过北向接口或其他通信协议向SDN控制器1021发送上述连接建立请求,驱动SDN控制器1021计算路由。
[0096]可选地,处理模块1021b在不仅根据上述地理环境信息,还根据网络参数信息,从预设的多个最短路径算法中选择一个最短路径算法。
[0097]这里网络参数信息可包括整个SDN102的网络参数信息,比如:SDN102的网络拓扑信息,可包括但不限于SDN102的节点个数、边个数等;还可包括SDN102中的局部网络的网络参数信息,比如:节点B所在区域的网络规模信息等。
[0098]具体地,上述网络参数信息可包括:节点A到节点B之间路径的跳数约束信息,则处理模块1021b在接收模块1021a接收上述连接建立请求之后,选择最短路径算法之前,从该连接建立请求中获取上述跳数约束信息;处理模块1021b根据确定的地理环境信息,以及获取的跳数约束信息,选择最短路径算法。
[0099]其中,跳数约束信息可包括:节点A到节点B之间路径的跳数不能超过预设的跳数阈值等。
[0100]比如:处理模块1021b根据节点A和节点B的地理环境信息,确定节点A到节点B的地理距离D,若该确定的地理距离D大于预设的地理距离阈值,则从预设的多个最短路径算法中选择bellman-ford算法;进一步,根据上述跳数约束信息,若跳数约束信息中的跳数阈值小于预设的跳数阈值门限,则选择串行的bellman-ford算法。
[0101]或者,具体地,上述网络参数信息可包括:SDN 102的网络拓扑信息;则处理模块1021b在接收模块1021a接收上述连接建立请求之后,选择最短路径算法之前,确定SDN102的网络拓扑信息,处理模块1021b根据确定的地理环境信息,以及获取的网络拓扑信息,选择最短路径算法。
[0102]可选地,SDN102的网络拓扑信息也可预先存储在存储模块1021c中,处理模块1021b可从存储模块1021c中获取SDN102的网络拓扑信息。
[0103]其中,网络拓扑信息包括下列信息中的至少一项:
[0104]节点个数、边个数、平均度数、平均路径长度和网络聚类系数。
[0105]比如:处理模块1021b根据节点A和节点B的地理环境信息,确定节点A到节点B的地理距离D,若该确定的地理距离D小于预设的地理距离阈值,则从预设的多个最短路径算法中选择Dijkstra算法;进一步,若获取的SDN102的节点个数大于预设的节点个数阈值,则选择并行的Dijkstra算法。再或者,具体地,上述网络参数信息可包括:节点B所在区域的网络规模信息,则处理模块1021b在接收模块1021a接收上述连接建立请求之后,选择最短路径算法之前,获取节点B所在区域的网络规模信息;处理模块1021b根据确定的地理环境信息,以及获取的网络规模信息,选择最短路径算法。
[0106]可选地,处理模块1021b可从节点B处获取上述网络规模信息,或者与地理环境信息类似,SDN102中各节点所在区域的网络规模信息可预先存储在存储模块1021c中,比如存储在存储模块1021c中的网络规模信息库中,可选地,各节点可预先向SDN控制器1021发送自身所在区域的网络规模信息,处理模块1021b通过接收模块1021a接收到该信息后,存储在存储模块1021c中。
[0107]其中,可选地,网络规模信息可为节点B所在的区域的行政等级,比如:节点B位于某城市中,则该网络规模信息可为该城市的级别,比如:一级城市或二级城市,通常一级城市比二级城市的网络规模大。
[0108]比如:处理模块1021b根据节点A和节点B的地理环境信息,确定节点A到节点B的地理距离D,若该确定的地理距离D小于预设的地理距离阈值,则从预设的多个最短路径算法中选择Di jkstra算法;进一步,若获取的节点B所在区域的行政等级为一级城市,贝Ij选择并行的Dijkstra算法。
[0109]可选地,处理模块1021b在接收模块1021a接收上述连接建立请求之后,选择最短路径算法之前,获取下列信息中的任意一种或多种:
[0110]节点A和节点B的地理环境信息;
[0111]节点A到节点B之间路径的跳数约束信息;
[0112]SDN102的网络拓扑信息;
[0113]节点B所在区域的网络规模信息;
[0114]处理模块1021b根据获取的信息选择最短路径算法,根据选择的最短路径算法计算最短路径。
[0115]比如:如图3所示,处理模块1021b根据上述四项信息,选择最短路径算法,根据选择的最短路径算法计算最短路径。
[0116]可选地,处理模块1021b可采用简单判断或者机器学习方法选择最终的最短路径算法,比如:典型的方法包括决策树、神经网络、深度学习、贝叶斯模型、支持向量机、回归分析、强化学习等,以上仅为示例,可采用的方法不限于此。
[0117]可选择的最短路径算法包括但不限于:
[0118]Dijkstra 算法、bellman-ford 算法、KSP 算法,SPF 算法,Floyd-Warshall 算法等。
[0119]上述各种最短路径算法可有串行实现方式和并行实现方式,若按照串行或并行实现方式进一步细分,可选的最短路径算法可包括但不限于:
[0120]串行Dijkstra算法、并行Dijkstra算法、串行bellman-ford算法、并行bellman-ford算法、串彳丁 KSP算法、并彳丁 KSP算法、串彳丁 SPF算法、并彳丁 SPF算法、串行Floyd-Warshall 算法和并行 Floyd-Warshall 算法等。
[0121]下面,以可选算法包括串行Dijkstra算法、并行Dijkstra算法两种算法为例,参考图4,以举例的方式说明处理模块1021b选择最短路径算法的方案,这里以Dijkstra算法为例,实际实现时,也可以是诸如KSP算法等的其他算法。
[0122]如图4所示,若SDN102中的节点个数小于节点个数阈值,则选择串行Dijkstra算法,否则继续判断SDN102的平均路径长度是否小于路径长度阈值,若是,则选择串行Dijkstra算法,否则继续判断SDN102的聚类系数是否小于聚类系数阈值,若是,则选择串行Dijkstra算法,否则继续判断节点A到节点B的地理距离是否小于地理距离阈值,若否,则选择并行Dijkstra算法。
[0123]基于同一发明构思,本发明实施例还提供了另一种SDN控制器,以及一种SDN中的最短路径确定方法。由于该控制器与方法解决问题的原理与上述的SDN控制器相同,其实施可参照上述SDN控制器,重复之处不再赘述。
[0124]图5为本发明实施例提供的另一种SDN控制器的结构示意图。如图5所示,该SDN控制器1022包括:输入/输出(I/O)设备1022a、处理器1022b,可选地,还包括存储器
1022co
[0125]其中,I/O设备1022a,用于接收客户端发送的连接建立请求,该连接建立请求用于建立从指定起始节点到指定终止节点的连接;
[0126]处理器1022b,用于确定指定起始节点和指定终止节点的地理环境信息;根据确定的地理环境信息,从预设的多个最短路径算法中选择一个最短路径算法;以及根据选择的最短路径算法,确定从指定起始节点到指定终止节点的最短路径。
[0127]其中,SDN控制器1022根据接收的连接建立请求所请求建立的连接的指定起始节点和指定终止节点的地理环境信息,从预设的多个最短路径算法中选择一个最短路径算法,能够实现在SDN中自适应地选择最短路径算法,从而使得选择的最短路径算法能够适应应用场景的变化,使得在不同应用场景下均能获得较高效率的路由计算效率,进而提高了连接建立速度。
[0128]可选地,处理器1022b通过I/O设备1022a,从指定起始节点处接收指定起始节点的地理环境信息,以及从指定终止节点处接收指定终止节点的地理环境信息;或者
[0129]SDN控制器1022还包括存储器1022c,用于存储SDN中各节点的地理环境信息;则处理器1022b从存储器1022c中,获取指定起始节点和指定终止节点的地理环境信息。
[0130]存储器1022c可包括只读存储器和随机存取存储器,并可向处理器1022b提供指令和数据。存储器1022c的一部分还可以包括非易失性随机存取存储器(Non-VolatileRandom Access Memory, NVRAM)。
[0131]存储器1022c存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
[0132]操作指令:包括各种操作指令,用于实现各种操作。
[0133]操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
[0134]在本发明实施例中,处理器1022b可通过调用存储器1022c存储的操作指令(该操作指令可存储在操作系统中),执行上述操作,选择最短路径算法,以及确定从指定起始节点到指定终止节点的最短路径。
[0135]处理器1022b控制SDN控制器1022的操作,处理器1022b还可以称为中央处理单元(Central Processing Unit,CPU)。
[0136]本发明实施例提供的最短路径确定方法可以应用于处理器1022b中,或者由处理器1022b实现。处理器1022b可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1022b中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1022b可以是通用处理器、数字信号处理器(Digital SignalProcessor, DSP)、专用集成电路(Applicat1n Specific Integrated Circuit, ASIC)、现成可编程门阵列(Field — Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。
[0137]软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1022c中,处理器1022b读取存储器1022c中的信息,结合其硬件完成上述方法的步骤。
[0138]具体的应用中,SDN控制器1022的各个组件通过总线系统1022d耦合在一起,其中总线系统1022d除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1022d。
[0139]可选地,处理器1022b还用于:
[0140]通过I/O设备1022a接收SDN中的节点发送的该节点的地理环境信息更新消息;[0141 ] 从地理环境信息更新消息中,获取该节点更新后的地理环境信息;
[0142]根据获取的该节点的更新后的地理环境信息,更新存储器1022c中存储的该节点的地理环境信息。
[0143]可选地,处理器1022b具体用于:
[0144]根据确定的地理环境信息,以及网络参数信息,从预设的多个最短路径算法中选择一个最短路径算法。
[0145]可选地,网络参数信息包括:指定起始节点到指定终止节点之间路径的跳数约束信息;
[0146]处理器1022b还用于:在选择最短路径算法之前,从连接建立请求中,获取跳数约束信息。
[0147]可选地,网络参数信息包括:SDN的网络拓扑信息;
[0148]处理器1022b还用于:在选择最短路径算法之前,确定SDN的网络拓扑信息。
[0149]可选地,网络拓扑信息包括下列信息中的至少一项:
[0150]节点个数、边个数、平均度数、平均路径长度或网络聚类系数。
[0151]可选地,网络参数信息包括:指定终止节点所在区域的网络规模信息;
[0152]处理器1022b还用于:在选择最短路径算法之前,获取指定终止节点所在区域的网络规模信息。
[0153]图6为本发明实施例提供的SDN中的最短路径确定方法的流程图。如图6所示,该方法包括如下步骤:
[0154]S601:SDN中的控制器接收客户端发送的连接建立请求,连接建立请求用于建立从指定起始节点到指定终止节点的连接;
[0155]S602:控制器确定指定起始节点和指定终止节点的地理环境信息;
[0156]S603:控制器根据确定的地理环境信息,从预设的多个最短路径算法中选择一个最短路径算法;
[0157]S604:控制器根据选择的最短路径算法,确定从指定起始节点到指定终止节点的最短路径。
[0158]可选地,步骤S602控制器确定指定起始节点和指定终止节点的地理环境信息,包括:
[0159]控制器从SDN中的地理环境信息库中,分别获取指定起始节点和指定终止节点的地理环境信息;其中,地理环境信息库中包括SDN中各节点的地理环境信息;或
[0160]控制器从指定起始节点处获取指定起始节点的地理环境信息,以及从指定终止节点处获取指定终止节点的地理环境信息。
[0161]可选地,若控制器从SDN中的地理环境信息库中,分别获取指定起始节点和指定终止节点的地理环境信息,则该方法还包括:
[0162]控制器接收SDN中的节点发送的该节点的地理环境信息更新消息;
[0163]控制器从地理环境信息更新消息中,获取该节点更新后的地理环境信息;
[0164]根据获取的该节点的更新后的地理环境信息,更新地理环境信息库中该节点的地理环境信息。
[0165]可选地,步骤S603控制器根据确定的地理环境信息,从预设的多个最短路径算法中选择一个最短路径算法,包括:
[0166]控制器根据确定的地理环境信息,以及网络参数信息,从预设的多个最短路径算法中选择一个最短路径算法。
[0167]其中,网络参数信息可包括:指定起始节点到指定终止节点之间路径的跳数约束信息;
[0168]在步骤S603控制器选择最短路径算法之前,该方法还包括:从连接建立请求中,获取跳数约束信息。
[0169]其中,网络参数信息可包括:SDN的网络拓扑信息;
[0170]在步骤S603控制器选择最短路径算法之前,该方法还包括:控制器确定SDN的网络拓扑信息。
[0171]其中,网络拓扑信息可包括下列信息中的至少一项:
[0172]节点个数、边个数、平均度数、平均路径长度或网络聚类系数。
[0173]其中,网络参数信息可包括:指定终止节点所在区域的网络规模信息;
[0174]在步骤S603控制器选择最短路径算法之前,该方法还包括:控制器获取指定终止节点所在区域的网络规模信息。
[0175]综上,采用本发明实施例提供的方案,在实际网络运营中,由于选择了适合的最短路径算法,可提高路由计算的效率,进而能在较短时间内确定路由,从而提高了连接建立的效率,缩短了连接建立时延。
[0176]并且,当已存在的连接出现故障时,可通过选择合适的最短路径算法,在较短时间内确定新的最短路径,因此也缩短了故障排除时间,实现了故障的快速修复。
[0177]此外,本发明实施例不仅可用于实际的网络运营中,还可用于网络运营之前的网络规划中,通过虚拟的客户端向SDN控制器发送连接建立请求,SDN控制器根据连接建立请求中的指定起始节点和指定终止节点的地理环境信息,选择最短路径算法,确定最短路径,尚效地进彳丁路由规划,提尚了 SDN路由规划效率。
[0178]类似地,本发明实施例还可用于网络仿真中,与上述网络规划类似,也是通过虚拟的客户端向SDN控制器发送连接建立请求,可提高网络仿真中的路由算法的效率。
[0179]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0180]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0181]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0182]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0183]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0184]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种软件定义网络SDN控制器,所述SDN控制器位于SDN中,其特征在于,所述SDN控制器包括: 接收模块,用于接收客户端发送的连接建立请求,所述连接建立请求用于建立从指定起始节点到指定终止节点的连接; 处理模块,用于确定所述指定起始节点和所述指定终止节点的地理环境信息;根据确定的所述地理环境信息,从预设的多个最短路径算法中选择一个最短路径算法;以及根据选择的所述最短路径算法,确定从所述指定起始节点到所述指定终止节点的最短路径。
2.如权利要求1所述的SDN控制器,其特征在于,所述处理模块具体用于: 通过所述接收模块,从所述指定起始节点处接收所述指定起始节点的地理环境信息,以及从所述指定终止节点处接收所述指定终止节点的地理环境信息。
3.如权利要求1所述的SDN控制器,其特征在于,所述SDN控制器还包括: 存储模块,用于存储所述SDN中各节点的地理环境信息; 所述处理模块具体用于:从所述存储模块中,获取所述指定起始节点和所述指定终止节点的地理环境信息。
4.如权利要求3所述的SDN控制器,其特征在于,所述处理模块还用于: 通过所述接收模块接收所述SDN中的节点发送的该节点的地理环境信息更新消息; 从所述地理环境信息更新消息中,获取该节点更新后的地理环境信息; 根据获取的该节点的更新后的地理环境信息,更新所述存储模块中存储的该节点的地理环境信息。
5.如权利要求1所述的SDN控制器,其特征在于,所述处理模块具体用于: 根据确定的所述地理环境信息,以及网络参数信息,从预设的多个最短路径算法中选择一个最短路径算法。
6.如权利要求5所述的SDN控制器,其特征在于,所述网络参数信息包括:所述指定起始节点到所述指定终止节点之间路径的跳数约束信息; 所述处理模块还用于:在选择最短路径算法之前,从所述连接建立请求中,获取所述跳数约束信息。
7.如权利要求5所述的SDN控制器,其特征在于,所述网络参数信息包括:所述SDN的网络拓扑信息; 所述处理模块还用于:在选择最短路径算法之前,确定所述SDN的网络拓扑信息。
8.如权利要求7所述的SDN控制器,其特征在于,所述网络拓扑信息包括下列信息中的至少一项: 节点个数、边个数、平均度数、平均路径长度或网络聚类系数。
9.如权利要求5所述的SDN控制器,其特征在于,所述网络参数信息包括:所述指定终止节点所在区域的网络规模信息; 所述处理模块还用于:在选择最短路径算法之前,获取所述指定终止节点所在区域的网络规模信息。
10.一种软件定义网络SDN中的最短路径确定方法,其特征在于,包括: 所述SDN中的控制器接收客户端发送的连接建立请求,所述连接建立请求用于建立从指定起始节点到指定终止节点的连接; 所述控制器确定所述指定起始节点和所述指定终止节点的地理环境信息; 所述控制器根据确定的所述地理环境信息,从预设的多个最短路径算法中选择一个最短路径算法; 所述控制器根据选择的所述最短路径算法,确定从所述指定起始节点到所述指定终止节点的最短路径。
11.如权利要求10所述的方法,其特征在于,所述控制器确定所述指定起始节点和所述指定终止节点的地理环境信息,包括: 所述控制器从所述SDN中的地理环境信息库中,分别获取所述指定起始节点和所述指定终止节点的地理环境信息;其中,所述地理环境信息库中包括所述SDN中各节点的地理环境信息;或 所述控制器从所述指定起始节点处获取所述指定起始节点的地理环境信息,以及从所述指定终止节点处获取所述指定终止节点的地理环境信息。
12.如权利要求11所述的方法,其特征在于,若所述控制器从所述SDN中的地理环境信息库中,分别获取所述指定起始节点和所述指定终止节点的地理环境信息,则所述方法还包括: 所述控制器接收所述SDN中的节点发送的该节点的地理环境信息更新消息; 所述控制器从所述地理环境信息更新消息中,获取该节点更新后的地理环境信息; 根据获取的该节点的更新后的地理环境信息,更新所述地理环境信息库中该节点的地理环境信息。
13.如权利要求10所述的方法,其特征在于,所述控制器根据确定的所述地理环境信息,从预设的多个最短路径算法中选择一个最短路径算法,包括: 所述控制器根据确定的所述地理环境信息,以及网络参数信息,从预设的多个最短路径算法中选择一个最短路径算法。
14.如权利要求13所述的方法,其特征在于,所述网络参数信息包括:所述指定起始节点到所述指定终止节点之间路径的跳数约束信息; 在所述控制器选择最短路径算法之前,所述方法还包括:从所述连接建立请求中,获取所述跳数约束信息。
15.如权利要求13所述的方法,其特征在于,所述网络参数信息包括:所述SDN的网络拓扑信息; 在所述控制器选择最短路径算法之前,所述方法还包括:所述控制器确定所述SDN的网络拓扑信息。
16.如权利要求15所述的方法,其特征在于,所述网络拓扑信息包括下列信息中的至少一项: 节点个数、边个数、平均度数、平均路径长度或网络聚类系数。
17.如权利要求13所述的方法,其特征在于,所述网络参数信息包括:所述指定终止节点所在区域的网络规模信息; 在所述控制器选择最短路径算法之前,还包括:所述控制器获取所述指定终止节点所在区域的网络规模信息。
【文档编号】H04L12/733GK104506435SQ201410764682
【公开日】2015年4月8日 申请日期:2014年12月12日 优先权日:2014年12月12日
【发明者】吴伟, 于璠 申请人:杭州华为数字技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1