CN105897584B - 路径规划方法和控制器 - Google Patents
路径规划方法和控制器 Download PDFInfo
- Publication number
- CN105897584B CN105897584B CN201410253610.2A CN201410253610A CN105897584B CN 105897584 B CN105897584 B CN 105897584B CN 201410253610 A CN201410253610 A CN 201410253610A CN 105897584 B CN105897584 B CN 105897584B
- Authority
- CN
- China
- Prior art keywords
- task
- data stream
- target data
- path
- flow
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/34—Signalling channels for network management communication
- H04L41/342—Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/121—Shortest path evaluation by minimising delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/72—Routing based on the source address
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种路径规划方法和控制器,其中方法包括:获取在软件定义网络待传输的任务的数据流信息,所述任务包括至少一个目标数据流,所述任务的数据流信息包括:每一个所述目标数据流的源地址、目的地址和流量;根据所述数据流信息进行路径规划,得到用于使得所述任务在所述软件定义网络传输的任务传输时间最短的任务传输路径;所述任务传输路径包括:所述任务中的每一个所述目标数据流分别对应的传输路径。本发明提高了任务在SDN网络的数据传输速度。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种路径规划方法和控制器。
背景技术
软件定义网络(Software Defined Network,简称:SDN)是一种新的网络架构,SDN的特点是网络的控制与转发功能分离,并且可以直接对网络进行编程,从而实现对网络的灵活控制。当前可以将SDN应用于数据传输尤其是大数据(Big data)的传输,SDN可以为进入网络的数据规划传输路径,以期快速传输这些海量数据并从中挖掘蕴含的商机。但是,目前SDN在传输数据时存在的问题是,数据传输阶段在整个数据处理完成时间中所占的比例较大,即数据传输就耗费了很多时间,使得大数据处理的效率较低。
发明内容
本发明实施例的目的是提供一种路径规划方法和控制器,以提高SDN网络的数据传输速度。
第一方面,提供一种路径规划方法,包括:
获取在软件定义网络SDN中待传输的任务的数据流信息,所述任务包括至少一个目标数据流,所述任务的数据流信息包括:每一个所述目标数据流的源地址、目的地址和流量;
根据所述任务的数据流信息中的每一个所述目标数据流的源地址、目的地址和流量,对所述待传输的任务进行整体路径规划,所述整体路径规划包括同时规划所述待传输的任务包括的每一个所述目标数据流分别对应的传输路径,并获得所述待传输的任务在所述软件定义网络传输的任务传输时间最短的任务传输路径,其中所述任务传输时间是所述任务在所述软件定义网络中完成传输所需的时间,所述任务传输路径包括所述任务中的每一个所述目标数据流分别对应的传输路径。
结合第一方面,在第一种可能的实现方式中,所述根据所述任务的数据流信息中的每一个所述目标数据流的源地址、目的地址和流量,对所述待传输的任务进行整体路径规划,所述整体路径规划包括同时规划所述待传输的任务包括的每一个所述目标数据流分别对应的传输路径,并获得所述待传输的任务在软件定义网络中完成传输所需时间最短的任务传输路径,包括:
确定路径规划条件,所述路径规划条件包括:在为每一个所述目标数据流分配对应的传输路径之后,在所述软件定义网络的每一个网络节点处满足流量守恒,在所述软件定义网络的每一条传输链路满足最大链路容量限制条件,并且所述任务的总流量小于或等于所述任务传输时间乘以所述任务的带宽,所述传输路径包括:传输链路以及在所述传输链路的带宽;所述任务的总流量是所述至少一个目标数据流的流量之和,所述任务的带宽是所述至少一个目标数据流的带宽之和;在所述软件定义网络中的各传输链路中,穷举满足所述路径规划条件的待选任务传输路径,所述待选任务传输路径中包括每一个所述目标数据流对应的传输链路以及在所述传输链路的带宽,所述传输链路用于将所述目标数据流从所述源地址传输至所述目的地址;并且,对于每一个所述待选任务传输路径得到一个对应的所述任务传输时间;选择最小的所述任务传输时间对应的所述待选任务传输路径,作为最终的所述任务传输路径。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述获取在软件定义网络待传输的任务的数据流信息,包括:对每一个在软件定义网络待传输的所述目标数据流,获取所述目标数据流的所述数据流信息,并根据所述数据流信息进行聚类计算,得到所述目标数据流对应的任务。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述数据流信息进行聚类计算,包括:计算所述目标数据流与每一个待选任务的距离,所述待选任务位于用于表示所述软件定义网络传输的所有任务的任务集合中;如果所述距离小于所述待选任务对应的第一距离阈值,则将所述距离对应的所述待选任务作为所述目标数据流对应的任务;否则,将所述目标数据流对应新建任务,并将所述新建任务加入所述任务集合。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述计算所述目标数据流与每一个待选任务的距离,包括:计算所述目标数据流到达所述软件定义网络的时间与所述待选任务的最后更新时间之间的时间间隔;如果所述时间间隔小于或等于更新时间阈值,则继续计算所述待选任务的重力中心与所述目标数据流的所述流量之间的差值,若所述差值小于第二距离阈值,则将所述差值作为所述目标数据流与所述待选任务的距离。
结合第一方面的第二种可能的实现方式,在第五种可能的实现方式中,在得到所述目标数据流对应的任务之后,对所述待传输的任务进行整体路径规划之前,还包括:如果所述目标数据流加入所述任务后,所述任务满足数据流剔除条件,则从所述任务中选择要剔除的更新数据流,删除所述更新数据流与任务之间的对应关系;所述数据流剔除条件包括如下至少一个:所述任务中的一对map进程和reduce进程之间的数据流的数目多于一个,或者,所述任务的其中一个reduce进程所对应的map进程数目超出最大数目限制。
第二方面,提供一种控制器,包括:
信息接收单元,用于获取在软件定义网络SDN中待传输的任务的数据流信息,所述任务包括至少一个目标数据流,所述任务的数据流信息包括:每一个所述目标数据流的源地址、目的地址和流量;
路径规划单元,用于根据所述任务的数据流信息中的每一个所述目标数据流的源地址、目的地址和流量,对所述待传输的任务进行整体路径规划,所述整体路径规划包括同时规划所述待传输的任务包括的每一个所述目标数据流分别对应的传输路径,并获得所述待传输的任务在所述软件定义网络传输的任务传输时间最短的任务传输路径,其中所述任务传输时间是所述任务在所述软件定义网络中完成传输所需的时间;所述任务传输路径包括所述任务中的每一个所述目标数据流分别对应的传输路径。
结合第二方面,在第一种可能的实现方式中,所述路径规划单元,具体用于:确定路径规划条件,所述路径规划条件包括:在为每一个所述目标数据流分配对应的传输路径之后,在所述软件定义网络的每一个网络节点处满足流量守恒,在所述软件定义网络的每一条传输链路满足最大链路容量限制条件,并且所述任务的总流量小于或等于所述任务传输时间乘以所述任务的带宽,所述传输路径包括:传输链路以及在所述传输链路的带宽;所述任务的总流量是所述至少一个目标数据流的流量之和,所述任务的带宽是所述至少一个目标数据流的带宽之和;在所述软件定义网络中的各传输链路中,穷举满足所述路径规划条件的待选任务传输路径,所述待选任务传输路径中包括每一个所述目标数据流对应的传输链路以及在所述传输链路的带宽,所述传输链路用于将所述目标数据流从所述源地址传输至所述目的地址;并且,对于每一个所述待选任务传输路径得到一个对应的所述任务传输时间;选择最小的所述任务传输时间对应的所述待选任务传输路径,作为最终的所述任务传输路径。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:任务归类单元,用于对每一个在软件定义网络待传输的所述目标数据流,获取所述目标数据流的所述数据流信息,并根据所述数据流信息进行聚类计算,得到所述目标数据流对应的任务。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述任务归类单元,包括:距离计算子单元,用于计算所述目标数据流与每一个待选任务的距离,所述待选任务位于用于表示软件定义网络传输的所有任务的任务集合中;任务识别子单元,用于在所述距离小于所述待选任务对应的第一距离阈值时,将所述距离对应的所述待选任务作为所述目标数据流对应的任务;否则,将所述目标数据流对应新建任务,并将所述新建任务加入所述任务集合。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述距离计算子单元,具体用于:计算所述目标数据流到达所述软件定义网络的时间与所述待选任务的最后更新时间之间的时间间隔;如果所述时间间隔小于或等于更新时间阈值,则继续计算所述待选任务的重力中心与所述目标数据流的所述流量之间的差值,若所述差值小于第二距离阈值,则将所述差值作为所述目标数据流与所述待选任务的距离。
结合第二方面的第二种可能的实现方式,在第五种可能的实现方式中,还包括:任务刷新单元,用于在所述目标数据流加入所述任务后,所述任务满足数据流剔除条件时,从所述任务中选择要剔除的更新数据流,删除所述更新数据流与所述任务之间的对应关系;所述数据流剔除条件包括如下至少一个:所述任务中的一对map进程和reduce进程之间的数据流的数目多于一个,或者,所述任务的其中一个reduce进程所对应的map进程数目超出最大数目限制。
本发明实施例提供的路径规划方法和控制器,通过对待传输的任务进行整体路径规划,并以任务传输时间最短为路径规划的目标,使得该路径规划是从任务整体的角度来进行,该路径规划方法相对于以单个数据流为目标的路径规划,将使得任务整体的数据流在SDN网络的数据传输阶段所占的时间大大减少,传输时间最短化,提高了任务在SDN网络的数据传输速度,并进而提高了任务的数据处理效率。
附图说明
图1为本发明实施例提供的路径规划方法的应用场景示意图;
图2为本发明实施例提供的路径规划方法应用的SDN网络架构;
图3为本发明实施例提供的一种路径规划方法的流程示意图;
图4为本发明实施例提供的路径规划方法的效果测试拓扑图一;
图5为本发明实施例提供的路径规划方法的效果测试拓扑图二;
图6为图5对应的测试例的任务传输时间示意图;
图7为本发明实施例提供的路径规划方法的应用布局示意图一;
图8为本发明实施例提供的路径规划方法的应用布局示意图二;
图9为本发明实施例提供的路径规划方法的应用布局示意图三;
图10为本发明实施例提供的又一种路径规划方法中的任务识别流程图;
图11为图10中的距离计算流程图;
图12为本发明实施例提供的一种控制器的结构示意图;
图13为本发明实施例提供的另一种控制器的结构示意图;
图14为本发明实施例提供的又一种控制器的结构示意图;
图15为本发明实施例提供的又一种控制器的结构示意图。
具体实施方式
本发明实施例提供的路径规划方法,可以应用于SDN网络的数据传输,图1示例了一种可选的应用场景,参见图1,图1为本发明实施例提供的路径规划方法的应用场景示意图,在分布式计算的应用场景中,以Map-Reduce场景为例(当然具体实施中不局限于此),在map阶段得到的中间结果的处理数据要经过SDN网络发送到reduce进程的主机上,进行reduce阶段的处理。更具体的,假设要完成一件事情“统计词典中某个词语出现的频率”,要完成这件事情,需要做两个步骤,第一个步骤在map阶段(map阶段可以是图1中的第一阶段)执行,该map阶段例如可以是由map主机执行处理,map阶段处理得到中间数据,该中间数据经过SDN网络发送到reduce阶段(reduce阶段可以是图1中的第二阶段)执行第二个步骤,然后才能得到最终的结果;并且,中间数据在SDN网络传输时可能是多个数据流(比如,某个map主机统计词典的前半部分得到的结果对应的一个数据流、以及另一个map主机统计词典的后半部分得到的结果对应的一个数据流)。
由以上可以看到,如果要完成整件事情“统计词典中某个词语出现的频率”,该事情的完成效率,不仅与map阶段和reduce阶段的执行速度有关,并且还与SDN网络的数据传输速度有关,SDN网络的数据传输速度直接关系到整个事情的完成效率。有研究表明,在上述的分布式计算应用场景中,数据传输阶段的时间占到了整个计算完成时间的三分之一以上,在很大程度上决定了整个计算的完成效率,因此,本发明实施例的路径规划方法就是要研究数据在SDN网络按照怎样的路径进行传输,以加快SDN网络的数据传输速度。
图2简单示意了SDN网络的架构,图2为本发明实施例提供的路径规划方法应用的SDN网络架构,SDN网络将控制面和转发面分离,转发面的转发设备例如交换机用于实际传输进入SDN网络的数据流,而控制面中设置的控制器,可以用于计算数据流的转发路径、以及根据转发路径生成转发表并发送至交换机,控制器与各个交换机之间均可以通信,例如可以通过Openflow协议发送转发表。本实施例中,执行本发明实施例的路径规划方法的主体可以是设置在图2中所示的SDN网络的控制器;当然,控制器也可以具有路径规划之外的其他功能,例如根据规划的路径生成转发表等。
下面以图2为例,来说明控制器是如何执行路径规划方法的;在描述该方法之前,首先需要强调说明的是,本发明实施例的路径规划方法所规划的路径是“任务传输路径”,如下是方法中所两个涉及到的基本概念的简单说明:
任务:如上面所列举的例子“统计词典中某个词语出现的频率”,那么这件事情就可以称为一个“任务”,即任务是某个数据处理的事情。
任务传输路径:在分布式计算的场景中,某个任务可能是由多个主机共同完成的,比如在map阶段也是由多个map主机处理,每个主机生成一个数据流,假设有三个主机就可能有三个数据流,这三个数据流的数据其实都是属于同一个“任务”的,比如前面所列举的例子,某个map主机统计词典的前半部分得到的结果对应的一个数据流、以及另一个map主机统计词典的后半部分得到的结果对应的一个数据流。上述的多个数据流都需要在SDN网络传输,实际上需要分别规划出每个数据流在SDN网络的传输路径,那么所有的数据流的传输路径的总体称为“任务传输路径”,即任务传输路径包括:任务中的每一个数据流分别对应的传输路径。
任务传输时间:整个任务在SDN网络完成传输所需要的时间就是任务传输时间,假设任务有三个数据流,那么这三个数据流在SDN网络均完成传输的时间是任务传输时间。
图3为本发明实施例提供的一种路径规划方法的流程示意图,如图3所示,该方法可以包括;
301、获取在软件定义网络待传输的任务的数据流信息;
其中,假设在SDN网络待传输的任务包括三个数据流,分别是f1、f2和f3,参见图2;那么本步骤中,要获取的任务的数据流信息则包括这三个数据流各自的数据流信息。本实施例中,这三个数据流都要在SDN网络传输,可以将这些数据流均称为目标数据流。
所述的数据流信息包括:每一个目标数据流的源地址、目的地址和流量。以图2为例,转发面的几个交换机的标识分别是S1-S5,假设数据流f1的源地址是S1,目的地址是S4,流量是30Mbit;数据流f2的源地址是S1,目的地址是S5,流量是60Mbit;等,其他数据流不再举例。
可选的,控制器获取这些数据流信息的方式可以有多种:
例如,由控制器之外(甚至是SDN网络之外)的某个设备对要在SDN网络传输的数据流进行分析,识别出每个数据流对应的任务,并将属于同一任务的至少一个数据流的上述数据流信息发送给控制器(数据流信息可以是从数据流的数据包中获取)。
更具体的,参见图2,比如所述的设备可以是在SDN网络之外的数据服务器,该数据服务器可以接收由map阶段的主机生成的数据流,并将数据流进行上述的识别任务的分析后,将属于同一任务的数据流的数据流信息发送给控制器,由控制器根据该数据流信息进行路径规划。并且,数据服务器可以是在将该任务的数据流发送到SDN网络之前将任务的数据流信息发送给控制器,以使得服务器能够提前计算数据流的传输路径,当数据流到达SDN网络的交换机时,能够快速实现转发,加快数据传输速度。
又例如,控制器也可以是自身识别每个数据流对应的任务,并提取数据流信息以进行路径规划;这种情况下实际上是将上述的数据服务器的识别任务功能与路径规划功能都集中在控制器上。
更具体的,比如map阶段的主机生成数据流之后,可以在将数据流发送到SDN网络之前,先将各数据流的数据流信息发送给控制器,由控制器识别数据流对应的任务,得到属于同一任务的各数据流的数据流信息,并据此进行路径规划。或者可选的,还可以是map阶段的主机生成数据流之后,直接发送到SDN网络,首先到达SDN网络的交换机,交换机提取数据流的数据流信息并发送给控制器,控制器再根据该数据流信息识别数据流对应的任务,并根据同一任务的各数据流的数据流信息进行路径规划。
302、根据所述任务的数据流信息中的每一个所述目标数据流的源地址、目的地址和流量,对所述待传输的任务进行整体路径规划,所述整体路径规划包括同时规划所述待传输的任务包括的每一个所述目标数据流分别对应的传输路径,并获得所述待传输的任务在所述软件定义网络传输的任务传输时间最短的任务传输路径;
本实施例中,控制器在根据数据流信息进行路径规划时,是以任务整体为规划主体,对任务进行的是整体路径规划并且以任务传输时间最短为规划目的,得到的任务传输路径包括了任务中的每一个目标数据流分别对应的传输路径,该“传输路径”包括了传输数据流的传输链路以及分配的带宽。仍以图2为例,对于数据流f2,其源地址是S1,目的地址是S5,流量是60Mbit,路径规划后为其分配的传输路径可以是“S1——S2——S5,并且每个传输链路(包括链路S1-S2、以及链路S2-S5)上分配60M的带宽”。
也就是说,对于任务中的每一个目标数据流,如果要实现从源地址传输到目的地址,可能有多种可选的传输路径,比如数据流f2从S1至S5,可以走“S1——S2——S5”,或者也可以走“S1——S3——S5”等,甚至可以将数据流f2分成两路,一路走“S1——S2——S5”,另一路走“S1——S3——S5”等,但是按照本发明实施例的路径规划方法得到的任务传输路径,来传输任务,则将使得该任务在SDN网络的任务传输时间最短;而任务在SDN网络的任务传输时间的缩短,必然会带来任务整体完成效率的提高。
需要说明的是,本发明实施例的路径规划方法的重点就在于,一个是根据任务的数据流信息来计算,即要综合结合在SDN网络中待传输的任务所包括的所有目标数据流的数据流信息,综合这些信息来计算,分别得到每个目标数据流的传输路径,比如在对任务进行整体路径规划时,是同时规划该待传输的任务所包括的每一个目标数据流分别对应的传输路径;另一个是以任务传输时间最短为规划的目的来计算。而对于具体采用何种计算方法来进行路径规划,具体实施中可以有多种方式,本发明实施例不做限定。
可选的,如下提供一种路径规划的计算方法:
首先,确定路径规划条件即为目标数据流分配传输路径后所需要满足的条件,该条件可以包括如下的条件1-条件3:
条件1:SDN网络的每一个网络节点处满足流量守恒,可以用如下公式(1)来表示:
在公式中,u和v是SDN中的网络节点,表示对于某个目标数据流(i,j)在传输链路(u,v)上所分配的带宽,其中,i表示所述目标数据流的源地址,j表示所述目标数据流的目的地址;dij表示对于目标数据流(i,j)所分配的总带宽。上述公式(1)所表示的意思是,在SDN中的一个传输链路(u,v),对于所有流入节点v的流量与所有流出节点v的流量之差,如果v是目的地址j则节点v处是净流入(因为流量到节点v终止),而净流入的量就是分配给目标数据流(i,j)的带宽dij;反之,如果v是源地址i则节点v处是净流出(因为流量是从节点v发起),净流出的量也是分配给目标数据流(i,j)的带宽,只是由于是净流出所以带有负号;如果v既不是源地址i也不是目的地址j,而是一个SDN网络的中转节点,那节点v处的流入对应等量的流出,这样净流入就是零。
条件2:SDN网络的每一条传输链路满足最大链路容量限制条件,可以用如下公式(2)来表示:
在公式中,Buv是传输链路(u,v)的最大带宽能力。上述公式(2)所表示的意思是,传输链路(u,v)上分配给不同的目标数据流(i,j)的带宽的总和不能超过这个传输链路的最大容量。
条件3:在SDN网络传输的任务的总流量小于或等于任务传输时间乘以任务的带宽;可以用如下公式(3)来表示:
vij≤Tdij…………………………………………..(3)
在公式中,vij是目标数据流(i,j)的总流量,T是任务传输时间,而dij是在上面的公式(1)中得到的。上述公式(3)所表示的意思是,“数据传输时间与总量”的约束,也就是目标数据流(i,j)所对应的总流量不能大于任务传输时间T(也就是每个目标数据流对应的完成时间里最大的那个)乘以任务被分配的总带宽,否则任务所对应的数据将无法在T时间内传输完成。其中,任务的总流量是任务中所包括的所有目标数据流的流量之和,任务的带宽是所有目标数据流的带宽之和。
接着,在确定了上述的路径规划条件之后,在SDN网络的各传输链路中,穷举满足上述路径规划条件的待选任务传输路径,所述待选任务传输路径中包括每一个目标数据流对应的传输链路以及在所述传输链路的带宽,而传输链路用于将目标数据流从源地址传输至目的地址。并且,对于每一个所述待选任务传输路径得到一个对应的所述任务传输时间。
举例如下:仍以图2为例,假设在SDN网络待传输的某任务中包括三个目标数据流,分别是f1、f2和f3,各自对应的数据流信息是,数据流f1的源地址是S1,目的地址是S4,流量是30Mbit;数据流f2的源地址是S1,目的地址是S5,流量是60Mbit;等。比如在为f2设计传输路径时,可以选择的传输链路及带宽有多种,可以是S1-S4-S5,S1-S4上分配6M带宽,S4-S5上分配5M带宽;或者也可以是,走S1-S2-S5路径,并在S1-S2上分配6M带宽,S2-S5上分配3M带宽等,其他方式不再列举。本实施例是对每一个目标数据流都穷举可能的传输链路及其带宽方式,只要能够将数据流从源地址传输至目的地址即可。那么在每次列出一种可能的任务传输路径后,都要使用上面的路径规划条件查看这种任务传输路径是否可行,如果对于上述三个条件均满足,则表明该任务传输路径是可行的,可以称为待选任务传输路径。并且,每一种待选任务传输路径都可以得到对应的一个任务传输时间,也就是说,为任务的各目标数据流设计不同的传输路径,对应的该任务的传输时间也可能不同。
最后,从上述穷举的结果中,选择最小的任务传输时间对应的待选任务传输路径,作为最终的任务传输路径。也就是说,按照本发明实施例所选择的任务传输路径传输任务,将使得任务在SDN网络的传输时间最短,从而加快任务完成速度。
进一步的,上面所提到的条件1至条件3的对应的三个公式,在具体求解时不是一个标准的线性规划问题,那么为了在最短的时间内求解,提高得到最终结果的速度,本发明实施例还提供了一种将上述公式转化为线性规划问题的求解方法,如下:
即,公式仍然采用上面的公式(1)至公式(3),只是将求解的目标最小化T转化为最小化以此转化为线性规划求解。具体的,可以初始化T1=0,T2为一个比较大的数,T=(T1+T2)/2,然后验证公式(1)至公式(3),如果公式均得到满足,更新T2=T,T=(T1+T2)/2,再次验证公式;否则更新T1=T,T=(T1+T2)/2,再次验证公式;当T1和T2之间的差距小于一个给定的阈值的时候算法将会停止。
以上对本发明实施例的路径规划方法进行了详细的说明,如果将本发明实施例的方法与传统的方法比较来看,传统方法是对每一个进入SDN网络的单个数据流进行路径规划,并且规划的目的可能是负载均衡或者路径最短等,而本发明实施例的方法是根据任务中所包括的所有数据流,对任务传输路径进行规划,是以任务为规划单位的,并且是以任务整体的传输时间最短为目的,因此,本实施例的方法相比于传统方法,必然能够加快任务的处理速度。
如下通过两个测试例,来说明本实施例的方法在提高数据传输速度上所达到的明显效果:
示例一:参见图4,图4为本发明实施例提供的路径规划方法的效果测试拓扑图一,链路带宽为:(s1,d1)5M,(s2,d2)10M,(s3,d3)15M,其它30M。假设网络中存在两个任务,每个任务包含两个数据流,具体信息如下:
任务1包括:数据流1_1,s1→d130Mbit、数据流1_2,s1→d330Mbit;
任务2包括:数据流2_1,s2→d230Mbit、数据流2_2,s2→d330Mbit;
如果是用传统的路径规划机制,四个数据流将会走路径s1→d1,s1→s3→d3,s2→d2,s2→s3→d3,可以看出链路(s3,d3)将会被两个数据流共享,因为不知道数据流对应哪个任务,所以两个数据流将会均等使用此传输链路,各占7.5Mbits,可以计算出任务1和2的完成时间分别是6秒和4秒。而采用本发明实施例的方法,已经得知了数据流对应的任务,在对数据流进行路径规划后,就不会在链路(s3,d3)上给数据流1_2分配7.5Mbits的带宽,而是只给数据流1_2在链路(s3,d3)分配5Mbits的带宽,而给数据流2_2分配10Mbits的带宽,这样将使得任务1和2的完成时间将是6秒和3秒,使得任务2的完成时间缩短。
示例二:图5为本发明实施例提供的路径规划方法的效果测试拓扑图二,该图5中包括13个拓扑节点,分别是节点1(NorthwestNet)、节点2(BARRNet)、节点3(Westnet)、节点4(SDSCNET)、节点5(NCAR/USAN)、节点6(MIDnet)、节点7(Sesquinet)、节点8(NCSA/UIUC)、节点9(Merit)、节点10(CNSF/NYSERNet)、节点11(PSCNET)、节点12(JVNC)、节点13(SURAnet);图6为图5对应的测试例的任务传输时间示意图,其中在图6中,横轴是数据流的流量(Size of Each Flow),横轴是任务传输时间(Job completion time),带点的线表示的是采用本发明实施例的路径规划方法(Semantics TE)后得到的结果,另外一条线表示的是采用传统路径规划方式(等代价多径路由(Equal-Cost Multi-Path routing,简称:ECMP))得到的结果。结合图5和图6所示,在图5的拓扑环境下进行初步的实验,每个链路的带宽均为160Mbits,在两对源地址和目的地址间发送数据。不同数据量下的数据如下表1所示,可以看出通过使用本发明实施例的方法来规划路径,任务完成时间相对传统的ECMP机制缩短了40%以上,大大提高了SDN网络的传输性能。
表1不同数据量的任务传输时间
当为在SDN网络传输的任务规划出任务传输路径之后,控制器还可以根据该路径生成转发表,本实施例中,由于是以包括多个数据流的任务为单位来规划路径,所以会一次性将该任务所包括的各个目标数据流的传输路径都得到,相应的,再根据该路径生成每个目标数据流对应的转发表。控制器可以将该转发表发送到交换机,由交换机根据转发表转发目标数据流。
如上所述的,本发明实施例在进行路径规划时,需要依据任务的数据流信息,即需要首先获知哪些数据流属于同一个任务。如果将用于对数据流进行分析以识别出对应的任务的模块称为“数据挖掘模块”,并将上述的根据任务数据流信息进行路径规划以得到任务传输路径的模块称为“流量工程模块”,那么,“数据挖掘模块”是为“流量工程模块”提供辅助功能的,主要用于向“流量工程模块”输出上述的任务数据流信息。在具体实施中,这两个模块的设计有多种可能的布局方式,如下简单列举几种可选的方式:
例如,图7为本发明实施例提供的路径规划方法的应用布局示意图一,如图7所示,数据挖掘模块和流量工程模块可以是均位于SDN网络的控制器上,数据服务器例如可以是map阶段的主机,主机生成数据流后,在向交换机发送数据流之前可以预先将数据流信息(比如数据流的源地址、目的地址和流量等)发送至控制器的数据挖掘模块。数据挖掘模块根据数据流信息进行聚类计算,得到数据流对应的任务;然后将属于同一个任务的各目标数据流(可以只是在识别出任务后,将属于同一任务的各数据流称为“目标数据流”,当然也可以将所有待在SDN网络传输的数据流都称为目标数据流)的数据流信息发送至流量工程模块进行路径规划,并生成转发表发送至交换机,以使得交换机根据转发表来转发数据流。
又例如,图8为本发明实施例提供的路径规划方法的应用布局示意图二,如图8所示,可以将数据挖掘模块放在SDN网络的外部,该模块可以是设置在外部的某个设备比如数据服务器上,而SDN网络的控制器中只设置流量工程模块。数据服务器接收第一阶段主机(map主机)发送的数据流后,由数据服务器中的数据挖掘模块根据数据流信息进行聚类计算,识别出每个数据流对应的任务。并且,数据服务器可以在确定获得了某个任务中的所有数据流后,再将该任务发送至交换机;此外,数据服务器可以在将任务发送至交换机之前,预先将各数据流的数据流信息发送至控制器的流量工程模块进行路径规划,以使得当后续数据流到达交换机时,交换机能够尽快的根据转发表转发数据流。
再例如,图9为本发明实施例提供的路径规划方法的应用布局示意图三,如图9所示,数据挖掘模块和流量工程模块可以是均位于SDN网络的控制面,但是分别设置在不同的设备上,数据挖掘模块设置在数据服务器上,流量工程模块设置在控制器上。第一阶段主机(map主机)生成的数据流发送到SDN网络的交换机后,交换机上如果没有该数据流对应的转发表,则可以获取该数据流对应的数据流信息并发送至数据服务器,由数据服务器识别出数据流对应的任务。数据服务器在识别出所述任务包括的所有数据流后,可以发送至流量工程模块进行该任务的路径规划;最后根据规划的路径生成转发表发给交换机。
当然,具体实施中还可以采用其他的方式,上述的图7-图9仅是举例;比如,流量工程模块和数据挖掘模块甚至可以是均位于SDN网络之外,并且两个模块设置在相同的设备上或者不同的设备上,此时SDN网络的控制器只需要根据流量工程模块发送的规划路径生成转发表并发送给交换机即可。其他的应用方式不再一一列举,主要能够对于每一个在SDN网络待传输的数据流识别出对应的任务,并且能够基于所述任务进行路径规划得到传输时间最短的任务传输路径,都在本发明实施例的范围之列。此外,还需要说明的是,在上面所举的例子中,聚类计算时所用到的数据流信息与路径计算时所用到的数据流信息基本相同,也就是说,本实施例中从业务流提取出所述的数据流信息(比如源地址、目的地址等)后,就可以根据该信息完成一系列的聚类计算、路径规划等处理,不需要额外的信息,非常简单快速。
如下列举一种可选的数据挖掘模块采用的算法,即数据挖掘模块具体如何识别数据流对应的任务,实际可以采用多种聚类算法,例如,k-means算法,Expectation-maximization算法,Mean-shift算法,甚至分类算法例如Decision trees算法,kNN算法,Linear regression算法,Logistic regression算法等也可以用于识别数据流对应的任务。本发明实施例将以k-means聚类算法为例,详细描述数据流的任务识别过程:
图10为本发明实施例提供的又一种路径规划方法中的任务识别流程图,如图10所示,该k-means聚类算法可以包括如下步骤:
1001、计算目标数据流与每一个待选任务的距离;
其中,这里所述的目标数据流指的是在SDN网络待传输的某一个数据流,所述的待选任务位于任务集合中,该任务集合中包括了所有要在SDN网络传输的任务。可选的,该任务集合中的任务可以是在之前的数据流识别过程中得到的任务,或者也可以是预先知道有哪些任务要在SDN网络中传输。比如,可以用ji表示编号为i的任务即待选任务,而用J={ji}表示上述的任务集合,所要识别的目标数据流可以用f表示,那么本步骤就是要计算f与J中的任一个ji的距离DIST。
在本步骤中,可选的,提供一种距离DIST的计算方式,该方式可以参见图11,图11为图10中的距离计算流程图,可以包括:
1101、计算目标数据流到达软件定义网络的时间与待选任务的更新时间之间的时间间隔;
其中,本步骤要计算目标数据流到达SDN的时间与待选任务的最后更新时间之间的时间间隔;这里所述的目标数据流f到达SDN网络的时间可以用t表示,指的是map主机发送的f到达SDN的时间,当然如果是由SDN网络之外的某个设备执行数据挖掘,那么该时间也可以是f到达所述设备的时间。
所述的待选任务ji的更新时间可以用t’表示,“更新”指的是,该ji中又增加了新识别得到的数据流,比如,ji中已经包括了两个目标数据流,如果最新的又有一个数据流被识别出是属于ji的,那么ji中包括的目标数据流的数量就更新为三个,这个ji发生更新的时间就称为更新时间t’。
本步骤中要计算的时间间隔就是t-t’。
1102、判断时间间隔是否大于更新时间阈值;
其中,更新时间阈值设置为T,如果所述时间间隔t-t’小于或等于更新时间阈值,则继续执行1103;否则,距离DIST是无穷大,即将距离DIST的值设置为无穷大(无穷大表示f属于ji的概率几乎为零),因为任务过长时间没有更新表示当前的目标数据流f属于ji的可能性极低。
1103、计算待选任务的重力中心,并计算重力中心与所述目标数据流的流量之间的差值;
其中,待选任务ji的重力中心G可以采用常规方法计算,比如,可以将该ji所包括的所有数据流的流量v做平均得到G。重力中心与f的流量之间的差值则为|G-v|。
1104、判断差值是否小于第二距离阈值;
其中,所述的第二距离阈值设为Δ,若所述差值|G-v|小于第二距离阈值Δ,则执行1105;否则,如果所述差值|G-v|大于或等于Δ,则距离DIST是无穷大,即赋予DIST无穷大。
可选的,此处的第二距离阈值Δ可以是针对之前一段时间所处理任务的第一距离阈值Δi按其对应流量所做的加权平均(Δi会在后续步骤使用)。
1105、将所述差值作为目标数据流与待选任务的距离DIST;
进一步的,在步骤1105之后,还可以执行1106;
1106、判断目标数据流的目的地址是否属于Di;
其中,Md i和Di是分布式计算体系map-reduce中的参数定义,Md i是属于任务ji的reduce进程d所对应的map进程的集合;Di是任务ji所对应的reduce进程的集合。
如果目标数据流f的目的地址d属于Di,说明一些去向此reduce进程的数据流已经到达了,这时执行1107;如果目标数据流f的目的地址d不属于Di,执行1108。
1107、直接返回DIST,即1105中计算的DIST;
1108、以一定概率返回DIST;
我们将会把d加入到集合Di中,并且把f的源地址s加入到集合Md i中,此时我们以概率1/|Di|返回DIST,因为reduce进程数目越多代表一些reduce进程还没出现的机会越小。
具体的,以概率1/|Di|返回DIST的理由是,因为一个任务所对应的reduce进程数目有限,因此随着|Di|的增加,新起一个reduce进程是错误的概率越来越大,所以应该人工干预减少返回DIST的概率。具体实施中可以在返回前生成一个0和1之间随机数,如果该随机数小于等于1/|Di|,我们直接返回DIST,如果该随机数大于1/|Di|,则我们返回无穷大。
1002、判断距离是否小于第一距离阈值;
本步骤中,将1001中计算得到的距离DIST与第一距离阈值Δi进行比较,如果DIST小于待选任务ji对应的第一距离阈值Δi,表明f是属于ji的,则继续执行1003;否则,执行1004。
需要说明的是,Δi是对每个任务设定的一个距离阈值,这个参数会影响对每个任务的数据流分类的准确性,如果Δi偏大,则数据流不能被准确区分开;反之如果Δi偏小,则会导致数据流被分类多过实际的任务数。具体实施中,Δi可以根据任务分析的结果进行反馈更新,比如,可以设置Δi的初始值为该任务所包括的各数据流对应的距离DIST分布的方差乘以一常数,该常数例如是Kσ,然后根据数据流最终识别为任务的结果反方向调节Δi以在后面的识别中取得更好的分类效果。
1003、将距离对应的待选任务作为目标数据流对应的任务;
即目标数据流f是属于待选任务ji的数据流,待选任务ji中也将会在原来包括的数据流基础上增加该f。
1004、将目标数据流对应新建任务,并将新建任务加入任务集合。
本步骤中,可以为目标数据流f创建一个新的任务j|J|+1,|J|是原来的任务总数,所以新建的任务编号将会在总数的基础上加一,现在任务j|J|+1将会包含f,同时任务集合也会被更新为原J加上新建的任务j|J|+1。
经过上述的1001-1004的步骤,已经将目标数据流f找到了其所属的任务ji或者j|J|+1,对于每一个要在SDN网络传输的目标数据流,均要执行上述的任务识别过程。例如,共有五个目标数据流f1-f5将要在SDN网络传输,对于其中的每一个目标数据流都要执行上述的步骤识别出各自对应的任务,最终可能得到的是,其中的f1-f3属于任务j1,f4和f5属于任务j2,当前的任务集合包括j1和j2。
进一步的,在得到目标数据流对应的任务之后,根据任务的数据流信息进行路径规划之前,还可以检查下上面的任务分类的结果是否准确,比如可能出现的情况是,f4本来是属于任务j1的,结果被分到了任务j2,或者,本来f3不属于当前任务集合J中的任一个待选任务,而是属于新建任务,但是却判断失误将其分到了任务j1,等,本实施例提供一种方法用于筛选出这类目标数据流。
具体的,如果目标数据流加入对应的任务后,所述任务满足数据流剔除条件,则从所述任务中选择要剔除的更新数据流,并删除所述更新数据流与所述任务之间的对应关系。即,要剔除的出错的数据流可以称为“更新数据流”,既然错误,那么就需要删除该更新数据流与其已经分到的任务之间的对应关系,表明该更新数据流其实是不属于该任务的。这类更新数据流的识别是看其是否满足数据流剔除条件。
所述数据流剔除条件包括如下至少一个:
第一剔除条件:所述任务中的一对map进程和reduce进程之间的数据流的数目多于一个(即实际上一对map进程和reduce进程之间只能生成一个任务的一个数据流);
第二剔除条件:所述任务的某个reduce进程所对应的map进程数目超出最大数目限制,即一个reduce进程可以请求数据的map进程有一个最大数目限制。
当上述两个条件满足其中至少一个的时候,就要从所述任务中确定出要剔除的目标数据流。如下给出了一种具体的可选的剔除算法的框架:
算法输入:目标数据流f的源地址s、目的地址d、流量v,目标数据流ji,的重力中心G,可以请求数据的map进程的最大数目F;等;
由以上可以看到,如果目标数据流f的源地址s属于Md i,则表示一对map和reduce进程之间出现了多于一个数据流,我们需要踢出最不合适的数据流,则假设ji中存在与f同源同目的的另一个数据流f’,该f’的流量与G的差值大于f的流量与G的差值,则表明需要将f’从ji中换出,f’不属于任务ji。在将f’换出时,需要对f’重新执行上述的1001-1004的识别任务的过程,如果经过重新分类,f’是属于当前的任务集合中的其他任务jk的,则将f’归入jk;而如果经过重新分类,f’还是分到当前任务ji,则为f’新建一个任务。
如果目标数据流f的源地址s不属于Md i,并且将s加入Md i之后,一个reduce进程所请求数据的map进程超出了最大数目限制F,则将f’从任务中剔除。需要注意的是,当要被踢出的数据流f’不是最后一个到达的时候,首先检查它是否属于其它任务,因为它已经在网络中出现了一段时间代表它所属于的任务也应该出现在网络中了,比如它属于jk,则将其归入jk。相反,如果被踢出的数据流f’是最后一个到达,则可以直接为其创造一个新的任务。
如上所述,上述过程实际上是对任务ji进行刷新的过程,将有些被误分入ji的数据流从中剔除出去,以提高对数据流按任务进行分类的准确性。
每一个将要在SDN网络传输的目标数据流都要进行上述的识别对应任务的过程,假设是由某个设备上的数据挖掘模块进行任务识别,通常情况下,可以是在基本将某个任务所包括的全部目标数据流都找到后,再通知流量工程模块进行该任务对应的路径规划。比如,假设任务A包括三个目标数据流f1、f2和f3,当识别出f1对应A时,等待,至识别出f2对应A,此时A已经识别出两个数据流,仍需等待,直至识别出f3也对应A,找到了A所包括的全部数据流,再通知流量工程模块根据f1-f3的数据流信息对任务A进行路径规划。而是否找到了某个任务中的全部数据流,可以设置一时间阈值,并看在该时间阈值的范围内任务是否更新,如果有更新,则重新开始计算时间阈值即重新等待,如果在该范围内未更新,则表明任务中的数据流已经全部识别得到。
以图8中的应用场景为例,数据挖掘模块对map主机发送的每一数据流都识别出对应的任务,并且对于每一个任务,在每次该任务更新后(更新指的是比如该任务新增了一个识别出的数据流)都开始执行计时,如果超过了所述的时间阈值任务没有更新,则认为任务中的所有数据流已经找到,将该任务的所有数据流发送至交换机。或者说,当任务中的所有数据流已经找到时,将这些数据流的数据流信息发送至流量工程模块进行任务的路径规划。如果在时间阈值的范围内任务又发生了更新,则重新开始计时。
本发明实施例还对上述的k-means聚类算法的效果进行了测试,选择的测试环境是一个包含29个虚拟机的Hadoop系统,由Hibench生成了四种类型的应用,包括terasort,wordcount,k-means和pagerank,这些应用一共在网络中产生了9个任务,包含27869个数据流。通过采用上述的聚类算法,把其中27810个数据流成功分类到其所属于的任务,正确率为99.79%。
本发明实施例的路径规划方法,通过数据挖掘的方式对数据流进行聚类,找到属于同一任务的各个数据流;并利用任务的数据流信息来进行任务的路径规划,使得任务在SDN网络的传输时间最短,提高了SDN网络的整体性能,加快了任务的完成速度,提高了网络的链路利用率。
本发明实施例还提供一种控制器,该控制器可以执行本发明上述方法实施例所述的路径规划方法,并且本发明的控制器实施例仅对其结构做简单说明,具体的功能和原理可以结合参见方法实施例。
图12为本发明实施例提供的一种控制器的结构示意图,如图12所示,可以包括:信息接收单元1201和路径规划单元1202;其中,
信息接收单元1201,用于获取在软件定义网络SDN中待传输的任务的数据流信息,所述任务包括至少一个目标数据流,所述任务的数据流信息包括:每一个所述目标数据流的源地址、目的地址和流量;
路径规划单元1202,用于根据所述任务的数据流信息中的每一个所述目标数据流的源地址、目的地址和流量,对所述待传输的任务进行整体路径规划,所述整体路径规划包括同时规划所述待传输的任务包括的每一个所述目标数据流分别对应的传输路径,并获得所述待传输的任务在所述软件定义网络传输的任务传输时间最短的任务传输路径,其中所述任务传输时间是所述任务在所述软件定义网络中完成传输所需的时间;所述任务传输路径包括所述任务中的每一个目标数据流分别对应的传输路径。
可选的,该路径规划单元1202,具体可以用于:
确定路径规划条件,所述路径规划条件包括:在为每一个所述目标数据流分配对应的传输路径之后,在所述软件定义网络的每一个网络节点处满足流量守恒,在所述软件定义网络的每一条传输链路满足最大链路容量限制条件,并且所述任务的总流量小于或等于所述任务传输时间乘以所述任务的带宽,所述传输路径包括:传输链路以及在所述传输链路的带宽;所述任务的总流量是所述至少一个目标数据流的流量之和,所述任务的带宽是所述至少一个目标数据流的带宽之和;
在所述软件定义网络中的各传输链路中,穷举满足所述路径规划条件的待选任务传输路径,所述待选任务传输路径中包括每一个所述目标数据流对应的传输链路以及在所述传输链路的带宽,所述传输链路用于将所述目标数据流从所述源地址传输至所述目的地址;并且,对于每一个所述待选任务传输路径得到一个对应的所述任务传输时间;
选择最小的所述任务传输时间对应的所述待选任务传输路径,作为最终的所述任务传输路径。
具体实施中,该控制器可以仅具有根据任务的数据流信息进行路径规划的功能,比如图8或图9中的控制器,这两个图中的控制器,信息接收单元1201和路径规划单元1202可以是均位于流量工程模块中。当然,如果在具体实施中包括所述的信息接收单元1201和路径规划单元1202的流量工程模块不是设置在SDN网络的控制器中,而是位于SDN网络之外的某个设备,那么该设备就相当于本发明实施例所述的控制器,仍属于本实施例的范围。
进一步的,本实施例的控制器也可以同时具有路径规划以及对数据流进行任务识别的功能,此时控制器的结构可以参见图13,图13为本发明实施例提供的另一种控制器的结构示意图,在图12的结构基础上,还包括任务归类单元1203,用于对每一个在软件定义网络待传输的所述目标数据流,获取所述目标数据流的所述数据流信息,并根据所述数据流信息进行聚类计算,得到所述目标数据流对应的任务。例如参见图7,任务归类单元1203可以是位于控制器的数据挖掘模块中。
图14为本发明实施例提供的又一种控制器的结构示意图,在图13的结构基础上,可选的,任务归类单元1203,具体可以包括:距离计算子单元1204和任务识别子单元1205;其中,
距离计算子单元1204,用于计算所述目标数据流与每一个待选任务的距离,所述待选任务位于用于表示软件定义网络传输的所有任务的任务集合中;
任务识别子单元1205,用于在所述距离小于所述待选任务对应的第一距离阈值时,将所述距离对应的所述待选任务作为目标数据流对应的任务;否则,将所述目标数据流对应新建任务,并将所述新建任务加入所述任务集合。
进一步的,距离计算子单元1204,具体用于:
计算所述目标数据流到达所述软件定义网络的时间与所述待选任务的最后更新时间之间的时间间隔;
如果所述时间间隔小于或等于更新时间阈值,则继续计算所述待选任务的重力中心与所述目标数据流的所述流量之间的差值,若所述差值小于第二距离阈值,则将所述差值作为所述目标数据流与所述待选任务的距离。
图15为本发明实施例提供的又一种控制器的结构示意图,在图13的结构基础上,可选的,该控制器还可以包括:
任务刷新单元1206,用于在所述目标数据流加入所述任务后,所述任务满足数据流剔除条件时,从所述任务中选择要剔除的更新数据流,删除所述更新数据流与所述任务之间的对应关系;所述数据流剔除条件包括如下至少一个:所述任务中的一对map进程和reduce进程之间的数据流的数目多于一个,或者,所述任务的某个reduce进程所对应的map进程数目超出最大数目限制。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种路径规划方法,其特征在于,包括:
获取在软件定义网络SDN中待传输的任务的数据流信息,所述任务包括至少一个目标数据流,所述任务的数据流信息包括每一个所述目标数据流的源地址、目的地址和流量;
根据所述任务的数据流信息中的每一个所述目标数据流的源地址、目的地址和流量,对所述待传输的任务进行整体路径规划,所述整体路径规划包括同时规划所述待传输的任务包括的每一个所述目标数据流分别对应的传输路径,并获得所述待传输的任务在所述软件定义网络传输的任务传输时间最短的任务传输路径,其中所述任务传输时间是所述任务在所述软件定义网络中完成传输所需的时间,所述任务传输路径包括所述任务中的每一个所述目标数据流分别对应的传输路径;
所述获取在SDN中待传输的任务的数据流信息,包括:
对每一个在软件定义网络待传输的所述目标数据流,获取所述目标数据流的所述数据流信息,并根据所述数据流信息进行聚类计算,得到所述目标数据流对应的任务。
2.根据权利要求1所述的方法,其特征在于,所述根据所述任务的数据流信息中的每一个所述目标数据流的源地址、目的地址和流量,对所述待传输的任务进行整体路径规划,所述整体路径规划包括同时规划所述待传输的任务包括的每一个所述目标数据流分别对应的传输路径,并获得所述待传输的任务在软件定义网络中完成传输所需时间最短的任务传输路径,包括:
确定路径规划条件,所述路径规划条件包括:在为每一个所述目标数据流分配对应的传输路径之后,在所述软件定义网络的每一个网络节点处满足流量守恒,在所述软件定义网络的每一条传输链路满足最大链路容量限制条件,并且所述任务的总流量小于或等于所述任务传输时间乘以所述任务的带宽,所述传输路径包括:传输链路以及在所述传输链路的带宽;所述任务的总流量是所述至少一个目标数据流的流量之和,所述任务的带宽是所述至少一个目标数据流的带宽之和;
在所述软件定义网络中的各传输链路中,穷举满足所述路径规划条件的待选任务传输路径,所述待选任务传输路径中包括每一个所述目标数据流对应的传输链路以及在所述传输链路的带宽,所述传输链路用于将所述目标数据流从所述源地址传输至所述目的地址;并且,对于每一个所述待选任务传输路径得到一个对应的所述任务传输时间;
选择最小的所述任务传输时间对应的所述待选任务传输路径,作为最终的所述任务传输路径。
3.根据权利要求1所述的方法,其特征在于,所述根据所述数据流信息进行聚类计算,包括:
计算所述目标数据流与每一个待选任务的距离,所述待选任务位于用于表示所述软件定义网络传输的所有任务的任务集合中;
如果所述距离小于所述待选任务对应的第一距离阈值,则将所述距离对应的所述待选任务作为所述目标数据流对应的任务;否则,将所述目标数据流对应新建任务,并将所述新建任务加入所述任务集合。
4.根据权利要求3所述的方法,其特征在于,所述计算所述目标数据流与每一个待选任务的距离,包括:
计算所述目标数据流到达所述软件定义网络的时间与所述待选任务的最后更新时间之间的时间间隔;
如果所述时间间隔小于或等于更新时间阈值,则继续计算所述待选任务的重力中心与所述目标数据流的所述流量之间的差值,若所述差值小于第二距离阈值,则将所述差值作为所述目标数据流与所述待选任务的距离。
5.根据权利要求1所述的方法,其特征在于,在得到所述目标数据流对应的任务之后,对所述待传输的任务进行整体路径规划之前,还包括:
如果所述目标数据流加入所述任务后,所述任务满足数据流剔除条件,则从所述任务中选择要剔除的更新数据流,删除所述更新数据流与所述任务之间的对应关系;所述数据流剔除条件包括如下至少一个:所述任务中的一对map进程和reduce进程之间的数据流的数目多于一个,或者,所述任务的其中一个reduce进程所对应的map进程数目超出最大数目限制。
6.一种控制器,其特征在于,包括:
信息接收单元,用于获取在软件定义网络SDN中待传输的任务的数据流信息,所述任务包括至少一个目标数据流,所述任务的数据流信息包括:每一个所述目标数据流的源地址、目的地址和流量;
路径规划单元,用于根据所述任务的数据流信息中的每一个所述目标数据流的源地址、目的地址和流量,对所述待传输的任务进行整体路径规划,所述整体路径规划包括同时规划所述待传输的任务包括的每一个所述目标数据流分别对应的传输路径,并获得所述待传输的任务在所述软件定义网络传输的任务传输时间最短的任务传输路径,其中所述任务传输时间是所述任务在所述软件定义网络中完成传输所需的时间;所述任务传输路径包括所述任务中的每一个所述目标数据流分别对应的传输路径;
任务归类单元,用于对每一个在软件定义网络待传输的所述目标数据流,获取所述目标数据流的所述数据流信息,并根据所述数据流信息进行聚类计算,得到所述目标数据流对应的任务。
7.根据权利要求6所述的控制器,其特征在于,所述路径规划单元,具体用于:
确定路径规划条件,所述路径规划条件包括:在为每一个所述目标数据流分配对应的传输路径之后,在所述软件定义网络的每一个网络节点处满足流量守恒,在所述软件定义网络的每一条传输链路满足最大链路容量限制条件,并且所述任务的总流量小于或等于所述任务传输时间乘以所述任务的带宽,所述传输路径包括:传输链路以及在所述传输链路的带宽;所述任务的总流量是所述至少一个目标数据流的流量之和,所述任务的带宽是所述至少一个目标数据流的带宽之和;
在所述软件定义网络中的各传输链路中,穷举满足所述路径规划条件的待选任务传输路径,所述待选任务传输路径中包括每一个所述目标数据流对应的传输链路以及在所述传输链路的带宽,所述传输链路用于将所述目标数据流从所述源地址传输至所述目的地址;并且,对于每一个所述待选任务传输路径得到一个对应的所述任务传输时间;
选择最小的所述任务传输时间对应的所述待选任务传输路径,作为最终的所述任务传输路径。
8.根据权利要求6所述的控制器,其特征在于,所述任务归类单元,包括:
距离计算子单元,用于计算所述目标数据流与每一个待选任务的距离,所述待选任务位于用于表示软件定义网络传输的所有任务的任务集合中;
任务识别子单元,用于在所述距离小于所述待选任务对应的第一距离阈值时,将所述距离对应的所述待选任务作为所述目标数据流对应的任务;否则,将所述目标数据流对应新建任务,并将所述新建任务加入所述任务集合。
9.根据权利要求8所述的控制器,其特征在于,所述距离计算子单元,具体用于:
计算所述目标数据流到达所述软件定义网络的时间与所述待选任务的最后更新时间之间的时间间隔;
如果所述时间间隔小于或等于更新时间阈值,则继续计算所述待选任务的重力中心与所述目标数据流的所述流量之间的差值,若所述差值小于第二距离阈值,则将所述差值作为所述目标数据流与所述待选任务的距离。
10.根据权利要求6所述的控制器,其特征在于,还包括:
任务刷新单元,用于在所述目标数据流加入所述任务后,所述任务满足数据流剔除条件时,从所述任务中选择要剔除的更新数据流,删除所述更新数据流与所述任务之间的对应关系;所述数据流剔除条件包括如下至少一个:所述任务中的一对map进程和reduce进程之间的数据流的数目多于一个,或者,所述任务的其中一个reduce进程所对应的map进程数目超出最大数目限制。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410253610.2A CN105897584B (zh) | 2014-06-09 | 2014-06-09 | 路径规划方法和控制器 |
EP15775601.6A EP3151483B1 (en) | 2014-06-09 | 2015-01-28 | Path planning method and controller |
PCT/CN2015/071729 WO2015188628A1 (zh) | 2014-06-09 | 2015-01-28 | 路径规划方法和控制器 |
US14/980,491 US10187291B2 (en) | 2014-06-09 | 2015-12-28 | Path planning method and controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410253610.2A CN105897584B (zh) | 2014-06-09 | 2014-06-09 | 路径规划方法和控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105897584A CN105897584A (zh) | 2016-08-24 |
CN105897584B true CN105897584B (zh) | 2018-11-30 |
Family
ID=54832858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410253610.2A Active CN105897584B (zh) | 2014-06-09 | 2014-06-09 | 路径规划方法和控制器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10187291B2 (zh) |
EP (1) | EP3151483B1 (zh) |
CN (1) | CN105897584B (zh) |
WO (1) | WO2015188628A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016014086A1 (en) * | 2014-07-25 | 2016-01-28 | Hewlett-Packard Development Company, L.P. | Software-defined sensing |
CN106572026B (zh) * | 2016-10-28 | 2020-04-10 | 上海斐讯数据通信技术有限公司 | 一种基于sdn的负载均衡方法、装置和系统 |
CN106533986B (zh) * | 2016-12-02 | 2019-04-05 | 北京邮电大学 | 一种基于时间段预约带宽资源的路径分配方法及装置 |
CN106658520B (zh) * | 2016-12-29 | 2020-11-03 | 中国科学院计算技术研究所 | 构建任务处理路径的方法及系统 |
WO2018119830A1 (zh) * | 2016-12-29 | 2018-07-05 | 中国科学院计算技术研究所 | 构建任务处理路径的方法及系统 |
CN106899505A (zh) * | 2017-04-19 | 2017-06-27 | 天津微梦无界科技有限公司 | 一种可控的软件自复制传播方法 |
US10674394B2 (en) * | 2017-10-27 | 2020-06-02 | Futurewei Technologies, Inc. | Method and apparatus for reducing network latency |
CN108289288A (zh) * | 2018-01-22 | 2018-07-17 | 上海晶曦微电子科技有限公司 | 一种通信的方法、装置、通信设备及存储介质 |
US11516106B2 (en) * | 2018-06-27 | 2022-11-29 | Intel Corporation | Protocol analyzer for monitoring and debugging high-speed communications links |
CN109039899B (zh) * | 2018-08-07 | 2020-11-06 | 深圳三角形科技有限公司 | 数据传输方法、系统及计算机可读存储介质 |
CN109658176B (zh) * | 2018-09-29 | 2020-11-06 | 创新先进技术有限公司 | 资源开销的输出方法及装置、电子设备 |
CN109768924B (zh) * | 2019-02-14 | 2021-06-08 | 山东省计算中心(国家超级计算济南中心) | 一种面向多流共存的sdn网络多链路故障恢复方法及系统 |
CN111093057B (zh) * | 2019-12-03 | 2022-12-16 | 安徽四创电子股份有限公司 | 一种城市视频监控系统网络架构的规划方法 |
CN111865799B (zh) * | 2020-07-14 | 2023-09-05 | 北京灵汐科技有限公司 | 路径规划方法、装置、路径规划设备及存储介质 |
CN112866019B (zh) * | 2021-01-11 | 2022-08-05 | 科大讯飞股份有限公司 | 弹性ip地址的带宽限速方法、相关设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324592A (zh) * | 2013-06-24 | 2013-09-25 | 华为技术有限公司 | 一种数据迁移控制方法、数据迁移方法及装置 |
CN103516602A (zh) * | 2012-06-27 | 2014-01-15 | 丛林网络公司 | 服务工程路径的反馈回路 |
CN103650435A (zh) * | 2013-08-14 | 2014-03-19 | 华为技术有限公司 | 路由流量调整方法、装置及控制器 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5540963B2 (ja) * | 2010-07-15 | 2014-07-02 | 富士通株式会社 | 情報処理方法、装置及びプログラム |
US9071541B2 (en) * | 2012-04-25 | 2015-06-30 | Juniper Networks, Inc. | Path weighted equal-cost multipath |
CN103326884B (zh) | 2013-05-30 | 2016-06-01 | 烽火通信科技股份有限公司 | Sdn网络中结合流检测和包检测的业务流感知系统及方法 |
CN104219147B (zh) * | 2013-06-05 | 2018-10-16 | 中兴通讯股份有限公司 | 边缘设备的vpn实现处理方法及装置 |
CN103346922B (zh) | 2013-07-26 | 2016-08-10 | 电子科技大学 | 基于sdn的确定网络状态的控制器及其确定方法 |
US9843504B2 (en) * | 2013-08-09 | 2017-12-12 | Futurewei Technologies, Inc. | Extending OpenFlow to support packet encapsulation for transport over software-defined networks |
US20150124622A1 (en) * | 2013-11-01 | 2015-05-07 | Movik Networks, Inc. | Multi-Interface, Multi-Layer State-full Load Balancer For RAN-Analytics Deployments In Multi-Chassis, Cloud And Virtual Server Environments |
US9367366B2 (en) * | 2014-03-27 | 2016-06-14 | Nec Corporation | System and methods for collaborative query processing for large scale data processing with software defined networking |
WO2015149831A1 (en) * | 2014-03-31 | 2015-10-08 | Telefonaktiebolaget L M Ericsson (Publ) | Handling of traffic flows in a communications system |
WO2015167486A1 (en) * | 2014-04-30 | 2015-11-05 | Hewlett-Packard Development Company, L.P. | Reducing data in a network device |
US9794165B1 (en) * | 2014-09-29 | 2017-10-17 | Juniper Networks, Inc. | Batched path computation in resource-constrained networks |
-
2014
- 2014-06-09 CN CN201410253610.2A patent/CN105897584B/zh active Active
-
2015
- 2015-01-28 EP EP15775601.6A patent/EP3151483B1/en active Active
- 2015-01-28 WO PCT/CN2015/071729 patent/WO2015188628A1/zh active Application Filing
- 2015-12-28 US US14/980,491 patent/US10187291B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516602A (zh) * | 2012-06-27 | 2014-01-15 | 丛林网络公司 | 服务工程路径的反馈回路 |
CN103324592A (zh) * | 2013-06-24 | 2013-09-25 | 华为技术有限公司 | 一种数据迁移控制方法、数据迁移方法及装置 |
CN103650435A (zh) * | 2013-08-14 | 2014-03-19 | 华为技术有限公司 | 路由流量调整方法、装置及控制器 |
Also Published As
Publication number | Publication date |
---|---|
US10187291B2 (en) | 2019-01-22 |
EP3151483A4 (en) | 2017-07-05 |
EP3151483B1 (en) | 2021-03-17 |
CN105897584A (zh) | 2016-08-24 |
EP3151483A1 (en) | 2017-04-05 |
US20160134512A1 (en) | 2016-05-12 |
WO2015188628A1 (zh) | 2015-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105897584B (zh) | 路径规划方法和控制器 | |
CN105989408B (zh) | 用于将神经网络映射到神经突触基板上的系统和方法 | |
Bhatele et al. | Identifying the culprits behind network congestion | |
CN112866059B (zh) | 一种基于人工智能应用的无损网络性能测试方法和装置 | |
US20200177495A1 (en) | Route control method and route setting device | |
CN107430704A (zh) | 基于与神经网络算法关联的元数据在神经突触基底上实现神经网络算法 | |
CN104914835A (zh) | 一种柔性作业车间调度多目标的方法 | |
CN106503333B (zh) | 一种三维片上网络测试规划方法 | |
CN112468401B (zh) | 用于类脑处理器的片上网络路由通信方法及片上网络 | |
CN106776796A (zh) | 基于云计算和大数据无人机任务规划系统和方法 | |
CN110515732A (zh) | 一种基于资源受限机器人深度学习推理的任务分配方法 | |
CN103279505B (zh) | 一种基于语义的海量数据处理方法 | |
Wang et al. | A reinforcement learning approach for online service tree placement in edge computing | |
Dobler | Travel behaviour modelling for scenarios with exceptional events: methods and implementations | |
CN103927433A (zh) | 基于流控制的多源点多出口人群应急疏散调度方法 | |
Muhsen et al. | Enhancing NoC-Based MPSoC performance: A predictive approach with ANN and guaranteed convergence arithmetic optimization algorithm | |
Zhao et al. | Adaptive Swarm Intelligent Offloading Based on Digital Twin-assisted Prediction in VEC | |
Khankhour et al. | Parallel genetic approach for routing optimization in large ad hoc networks | |
Lee et al. | End-to-End control of USV swarm using graph centric Multi-Agent Reinforcement Learning | |
CN111368060A (zh) | 对话机器人的自学习方法、装置、系统、电子设备及介质 | |
US20170372214A1 (en) | Updates to a prediction model using statistical analysis groups | |
Gora et al. | Investigating performance of neural networks and gradient boosting models approximating microscopic traffic simulations in traffic optimization tasks | |
Šajina et al. | Decentralized trustless gossip training of deep neural networks | |
Song et al. | Novel graph processor architecture | |
CN113744296A (zh) | 一种基于人工黏菌群体智能的图像边缘检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |