1.一种控制网络路由的方法,所述方法包括:
提供网络,所述网络包括:
多个边缘设备,所述多个边缘设备中的每一个边缘设备执行具有应用需求的应用,并且所述多个边缘设备中的每一个边缘设备具有转发引擎;
多个核心交换机,所述多个核心交换机与所述多个边缘设备互连;以及
网络控制器,所述网络控制器被耦合至所述多个边缘设备以及所述多个核心交换机中的每一个;
由所述网络控制器接收在所述多个边缘设备中的每一个边缘设备上执行的所述应用在启动阶段期间的所述应用需求;
由所述网络控制器响应于所接收的应用需求来确定多个路由;以及
由所述网络控制器响应于所确定的多个路由,对所述多个边缘设备中的每一个边缘设备的所述转发引擎以及所述多个核心交换机中的每一个核心交换机的转发引擎进行编程。
2.根据权利要求1所述的方法,其中所述应用需求包括下述中的至少一个:边缘设备目的地、带宽需求、以及延迟需求。
3.根据权利要求1所述的方法,其中所述多个边缘设备中的每一个边缘设备的所述转发引擎是基于软件的转发引擎。
4.根据权利要求1所述的方法,其中所述多个核心交换机中的每一个核心交换机的所述转发引擎是基于硬件的转发引擎。
5.根据权利要求1所述的方法,其中进行编程进一步包括:用相同协议对所述多个边缘设备中的每一个边缘设备的所述转发引擎以及所述多个核心交换机中的每一个核心交换机的所述转发引擎进行编程。
6.根据权利要求5所述的方法,其中所述协议是OpenFlow中的一个。
7.根据权利要求1所述的方法,其中进行编程进一步包括:使用下列中的一个来对所述多个边缘设备中的每一个边缘设备的所述转发引擎以及所述多个核心交换机中的每一个核心交换机的所述转发引擎进行编程,以路由数据:源路由、多协议标签交换、松源路由、以及通用路由封装。
8.根据权利要求1所述的方法,其中进行编程进一步包括:将第二多个路由存储在至少一个所述边缘设备中的每一个边缘设备的所述转发引擎中,以与在所述至少一个边缘设备上执行的第二应用一起使用。
9.一种用于控制网络路由的系统,所述系统包括:
网络,所述网络包括:多个边缘设备,所述多个边缘设备中的每一个边缘设备执行具有应用需求的应用,并且所述多个边缘设备中的每一个边缘设备具有转发引擎;以及,与所述多个边缘设备互连的多个核心交换机;以及
网络控制器,所述网络控制器被耦合至所述多个边缘设备以及所述多个核心交换机中的每一个,所述网络控制器被配置成:
接收在所述多个边缘设备中的每一个边缘设备上执行的所述应用在启动阶段期间的所述应用需求;
响应于所接收的应用需求,确定多个路由;以及
响应于所确定的多个路由,对所述多个边缘设备中的每一个边缘设备的所述转发引擎以及所述多个核心交换机中的每一个核心交换机的转发引擎进行编程。
10.根据权利要求9所述的系统,其中所述应用需求包括下述中的至少一个:边缘设备目的地、带宽需求、以及延迟需求。
11.根据权利要求9所述的系统,其中所述多个边缘设备中的每一个边缘设备的所述转发引擎是基于软件的转发引擎。
12.根据权利要求9所述的系统,其中所述多个核心交换机中的每一个核心交换机的所述转发引擎是基于硬件的转发引擎。
13.根据权利要求9所述的系统,其中所述网络控制器进一步被配置为:
用相同协议对所述多个边缘设备中的每一个边缘设备的所述转发引擎以及所述多个核心交换机中的每一个核心交换机的所述转发引擎进行编程。
14.根据权利要求13所述的系统,其中所述协议是OpenFlow中的一个。
15.根据权利要求9所述的系统,其中所述网络控制器进一步被配置为:
使用下列中的一个来对所述多个边缘设备中的每一个边缘设备的所述转发引擎以及所述多个核心交换机中的每一个核心交换机的所述转发引擎进行编程,以路由数据:源路由、多协议标签交换、松源路由、以及通用路由封装。
16.根据权利要求9所述的系统,其中所述网络控制器进一步被配置为:
将第二多个路由存储在至少一个所述边缘设备中的每一个边缘设备的所述转发引擎中,以用于与在所述至少一个边缘设备上执行的第二应用一起使用。