一种接收请求的方法及控制器与流程

文档序号:11148026阅读:370来源:国知局
一种接收请求的方法及控制器与制造工艺

本发明涉及通信技术领域,尤其涉及一种接收请求的方法及控制器。



背景技术:

随着网络规模的不断扩大,不同场景下对网络的需求更加多样化。如果针对每种场景都建立一个网络去满足业务需求,将是高成本低效率的。使用网络虚拟化技术,在底层物理网络上抽象出多个逻辑独立的虚拟网络。每个业务对应一个虚拟网络,分配专有的独立资源,可以解决多样化业务需求的问题。从业务的角度来看,为其分配的资源是独享的,和其他业务之间相互隔离和互不感知。从底层物理网络来看,这些业务共享相同物理基础设施。

在虚拟网络中当虚拟节点或虚拟链路发生故障时,会导致其上承载的通信业务不能运行。为提高通信业务可靠性,用户会在虚拟网络中进行可靠性设计。然而在由虚拟网络到物理网络进行映射的过程中,用户的可靠性设计可能会丢失,无法实际提高通信业务可靠性。



技术实现要素:

本发明实施例提供了一种接收请求的方法及装置,有助于保留用户可靠性设计,实际提高通信业务可靠性。

本发明实施例提供的技术方案如下:

第一方面,提供了一种接收请求的方法。该方法包括:

控制器接收请求,所述请求包括虚拟网络的拓扑信息。所述虚拟网络的拓扑信息用于描述所述虚拟网络的拓扑。所述虚拟网络包括第一虚拟链路、第二虚拟链路、第一虚拟节点、第二虚拟节点、第三虚拟节点和第四虚拟节点。所述第一虚拟节点和第二虚拟节点分别是所述第一虚拟链路的入口节点和出口节点。所述第三虚拟节点和第四虚拟节点分别是所述第二虚拟链路的入口节点和出口节点。所述第一虚拟链路和所述第二虚拟链路之间没有同一个虚拟节点。所述第二虚拟链路是所述第一虚拟链路的备份链路。所述请求用于指示所述控制器确定分别对应所述第一虚拟链路和所述第二虚拟链路的第一物理链路和第二物理链路。所述第一物理链路和所述第二物理链路之间没有同一个物理节点。所述第二物理链路是所述第一物理链路的备份链路。

响应于所述请求,所述控制器确定所述第一物理链路以及所述第二物理链路。所述第一物理链路包括多个物理节点。所述第一物理链路中的多个物理节点包括第一物理节点和第二物理节点。所述第一物理节点和所述第二物理节点分别是所述第一物理链路的入口节点和出口节点。所述第二物理链路包括多个物理节点。所述第二物理链路中的多个物理节点包括第三物理节点和第四物理节点。所述第三物理节点和所述第四物理节点分别是所述第二物理链路的入口节点和出口节点。所述第一虚拟节点、第二虚拟节点、第三虚拟节点和第四虚拟节点分别对应所述第一物理节点、第二物理节点、第三物理节点和第四物理节点。

所述控制器根据确定的所述第一物理链路,指示所述第一物理链路上的物理节点生成用于指导流量沿着所述第一物理链路进行转发的转发表。所述控制器根据确定的所述第二物理链路,指示所述第二物理链路上的物理节点生成当所述第一物理链路发生故障时,用于指导所述流量沿着所述第二物理链路进行转发的转发表。

可选地,所述控制器确定所述第一物理链路以及所述第二物理链路包括:

所述控制器获取物理网络的拓扑信息。所述物理网络的拓扑信息用于描述所述物理网络的拓扑。所述物理网络的拓扑包括所述物理网络中的多个物理节点以及所述物理网络中的多个物理链路。所述物理网络中的多个物理链路包括所述第一物理链路和所述第二物理链路。所述物理网络中的多个物理节点包括第一物理节点集、第二物理节点集、第三物理节点集以及第四物理节点集。所述第一物理节点集包括所述第一物理节点。所述第二物理节点集包括所述第二物理节点。所述第三物理节点集包括所述第三物理节点。所述第四物理节点集包括所述第四物理节点。所述控制器在所述物理网络的拓扑信息的基础上生成第一网络的拓扑信息。所述第一网络的拓扑信息用于描述所述第一网络的拓扑。所述第一网络的拓扑包括:所述物理网络中的多个物理节点,所述物理网络中的多个物理链路,所述第一虚拟节点,所述第二虚拟节点,所述第三虚拟节点,所述第四虚拟节点,从所述第一虚拟节点分别到所述第一物理节点集中的所有物理节点的多个逻辑链路,从所述第二虚拟节点分别到所述第二物理节点集中的所有物理节点的多个逻辑链路,分别从所述第三物理节点集中的所有物理节点到所述第三虚拟节点的多个逻辑链路,以及,分别从所述第四物理节点集中的所有物理节点到所述第四虚拟节点的多个逻辑链路。其中设定虚拟节点对应候选的物理节点集,对物理节点进行选择,可以提高映射效率和网络性能。

所述控制器根据所述第一网络的拓扑信息确定从所述第一虚拟节点到所述第二虚拟节点的m条路径,m为大于或者等于1的整数。所述m条路径的每一条路径包括从所述第一虚拟节点到所述第一物理节点集中一个物理节点的一条逻辑链路,从所述第二虚拟节点到所述第二物理节点集中一个物理节点的一条逻辑链路,以及从所述第一物理节点集中所述一个物理节点到所述第二物理节点集中所述一个物理节点的物理链路。所述物理网络包含的多个物理链路包括从所述第一物理节点集中所述一个物理节点到所述第二物理节点集中所述一个物理节点的所述物理链路。

所述控制器根据所述第一网络的拓扑信息确定从所述第三虚拟节点到所述第四虚拟节点的n条路径,n为大于等于1的整数。所述n条路径的每一条路径包括从所述第三虚拟节点到所述第三物理节点集中一个物理节点的一条逻辑链路,从所述第四物理节点集中一个物理节点到所述第四虚拟节点的一条逻辑链路,以及从所述第三物理节点集中所述一个物理节点到所述第四物理节点集中所述一个物理节点的物理链路。所述物理网络包含的多个物理链路包括从所述第三物理节点集中所述一个物理节点到所述第四物理节点集中所述一个物理节点的所述物理链路。

所述控制器确定所述m条路径中的第一路径和所述n条路径中的第二路径。所述第一路径与所述第二路径之间不存在同一个物理节点,也不存在同一个虚拟节点;

所述控制器确定所述第一路径包括的从所述第一物理节点集中所述一个物理节点到所述第二物理节点集中所述一个物理节点的所述物理链路为所述第一物理链路。所述第二路径包括的从所述第三物理节点集中所述一个物理节点到所述第四物理节点集中所述一个物理节点的所述物理链路为所述第二物理链路。

可选地,所述第一虚拟节点和第三虚拟节点是所述虚拟网络的入口节点。所述第二虚拟节点和第四虚拟节点是所述虚拟网络的出口节点。所述第一物理节点集和第三物理节点集包括的物理节点是所述物理网络的入口节点。所述第二物理节点集和第四物理节点集包括的物理节点是所述物理网络的出口节点。通过将虚拟网络的入口节点或出口节点与包括物理网络的入口节点或出口节点的节点集相对应,缩小映射范围,提高映射效率。

可选地,所述控制器根据所述第一网络的拓扑信息确定所述m条路径和所述n条路径使用K最短路径算法。所述m条路径是所述控制器使用K最短路径算法确定的K条路径中的m条。所述n条路径是所述控制器使用K最短路径算法确定的K条路径中的n条。从所述第一虚拟节点分别到所述第一物理节点集中的所有物理节点的多个逻辑链路的开销都等于X。分别从所述第二物理节点集中的所有物理节点到所述第二虚拟节点的多个逻辑链路的开销都等于X。从所述第三虚拟节点分别到所述第三物理节点集中的所有物理节点的多个逻辑链路的开销都等于X。分别从所述第四物理节点集中的所有物理节点到所述第四虚拟节点的多个逻辑链路的开销都等于X。所述X大于或等于0。

可选地,所述控制器是软件定义网络(software defined network,SDN)控制器。例如,所述SDN控制器可以是开放流控制器(OpenFlow controller)。关于OpenFlow controller,可以参考开放网络机构(Open Networking Foundation)发布的标准文档。

第二方面,提供了一种控制器。该控制器包括接收单元、确定单元和指示单元。

所述接收单元,用于接收请求。所述请求包括虚拟网络的拓扑信息。所述虚拟网络的拓扑信息用于描述所述虚拟网络的拓扑。所述虚拟网络包括第一虚拟链路、第二虚拟链路、第一虚拟节点、第二虚拟节点、第三虚拟节点和第四虚拟节点。所述第一虚拟节点和第二虚拟节点分别是所述第一虚拟链路的入口节点和出口节点。所述第三虚拟节点和第四虚拟节点分别是所述第二虚拟链路的入口节点和出口节点。所述第一虚拟链路和所述第二虚拟链路之间没有同一个虚拟节点。所述第二虚拟链路是所述第一虚拟链路的备份链路。所述请求用于指示所述控制器确定分别对应所述第一虚拟链路和所述第二虚拟链路的第一物理链路和第二物理链路。所述第一物理链路和所述第二物理链路之间没有同一个物理节点。所述第二物理链路是所述第一物理链路的备份链路。

所述确定单元,用于响应于所述接收单元接收的所述请求,确定所述第一物理链路以及所述第二物理链路。所述第一物理链路包括多个物理节点。所述第一物理链路中的多个物理节点包括第一物理节点和第二物理节点。所述第一物理节点和所述第二物理节点分别是所述第一物理链路的入口节点和出口节点。所述第二物理链路包括多个物理节点。所述第二物理链路中的多个物理节点包括第三物理节点和第四物理节点。所述第三物理节点和所述第四物理节点分别是所述第二物理链路的入口节点和出口节点。所述第一虚拟节点、第二虚拟节点、第三虚拟节点和第四虚拟节点分别对应所述第一物理节点、第二物理节点、第三物理节点和第四物理节点。

所述指示单元,用于根据所述确定单元确定的所述第一物理链路,指示所述第一物理链路上的物理节点生成用于指导流量沿着所述第一物理链路进行转发的转发表。所述指示单元还用于根据所述确定单元确定的所述第二物理链路,指示所述第二物理链路上的物理节点生成当所述第一物理链路发生故障时,用于指导所述流量沿着所述第二物理链路进行转发的转发表。

可选地,所述确定单元包括物理网络拓扑信息获取单元、第一网络拓扑信息生成单元、第一多路径确定单元、第二多路径确定单元、路径确定单元和物理链路确定单元。

所述物理网络拓扑信息获取单元,用于获取物理网络的拓扑信息。所述物理网络的拓扑信息用于描述所述物理网络的拓扑。所述物理网络的拓扑包括所述物理网络中的多个物理节点以及所述物理网络中的多个物理链路。所述物理网络中的多个物理链路包括所述第一物理链路和所述第二物理链路。所述物理网络中的多个物理节点包括第一物理节点集、第二物理节点集、第三物理节点集以及第四物理节点集。所述第一物理节点集包括所述第一物理节点。所述第二物理节点集包括所述第二物理节点。所述第三物理节点集包括所述第三物理节点。所述第四物理节点集包括所述第四物理节点。其中设定虚拟节点对应候选的物理节点集,对物理节点进行选择,可以缩小映射范围,提高映射效率。

所述第一网络拓扑信息生成单元,用于在所述物理网络拓扑信息获取单元获取的所述物理网络的拓扑信息的基础上生成第一网络的拓扑信息。所述第一网络的拓扑信息用于描述所述第一网络的拓扑。所述第一网络的拓扑包括:所述物理网络中的多个物理节点,所述物理网络中的多个物理链路,所述第一虚拟节点,所述第二虚拟节点,所述第三虚拟节点,所述第四虚拟节点,从所述第一虚拟节点分别到所述第一物理节点集中的所有物理节点的多个逻辑链路,从所述第二虚拟节点分别到所述第二物理节点集中的所有物理节点的多个逻辑链路,分别从所述第三物理节点集中的所有物理节点到所述第三虚拟节点的多个逻辑链路,以及,分别从所述第四物理节点集中的所有物理节点到所述第四虚拟节点的多个逻辑链路。

所述第一多路径确定单元,用于根据所述第一网络拓扑信息生成单元生成的所述第一网络的拓扑信息确定从所述第一虚拟节点到所述第二虚拟节点的m条路径,m为大于或者等于1的整数。所述m条路径的每一条路径包括从所述第一虚拟节点到所述第一物理节点集中一个物理节点的一条逻辑链路,从所述第二虚拟节点到所述第二物理节点集中一个物理节点的一条逻辑链路,以及从所述第一物理节点集中所述一个物理节点到所述第二物理节点集中所述一个物理节点的物理链路,所述物理网络包含的多个物理链路包括从所述第一物理节点集中所述一个物理节点到所述第二物理节点集中所述一个物理节点的所述物理链路。

所述第二多路径确定单元,用于根据所述第一网络拓扑信息生成单元生成的所述第一网络的拓扑信息确定从所述第三虚拟节点到所述第四虚拟节点的n条路径,n为大于等于1的整数。所述n条路径的每一条路径包括从所述第三虚拟节点到所述第三物理节点集中一个物理节点的一条逻辑链路,从所述第四物理节点集中一个物理节点到所述第四虚拟节点的一条逻辑链路,以及从所述第三物理节点集中所述一个物理节点到所述第四物理节点集中所述一个物理节点的物理链路,所述物理网络包含的多个物理链路包括从所述第三物理节点集中所述一个物理节点到所述第四物理节点集中所述一个物理节点的所述物理链路。

所述路径确定单元,用于确定所述第一多路径确定单元确定的所述m条路径中的第一路径和所述第二多路径确定单元确定的所述n条路径中的第二路径。所述第一路径与所述第二路径之间不存在同一个物理节点,也不存在同一个虚拟节点。

所述物理链路确定单元,用于确定所述路径确定单元确定的所述第一路径包括的从所述第一物理节点集中所述一个物理节点到所述第二物理节点集中所述一个物理节点的所述物理链路为所述第一物理链路。所述物理链路确定单元,还用于确定所述路径确定单元确定的所述第二路径包括的从所述第三物理节点集中所述一个物理节点到所述第四物理节点集中所述一个物理节点的所述物理链路为所述第二物理链路。

可选地,所述第一虚拟节点和第三虚拟节点是所述虚拟网络的入口节点,所述第二虚拟节点和第四虚拟节点是所述虚拟网络的出口节点。所述第一物理节点集和第三物理节点集包括的物理节点是所述物理网络的入口节点。所述第二物理节点集和第四物理节点集包括的物理节点是所述物理网络的出口节点。通过将虚拟网络的入口节点与包括物理网络的入口节点的节点集相对应,缩小映射范围,提高映射效率。

可选地,所述第一多路径确定单元根据所述第一网络的拓扑信息确定所述m条路径使用K最短路径算法。所述第二多路径确定单元根据所述第一网络的拓扑信息确定所述n条路径使用K最短路径算法。所述m条路径是所述第一多路径确定单元使用K最短路径算法确定的K条路径中的m条。所述n条路径是所述第二多路径确定单元使用K最短路径算法确定的K条路径中的n条。从所述第一虚拟节点分别到所述第一物理节点集中的所有物理节点的多个逻辑链路的开销都等于X。分别从所述第二物理节点集中的所有物理节点到所述第二虚拟节点的多个逻辑链路的开销都等于X。从所述第三虚拟节点分别到所述第三物理节点集中的所有物理节点的多个逻辑链路的开销都等于X。以及,分别从所述第四物理节点集中的所有物理节点到所述第四虚拟节点的多个逻辑链路的开销都等于X。所述X大于或等于0。

可选地,所述控制器可以是SDN控制器。

第三方面,提供了一种控制器。所述控制器包括处理器、网络接口和存储器。所述处理器,用于读取所述存储器中的程序指令代码,执行第二方面提供的接收请求的方法。所述网络接口,用于在处理器控制下,从客户端接收请求和向物理网络中的物理节点发送数据和指令。所述存储器,用于存储程序指令代码。

通过上述第一至第三方面的方案,将用户在虚拟网络的可靠性设计映射到物理网络中,有助于保留用户可靠性设计,实际提高通信业务可靠性。控制器基于虚拟网络的主备设计,在物理网络提供对应的主备设计,更好地满足通信业务的可靠性需求。

附图说明

图1为本发明实施例提供的一种网络场景示意图;

图2为本发明实施例提供的一种接收请求的方法的流程图;

图3为本发明实施例提供的一种第一网络的拓扑图;

图4为本发明实施例提供的一种控制器的结构示意图;

图5为本发明实施例提供的一种控制器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式做出进一步地详细描述。本领域普通技术人员在没有付出创造性劳动的前提下可以获得的其它实施例。

图1为本发明实施例提供的一种网络场景示意图。在图1所示场景中,控制器与物理网络中的物理节点通信连接。所述物理节点可以是物理转发设备。所述物理转发设备可以是物理交换机或物理路由器。所述物理网络中所述物理节点之间形成多条物理链路。所述控制器可以是软件定义网络(Software Defined Network,SDN)控制器。所述软件定义网络SDN控制器可以使用不同的编程语言,例如Java,并可以运行不同的操作系统,例如Unix。所述控制器中可以创建包括虚拟节点和虚拟链路的虚拟网络。所述虚拟网络中的所述虚拟节点之间形成多条虚拟链路。所述虚拟节点可以是各类虚拟转发设备,如虚拟交换机或虚拟路由器等。所述控制器可以接收来自客户端的请求。所述客户端可以是一个计算机。所述客户端可以与所述控制器位于同一台硬件设备,或者所述客户端可以与所述控制器分别位于不同的硬件设备上。所述请求可以包括虚拟网络拓扑信息,所述虚拟网络拓扑信息用于描述需要控制器创建的虚拟网络的拓扑。所述请求中虚拟网络拓扑信息可以采用各类格式进行描述。例如虚拟网络拓扑信息可以对每个虚拟节点的邻接关系,每条链路所包括的虚拟节点进行描述。此外,虚拟网络拓扑信息还可以对每个虚拟节点的节点状态和每条链路的链路状态进行描述。所述控制器可以根据所述请求包括的拓扑信息来创建虚拟网络。图1中给出一个示例性的虚拟网络拓扑和物理网络拓扑。所述虚拟网络中包括虚拟节点d、e、f和g,d和e邻接,f和g邻接,形成虚拟链路d-e、f-g。还可以进一步确定虚拟链路的出口节点和入口节点,例如将d、e分别确定为虚拟链路d-e的入口节点和出口节点,将f、g分别确定为虚拟链路f-g的入口节点和出口节点。所述物理网络中包括物理节点A、B、C、D、E、F和G,A、B、E、F和G形成环路,B分别和A、C、E邻接,E分别和B、D、F邻接。还可以进一步确定物理链路的出口节点和入口节点,例如可以将A、C分别确定为物理链路A-B-C的入口节点和出口节点,将F、D分别确定为物理链路F-E-D的入口节点和出口节点。

所述控制器创建虚拟网络后,可以将虚拟网络中的虚拟节点映射到物理网络中的物理节点,将虚拟网络中的虚拟链路映射到物理网络中的物理链路,从而使得需要在虚拟网络中传输的数据流量通过物理网络承载。由物理网络实际传输虚拟网络中的数据流量。以上过程中所述物理网络和所述控制器都可以由运营商进行管理。所述运营商进一步再向租户例如小型公司提供虚拟网络租用服务。所述租户租用虚拟网络后,可任意配置管理自己的虚拟网络,例如设计虚拟网络拓扑。所述租户在虚拟网络设计和使用中,仅了解虚拟网络中流量的传输过程,但并不知晓所述运营商管理的物理网络中流量的传输过程。而当租户在虚拟网络中自行设计主备链路以满足可靠性需求时,该可靠性需求可能无法得到保障,无法实际提高通信业务可靠性。举例来说,如图1中所示,用户设计的虚拟网络中包括第一虚拟链路d-e和第二虚拟链路f-g,所述第一虚拟链路d-e和第二虚拟链路之间不存在相同虚拟节点。所述第二虚拟链路为第一虚拟链路的备用链路。而将虚拟网络映射到物理网络的过程中,所述控制器可能只追求网络开销最小,因而可能会把不同的虚拟链路映射到相同的物理链路上。如图1中,第一虚拟链路d-e可能会被映射到物理链路A-B-C上,第二虚拟链路f-g可能会被映射到物理链路G-A-B-C上。用户设计了两个不包括相同虚拟节点的虚拟链路d-e和f-g。控制器进行虚拟网络到物理网络的映射后,虚拟链路d-e的流量需要在物理链路A-B-C上传输。虚拟链路f-g的流量需要在物理链路G-A-B-C上传输。虚拟链路f-g是虚拟链路d-e的备份链路。物理链路G-A-B-C是物理链路A-B-C的备份链路。物理链路G-A-B-C和物理链路A-B-C之间存在相同物理链路A-B-C。当物理节点A故障时,物理链路A-B-C发生故障。物理链路A-B-C的备份链路G-A-B-C也发生故障。因此,无法实际提高通信业务可靠性。

图2为本发明实施例提供的一种接收请求的方法的流程图。如图2所示,本发明的一个实施例提供的一种接收请求的方法包括S201、S202以及S203。

S201、控制器接收请求,所述请求包括虚拟网络的拓扑信息,所述请求用于指示所述控制器确定分别对应第一虚拟链路和第二虚拟链路的第一物理链路和第二物理链路,所述第一物理链路和所述第二物理链路之间没有同一个物理节点。

具体来说,所述虚拟网络的拓扑信息用于描述所述虚拟网络的拓扑。所述虚拟网络包括第一虚拟链路、第二虚拟链路、第一虚拟节点、第二虚拟节点、第三虚拟节点和第四虚拟节点。所述第一虚拟节点和第二虚拟节点分别是所述第一虚拟链路的入口节点和出口节点。所述第三虚拟节点和第四虚拟节点分别是所述第二虚拟链路的入口节点和出口节点。所述第一虚拟链路和所述第二虚拟链路之间没有同一个虚拟节点。也就是说所述第一虚拟节点、第二虚拟节点、第三虚拟节点和第四虚拟节点中任意两个虚拟节点不是相同的虚拟节点。所述第二虚拟链路是所述第一虚拟链路的备份链路。所述请求用于指示所述控制器确定分别对应所述第一虚拟链路和所述第二虚拟链路的第一物理链路和第二物理链路。所述第一物理链路和所述第二物理链路之间没有同一个物理节点。所述第二物理链路是所述第一物理链路的备份链路。

举例来说,如图1所示,所述虚拟网络包括第一虚拟链路d-e、第二虚拟链路f-g、第一虚拟节点d、第二虚拟节点e、第三虚拟节点f和第四虚拟节点g。d、e是虚拟链路d-e的入口节点和出口节点,f、g是虚拟链路f-g的入口节点和出口节点。所述请求中包括的虚拟网络的拓扑信息中可以包括虚拟节点d、e、f和g的节点状态、邻接关系和到邻接节点的网络开销等,还可以包括虚拟链路d-e和f-g的链路状态以及每条虚拟链路所包括的虚拟节点等。所述请求还可以指示f-g为d-e的备份链路。所述请求指示所述控制器建立确定对应虚拟链路d-e和虚拟链路f-g的主物理链路和备份物理链路。即用户设计的虚拟链路不包括相同的虚拟节点,则所述请求指示所述控制器为虚拟链路确定对应的物理链路时,确定的物理链路也要不包括相同的物理节点。所述控制器可以从北向接口接收所述客户端上的应用程序发送的所述请求。SDN架构中北向接口指控制器与用户应用程序之间的编程接口。所述北向接口例如可以是命令行接口(command-line interface,CLI)、简单网络管理协议(simple network management protocol,SNMP)接口或表述性无状态传输应用编程接口(representational state transfer application programming interface,REST API)接口。所述客户端上的应用程序按照所述北向接口的定义进行开发。用户在所述客户端上的应用程序的界面上点击或配置发送命令。应用程序将所述命令转换成符合北向接口定义的请求发往所述控制器的北向接口。

202、响应于所述请求,所述控制器确定第一物理链路以及所述第二物理链路。

具体来说,所述第一物理链路包括多个物理节点。所述第一物理链路中的多个物理节点包括第一物理节点和第二物理节点。所述第一物理节点和所述第二物理节点分别是所述第一物理链路的入口节点和出口节点。所述第二物理链路包括多个物理节点。所述第二物理链路中的多个物理节点包括第三物理节点和第四物理节点。所述第三物理节点和所述第四物理节点分别是所述第二物理链路的入口节点和出口节点。所述第一虚拟节点、第二虚拟节点、第三虚拟节点和第四虚拟节点分别对应所述第一物理节点、第二物理节点、第三物理节点和第四物理节点。

举例来说,如图1所示,所述第一物理链路可以是A-B-C。物理链路A-B-C包括物理节点A、B和C。所述第一物理链路入口节点是A,出口节点是C。所述第二物理链路可以是F-E-D。物理链路F-E-D包括物理节点F、E和D。所述第二物理链路入口节点是F,出口节点是D。所述第一虚拟节点、第二虚拟节点、第三虚拟节点和第四虚拟节点分别是f、e、d和g。所述第一物理节点、第二物理节点、第三物理节点和第四物理节点分别是A、C、F和D。

可选地,所述控制器确定所述第一物理链路以及所述第二物理链路,可以通过如下技术方案实现:

所述控制器获取物理网络的拓扑信息。所述物理网络的拓扑信息用于描述所述物理网络的拓扑。所述物理网络的拓扑包括所述物理网络中的多个物理节点以及所述物理网络中的多个物理链路。所述物理网络中的多个物理链路包括所述第一物理链路和所述第二物理链路。所述物理网络中的多个物理节点包括第一物理节点集、第二物理节点集、第三物理节点集以及第四物理节点集。所述第一物理节点集包括所述第一物理节点,所述第二物理节点集包括所述第二物理节点,所述第三物理节点集包括所述第三物理节点,所述第四物理节点集包括所述第四物理节点。

所述控制器在所述物理网络的拓扑信息的基础上生成第一网络的拓扑信息。所述第一网络的拓扑信息用于描述所述第一网络的拓扑。所述第一网络的拓扑包括:所述物理网络中的多个物理节点,所述物理网络中的多个物理链路,所述第一虚拟节点,所述第二虚拟节点,所述第三虚拟节点,所述第四虚拟节点,从所述第一虚拟节点分别到所述第一物理节点集中的所有物理节点的多个逻辑链路,从所述第二虚拟节点分别到所述第二物理节点集中的所有物理节点的多个逻辑链路,分别从所述第三物理节点集中的所有物理节点到所述第三虚拟节点的多个逻辑链路,以及,分别从所述第四物理节点集中的所有物理节点到所述第四虚拟节点的多个逻辑链路。

所述控制器根据所述第一网络的拓扑信息确定从所述第一虚拟节点到所述第二虚拟节点的m条路径,m为大于或者等于1的整数。所述m条路径的每一条路径包括从所述第一虚拟节点到所述第一物理节点集中一个物理节点的一条逻辑链路,从所述第二虚拟节点到所述第二物理节点集中一个物理节点的一条逻辑链路,以及从所述第一物理节点集中所述一个物理节点到所述第二物理节点集中所述一个物理节点的物理链路。所述物理网络包含的多个物理链路包括从所述第一物理节点集中所述一个物理节点到所述第二物理节点集中所述一个物理节点的所述物理链路。

所述控制器根据所述第一网络的拓扑信息确定从所述第三虚拟节点到所述第四虚拟节点的n条路径,n为大于等于1的整数。所述n条路径的每一条路径包括从所述第三虚拟节点到所述第三物理节点集中一个物理节点的一条逻辑链路,从所述第四物理节点集中一个物理节点到所述第四虚拟节点的一条逻辑链路,以及从所述第三物理节点集中所述一个物理节点到所述第四物理节点集中所述一个物理节点的物理链路。所述物理网络包含的多个物理链路包括从所述第三物理节点集中所述一个物理节点到所述第四物理节点集中所述一个物理节点的所述物理链路。

所述控制器确定所述m条路径中的第一路径和所述n条路径中的第二路径。所述第一路径与所述第二路径之间不存在同一个物理节点,也不存在同一个虚拟节点。

所述控制器确定所述第一路径包括的从所述第一物理节点集中所述一个物理节点到所述第二物理节点集中所述一个物理节点的所述物理链路为所述第一物理链路。所述控制器确定所述第二路径包括的从所述第三物理节点集中所述一个物理节点到所述第四物理节点集中所述一个物理节点的所述物理链路为所述第二物理链路。

所述第一网络是一个混合网络。所述第一网络包括多个物理节点、多个虚拟节点、多个物理链路以及多个逻辑链路。

基于图1对所述控制器确定所述第一物理链路以及所述第二物理链路的过程进行举例说明。所述物理网络包括物理节点A、B、C、D、E、F和G。A、B、E、F和G形成环路。所述B和C之间有直连的物理链路。所述E和D之间有直连的物理链路。所述C和D之间有直连的物理链路。本申请中的直连的物理链路意味着,除了直连的物理链路的入口节点和出口节点,该直连的物理链路不包含其他物理节点。例如直连的物理链路A-B除了入口节点A和出口节点B,物理链路A-B不包含其他其他物理节点。可选地,将虚拟节点映射到物理节点时,可以设定每个虚拟节点对应的物理节点集。每个虚拟节点向物理节点映射时,从对应的物理节点集中选择物理节点。物理节点集中包含候选的物理节点。其中设定虚拟节点对应的物理节点集,在物理节点集选择物理节点,可以缩小映射范围,提高映射效率。例如第一虚拟节点f对应的第一物理节点集{A,G}包括A和G。第二虚拟节点e对应的第二物理节点集{C,D}包括C和D。第三虚拟节点d对应的第三物理节点集{G,F}包括G和F。第四虚拟节点g对应的第四物理节点集{C,D}包括C和D。再例如可选地,与虚拟网络的入口节点对应的物理节点集包括的均为物理网络的入口节点,与虚拟网络的出口节点对应的物理节点集包括的均为物理网络的出口节点。例如所述f为所述虚拟网络的入口节点,所述f对应的物理节点集{A,G}为所述物理网络的入口节点;所述d为所述虚拟网络的入口节点,所述d对应的物理节点集{G,F}为所述物理网络的入口节点;所述e为所述虚拟网络的出口节点,所述e对应的物理节点集{C,D}为所述物理网络的出口节点;所述g为所述虚拟网络的出口节点,所述g对应的物理节点集{C,D}为所述物理网络的出口节点。

所述控制器在以上物理网络的拓扑信息的基础上,生成第一网络的拓扑信息。所述第一网络的拓扑信息用于描述所述第一网络的拓扑。图3为本发明实施例提供的一种第一网络的拓扑图。如图3所示,所述第一网络包括所述物理网络的节点A、B、C、D、E、F和G。所述第一网络还包括物理网络之间的链路。例如,物理网络之间的链路包括:A、B、E、F和G形成的环路,B和C之间直连的物理链路,E和D之间直连的物理链路,C和D之间直连的物理链路。所述第一网络还包括所述虚拟节点f、e、d和g。所述第一网络还包括第一虚拟节点f分别与第一物理节点集中的G和A之间的逻辑链路,第二虚拟节点e分别与第二物理节点集中的C和D之间的逻辑链路,第三虚拟节点d分别与第三物理节点集中的G和F之间的逻辑链路,以及第四虚拟节点g分别与第四物理节点集中的C和D之间的逻辑链路。

所述控制器根据所述第一网络的拓扑信息确定从第一虚拟节点f到第二虚拟节点e的m条路径,确定从第三虚拟节点d到第四虚拟节点g的n条路径,m和n为大于等于1的整数。可选地,所述控制器可以采用K最短路径算法(K shortest paths)进行计算。在所述第一网络的拓扑信息基础上,利用K最短路径算法,计算出f和e之间从短到长排列的多条路径。并且计算出d和g之间从短到长排列的多条路径。f和e之间从短到长排列的多条路径构成第一集合。d和g之间从短到长排列的多条路径构成第二集合。其中,可以将第一网络中的逻辑链路f-A、f-G、d-G、d-F、C-e、C-g、D-e、D-g的开销值或度量值设置为相同的值。例如将上述逻辑链路的开销值或度量值都设置为0、大于0或者是其他值。所述控制器采用K最短路径算法进行计算时,第一网络中的物理链路采用所述物理网络的拓扑信息中的网络开销或度量值。可选地,两个虚拟节点间的路径可以仅有一条,则确定的路径的集合仅包含该一条路径。

所述控制器从所述m条路径即第一集合中选择一条路径,例如最短的路径,做为第一路径。所述控制器在所述n条路径即第二集合中查询是否存在一条路径与所述第一路径不共路的路径。第二集合中与所述第一路径不共路的路径与所述第一路径之间既没有相同的虚拟节点,也没有相同的物理节点。如果有这样一条路径,则将这样一条路径确定为第二路径。如果第二集合中没有这样的路径,则在第一集合中重新选择一条路径,例如第二短的路径,做为第一路径。再次在所述第二集合中查询是否存在一条与所述第一路径不共路路径。以此类推,直到找出第一集合中的一条路径做为第一路径,找出第二集合中的一条路径做为第二路径。假设图3中找出第一路径为f-A-B-C-e,第二路径为d-F-E-D-g。其中f-A为逻辑链路,A-B-C为第一物理节点集{A,G}中的A到第二物理节点集{C,D}中的C的物理链路,C-e为逻辑链路。d-F为逻辑链路,F-E-D为第三物理节点集{G,F}中的F到第四物理节点集{C,D}中的D的物理链路,D-g为逻辑链路。

所述控制器确定所述第一路径f-A-B-C-e包括的第一物理节点集{A,G}中的A到第二物理节点集{C,D}中的C的物理链路即A-B-C为所述第一物理链路,确定所述第二路径d-F-E-D-g包括的第三物理节点集{G,F}中的F到第四物理节点集{C,D}中的D的物理链路即F-E-D为所述第二物理链路。

S203、所述控制器根据确定的所述第一物理链路,指示所述第一物理链路上的物理节点生成用于指导流量沿着所述第一物理链路进行转发的转发表,并根据确定的所述第二物理链路,指示所述第二物理链路上的物理节点生成当所述第一物理链路发生故障时,用于指导所述流量沿着所述第二物理链路进行转发的转发表。

举例来说,如图1所示,所述控制器指示第一物理链路上的物理节点A和B分别生成转发表。例如,所述控制器可以向物理节点A发送目的网际协议(Internet Protocol,IP)地址IP1以及物理节点B的IP地址IP2。所述控制器可以向物理节点B发送目的IP地址IP1以及物理节点C的IP地址IP3。物理节点A根据所述控制器发送的信息生成目的IP地址为IP1,下一跳IP地址为IP2的路由表项1。物理节点B根据所述控制器发送的信息生成目的IP地址为IP1,下一跳IP地址为IP3的路由表项2。当物理节点A收到携带目的IP地址为IP1的IP报文1后,物理节点A可以根据路由表项1将IP报文1转发至物理节点B。物理节点B收到IP报文1后,可以根据路由表项2将IP报文1转发至物理节点C。类似地,物理节点F可以在所述控制器的指示下生成目的IP地址为IP1,下一跳IP地址为IP4的路由表项3。物理节点E的IP地址为IP4。物理节点E可以在所述控制器的指示下生成目的IP地址为IP1,下一跳IP地址为IP5的路由表项4。物理节点D的IP地址为IP5。当主转发路径A-B-C发生故障(例如节点B发生故障)时,主转发路径A-B-C的备份转发路径F-E-D成为主转发路径。物理节点F收到目的IP地址为IP1的IP报文2后,物理节点F可以根据路由表项3将IP报文2转发至物理节点E。物理节点E收到IP报文2后,可以根据路由表项4将IP报文2转发至物理节点D。

通过上述图2中所述接收请求的方案,用户在虚拟网络的可靠性设计得到物理网络的支持,有助于实际提高通信业务可靠性。控制器基于虚拟网络的主备链路,确定物理网络的主备链路,更好地满足通信业务的可靠性需求。

图4为本发明实施例提供的一种控制器的结构示意图。控制器400包括接收单元401、确定单元402和指示单元403。举例来说,图4所示的控制器可以用于执行如图2所述的方法。具体地,接收单元401可以用于执行S201,确定单元402可以用于执行S202,指示单元403可以用于执行S203。控制器400可以包括SDN控制器,通过所述SDN控制器实现接收单元401、确定单元402和指示单元403的功能。

关于图4所示的控制器涉及的技术术语的含义以及技术方案的具体实现方式,可以参考图2所示的方法对应的实施例中的描述,此处不再赘述。

接收单元401,用于接收请求,所述请求包括虚拟网络的拓扑信息。所述虚拟网络的拓扑信息用于描述所述虚拟网络的拓扑。所述虚拟网络包括第一虚拟链路、第二虚拟链路、第一虚拟节点、第二虚拟节点、第三虚拟节点和第四虚拟节点。所述第一虚拟节点和第二虚拟节点分别是所述第一虚拟链路的入口节点和出口节点。所述第三虚拟节点和第四虚拟节点分别是所述第二虚拟链路的入口节点和出口节点。所述第一虚拟链路和所述第二虚拟链路之间没有同一个虚拟节点。也就是说所述第一虚拟节点、第二虚拟节点、第三虚拟节点和第四虚拟节点中任意两个虚拟节点不是相同的虚拟节点。所述第二虚拟链路是所述第一虚拟链路的备份链路。所述请求用于指示所述控制器确定分别对应所述第一虚拟链路和所述第二虚拟链路的第一物理链路和第二物理链路。所述第一物理链路和所述第二物理链路之间没有同一个物理节点,所述第二物理链路是所述第一物理链路的备份链路。

确定单元402,用于响应于所述接收单元接收的所述请求,确定所述第一物理链路以及所述第二物理链路。所述第一物理链路包括多个物理节点。所述第一物理链路中的多个物理节点包括第一物理节点和第二物理节点。所述第一物理节点和所述第二物理节点分别是所述第一物理链路的入口节点和出口节点。所述第二物理链路包括多个物理节点。所述第二物理链路中的多个物理节点包括第三物理节点和第四物理节点。所述第三物理节点和所述第四物理节点分别是所述第二物理链路的入口节点和出口节点。所述第一虚拟节点、第二虚拟节点、第三虚拟节点和第四虚拟节点分别对应所述第一物理节点、第二物理节点、第三物理节点和第四物理节点。

指示单元403,用于根据所述确定单元确定的所述第一物理链路,指示所述第一物理链路上的物理节点生成用于指导流量沿着所述第一物理链路进行转发的转发表。指示单元403还用于根据所述确定单元确定的所述第二物理链路,指示所述第二物理链路上的物理节点生成当所述第一物理链路发生故障时,用于指导所述流量沿着所述第二物理链路进行转发的转发表。

可选地,所述控制器还包括物理网络拓扑信息获取单元4021、第一网络拓扑信息生成单元4022、第一多路径确定单元4023、第二多路径确定单元4024、路径确定单元4025和物理链路确定单元4026。

物理网络拓扑信息获取单元4021,用于获取物理网络的拓扑信息。所述物理网络的拓扑信息用于描述所述物理网络的拓扑。所述物理网络的拓扑包括所述物理网络中的多个物理节点以及所述物理网络中的多个物理链路,所述物理网络中的多个物理链路包括所述第一物理链路和所述第二物理链路,所述物理网络中的多个物理节点包括第一物理节点集、第二物理节点集、第三物理节点集以及第四物理节点集,所述第一物理节点集包括所述第一物理节点,所述第二物理节点集包括所述第二物理节点,所述第三物理节点集包括所述第三物理节点,所述第四物理节点集包括所述第四物理节点。其中设定虚拟节点对应候选的物理节点集,对物理节点进行选择,可以缩小映射范围,提高映射效率。

第一网络拓扑信息生成单元4022,用于在所述物理网络拓扑信息获取单元获取的所述物理网络的拓扑信息的基础上生成第一网络的拓扑信息。所述第一网络的拓扑信息用于描述所述第一网络的拓扑。所述第一网络的拓扑包括:所述物理网络中的多个物理节点,所述物理网络中的多个物理链路,所述第一虚拟节点,所述第二虚拟节点,所述第三虚拟节点,所述第四虚拟节点,从所述第一虚拟节点分别到所述第一物理节点集中的所有物理节点的多个逻辑链路,从所述第二虚拟节点分别到所述第二物理节点集中的所有物理节点的多个逻辑链路,分别从所述第三物理节点集中的所有物理节点到所述第三虚拟节点的多个逻辑链路,以及,分别从所述第四物理节点集中的所有物理节点到所述第四虚拟节点的多个逻辑链路。

第一多路径确定单元4023,用于根据所述第一网络拓扑信息生成单元生成的所述第一网络的拓扑信息确定从所述第一虚拟节点到所述第二虚拟节点的m条路径,m为大于或者等于1的整数。所述m条路径的每一条路径包括从所述第一虚拟节点到所述第一物理节点集中一个物理节点的一条逻辑链路,从所述第二虚拟节点到所述第二物理节点集中一个物理节点的一条逻辑链路,以及从所述第一物理节点集中所述一个物理节点到所述第二物理节点集中所述一个物理节点的物理链路。所述物理网络包含的多个物理链路包括从所述第一物理节点集中所述一个物理节点到所述第二物理节点集中所述一个物理节点的所述物理链路。

第二多路径确定单元4024,用于根据所述第一网络拓扑信息生成单元生成的所述第一网络的拓扑信息确定从所述第三虚拟节点到所述第四虚拟节点的n条路径,n为大于等于1的整数。所述n条路径的每一条路径包括从所述第三虚拟节点到所述第三物理节点集中一个物理节点的一条逻辑链路,从所述第四物理节点集中一个物理节点到所述第四虚拟节点的一条逻辑链路,以及从所述第三物理节点集中所述一个物理节点到所述第四物理节点集中所述一个物理节点的物理链路。所述物理网络包含的多个物理链路包括从所述第三物理节点集中所述一个物理节点到所述第四物理节点集中所述一个物理节点的所述物理链路。

路径确定单元4025,用于确定所述第一多路径确定单元确定的所述m条路径中的第一路径和所述第二多路径确定单元确定的所述n条路径中的第二路径。所述第一路径与所述第二路径之间不存在同一个物理节点,也不存在同一个虚拟节点。

物理链路确定单元4026,用于确定所述路径确定单元确定的所述第一路径包括的从所述第一物理节点集中所述一个物理节点到所述第二物理节点集中所述一个物理节点的所述物理链路为所述第一物理链路。物理链路确定单元4026,还用于确定所述路径确定单元确定的所述第二路径包括的从所述第三物理节点集中所述一个物理节点到所述第四物理节点集中所述一个物理节点的所述物理链路为所述第二物理链路。

可选地,所述第一虚拟节点和第三虚拟节点是所述虚拟网络的入口节点。所述第二虚拟节点和第四虚拟节点是所述虚拟网络的出口节点。所述第一物理节点集和第三物理节点集包括的物理节点是所述物理网络的入口节点。所述第二物理节点集和第四物理节点集包括的物理节点是所述物理网络的出口节点。通过将虚拟网络的入口节点与包括物理网络的入口节点的节点集相对应,缩小映射范围,提高映射效率。

可选地,第一多路径确定单元4023根据所述第一网络的拓扑信息确定所述m条路径使用K最短路径算法。第二多路径确定单元4024根据所述第一网络的拓扑信息确定所述n条路径使用K最短路径算法。所述m条路径是第一多路径确定单元4023使用K最短路径算法确定的K条路径中的m条。所述n条路径是第二多路径确定单元4024使用K最短路径算法确定的K条路径中的n条。从所述第一虚拟节点分别到所述第一物理节点集中的所有物理节点的多个逻辑链路的开销都等于X。分别从所述第二物理节点集中的所有物理节点到所述第二虚拟节点的多个逻辑链路的开销都等于X。从所述第三虚拟节点分别到所述第三物理节点集中的所有物理节点的多个逻辑链路的开销都等于X。以及,分别从所述第四物理节点集中的所有物理节点到所述第四虚拟节点的多个逻辑链路的开销都等于X。以上开销X可以例如为0、大于0或者是其他值。所述X也可以表示度量值,即所述各个逻辑链路的度量值都为X。所述控制器采用K最短路径算法进行计算时,所述第一网络中的物理链路采用所述物理网络的拓扑信息中的网络开销或度量值。可选地,从第一虚拟节点到第二虚拟节点的路径可以仅有一条,则确定的路径的集合仅包含该一条路径,从第三虚拟节点到第四虚拟节点的路径可以仅有一条,则确定的路径的集合仅包含该一条路径。

上述实施例提供的控制器,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。

通过上述图4中所述控制器的方案,用户在虚拟网络的可靠性设计得到物理网络的支持,有助于实际提高通信业务可靠性。控制器基于虚拟网络的主备链路,确定物理网络的主备链路,更好地满足通信业务的可靠性需求。

图5为本发明实施例提供的一种控制器的结构示意图。控制器500包括处理器501、网络接口502和存储器503。关于图5所示的控制器涉及的技术术语的含义以及技术方案的具体实现方式,可以参考图2所示的方法对应的实施例中的描述,此处不再赘述。

处理器501,用于读取存储器中的程序指令代码,执行如图2中所述的接收请求的方法。

网络接口502,用于在处理器501控制下,从客户端接收请求和向物理网络中的物理节点发送数据和指令。

存储器503,用于存储程序指令代码。

控制器500可以用于执行如图2中所述的接收请求的方法,也可以用于实现图4所示的控制器400。具体地,网络接口502可以用于实现接收单元401。处理器501可以通过访问存储器503中的代码,实现确定单元402。处理器501可以通过访问存储器503中的代码,控制网络接口502实现指示单元403。可选地,控制器500可以包括SDN控制器,所述SDN控制器可以由处理器501通过访问存储器503中的代码来实现。控制器500可以通过所述SDN控制器执行如图2中所述的接收请求的方法。控制器500可以通过所述SDN控制器实现图4所示的控制器400的功能。

所述物理节点可以是具有转发功能的各类物理网络设备,例如路由器或交换机。处理器501可以是例如中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。存储器503可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器503也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)。存储器503还可以包括上述种类的存储器的组合。网络接口502可以为以太网接口、异步传输模式(Asynchronous Transfer Mode,ATM)接口或基于SDH/SONET的包封装(Packet over SONET/SDH,POS)接口。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的流量转发方法和设备,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域的普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。

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