由OpenFlow交换机和其它可编程交换机组成的混合网络的变换和统一控制的制作方法

文档序号:13846198阅读:223来源:国知局
由OpenFlow交换机和其它可编程交换机组成的混合网络的变换和统一控制的制作方法

相关申请案交叉申请

本发明要求2013年11月4日由minluo等人递交的发明名称为“由openflow交换机和其它可编程交换机组成的混合网络的变换和统一控制(transformationandunifiedcontrolofhybridnetworkscomposedofopenflowswitchesandotherprogrammableswitches)”的第14/071,329号的美国非临时专利申请案的在先申请优先权,该在先申请要求2012年11月29日由minluo等人递交的发明名称为“用于由openflow交换机和其它可编程交换机组成的混合网络的变换和统一控制的装置(apparatusfortransformationandunifiedcontrolofhybridnetworkscomposedofopenflowswitchesandotherprogrammableswitches)”的第61/731,391号美国临时专利申请案的在先申请优先权,这两个在先申请的内容以引入的方式并入本文本中,如全文再现一般。

关于由联邦政府赞助研究或开发的声明

研究或开发

不适用。

参考缩微胶片附录

不适用。



背景技术:

软件定义网络(sdn)可以是一种网络,其中的网元(ne),例如路由器、交换机等可以利用软件来配置和管理以实现硬件设备的简化,这些硬件设备通常具有数据转发功能,使得通用计算机可以用作ne,从而代替了现有网络中传统上价格昂贵且未得到充分利用的ne。sdn降低了对人工配置和管理这些硬件的需要。sdn抽象化可包括将ne的控制平面与数据平面分离,这可能带来整个网络的简化、虚拟化,以及实现远程和/或动态ne配置的能力。sdn分离还允许控制平面和数据平面在不同硬件上、在不同运行环境中,和/或使用不同分布模型操作。sdn技术还可以支持云计算技术的后续发展和部署。



技术实现要素:

在一项实施例中,本发明包括一种openflow(of)适配器,所述of适配器包括至少一个用于与of控制器通信的of端口、至少一个用于与非openflow(nof)交换机通信的非nof端口,以及至少一个耦合至所述of端口和所述nof端口的处理器,所述处理器用于通过所述of端口从所述of控制器接收包含网络数据的第一of消息,将所述第一of消息转换为第一nof消息,其中所述第一nof消息包括与以所述nof交换机支持的格式进行编码的所述第一of消息网络数据相似的网络数据,以及通过所述nof端口向所述nof交换机传输所述第一nof消息。

在另一项实施例中,本发明包括一种由置于of控制器和nofne之间的of适配器使用的计算机程序产品,所述计算机程序产品包括存储在非瞬时性计算机可读介质上的计算机可执行指令,使得当处理器执行所述计算机可执行指令时,使所述of适配器将of消息转换为nof格式,随后向所述nofne传输转换后的消息,从所述nofne接收nof格式的回复消息,以及将所述回复消息转换为of格式。

在另一项实施例中,本发明包括一种在of控制器中实施的方法,包括在包含of使能ne和nof使能ne的混合网络中发现网络拓扑,以及在网络信息库(nib)中存储已发现的混合网络拓扑。

结合附图和权利要求书,可从以下的详细描述中更清楚地理解这些和其它特征。

附图说明

为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。

图1是混合可编程网络架构的实施例的示意图。

图2是混合可编程网络架构的另一实施例的示意图。

图3是混合可编程网络架构的另一实施例的示意图。

图4是of适配器的实施例的示意图。

图5是of适配器内ne的实施例的示意图。

图6是of到nof转换的方法的实施例的协议图。

图7是of到nof转换的方法的另一实施例的协议图。

图8是nof到of转换的方法的实施例的协议图。

图9是nof到of转换的方法的另一实施例的协议图。

图10是用于初始化nofne控制的方法的实施例的协议图。

图11是of网络拓扑发现的方法的实施例的协议图。

图12是nof网络拓扑发现的方法的实施例的协议图。

图13是of到nof拓扑发现的方法的实施例的协议图。

图14是混合of-nof网络拓扑发现的另一方法的实施例的协议图。

图15是用于通过混合网络传输包的方法的实施例的协议图。

具体实施方式

首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。

sdn可与of结合使用,of是一种支持sdn控制平面和sdn数据平面之间的连接的标准化通信协议。openflow可允许在控制平面中操作的of控制器控制在数据平面(也称为转发平面)中操作的ofne(例如,of交换机)。of可能不与nof技术后向兼容。传统系统可包括大量nofne(例如,可编程交换机),其替代成本非常高。此类nofne可能不由of控制器控制,并且不与ofne兼容。nofne还可包括各种设备,并且每种类型的nofne可使用不同协议进行通信。基于兼容性问题,nofne和ofne可能不在相同网络中操作。

本文所公开的是一种可在openflow消息和nofne(例如,可编程交换机)可支持和/或理解的消息之间执行转换的of适配器,该of适配器允许of控制器控制包含ofne和nofne的混合网络。of适配器可将从of控制器接收到的openflow消息转换为nofne支持的消息,然后将这些消息传播至目标nofne。of适配器还可将从nofne接收到的消息转换为标准openflow消息,然后将这些openflow消息传送至of控制器。of适配器可以是逻辑上集中的并且可以以集中式和/或分布式方式部署。例如,一个或多个of适配器可以位于一个或多个服务器中作为of控制器的扩展,或者作为nofne的of插件,这样可能造成关联的nofne像ofne一样运行。消息变换、映射,和/或服务可通过基于标准的应用编程接口(api),例如ofapi和nofapi来实施。of适配器可包括用于解析消息并确定此消息是否为标准openflow消息的of消息解析器、可在openflow消息和非openflow消息之间转换的of-nof消息转换器、可解析消息并确定此消息是否符合nofne支持的格式的nof消息解析器,和/或可存储openflow消息和非openflow消息之间的映射关系的of_nof消息映射器。

图1是混合可编程网络100的架构的实施例的示意图。网络100可包括数据平面160,该数据平面160可包括多个互连的ofne120(例如,可编程交换机)和nofne140(例如,可编程交换机)。多个主机150可通过数据平面160上的ne互连。数据平面160可由控制平面170控制。控制平面170可包括of控制器110和of适配器130。of控制器110可通过of控制信道112控制ofne120。of控制器110可通过of适配器130和nof控制信道132控制nofne140。of适配器130可将来自of控制器110的of消息转换为nofne140原生的实质上等同的控制消息,反之亦然。

of控制器110可以是用于管理在网络100中路由的消息(例如,包)的任意设备。of控制器110可维护与网络100相关联的拓扑和资源利用率数据。of控制器110可意识到连接网络100中ne的数据平面160的链路(例如,网络拓扑)、链路资源利用率、节点资源利用率(例如,ofne120和/或nofne140)、网络100的错误、数据流状态,以及可用于管理网络100的任意其它数据。of控制器110可采用这种拓扑和资源利用率数据来基于网络100中不断变化的状况通过网络100动态路由数据流。例如,of控制器110可改变网络100的行为以绕过设备故障路由数据流、使网络中的ne和/或链路负载均衡,基于指定约束(例如,时延、带宽、跳数等)优化流流量,和/或全局优化网络100的流量模式。具体而言,of控制器110可收集网络100的状态信息、决定网络100的路由策略、生成流条目,和/或向网络100的ne传播这些流条目。

ofne120可以是用于基于来自of控制器110的of控制消息通过网络100转发数据流的任意ne(例如,可编程网络交换机)。每个ofne120可包括流表,该流表可包括多个流条目。每个流表条目可指示接收与特定流相关联的包之后的预期响应。例如,流条目可引导ofne120通过指定接口转发包、丢弃包、修改包等。当接收未在流表中表示的包时,ofne120可通过of控制信道112将该包转发给of控制器110。of控制器110可审核该包并使用指令作出响应。ofne120可相应地管理该包并向流表中添加关联条目,这样可本地管理未来相关包(例如,为相同流的一部分)。每个ofne120可通过专用的of控制信道112连接至of控制器110用于高速流表更新。

nofne140可以是可通过网络100转发数据包并且可能不与openflow协议兼容的任意可编程ne(例如,可编程网络交换机)。nofne140可涵盖各种ne,例如基于媒体接入控制(mac)的开放系统互连(osi)模型二层交换机(例如,以太网交换机)、虚拟局域网(vlan)交换机、基于互联网协议(ip)的osi模型三层交换机、无线局域网(wlan)路由器、光交换机,例如波分复用(wdm)、时分复用(tdm)路由器,多协议标签交换(mpls)和/或通用多协议标签交换(gmpls)交换机,和/或任意其它不与openflow协议原生兼容的可编程ne。例如,nofne140可包括路由表并可耦合至nof控制信道132。该nofne140可基于路由表转发包并且可通过控制信道132接受命令更改路由表。带有路由表的nofne140可以是可编程的,但是可能不与openflow直接兼容。例如,该ne可完全基于包地址而不基于该包相关的流转发包。

of适配器130可以是用于转换在面向of控制器110的接口上接收到的openflow消息并基于nofne140的类型在面向nofne140的接口上传输关联消息,反之亦然,的任意设备。例如,of适配器130可配置为单个nofne140的插件并可使ne从of控制器110的角度而言像ofne一样运作。再例如,of适配器130可以与多个面向nofne140的接口逻辑上集中。of适配器130可支持相同或不同类型(例如,二层、三层、光类型等)的多个nofne140。of适配器130可允许of控制器110控制原生不兼容的设备的混合网络100。of适配器130可支持openflow数据平面170对预安装网络进行控制,还可通过实施支持首要openflow控制来支持先前存在的不兼容网络的组合。例如,数据中心可包括多个先前存在的不兼容网络(例如,wdm和以太网),这些网络以并行方式部署并单独进行管理。集中式of适配器130可允许of控制器110同时管理两种网络,这样可能允许跨网络优化。

主机150可以是用于通过数据平面160传输并接收数据包的任意设备。例如,第一主机150可通过有线和/或无线连接连接至ofne120和/或nofne140并且可通过数据平面160与第二主机150和/或互联网通信。例如,主机150可包括个人计算机(pc)、便携式pc、平板pc,具有因特网连接的智能手机、基于ip的语音传输(voip)设备,和/或其它终端用户设备。主机150通过混合网络100进行的通信可由of控制器110管理。例如,主机150可向ofne120传输消息作为新数据流的一部分。ofne120可能不具有与该流相关联的数据流表条目并且可通过of控制信道112查询of控制器110。of控制器可确定通过网络100的流的路线并且可向ofne120传输指令以创建关联的流表条目。ofne120可基于of控制器110的指令向nofne140传输包。例如,nofne140可以包括路由表。nofne140可以不具有主机150的路由表条目。nofne140可通过of适配器130向of控制器110传输请求用于路由表更新。该请求可以是nofne140原生的类型并且可以是部署特定的(例如,基于开放式最短路径优先流量工程(ospf-te)等内部网关协议)。of适配器130可接收更新请求,将该请求转换为openflow请求,并向of控制器110转发openflow请求。of控制器110可传输回复,该回复向nofne140指示流的路线。of适配器130可将回复从基于流的指令转换为nofne140可理解的基于地址的指令。nofne140可更新它的路由表并相应地转发包。

应注意,数据平面160的连接在ne之间以实线示出,在of控制信道112之间以点线示出,在nof控制信道132之间以虚线示出。这些线之间的区分可基于线的用途,例如分别用于转发数据、控制ofne120,和控制nofne140的逻辑上的差别。数据平面160、控制信道112和控制信道132的链路可包括相同或不同的部件和/或材料(例如,光传输部件和/或链路对电传输部件和/或链路)并且可以是物理链路、物理链路的虚拟抽象,和/或任意它们的组合。应注意of控制信道112和nof控制信道132从逻辑角度而言可被视作控制平面170的一部分。

图2是混合可编程网络200的架构的另一实施例的示意图。例如,网络200可包括网络100的部分实施例。网络200可包括of控制器210、of适配器230,以及多个nofne240,这些可分别大体上类似于of控制器110、of适配器130和nofne140。of适配器230可以是集中式的并且可置于of控制器210和nofne240之间。of适配器230可包括面向of控制器210的接口上的ofapi234。of控制器210可包括与ofapi234对应的ofapi214。ofapi214和234可包括用于解析openflow协议消息的标准openflow可编程通信接口,例如函数库。of适配器230可用于使用api234和214与of控制器210交互。例如,of适配器230可使用api234将函数调用和/或其它数据编码为openflow格式的消息并向of控制器210传输该消息。of控制器210可利用ofapi214解码openflow消息并利用ofapi214所指定的函数。类似地,of控制器210可利用ofapi214编码of适配器230的消息,并且of适配器230可使用ofapi234解码这些消息。

of适配器230还可包括多个面向nofne240的接口上的一个或多个nofapi236。每个nofne240可包括与nofapi236对应的可编程api242。每个可编程api242可包括解析nofne240原生的消息的可编程通信接口,例如库。of适配器230可用于通过与ofapi214和234类似的方式编码和解码消息来使用nofapi236和可编程api242与nofne240通信。可编程api242可专用于nofne240并且可包括传统库和/或函数。of适配器的nofapi236可用于与特定的nofne240和/或特定类型的nofne240交互。在每个nofne240包括不同的可编程api242的情况下,of适配器230可包括每个nofne240的不同nofapi236。ofapi234和/或nofapi236可按需要进行更新和/或重配置以支持不同的of控制器210和不同的nofne240,因为网络200的部署随时间而改变,例如由于添加了新的ne和/或从网络200中移除了传统ne。通过利用ofapi234和nofapi236,of适配器230可通过openflow与of控制器210通信,通过nofne240原生的协议与nofne240通信,并且可将在ofapi234上接收到的消息转换为nofapi236可使用的消息,反之亦然。

图3是混合可编程网络300的架构的另一实施例的示意图。网络300可包括具有ofapi314的of控制器310、具有ofapi334和nofapi336的of适配器330,以及具有可编程api342的nofne340,这些可分别大体上类似于of控制器210、ofapi214、of适配器230、ofapi234、nofapi236、nofne240,以及可编程api242。相比于网络200,of适配器330可以不是逻辑上集中的并且可用作nofne340的插件。of适配器330可使每个nofne340从of控制器310的角度而言像ofne一样运作。制造of适配器330还可比制造of适配器230更简单、更便宜,因为of适配器330可设计用于与特定类型的nofne340工作而不是设计用于与中心定位所需的大量潜在nofne340类型交互。

图4是of适配器400的实施例的示意图,of适配器400可类似于of适配器130、230和/或330。of适配器400可用于与of控制器410通信,of控制器410可大体上类似于of控制器110、210和/或310。of控制器410可包括大体上类似于ofapi214和/或314的ofapi414,以及可包括用于控制诸如网络100、200和/或300之类的网络的拓扑和/或网络流数据的网络信息库(nib)416。of适配器400可包括分别大体上类似于ofapi234和/或334和nofapi236和/或336的ofapi434和nofapi436。of适配器400还可包括按图4所示连接的of消息解析器435、of-nof消息转换器437、of-nof消息映射器438,以及nof消息解析器439。

ofapi434可接收来自ofapi414的of消息470。ofapi434可获取of消息470调用的函数调用、变量等并且可将消息470和任何相关联的api数据一起转发给of消息解析器435。of消息解析器435可以是用于解析诸如of消息470之类的of消息的部件和/或例程。当消息470不是合适的openflow消息时,of消息解析器435可使用错误(例如,对ofapi434)作出响应。of消息解析器435还可基于of消息470的内容并且按照ofapi434所包含的相关联的api数据创建数据结构。of消息解析器435可将of消息470的数据结构转发给of-nof消息转换器437和/或of-nof消息映射器438。

of-nof消息转换器437可以是用于将of数据结构转换为类似的nof数据结构,反之亦然,的部件和/或进程。例如,of-nof消息转换器437可接受of消息数据结构,该of消息数据结构引导nofne创建流条目以将指定流从第一端口转发至第二端口。of数据可转换为类似的nof数据结构,反之亦然。例如,of-nof消息转换器437可转换该数据结构以引导nofne更新路由表来指示从第一端口接收的带有指定mac地址(例如,与流相关联的)消息应转发给第二端口。应注意,转换可包括在of和nof消息类型之间转换、转换地址方案,或它们的组合。of-nof消息转换器437的转换过程可以基于预期接收转换后的消息的nofne的类型是情形特定的。在of适配器400可配置为nofne插件的情况下,of-nof消息转换器437可用于转换为单个类型的nofne消息。在of适配器400是集中式的和/或设计为各种网络中利用的标准部件的情况下,of-nof消息转换器437还可用于转换为各种nofne消息类型。与消息470相关联的of数据结构可以由of-nof消息转换器437转换为与nof消息472相关联的nof数据结构。of-nof消息转换器437可将nof消息472转发给nof消息解析器439。of消息470到nof消息472的转换可产生消息470到消息472的映射。消息470的映射可转发给of-nof消息映射器438。

of-nof消息映射器438可以是增加of适配器400的处理速度所利用的可选部件。of-nof消息映射器438可以是用于存储of-nof消息映射(例如,来自of-nof消息转换器437)并基于这些映射执行消息转换的任意部件和/或进程。例如,of消息解析器435可在接收of消息470后将该消息转发给of-nof消息映射器438。如果of-nof消息映射器438包括可用于转换消息470的映射,则of-nof消息映射器438可将of消息470转换为nof消息472而无需of-nof消息转换器437的转换,当在of适配器400上重复传输类似消息时可降低nof消息转换器437上的总体负载。如果存在映射,则of消息470可转换为nof消息472并且可转发给nofapi436。在另一项实施例中,nof消息472可通过nof消息解析器439转发给nofapi436。如果不存在映射,则of消息470可返回给of消息解析器435用于of-nof消息转换器437的转换。例如,of-nof消息转换器437可接收of消息470、处理of消息470,以及基于of消息470中包含的数据对nof消息472进行编码。相比之下,of-nof消息映射器438可接收of消息470,获取关联映射,丢弃of消息470,以及在不处理of消息470的情况下发送存储的nof消息472,这样可极大地降低处理器上的负载。

of-nof消息转换器437和/或nof消息映射器438可包括协议支持部件431。协议支持部件431可以是可编程模块,该可编程模块可配置为所有命令和/或其它协议数据可由nofne接受和/或从nofne传输。例如,协议支持部件431可包括函数库。协议支持部件431还可包括of函数列表,该of函数列表与nofne协议数据关联。of-nof消息转换器437和/或nof消息映射器438可利用协议支持部件431来识别并在of和nof消息之间转换,这样of部件和nof部件可高效地交换相互可理解的消息。协议支持部件431可通过软件更新来更新,这样可允许of-nof消息转换器437和/或nof消息映射器438被更新以基于特定系统的需求支持更广泛的nofne。

nof消息解析器439大体上类似于of消息解析器435,但是可用于解析与特定类型的nofne相关联的nof消息。例如,nof消息解析器439可接收转换后的nof消息472的数据结构并且可解析消息472以确保该消息是可接受的nof格式。nof消息解析器439可将nof消息472转发给nofapi436。nofapi436可大体上类似于ofapi434,但是可用于调用nofne所理解的任意函数、变量等。nofapi436可通过nof控制信道432,例如nof控制信道132,与nofne(例如,nofne140、240和/或340)传送nof消息472。nofapi436可通过可编程api,例如api242和/或342,与nofne通信。

of适配器400还可将从nofne接收到的nof消息转换为openflow格式并通过ofapi414将这些消息转发给of控制器410。nofapi436可通过nof控制信道432接收nof消息473。nof消息473可与任意api数据一起转发给nof消息解析器439。如果消息473不是合适的nof消息,则nof消息解析器439可拒绝nof消息473。当消息473合适时,如果存在关联的映射,则nof消息解析器439可将nof消息473转发给of-nof消息映射器438以便可能转换至of消息471。如果存在映射,则nof消息473可转换为of消息471并转发给ofapi434和/或of消息解析器435而无需通过of-nof消息转换器437。如果不存在映射,则将nof消息473的数据结构从nof消息解析器439转发给of-nof消息转换器437以便转换至of消息471。与nof消息473相关联的映射可存储在of-nof消息映射器438中以供后续转换。of消息471的数据结构可转发给of消息解析器435用于解析和/或转换至关联的of消息471。of消息471随后可由ofapi434通过ofapi414传送至of控制器410。

图5是诸如of适配器130、230、330和/或400之类的of适配器内的ne500的实施例的示意图。ne500可用于将of消息转换为nof消息以支持nofne的of控制器控制。ne500可在单个节点中实施或者ne500的功能可在多个节点中实施。在一些实施例中,ne500还可充当网络100、200和/或300中的其它节点,例如of控制器110、210和/或310、ofne120和/或nofne140、240和/或340。ne500还可充当of控制器410。所属领域技术人员将认识到术语“ne”涵盖广泛范围的设备,ne500仅仅是示例。ne500是出于描述清楚的原因,而决非将本发明的应用限制在特定ne实施例或某类ne实施例。本发明中所描述的至少一些特征/方法可以在诸如ne500的网络装置或部件中实现。例如,本发明中的特征/方法可以使用硬件、固件和/或安装在硬件上运行的软件来实现。ne500可以是通过网络传送帧的任意设备,例如交换机、路由器、网桥、服务器、客户端等。如图5所示,ne500可包括收发器(tx/rx)510,tx/rx510可以是发射器、接收器,或它们的组合。分别地,tx/rx510可以耦合到多个下游端口520(例如,下游接口)以用于传输和/或接收来自其它节点的帧,并且tx/rx510可以耦合至多个上游端口550(例如,上游接口)以用于传输和/或接收来自其它节点的帧。处理器530可以耦合到tx/rx510以处理帧和/或确定向哪些节点发送帧。处理器530可以包括一个或多个多核处理器和/或存储器设备532,存储器设备532可以用作数据存储器、缓冲器等。处理器530可以实现为通用处理器或者可以是一个或多个专用集成电路(asic)和/或数字信号处理器(dsp)的一部分。处理器530可包括of-nof转换模块534,of-nof转换模块534可包括ofapi434、of消息解析器435、nofapi436、of-nof消息转换器437、of-nof消息映射器438,和/或nof消息解析器439,并可将of消息转换为nof消息,反之亦然。在一替代性实施例中,of-nof转换模块534可实现为存储在存储器532中的指令,这些指令可由处理器530执行,或者部分在处理器530中实现并且部分在存储器532中实现。在另一替代性实施例中,of-nof转换模块534可在单独ne上实现。下游端口520和/或上游端口550可以包含电和/或光发射和/或接收部件。

应理解,通过将可执行指令编程和/或加载到ne500上,处理器530、of-nof转换模块534、tx/rx510、存储器532、下游端口520,和/或上游端口550中的至少一个会发生变化,从而将ne500部分转变成具有本发明所教示的新颖功能的特定机器或装置,例如多核转发架构。加载可执行软件至计算机所实现的功能可以通过公知设计规则转换成硬件实施,这在电力工程和软件工程领域是很基础的。决定使用软件还是硬件来实施一个概念通常取决于对设计稳定性及待生产的单元数量的考虑,而不是从软件领域转换至硬件领域中所涉及的任何问题。一般来说,经常变动的设计更适于在软件中实施,因为重新编写硬件实施比重新编写软件更为昂贵。一般而言,将投入量产的稳定设计可首选以硬件实现,例如通过asic实现,这是因为对于大型生产活动,硬件实现的成本可能要低于软件实现。设计通常可以以软件形式进行开发和测试,之后通过公知设计规定转变成专用集成电路中等同的硬件实施,该集成电路硬线软件指令。机器由新的asic控制后就成为具有特殊用途的机器或装置,同样,经过编程和/或已加载有可执行指令的计算机也可视为具有特殊用途的机器或装置。

图6是of到nof转换的方法600的实施例的协议图,该方法可由诸如of适配器130、230、330和/或400之类的of适配器实施。在步骤601处,of控制器可向ofapi发送of消息。在步骤603处,ofapi可将该of消息转发给of消息解析器。在步骤605处,of消息解析器可解析该of消息并且可查询of-nof消息映射器以确定是否存在与该of消息相关联的映射关系。在步骤607处,of-nof消息映射器可确定,例如与of-nof消息映射器相关联的存储器中存在与该of消息相关联的映射。在步骤609处,of-nof消息映射器可确定已经存在映射,可基于该映射将该of消息转换为nof消息,并且可直接向nofapi发送nof消息。在步骤611处,nofapi可将nof消息转发给关联的nofne。

图7是of到nof转换的方法700的另一实施例的协议图,该方法可由诸如of适配器130、230、330和/或400之类的of适配器实施。方法700可包括步骤701、703、705和707,这些步骤大体上类似于步骤601、603、605和607。然而,在步骤707处,of-nof消息映射器可确定不存在映射。在步骤713处,of-nof消息映射器可通知of消息解析器不存在映射。在步骤715处,of消息解析器可向of-nof消息转换器发送命令以将of消息转换为nof消息。在步骤717处,of-nof消息转换器可将of消息转换为nof消息。在步骤719处,of-nof消息转换器可向nof消息解析器发送nof消息。在步骤721处,nof消息解析器可向nofapi发送nof消息。在步骤723处,nofapi可向nofne发送nof消息。在步骤725处,of-nof消息转换器可基于步骤717的转换将映射关系通知给of-nof消息映射器。在步骤727处,of-nof消息映射器可存储步骤717的映射关系以供后续使用,例如在方法600的步骤607处使用。应注意,of-nof消息转换器可以以任一顺序执行步骤719和步骤725并且步骤727可与步骤721和723大体上同时执行。

图8是nof到of转换的方法800的实施例的协议图,该方法可由诸如of适配器130、230、330、400和/或500之类的of适配器实施。方法800大体上类似于方法600,但是可将nof消息转换为of消息,这与方法600的of到nof的情况相反。在步骤801处,nofne可向nofapi发送nof消息。在步骤803处,nofapi可将nof消息转发给nof消息解析器。在步骤805处,nof消息解析器可解析nof消息并且可查询of-nof消息映射器以确定是否存在与该nof消息相关联的映射关系。在步骤807处,of-nof消息映射器可确定存在与该nof消息相关联的映射,例如通过查询与of-nof消息映射器相关联的存储器。在步骤809处,of-nof消息映射器可基于该映射将nof消息转换为of消息,并且可向ofapi直接发送of消息。在步骤811处,ofapi可将该of消息转发给of控制器。

图9是nof到of转换的方法的另一实施例的协议图,该方法可由诸如of适配器130、230、330和/或400之类的of适配器实施。方法900大体上类似于方法700,但是可将nof消息转换为of消息,这与方法700的of到nof的情况相反。方法900可包括步骤901、903、905和907,这些步骤大体上类似于步骤801、803、805和807。然而,在步骤907处,of-nof消息映射器可确定不存在映射。在步骤913处,of-nof消息映射器可通知nof消息解析器不存在映射。在步骤915处,nof消息解析器可向of-nof消息转换器发送命令以将nof消息转换为of消息。在步骤917处,of-nof消息转换器可将nof消息转换为of消息。在步骤919处,of-nof消息转换器可向of消息解析器发送该of消息。在步骤921处,of消息转换器可向ofapi发送该of消息。在步骤923处,ofapi可向of控制器发送该of消息。在步骤925处,of-nof消息转换器可基于步骤917的转换将映射关系通知给of-nof消息映射器。在步骤927处,of-nof消息映射器可存储步骤917的映射关系以供后续使用,例如在方法800的步骤807处使用。应注意,of-nof消息转换器可以以任一顺序执行步骤919和步骤925并且步骤927可与步骤921和923大体上同时执行。

图10是用于初始化nofne的控制的方法1000的实施例的协议图,该方法可由诸如of适配器130、230、330和/或400之类的of适配器实施。当ofne首次连接网络时,这些ofne可用于联络of控制器(例如,通过hello消息)。这种联络可使of控制器控制ofne。然而,某些类型的nofne可能不原生用于初始化与of控制器的连接。方法1000可允许of适配器和/或of控制器通过nofne触发联络。在步骤1001处,of适配器可向nofne传输nof格式的hello请求消息。可发送步骤1001的hello消息以确认nofne将允许of控制器的控制。步骤1001的hello消息可由of适配器在of适配器启动时和/或在连接nofne和/或nofne启动时触发。在替代性实施例中,of控制器可向所有网络of适配器定期传输hello消息为所有新加入的nofne触发步骤1001的hello消息。在另一替代性实施例中,of适配器可联络of控制器在of适配器启动和/或连接nofne和/或nofne启动时触发来自of控制器的hello消息。

在接收步骤1001的hello请求消息之后,在步骤1002处,nofne可向of适配器传输hello回复消息。步骤1002的hello回复消息可由of适配器转换为of格式并传递给of控制器以通知of控制器nofne是否将接受of控制器的控制。hello回复消息可包括nofne的设备类型的指示,这将允许适配器选择合适的nofapi(例如,nofapi236、336和/或436)与nofne通信以及通过用于在of和hello回复规定的nof类型之间转换消息的合适的转换函数、变量、对象等初始化of-nof消息转换器(例如,nof消息转换器437)。步骤1002的hello回复还可包括与传输nofne相关的设备信息,例如设备状态、nofne端口和端口状态列表、nofnemac地址、nofneip地址,和/或of控制器用于管理nofne的nofne处可用的任意其它信息。

图11是of网络拓扑发现的方法1100的实施例的协议图,该方法可由of控制器(例如,of控制器110、210、310和/或410)和ofne(例如,ofne120)实施。在步骤1101中,of控制器可向第一ofne(ofne1)传输含有链路层发现协议(lldp)包的of出包消息。该lldp包可指示ofne1应向指定端口转发lldp包。在步骤1103处,ofne1可通过指定端口向第二ofne(ofne2)发送含有lldp包的出包消息。在步骤1105处,ofne2可向of控制器发送含有lldp包的of入包消息。在步骤1107处,of控制器可分析该lldp包以例如基于对在ne之间传输的lldp包所做的修改,确定与拓扑和/或资源信息相关的ofne1、ofne2,和/或ofne1和ofne2之间的链路。在步骤1109处,of控制器可在诸如nib416之类的nib中存储关联的拓扑和/或资源信息。

图12是nof网络拓扑发现的方法1200的实施例的协议图,该方法可由of控制器(例如,of控制器110、210、310和/或410)、of适配器(例如,of适配器130、230、330和/或400)和nofne(例如,nofne140、240和/或340)实施。在步骤1201处,第一nofne(nofne1)可将lldp包泛洪至所有相邻ne。步骤1201的lldp包可由第二nofne(nofne2)接收。在步骤1203处中,nofne2可从该lldp包中获取链路和/或资源信息。在步骤1205处,nofne2可向of适配器传输该lldp包。在步骤1207处,of适配器可将该lldp包封装在of入包消息中并将封装后的消息转发给of控制器。在步骤1209处,of控制器可解析该入包消息以获取资源和/或拓扑信息。在步骤1211处,of控制器可在诸如nib416之类的nib中存储资源和/或拓扑信息(例如,与nofne1和nofne2之间的链路相关)。

图13是of到nof拓扑发现的方法1300的实施例的协议图,该方法可由of控制器(例如,of控制器110、210、310和/或410)、ofne(例如,ofne120)和nofne(例如,nofne140、240和/或340)实施。在步骤1301处,nofne可以以与步骤1201类似的方式泛洪lldp包。该lldp包可由相邻的ofne接收。在步骤1303处,ofne可确定该消息是lldp包,并且可将该lldp包封装在of入包消息中。在步骤1305处,ofne可向of控制器传输含有lldp包的入包消息。在步骤1307处,of控制器可分析该lldp包以获取资源和/或拓扑信息(例如,与nofne和ofne之间的链路相关)。在步骤1309处,of控制器可在诸如nib416之类的nib中存储资源和/或拓扑信息。

图14是混合of-nof网络拓扑发现的另一方法1400的实施例的协议图,该方法可由of控制器(例如,of控制器110、210、310和/或410)、of适配器(例如,of适配器130、230、330和/或400)、ofne(例如,ofne120)和nofne(例如,nofne140、240和/或340)实施。某些ofne和nofne可用于获取和存储混合网络的子网的拓扑信息。相比于方法1100、1200、1300和/或1400,of控制器可确定利用在nofne和/或ofne级存储的此类拓扑信息,而不是通过向混合网络中的每个ne传输lldp包重新创建拓扑信息。在步骤1401处,of控制器可向of适配器传输对拓扑和/或资源信息的请求。在步骤1403处,of适配器可将该请求转换为nof信息并将该请求转发给nofne。在步骤1405处,nofne可向of适配器传输拓扑响应消息。该拓扑响应消息可包括nofne已知的所有资源和/或拓扑信息、nofne已知的资源和/或拓扑信息的预定子集,和/或由步骤1401和1403的拓扑请求所规定的nofne已知的资源和/或拓扑信息的子集。在步骤1407处,of适配器可将该拓扑响应消息转换为of格式并将该拓扑响应消息转发给of控制器。在步骤1409处,of控制器可解析该消息以获取来自nofne的资源和/或拓扑信息并且可在诸如nib416之类的nib中存储资源和/或拓扑信息。在步骤1411处,of控制器可以以与步骤1401类似的方式向ofne传输对拓扑和/或资源信息的请求。在步骤1413处,ofne可以以与步骤1405类似的方式使用拓扑响应消息对of控制器作出回复。在步骤1415处,of控制器可解析该消息以获取来自ofne的资源和/或拓扑信息并且可以以与步骤1409类似的方式在nib中存储资源和/或拓扑信息。应注意,步骤1401和1409可以按任意顺序和/或大体同时执行。在完成步骤1409和1415之后,of控制器可访问与整个混合网络相关的拓扑信息,而无需查询每个网络ne。

图15是用于通过诸如网络100之类的混合网络传输包的方法1500的实施例的协议图。为了清楚起见,数据平面的通信可示为实线箭头,控制平面的通信可示为虚线箭头。在步骤1501处,第一主机(主机1)可通过混合网络向第二主机(主机2)传输数据包。步骤1501的数据包可由相邻的ofne接收。ofne可确定步骤1501的包不存在流条目并且可在步骤1551处向of控制器传输of入包消息。of控制器可基于对整个网络拓扑(例如,基于方法1100、1200、1300和/或1400)的理解计算通过混合网络的路径并且可在步骤1553处向ofne传输出包消息。该出包消息可包括基于计算所得路径的流条目。在步骤1503处,ofne可基于来自of控制器的流条目将来自步骤1501的数据包转发给nofne2。nofne2具有的路由数据可能不足以路由在步骤1503处接收到的数据包,例如,因为nofne2包括含有信息不足的路由表。在步骤1555处,nofne2可向of适配器传输路由请求。在步骤1557处,of适配器可将该路由请求转换为of入包消息并将该of入包消息转发给of控制器。在步骤1559处,of控制器可使用包含基于计算所得路径的nofne2的流条目的of出包消息作出响应。在步骤1561处,of适配器可将of出包消息和流条目转换为nof格式,例如,转换为具有路由表条目的路由响应,并且可将该响应转发给nofne2。基于步骤1561的路由响应,在步骤1505处,nofne2可将该数据包转发给另一nofne(nofne1)。nofne1可直接连接至主机2,并且在步骤1507处可将该数据包转发给主机2(例如,基于路由表)。通过使用方法1500(和/或方法1000、1100、1200、1300和/或1400),of控制器可基于对混合网络拓扑的全面理解在nofne和ofne的混合网络中路由包。

本发明公开至少一项实施例,且所属领域的普通技术人员对所述实施例和/或所述实施例的特征作出的变化、组合和/或修改均在本发明公开的范围内。因组合、合并和/或省略所述实施例的特征而得到的替代性实施例也在本发明的范围内。在明确说明数字范围或限制的情况下,此类表达范围或限制应被理解成包括在明确说明的范围或限制内具有相同大小的迭代范围或限制(例如,从约为1到约为10包括2、3、4等;大于0.10包括0.11、0.12、0.13等)。例如,每当公开具有下限r1和上限ru的数值范围时,具体是公开落入所述范围内的任何数字。具体而言,在所述范围内的以下数字是明确公开的:r=r1+k*(ru–r1),其中k为从1%到100%范围内以1%递增的变量,即,k为1%、2%、3%、4%、7%……70%、71%、72%……97%、96%、97%、98%、99%或100%。此外,由上文所定义的两个数字r定义的任何数字范围也是明确公开的。除非另有说明,否则术语“约”是指随后数字的±10%。相对于权利要求的任一元素使用术语“选择性地”意味着所述元素是需要的,或者所述元素是不需要的,两种替代方案均在所述权利要求的范围内。使用如“包括”、“包含”和“具有”等较广术语应被理解为提供对如“由……组成”、“基本上由……组成”以及“大体上由……组成”等较窄术语的支持。因此,保护范围不受上文所陈述的说明限制,而是由所附权利要求书界定,所述范围包含所附权利要求书的标的物的所有等效物。每一和每条权利要求作为进一步揭示内容并入说明书中,且所附权利要求书是本发明的实施例。对所述揭示内容中的参考进行的论述并非承认其为现有技术,尤其是具有在本申请案的在先申请优先权日期之后的公开日期的任何参考。本发明中所引用的所有专利、专利申请案和公开案的揭示内容特此以引用的方式并入本文本中,其提供补充本发明的示例性、程序性或其它细节。

虽然本发明多个具体实施例,但应当理解,所公开的系统和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。

此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式通过某一接口、设备或中间部件间接地耦合或通信。其它变更、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离此处公开的精神和范围。

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