使用控制器处的交换机建模接口控制网络交换机的系统和方法与流程

文档序号:11142862阅读:713来源:国知局
使用控制器处的交换机建模接口控制网络交换机的系统和方法与制造工艺

技术领域

此涉及通信网络,并且更具体地,涉及具有由控制器控制的网络交换机的通信网络。



背景技术:

基于分组的网络(诸如,连接到互联网的本地数据网络和因特网)包括网络交换机。网络交换机用于将分组从分组源转发到分组目的地。分组有时可以被称为帧。例如,数据在开放系统互联(OSI)模型的层2上作为帧(例如,以太网帧)转发,而数据在OSI模型的层3上作为分组(例如,互联网协议分组)转发。

将一个供应商的交换机配置为使用另一个供应商的装备可能是困难或不可能的。这是因为一个供应商的交换机装备相比于另一个供应商的交换机装备可以使用不同的操作系统和不同的控制过程集合。为了解决与控制不同类型的交换机平台相关联的挑战,跨平台协议已经被开发。这些协议允许其他方式不兼容的交换机的集中式控制。

跨平台控制器客户端可以被包括在网络中的交换机上。控制器客户端能够在网络路径上与对应的控制器服务器通信。因为控制器客户端能够实施在各种交换器硬件上,所以单个控制器控制可能以其他方式不兼容的交换器装备是有可能的。

确保交换机被成功地配置为控制器所预期的那样对于控制器是有挑战性的。考虑这样的场景,其中控制器向交换机提供数千个控制分组,但是该交换机处理能力不足以用由控制器提供控制分组的速率处理这些控制分组。作为另一个示例,交换机处的配置储存能力可能被填满,并且交换机在不覆写已存在的配置数据的情况下可能不能储存任何额外的配置数据。作为再另一个示例,新的交换机可以连接到网络或者已存在的交换机可能从网络断开,这可以导致网络的控制器的视图和网络的实际配置状态之间的不匹配。



技术实现要素:

控制器可以控制具有耦合到交换机的终端主机的网络中的交换机。控制器可以包括交换机建模接口,该交换机建模接口维护网络中的交换机的交换机模型,并且在生成用于交换机的实施期望的网络配置的控制消息中使用该交换机模型。交换机建模接口可以从响应于网络事件(诸如,交换机的连接或断开或新的网络策略)的应用模块接收期望的网络配置。期望的网络配置可以包括表的集合和函数。交换机建模接口可以在表的集合上操作函数以产生期望的网络配置。例如,表的集合可以包括标识终端主机附接点的主机表和交换机间转发表。在这个场景中,交换机建模接口可以在主机表和交换机间转发表上操作函数以给交换机中的每一个产生交换机特定的转发表。

交换机建模接口可以比较期望的网络配置(例如,交换机特定的转发表)和由交换机模型表示的当前网络配置。交换机建模接口可以仅对于期望的网络配置和由交换机模型标识的当前网络配置之间所识别的差异向交换机生成控制消息。通过与控制消息一起发送同步请求消息(例如,屏蔽请求消息)并且等待同步回复消息(例如,屏蔽回复消息)、错误消息或交换机响应的失败(例如,计时器的过期),交换机模型接口可以确定控制消息是否被成功接收以及由交换机处理。交换机建模接口可以向提供了期望的网络配置的应用模块指示成功或者失败。

交换机建模接口可以通过与交换机通信而更新交换机模型。为了帮助减少网络控制路径上的流量负载,交换机可以被配置为维护摘要表。由交换机维护的摘要表可以包括多个条目(例如,桶),每个条目与各自的摘要值相关联。在交换机处接收的诸如转发表条目的交换机配置数据(例如,经由来自控制器的控制消息)可以由交换机散列并且基于散列值分配到选定的表条目。交换机可以计算每一个表条目的摘要值为分配到该表条目的散列值的异或。由交换机维护的摘要值可以由控制器取回并且与由控制器计算的用于期望的网络配置的摘要值相比较。基于比较,控制器处的交换机建模接口可以确定在实施期望的网络配置中哪个交换机配置数据应该被更新。

通过附图和随后的具体描述,本发明的进一步的特征、其本质和各种优势将更加清晰。

附图说明

图1是根据本发明的实施例的包括控制器和分组转发系统的说明性网络的示意图。

图2是根据本发明的实施例的可以通过网络连接通信的控制器服务器和控制器客户端的示意图。

图3是根据本发明的实施例的可以被分组处理系统使用的类型的说明性流表的示意图。

图4是根据本发明的实施例的可以由分组处理系统使用的类型的说明性流表的示意图,示出了可以基于流表的流表条目执行的分组交换的三个说明性类型。

图5是根据本发明的实施例的在分组处理系统中处理分组时涉及到的说明性步骤的流程图。

图6是根据本发明的实施例的具有可以由具有交换机建模接口的控制器控制的交换机的说明性网络的示意图。

图7是根据本发明的实施例的说明性交换机模型的示意图。

图8是根据本发明的实施例的示出终端主机的断开可以如何反映在交换机模型中的说明性交换机模型的示意图。

图9是根据本发明的实施例的可以储存在交换机模型中的说明性交换机状态信息的示意图。

图10是根据本发明的实施例的可以被储存在交换机模型中并且用于生成交换机特定的状态信息的说明性全局网络状态信息的示意图。

图11是根据本发明的实施例的可以被储存在交换机模型中并且被交换机建模接口使用以生成交换机特定的状态信息的说明性函数的示意图。

图12是根据本发明的实施例的可以由应用模块提供给交换机建模接口的期望的网络配置的说明性网络快照的示意图。

图13是根据本发明的实施例的包括表的集合和操作在表的集合上以产生交换机特定的状态信息的函数的说明性网络快照的示意图。

图14是根据本发明的实施例的可以由交换机建模接口执行以根据期望的网络快照和当前网络配置的区别生成交换机控制消息的说明性步骤的流程图。

图15是根据本发明的实施例的在使用交换机建模接口响应于网络事件而修改网络配置中可以由控制器执行的说明性步骤的流程图。

图16是根据本发明的实施例的可以由交换机执行以基于接收的交换机配置数据而维护摘要表的说明性步骤的流程图。

图17是根据本发明的实施例的可以由交换机基于交换机配置数据维护的说明性摘要表。

图18是根据本发明的实施例的在使用由交换机维护的摘要表以标识期望的网络配置与当前网络配置之间的区别中可以由控制器执行的说明性步骤的流程图。

具体实施方式

诸如互联网和耦合到互联网的本地网和区域网之类的网络依赖基于分组的交换机。这些交换机(在本文中有时被称为网络交换机、分组处理系统或分组转发系统)能够基于地址信息转发分组。以这种方式,由分组源传送的数据分组可以被传递到分组目的地。在网络方面,分组源和分组目的地有时候被称为终端主机。终端主机的示例为个人计算机、服务器和其他计算装备,诸如,使用有线或无线技术访问网络的便携式电子设备。

网络交换机在能力方面范围从相对小的以太网交换机和无线接入点到大的基于机架的系统,该系统包括若干线卡、冗余电源和监管器能力。对于网络来说包括来自若干供应商的装备不是不常见的。来自不同供应商的网络交换机能够互联以形成分组转发网络,但是由于它们操作系统和控制协议的不兼容,可能难以以集中式的方式管理。

能够通过将常见的跨平台控制模块(在本文中有时称为控制器客户端)结合到每一个网络交换机中来克服这些潜在的不兼容性。集中式跨平台控制器(诸如,控制器服务器或分布式控制器服务器)可以通过各个网络链路与控制器客户端中的每一个交互。跨平台控制器和对应的控制器客户端的使用允许潜在不同的网络交换机装备被集中地管理。

通过一个说明性配置(本文中有时称为示例),集中式控制通过一个或多个控制器服务器(诸如,图1的控制器服务器18)提供。控制器服务器18可以在单独的计算机、计算机的集群、分布在若干地点的计算机集合、嵌入在网络交换机内的硬件或其他合适的计算装备12上实施。控制器服务器18能够作为单个进程在单个计算机上运行或者能够为了冗余性而分布在多个主机上。分布式布置的使用可以帮助为网络10提供对抗意外的网络分割(例如,两个校园之间的网络链路中断的情形)的弹性。

在分布式控制器布置中,控制器节点可能使用控制器内协议交换信息。例如,如果新的终端主机连接到仅连接到第一控制器节点的网络硬件(例如,交换机),那么该第一控制器节点可以使用控制器内协议通知其他控制器节点新的终端主机的出现。如果期望,那么交换机或其他网络部件可以连接到若干控制器节点。有时在本文中,将单个控制器服务器用于控制相关联交换机的网络的布置描述为示例。

图1的控制器服务器18可以收集关于网络10拓扑的信息。例如,控制器服务器18可以通过网络发送链路层发现协议(LLDP)探测分组以发现网络10的拓扑。控制器服务器18可以使用关于网络拓扑的信息和关于网络装备能力的信息以确定分组流过网络的合适路径。一旦合适的路径已经被标识,控制器服务器18就可以将对应的设置数据发送到网络10中的硬件以确保分组如所期望的那样流过网络。诸如这些的网络配置操作可以在系统设置操作期间在后台连续地执行,或者响应于新发送的数据分组(即,对于其来说先前存在的路径还没有建立的分组)的出现而执行。

控制器服务器18可以用于实施网络配置规则20。规则20可以指定哪些服务对于各种网络实体是可用的。作为示例,规则20可以指定网络10中的哪些用户(或用户的类型)可以访问特定服务器。作为另一个示例,规则20可以包括标识网络流量和将在标识的网络流量上执行的服务的服务插入策略。例如,规则20可以在计算装备12的数据库中维护。

在各个网络交换机14处的控制器客户端30和控制器服务器18可以使用网络协议栈在网络链路16上通信。

每一个交换机(例如,每一个分组转发系统)14可以具有输入输出端口34(有时称为网络交换接口)。可以使用电缆将装备块连接到端口34。例如,终端主机(诸如,个人计算机、网页服务器和其他计算装备)可以插入到端口34中。端口34还可以用于将交换机14中的一个连接到其他交换机14。

分组处理电路系统32可以用于将来自端口34中的一个的分组转发到端口34中的另一个,并且可以用于对到来的分组执行其他合适的动作。分组处理电路32可以使用一个或多个集成电路(诸如专用高速交换机电路)实施并且可以用作硬件数据路径。如果期望,可以在实施软件数据路径中使用运行在控制单元24上的分组处理软件26。

控制单元24可以包括用于储存和运行控制软件的处理和存储器电路(例如,一个或多个微处理器,存储器芯片,和其他控制电路系统)。例如,控制单元24可以储存和运行诸如分组处理软件26的软件、可以储存流表28,以及可以用于支持控制器客户端30的操作。

控制器客户端30和控制器服务器18可以适用网络交换机协议,诸如OpenFlow协议(例如,参见OpenFlow交换机规范版本1.0.0,1.3.1,或OpenFlow协议的其他版本)。控制器客户端30中的一个或多个客户端还可以适用其他协议(例如,简单网络管理协议)。使用OpenFlow协议或其他合适的协议,控制器服务器18可以给控制器客户端30提供确定交换机14将如何处理来自输入输出端口34的到来分组的数据。

通过一种合适的布置,来自控制器服务器18的流表数据可以储存在诸如流表28的流表中。流表28的条目可以用于配置交换机14(例如,分组处理电路系统32和/或分组处理软件26的功能)。在典型的场景中,流表28用作用于流表条目的高速缓冲储存器,并且这些流表条目的对应版本嵌入在由分组处理电路系统32维护的设置中。然而,这仅仅是说明性的。流表28可以用作交换机14中流表条目的专有储存器,或者可以为了分组处理电路系统32内的流表储存资源而被省略。总之,流表条目可以使用任意合适的数据结构(例如,一个或多个表、列表等)储存。为了清楚,流表28的数据(不论在控制单元24中的数据库维护还是嵌入在分组处理电路系统32的配置中)在本文中被称为形成流表条目(例如,流表28中的行)。

储存确定交换机14将如何处理到来的分组的数据的流表28的示例仅仅是说明性的。如果期望,可以替换流表28使用任何分组转发决定引擎,或除了流表28之外还可以使用任何分组转发决定引擎,以协助分组转发系统14做出如何转发网络分组的决定。作为示例,分组转发决定引擎可以引导分组转发系统14基于网络分组的属性(例如,基于网络协议头)将网络分组转发到预定的端口。

可以给任何期望的交换机提供与控制器服务器通信并且由控制器服务器控制的控制器客户端。例如,交换机14可以使用运行控制软件并且省略分组处理电路系统32的通用处理平台实施。作为另一个示例,交换机14可以使用耦合到一个或多个高速交换集成电路(“交换机IC”)的控制电路系统实施。作为再另一个示例,交换机14可以实施为在具有若干线卡的基于机架的系统中的线卡,每一个线卡有其自己的分组处理电路系统。如果期望,可以在耦合到网络的其它计算装备上、在基于机架的系统中或另一个基于机架的系统中的一个或多个线卡上实施控制器处理器。

如图2所示,控制器服务器18和控制器客户端30可以使用网络协议栈(诸如,网络协议栈58和网络协议栈60)在网络路径66上通信。例如,栈58和60可以是Linux TCP/IP栈或者VxWorks操作系统中的TCP/IP栈(作为示例)。例如,路径66可以是支持交换机14与外部装备之间的网络连接的路径(例如,图1的网络路径16),或者可以是基于机架的系统中的骨干网路径。本文有时将路径66是诸如路径16的网络路径的布置作为示例描述。

控制协议栈56用作网络协议栈58和控制软件54之间的接口。控制协议栈62用作网络协议栈60和控制软件64之间的接口。在操作期间,当控制器服务器18与控制器客户端30通信时,控制协议栈56生成并且解析控制协议消息(例如,激活端口或将特定流表条目安装到流表28中的控制消息)。通过使用图2所示的类型的布置,网络连接在控制器服务器18和控制器客户端30之间的链路上形成。控制器服务器18和控制器客户端30能够使用互联网协议(IP)上传输控制协议(TCP)或用户数据报协议(UDP)网络连接进行通信。当在网络连接上在控制器服务器18和控制器客户端30之间通信时可以使用的控制协议的示例包括SNMP和OpenFlow协议栈版本1.0.0(作为示例)。

流表28包含具有若干字段(有时称为头字段)的流表条目(例如,表中的行)。已经由交换机14接收的分组中的字段可以与流表中的字段比较。每一个流表条目可以具有相关联的动作。当存在分组中的字段和流表条目中的字段之间的匹配时,该流表条目的对应动作可以被采取。

图3示出了说明性的流表。如图3所示,表28可以具有流表条目(行)68。每一个流表条目可以与头70、动作72和统计值74相关联。头70均可以包括若干头字段76。每一个流表条目中的动作指示当检测到分组中的字段与该流表条目的头中的对应字段之间匹配时交换机14将执行什么动作。交换机14可以维护在期望获得关于交换机14的性能的信息时可由控制器服务器18查询的流表28的统计值部分中的统计数据(计数器值)。

头70中的头字段(和每一个到来分组中的对应字段)可以包括以下字段:进入端口(即,交换器14中物理端口的标识,分组通过该端口接收),以太网源地址、以太网目的地地址、以太网类型、虚拟局域网(VLAN)标识(有时称为VLAN标签)、VLAN优先级、IP源地址、IP目的地地址、IP协议、IP服务类型(ToS)比特、传输源端口/互联网控制消息协议(ICMP)类型(有时称为源TCP端口)和传输目的地端口/ICMP码(有时称为目的地TCP端口)。如果期望,可以使用其他字段。例如,可以使用网络协议字段和协议端口字段。

每一个流表条目(流条目)与指示交换机如何处理匹配分组的零个或多个动作相关联。如果没有出现任何转发动作,包优选地被丢弃。当检测到分组字段与流表条目中的头字段之间的匹配时可以采取的动作可以包括以下动作:转发(例如,ALL(所有),用于将分组在不包括到来接口的所有接口上发送出去;CONTROLLER(控制器),用于将分组封装并发送到控制器服务器;LOCAL(本地),用于将分组发送到交换机的本地联网栈;TABLE(表),用于执行流表28中的动作;IN_PORT(入_端口),用于将分组发送出输入端口外;NORMAL(正常),用于使用例如传统层2VLAN和层3处理通过由交换机支持的缺省转发路径处理分组;以及FLOOD(泛洪),用于沿不包括到来接口的最小转发树泛洪分组。可以由交换机14采取的额外动作包括:通过附接到端口的队列转发分组的入队动作和丢弃动作(例如,丢弃匹配没有具体动作的流表条目的分组)。修改字段动作也可以由交换机14支持。可采用的修改字段动作的示例包括:设置VLAN ID、设置VLAN优先级、剥离VLAN头、修改VLAN标签、修改以太网源介质访问控制(MAC)地址、修改以太网目的地MAC地址、修改IPv4源地址、修改IPv4ToS比特、修改传输目的地端口。修改字段动作可以用于重新写入匹配流表条目的网络分组的部分。

图4是具有三个流表条目的说明性流表。条目包括有通配符(例如,“*”符号)的字段。当通配符出现在特定字段中时,不管到来的分组中的字段的具体值如何,所有到来的分组将被看做相对于该字段形成“匹配”。额外的字段可以匹配额外的分组信息(例如,网络分组的分组头信息)。

图4表的第一行的条目引导操作流表条目的交换机来执行以太网交换。具体地,具有匹配的以太网目的地地址的到来分组被转发到端口3。

图4表的第二行的条目示出可以如何配置交换机以执行互联网路由(即,分组基于他们的目的地IP地址转发)。

图4表的第三行包含示出可以如何配置交换机以执行防火墙的条目。当收到具有目的地IP端口值为80的分组时,该分组被丢弃(即,交换机被配置为用作屏蔽端口80流量的防火墙)。

图4示出的类型的流表条目可以在系统设置操作期间由控制器服务器18载入交换机14,或者可以响应于在控制器服务器18处来自诸如交换机14的交换机的分组的接收和处理从控制服务器18被实时提供给交换机14。在具有多个交换机14的网络中,可以为每一个交换机提供合适的流表条目以形成通过网络的路径。

图5中示出了可以由交换机14在处理在输入输出端口34上接收的分组中执行的说明性步骤。在步骤78,交换机14在其端口中的一个(例如,图1的输入输出端口34中的一个)上接收分组。

在步骤80,交换机14将接收的分组的字段与该交换机的流表28中的流表条目的字段比较以确定是否存在匹配。流表条目中的一些字段可以包含完整值(例如,完整地址)。其他字段可以包含通配符(即,以“不相关”通配符字符“*”标记的字段)。再其他的字段可以具有部分完整的条目(例如,部分通配符表示的部分地址)。一些字段可以使用范围(例如,通过将TCP端口号限制到1至4096之间的值)并且实际使用用于实施部分通配符的类型的范围。在进行接收的分组与流表条目之间的逐字段比较时,交换机14能够考虑流表条目中的每一个字段是否包含没有任何通配符的完整值、有通配符的部分值或通配符字符(即,完全通配符表示的字段)。

如果在步骤80的操作期间确定分组的字段与流表条目的对应字段之间不存在匹配,那么交换机14可以在链路16上将分组发送到控制器服务器18(步骤84)。

如果在步骤80的操作期间确定分组与流表条目之间存在匹配,那么交换机14可以执行与该流表条目相关联的动作并且可以更新该流表条目的统计值字段中的计数器值(步骤82)。处理然后可以回到步骤78,使得其他分组可以由交换机14处理,如线86所指示的。

图6是交换机可以由控制器18控制的说明性网络100的示意图。控制器18可以是控制器服务器或者跨若干计算装备实施的分布式控制器。如图6所示,网络100可以包括交换机SW1和SW2。控制器18可以经由控制路径66耦合到网络100的交换机。控制器18可以使用控制路径66控制交换机(例如,通过提供诸如图3的流表条目68的流表条目)。交换机可以包括耦合到终端主机或其它交换机的交换机端口。在图6的示例中,终端主机EH1和EH3耦合到交换机SW1的各个端口P1和P3,终端主机EH2和EH4耦合到交换机SW2的各个端口P1和P2,以及交换机SW1和SW2经由交换机SW1的端口P2和交换机SW2的端口P3而耦合。

控制器18可以包括控制网络中交换机的操作的一个或更多个应用模块102。例如,第一应用模块102可以将交换机组织为由交换机上的端口或终端主机的组形成的虚拟交换机。在这个场景中,第一应用模块可以在虚拟交换机级别实行网络政策和转发(例如,网络协议可以为虚拟交换机限定而不是为下面的交换机限定)中控制网络的下面的交换机SW1和SW2。作为另一个示例,第二应用模块102可以处理网络监视功能,诸如分析网络流量以生成网络流量报告。应用模块可以生成期望的(例如,整个网络的)网络配置并且向交换机建模接口104提供该网络配置。交换机建模接口104可以使用交换机模型108实施期望的网络配置并且可以向应用模块指示实施成功还是失败。

诸如模块102的模块可以在控制器18处实施为通用或应用特定的计算装备上的软件或专用硬件。例如,模块102可以实施为共享计算装备上的软件模块。作为另一个示例,模块102可以实施在分布式控制器布置中的不同计算装备上。

应用模块102可以基于在应用模块维护的或由控制器18的其他模块维护的网络拓扑信息控制交换机。然而,网络中可以有数百、数千或更多的交换机。确保发送到网络的交换机的控制信息由交换机成功地接收或执行对于应用模块102可能是有挑战性的。此外,控制器18处可以实施若干应用模块102并且若干应用模块102潜在地彼此冲突。考虑交换机没能实施从控制器18接收的流表条目的场景。在这个场景中,交换机的状态不能匹配期望的状态,并且由控制器提供的后续流表条目可能生成不期望的网络配置。

可以为控制器18提供处理与交换机的通信和交换机状态的维护的交换机建模接口模块104。交换机建模接口模块104可以帮助确保应用模块102与网络的交换机同步。交换机建模接口104可以实施代表网络中每一个交换机的模型108。例如,交换机模型MSW1可以代表交换机SW1,而交换机模型MSW2可以代表交换机SW2。交换机模型MSW1和MSW2可以维护关于各个交换机SW1和SW2的当前状态的信息。例如,交换机模型MSW1可以维护标识在交换机SW1实施的转发规则或策略的信息,而交换机模型MSW2可以标识交换机SW2的状态。

交换机模型108可以由控制模块106控制。在满足来自应用模块102的网络控制请求中,控制模块106可以控制交换机模型108并且向网络的交换机发出控制消息。交换机模型108可以实施为诸如表的集合的数据构造。图7是用于交换机SW1的说明性交换机模型(例如,图6的交换机模型MSW1)的示意图。如图7所示,交换机模型112包括关于对应交换机SW1的状态的信息。交换机状态可以包括终端主机附接点、转发规则或储存关于交换机SW1的状态的信息(例如,当前交换机配置)的其他表。

参考图6的示例性网络,用于交换机SW1的交换机模型112可以包括标识终端主机和哪个交换机端口耦合到所述终端主机的信息。终端主机EH1可以标识为附接到交换机SW1的端口P1,而终端主机EH3可以标识为连接到交换机SW1的端口P3。不是直接附接到交换机SW1的终端主机可以由那些终端主机可以通过其从交换机SW1到达的端口标识。例如,终端主机EH2和EH4可以被标识为耦合到交换机SW1的端口P2,因为从交换机SW1的端口P2转发的分组可以通过端口P2到达终端主机EH2和EH4。交换机模型112可以包括管理网络流量将如何由交换机SW1转发的转发规则。作为示例,转发规则可以储存为包括限定交换机SW1将如何为每一个终端主机转发网络分组的条目的表。转发规则可以在交换机模型中储存为每一交换机转发规则,或可以储存为经由在全局规则上操作的一个或多个函数转换为交换机特定规则的全局、网络范围规则(例如,表)。

交换机模型112可以包括关于对应交换机(例如,交换机SW1)的状态的任何信息。例如,交换机模型112可以包括具有限定链路聚合组的条目的链路聚合组(LAG)表。每一个链路聚合组可以被分配用作逻辑端口的一组交换机端口(例如,交换机的若干物理端口可以形成链路聚合组,网络流量通过该链路聚合组转发和接收)。

交换机建模接口104可以与交换机通信以监视网络的状态。例如,在监视网络的状态中,控制模块106可以向交换机发送控制消息和/或从交换机接收状态消息。控制模块106可以响应于来自交换机的更新的状态信息而更新交换机模型。图8是示出图7的交换机模型112可以如何响应于标识该终端主机EH1已经从交换机SW1断开的状态更新而更新的示意图。例如,交换机SW1可以在控制路径66上向控制模块104发送端口关闭消息。在这个场景中,端口关闭消息可以标识交换机SW1的端口P1断开,并且可以响应于交换机SW1处的电气传感器数据或响应于从控制器18发送到交换机SW1的控制消息而立即发送。

如图8所示,修改的交换机模型114不包括用于终端主机EH1的任何状态信息。换言之,控制模块104可以从任何附接点信息、转发规则或其他表移除终端主机EH1。

图9示出了包括可以提供给交换机的条目的说明性的转发表。在图9的示例中,转发表122和124是操作在以太网介质访问控制地址上的OSI层2(L2)转发表。转发表122和124可以用作流表或用作用于交换器SW1和SW2的流表的子集(例如,部分)。例如,在填充转发表122和124中,控制模块106可以向交换机SW1和SW2提供流表条目。转发表122可以被交换机SW1储存并且使用以确定如何转发网络分组。类似地,交换机SW2在转发网络分组中可以储存并且使用转发表124。

用于交换机SW1的L2转发表122的每一个条目可以由以太网地址和交换机SW1的端口标识,目的地为标识的以太网地址的网络流量应该转发到该端口。第一L2转发表条目可以引导交换机SW1将目的地为以太网地址MACEH1(即,终端主机EH1)的网络分组转发到交换机SW1的端口P1,因为终端主机EH1连接到交换机SW1的端口P1。类似地,L2转发表条目可以标识目的地为终端主机EH3的网络分组应该从端口P3发送(即,终端主机EH3附接到的端口)。对于诸如终端主机EH2和EH4的不是直接附接到交换机SW1的终端主机,可以提供引导交换机SW1沿至终端主机的网络路径(例如,端口P2)转发网络分组的L2转发表条目。类似地,用于交换机SW2的L2转发表124包括标识目的地为以太网地址MACEH1、MACEH2、MACEH3和MACEH4的网络分组应该分别转发到交换机SW2的端口P3、P1、P3和P2的条目。

可以由交换机建模接口储存转发表122和124的副本(例如,作为图7的交换机模型112中转发规则的一部分)。控制模块106可以维护本地副本以帮助应用模块102与网络的交换机之间的接合。例如,控制模块106可以使用本地副本模拟提供给交换机的控制消息的效果。作为向交换机提供控制消息的一部分,控制模块106可以额外的与交换机通信以验证交换机处的控制消息之后的状态与交换机模型108处的模拟状态匹配。

对于交换机建模接口104来说维护网络中的所有交换机处的状态的本地副本是有挑战性的。考虑网络包括数百个均具有若干转发表(例如,L2转发表、IP转发表等)的交换机的场景。在这个场景中,每一个交换机可以包括限定该交换机当前状态的成百上千个表条目(例如,转发表条目、地址解析表条目、链路聚合组表条目等)。由于有限的资源(诸如控制器处可用的存储器),交换机建模接口储存每一个交换机的每一个交换表条目可能是困难的或不可能的。

控制器处的交换机建模接口可以被配置为储存一个或多个交换机状态为全局数据构造和在全局数据上操作以产生交换机特定的状态信息的每一交换机函数。图10是示出图9的交换机特定的转发表中的交换机状态信息可以如何储存为包括主机表132和交换机间转发表136的全局数据构造的说明性示意图。

主机表132包括标识用于终端主机的附接点的主机表条目134。在图10的示例中,终端主机EH1的以太网地址MACEH1在第一主机表条目134中限定为附接到交换机SW1的端口P1。类似地,以太网地址MACEH2被标识为附接到交换机SW2的端口P1,以太网地址MACEH3被标识为附接到交换机SW1的端口P3,以及以太网地址MACEH4被标识为附接到交换机SW2的端口P2。主机表132不特定于任何特定交换机(例如,主机表132是全局表)。

交换机间转发表136包括标识网络的交换机之间的链路的交换机间转发表条目138。第一条目138可以标识将要转发到交换机SW2(例如,目的地交换机)的来自交换机SW1(例如,源交换机)的网络分组应该从源交换机SW1的端口P2转发。第二条目138可以标识将要转发到目的地交换机SW1的来自源交换机SW2的网络分组应该从交换机SW2的端口P3转发。

图10中交换机间转发链路基于流量方向标识的示例仅仅是说明性的。如果期望,交换机中的每一对可以由通过网络链路连接的交换机的端口所标识。例如,条目138可以标识第一交换机SW1、第二交换机SW2、以及第一交换机SW1的端口P2连接到第二交换机SW2的端口P3。因此,交换机间转发表136在本文有时可以称为交换机间链路表或交换机间连接表,因为表136标识网络的交换机之间的连接。

主机表132和交换机间转发表136代表网络的全局视图,因此帮助移除储存在控制器处的交换机状态信息的冗余。例如,图9的交换机特定的L2转发表122和124包含冗余信息,因为每个表包括标识从对应的交换机的角度来看终端主机在哪里连接的信息(即,表122标识终端主机相对于交换机SW1在哪里连接、而表124标识终端主机相对于交换机SW2在哪里连接)。在有许多(例如,数十个、数百个或者更多)交换机的网络中,图10的全局表可以提供由控制器储存的条目数量的大幅减少(例如,因为每一个终端主机的位置仅标识一次)。

可以给控制器处的交换机建模接口提供在一个或多个全局表上操作的函数以获得用于交换机模型的交换机特定的表。图11是L2转发表函数(FL2TABLE)142的说明性示意图,该函数接收包括输入交换机和输入地址的输入数据,并且在图10的主机表132和交换机间转发表136上操作以产生交换机特定的转发表,诸如图9的表122和124。

为了产生用于交换机的特定终端主机的交换机特定的转发表条目,交换机建模接口可以提供该终端主机的以太网地址并且标识该交换机作为用于函数FL2TABLE的输入地址和输入交换机。函数FL2TABLE可以引导交换机建模接口检查输入地址和输入交换机。如果主机表132的条目标识输入地址附接在输入交换机处,那么该输入交换机的对应端口可以从该条目取回并且返回为FL2TABLE的输出。如果用于输入地址的条目没有标识输入交换机,那么函数FL2TABLE可以引导交换机建模接口从与输入交换机和由主机表条目标识的交换机匹配的交换机间转发表条目返回端口。

考虑交换机建模接口提供交换机SW1和以太网地址MACEH1作为函数FL2TABLE的输入的场景。在这个场景中,函数FL2TABLE引导交换机建模接口以输入地址MACEH1取回主机表条目。取回的主机表条目标识交换机SW1和端口P1(参见图10),其匹配输入交换机并且因此可以返回端口P1作为函数FL2TABLE的输出。用于表122的交换机特定的L2转发表条目可以因此生成,标识以太网地址MACEH1为附接到交换机SW1的端口P1。

作为另一个示例,考虑交换机建模接口通过提供交换机SW1和以太网地址MACEH2作为函数FL2TABLE的输入而为交换机SW1和终端主机EH2生成L2转发表条目的场景。在这个场景中,如由函数FL2TABLE指示的那样,交换机建模接口可以在输入地址MACEH2处取回主机表条目。取回的主机表条目标识以太网地址MACEH2附接在交换机SW2的端口P1,其不匹配输入交换机SW1。作为响应,函数FL2TABLE可以指示交换机建模接口取回匹配交换机SW1和标识的交换机SW2的交换机间连接表条目。取回的条目138可以标识交换机SW1的端口P2连接到交换机SW2(参见,例如,图10的表136的第一条目)。交换机SW1的标识的端口P2可以返回为函数FL2TABLE的输出。从而可以生成用于表122的标识以太网地址MACEH2为耦合到交换机SW1的端口P2的交换机特定的L2转发表条目。

图10和图11中使用全局表帮助减少L2转发信息的存储空间的示例仅仅是说明性的。控制器18可以通过针对任何期望的交换机特定信息(诸如,地址解析协议表、链路聚合组表或在网络的单个交换机处维护的其他信息)的全局数据构造来配置。控制器18可以通过在输入和全局数据构造上操作以重建交换机特定信息的任意数量的函数来配置。

诸如图6的应用模块102的应用模块可以通过向交换机建模接口提供网络快照而指示对网络配置的期望的修改。交换机建模接口可以与交换机通信以实施期望的修改,同时使用交换机模型帮助确保正确性。图12是可以由应用模块提供给交换机建模接口的说明性网络快照。网络快照152可以包括期望的交换机状态的集合。在图12的示例中,快照152包括用于网络的交换机SW1和SW2的层2转发表L2TABLESW1和L2TABLESW2(例如,图9的表122和124)。这个示例仅仅是说明性的。快照152可以包括标识网络中交换机的期望状态的任何期望的交换机特定的信息。换言之,快照152可以限定将要实施的期望的网络配置。

应用模块可以被配置为除了交换机特定的状态信息之外还提供全局数据构造或替代交换机特定的状态信息而提供全局数据构造以帮助减少控制器处需要的储存量。如图13所示,网络快照162可以包括主机表和交换机间转发表(例如,图10的主机表132和交换机间转发表136)。网络快照162可以包括从全局数据结构生成交换机特定的状态信息的函数FL2TABLE(例如,图11的FL2TABLE 142)。

网络快照可以包括仅交换机特定的状态信息(例如,图12的快照152),仅全局状态信息,或交换机特定和全局状态信息的组合。包括在网络快照中的信息标识网络的期望状态,其可以由交换机建模接口处理以生成用于实施网络的期望状态的交换机控制消息。图14是说明性步骤的流程表200,这些步骤可以由交换机建模接口在基于网络快照实施对网络配置的期望改变中执行。

在步骤202期间,交换机建模接口可以接收指示将对网络配置做出的期望的改变(例如,期望的网络配置)的新的快照。例如,可以接收图12的快照152或图13的快照162。

在步骤204期间,交换机建模接口可以对网络中的每一个交换机执行步骤206的操作(例如,交换机建模接口可以选择交换机,为所选择的交换机执行步骤206的操作,选择另外的交换机,等等)。

在步骤206期间,交换机建模接口可以对接收的快照中的每一个表(例如,交换机特定或全局构造)执行步骤208-224的操作。

在步骤208期间,交换机建模接口可以确定所选交换机的状态是否是已知的(例如,在步骤204期间用于处理而选择的交换机)。例如,交换机建模接口可以储存标识每一个交换机模型108中的信息上次何时更新的信息。该信息可以在交换机模型中的表条目上或每个表上储存为时间戳。在这个场景中,交换机建模接口可以比较所选交换机相关联的时间戳和当前系统时间。如果时间的差异超过阈值,那么交换机建模接口可以确定所选交换机的当前状态应该更新。

响应于确定所选交换机的状态从交换机模型已知,在步骤210期间可以(例如,从对应的交换机模型108)取回当前交换机状态并且可以随后执行步骤214的操作。响应于确定所选交换机的状态不是已知的(例如,对应的交换机模型108没有储存最新信息),交换机建模接口可以与所选交换机通信以取回其当前交换机状态,用于在进行到步骤214之前更新对应的交换机模型。例如,交换机建模接口可以发送引导交换机响应所请求的交换机状态信息(例如,L2转发表,ARP表等)的控制消息。从交换机接收的交换机状态信息可以用于更新交换机模型108。

在步骤214期间,交换机建模接口可以计算当前交换机状态和在接收的网络快照中限定的新交换机状态之间的差异(Δ)。在使用在全局数据构造上操作的函数限定网络快照和/或交换机模型的场景中,交换机建模接口可以使用函数和全局数据构造为所选的交换机计算交换机特定的状态信息。可以直接比较来自交换机模型和来自接收的快照的交换机特定的状态信息。替代地,可以直接比较全局构造,在全局构造中标识的差异可以用于标识对应的交换机特定的状态信息中的差异。

在步骤216期间,交换机建模接口可以使用当前交换机状态和新交换机状态之间的任何已计算的差异生成实施期望的新交换机状态的交换机控制消息。例如,交换机建模接口可以通过来自期望的新交换机状态的L2转发表条目来生成引导所选交换机替换交换机处的一个或多个当前L2转发表条目的OpenFlow控制消息。

在步骤218期间,交换机建模接口可以随同步请求消息一起向交换机提供生成的交换机控制消息。同步请求消息可以引导交换机响应于控制消息的成功处理而提供同步回复消息。换言之,如果由交换机成功地实施了交换机控制消息的交换机状态修改,那么交换机必须在步骤220期间以在控制器的交换机建模接口处可以接收的同步回复消息进行响应。如果交换机控制消息没有在交换机处成功地处理,那么交换机可以提供错误消息或可以无法响应于同步请求。可以从交换机接收的错误消息可以标识在交换机发生的错误的类型。例如,错误消息可以标识交换机处的表已满以及交换机控制消息中提供的新条目不能储存。作为另一个示例,错误消息可以标识交换机不能够执行控制消息中指定的操作(例如,不支持的操作错误)。如果期望,控制模块可以维护计时器,该计时器在步骤218期间交换机控制消息发出时启动。计时器可以用代表时间段的值来配置,在该时间段内期望交换机提供响应(例如,同步回复或错误消息)。在这个场景中,控制模块可以响应于计时器的过期而标识错误。

图14中在生成时发出交换机控制消息的示例仅仅是说明性的。如果期望,步骤216期间生成的交换机控制消息可以积累并且成组发出。在这个场景中,同步请求可以针对交换机控制消息的每一组发出,并且任意同步回复消息可以确认对整个对应组的成功响应。

图15是可以在控制网络中的交换机中由具有交换机建模接口的控制器执行(例如,由图6的控制器18执行)的说明性步骤的流程图300。

在步骤302期间,控制器可以标识网络事件。网络事件可以基于从交换机或从诸如网络管理员的用户接收的信息而标识或检测。例如,终端主机的连接或断开可以从在控制路径上从交换机接收的消息而标识。作为另一个示例,用户可以提供标识新的期望的网络配置的新网络策略(例如,新转发表值、链路聚合组分配等)。

在步骤304期间,控制器处的应用模块(例如,图6的应用模块102)可以基于网络事件生成新网络快照。例如,可以响应于网络事件生成指示期望的网络配置的诸如图12的快照152或图13的快照162之类的网络快照。响应于终端主机断开,应用模块可以生成从网络配置中移除该终端主机的网络快照。响应于终端主机连接,应用模块可以生成向网络配置增加该终端主机的网络快照(例如,将终端主机加入到转发表,同时确保转发表条目满足现有的网络转发规则)。响应于新网络策略,应用模块可以生成将网络策略应用到现有网络配置的网络快照(例如,替换或修改诸如转发表条目的现有表条目)。

在步骤306期间,应用模块可以向交换机建模接口发送新网络快照。在随后的步骤308期间,交换机建模接口可以计算当前网络快照与新快照之间的差异(Δ)。当前网络快照可以储存在控制器处或者可以通过与交换机通信而生成。在步骤310期间,交换机建模接口可以对于网络中每一个交换机,使新快照和交换机处的当前状态相一致以实施新网络快照。例如,交换机建模接口可以在执行步骤308和310中执行图14的流程图200的步骤。在步骤312期间,交换机建模接口可以向应用模块通知实施新网络快照中的成功或失败。

对于交换机建模接口来说确定当前交换机状态与期望的新的网络快照之间的差异(Δ)可能是有挑战性的。例如,交换机处的状态可以包括成百上千个表条目。通过网络路径将这些表条目转移到控制器并计算差异Δ可能是消耗时间的。可以给网络中的交换机提供可以由控制器使用以帮助确定当前交换机状态和期望的网络快照之间的差异的散列能力。

图16是可以由交换机在从表条目生成可以帮助提高控制器处的交换机建模接口的性能的摘要标识符中执行的说明性步骤的流程图400。例如,流程图400的步骤可以由图1的交换机14的控制单元24处的电路系统执行。

在步骤402期间,交换机可以接收或以其他方式处理表条目,诸如转发表条目、链路聚合组表条目、地址解析协议表条目或至少部分限定交换机的配置的其他表条目。例如,表条目可以是由控制器提供的流表条目的一部分或者流表条目。

在步骤404期间,交换机可以计算用于表条目的散列值。可以使用任何期望的散列算法计算散列。例如,交换机可以在表条目的二进制数据上使用安全散列算法(SHA)以产生散列值。

交换机可以基于散列值维护用于组织表条目的桶(例如,零个或多个表条目的组)。在步骤406期间,交换机可以基于散列值的一部分将表条目分配到桶。例如,散列值的比特的前两个、三个、四个或者任意选定的N个可以用于确定将表条目分配到哪个桶。

在步骤408期间,交换机可以计算用于分配的桶的摘要值(例如,摘要标识符)。可以通过在分配的桶中的所有条目上计算每一比特逻辑异或(XOR)而计算摘要值。交换机可以储存用于分配的桶的摘要值,并且可以响应于来自控制器的请求,提供桶的摘要值。

图17是包括桶414的说明性摘要表412的示意图。摘要表412可以由交换机维护(例如,交换机处的储存器处)。桶414可以基于计算的散列值分配表条目(例如,在图16的流程图400的操作期间)。在图17的示例中,散列表条目基于用于该散列表条目的散列值的前两个比特而分配到桶414。与每一个桶相关联的散列值比特的数量可以对应于桶的数量。

每一个桶414可以包括零个或多个散列表条目和从散列表条目的每比特异或计算的摘要值(例如,所有散列表条目上的每一个比特位置的异或值被计算以产生摘要值,摘要值具有与每一个散列表条目的总比特数相同的总比特数)。桶0对应00的二进制值,并且可以被分配以“00”起始的散列表条目H1和H2。类似地,桶1(二进制01)可以分配以“01”起始的任何条目,桶2(二进制10)可以分配以“10”起始的条目H3,以及桶3(二进制11)可以分配以“11”起始的条目H4。

桶0的摘要可以是散列值H1和H2的异或。作为示例,散列值H1和H2可以是图9的表122的前两个L2转发表条目的散列值。当还没有表条目分配到桶1时,桶1(二进制值01)的摘要可以是0。当仅一个表条目分配到了桶H3和H4中的每一个时,桶H3和H4可以具有与对应的散列值H3和H4相同的摘要。

图17中从每一个桶414的散列表条目计算异或的示例仅仅是说明性的。如果期望,诸如另一个散列函数的任何逻辑函数可以在每一个桶414的条目上计算以产生用于该桶的摘要值。逻辑异或函数可以是希望的,因为散列表条目中任何一比特变化产生不同的摘要值。此外,可以通过计算当前摘要值与将增加或移除的散列值的异或,响应于散列表条目的增加或移除而更新摘要值(例如,不需要从桶中的所有散列表条目重新计算摘要值)。

由交换机维护的关于网络状态(例如,诸如转发表的表)的摘要值可以用于确定期望的网络配置的网络快照是否不同于现有网络配置。图18是可以由控制器处的交换机建模接口在标识期望的网络快照与现有网路配置之间的不同中使用交换机计算的摘要值执行的说明性步骤的流程图500。例如,流程图500的步骤可以在图14的步骤212和214期间或图15的步骤308期间执行。

在步骤502期间,交换机建模接口处的控制模块可以为期望的网络快照(例如,从应用模块接收的指示用于网络的交换机的期望网络配置的网络快照)计算一个或多个摘要值。类似于交换机计算它自己的摘要表的方式,控制模块可以为每一个交换机计算摘要值。例如,控制模块可以针对每一个交换机执行图16的步骤404-408,所述执行通过使用与该交换机相关联的网络快照中的表条目(例如,可以为网络中的每一个交换机计算单独的摘要表)。

在步骤504期间,控制模块可以选择交换机并且请求由所选交换机维护的摘要表(例如,在执行图16的流程图400的步骤中由交换机维护的摘要表)。

在步骤506期间,控制模块可以比较由控制器计算的摘要值与从交换机取回的摘要值以标识摘要值的不同。与从交换机取回的摘要值不匹配的所选交换机的计算的摘要表的桶可以被标识为需要更新。相反地,与取回的摘要值匹配的所选交换机的计算的摘要表的桶可以被标识为不需要更新。

在步骤508期间,控制模块可以与所选交换机通信以取回仅所选桶的表条目(例如,在计算分配到所选桶的散列值中使用的表条目)。控制模块可以比较取回的表条目和网络快照中的期望的表条目,并且向实施网络快照的期望的网络配置的所选交换机提供正确的表条目。

如图18所示的摘要值的使用以确定在实施期望的网络配置中需要做什么修改可以帮助减少网络中在控制器和交换机之间的控制路径上的流量总量,因为仅具有不匹配摘要值的桶的表条目被传输。通过仅传输与不匹配摘要值相关联的表条目,控制器处的储存资源(例如,存储器)可以更有效率地利用,因为在任何给定时间不需要在控制器处储存整个交换机状态。

根据实施例,一种使用控制器的方法,控制器控制具有终端主机的网络中的交换机,终端主机耦合到交换机,提供了所述方法,所述方法包括:通过控制器处的交换机建模接口,维护网络中的交换机的交换机模型;通过控制器处的交换机建模接口,接收交换机的网络的期望的网络配置;以及通过交换机建模接口,基于交换机模型生成用于交换机的控制消息以实施期望的网络配置。

根据另一个实施例,在交换机建模接口处接收的期望的网络配置包括表的集合和函数,所述方法包括:通过交换机建模接口,在表的集合上操作函数以标识期望的网络配置。

根据另一个实施例,表的集合包括标识终端主机附接点的主机表和交换机间转发表,以及在表的集合上操作函数以标识期望的网络配置包括:在主机表和交换机间转发表上操作函数以产生用于交换机的转发表。

根据另一个实施例,所述方法包括:通过控制器,标识网络事件;以及通过控制器,基于网络事件生成期望的网络配置。

根据另一个实施例,网络事件包括从由如下组成的组中选择的事件:终端主机的连接、终端主机的断开和新的网络政策。

根据另一个实施例,交换机模型标识网络配置,所述方法包括:通过交换机建模接口,标识期望的网络配置和由交换机模型标识的网络配置之间的差异,基于交换机模型生成用于交换机的控制消息以实施期望的网络配置包括:生成仅用于期望的网络配置和由交换机模型标识的网络配置之间所标识的差异的控制消息。

根据另一个实施例,所述方法包括:通过交换机建模接口,向交换机发送控制消息;以及通过交换机建模接口,确定在交换机处是否成功地实施了控制消息。

根据另一个实施例,控制器包括多个应用模块,所述多个应用模块通过与交换机建模接口通信来控制交换机,以及,基于网络事件生成期望的网络配置包括:通过所述多个应用模块中的给定应用模块,生成期望的网络配置;以及通过所述给定应用模块,向交换机建模接口提供期望的网络配置。

根据另一个实施例,所述方法包括:通过交换机建模接口,向所述给定应用模块提供标识在交换机处是否成功地实施了控制消息的信息。

根据另一个实施例,确定在交换机处是否成功地实施了控制消息包括:与控制消息一起向交换机提供同步请求消息;以及响应于从交换机接收到对应于同步请求消息的同步回复消息,确定在交换机处成功地实施了控制消息。

根据另一个实施例,确定在交换机处是否成功地实施了控制消息进一步包括:响应于从交换机接收到错误消息,确定在交换机处没有成功地实施控制消息。

根据另一个实施例,每一个交换机维护具有包括散列的交换机状态信息的条目的摘要表,摘要表的每一个条目包括从该条目的散列的交换机状态信息计算的摘要值,以及,标识期望的网络配置和由交换机模型标识的网络配置之间的差异包括:通过控制器,计算用于期望的网络配置的期望的摘要表集合;通过交换机建模接口,从交换机取回摘要表;以及比较由控制器计算的期望的摘要表和从交换机取回的摘要表。

根据一个实施例,一种操作网络交换机的方法被提供,所述方法包括:通过网络交换机,接收交换机配置数据;以及通过网络交换机,至少部分基于网络交换机处的已经存在的交换机配置数据和接收的交换机配置数据来计算摘要值。

根据另一个实施例,所述方法包括:通过网络交换机,维护具有多个桶的摘要表,每一个桶与各自的摘要值相关联;通过网络交换机,散列所接收的交换机配置数据;以及将散列的交换机配置数据分配到所述多个桶中的基于散列的交换机配置数据选定的桶,针对所述选定的桶储存所计算的摘要值。

根据另一个实施例,散列的交换机配置数据包括多个比特,以及,将散列的交换机配置数据分配到所述多个桶中的基于散列的交换机配置数据选定的桶包括:基于所述多个比特的子集选择桶。

根据另一个实施例,所述选定的桶包括先前散列的交换机配置数据,以及,至少部分基于网络交换机处的已经存在的交换机配置数据和接收的交换机配置数据来计算摘要值包括:基于所述选定的桶中的先前散列的交换机配置数据和散列的交换机配置数据来计算逻辑异或。

根据另一个实施例,交换机配置数据包括用于交换机的转发表。

根据另一个实施例,交换机通过网络控制路径与控制器通信,所述方法包括:响应于来自控制器的请求,向控制器发送表的摘要值。

根据另一个实施例,一种使用控制器的方法,控制器控制具有终端主机的网络中的交换机,终端主机耦合到交换机,所述方法被提供,所述方法包括:通过控制器,维护标识当前网络配置的信息,标识当前网络配置的信息包括表的集合和函数,所述函数在表的集合上操作以产生当前网络配置的至少一部分。

根据另一个实施例,表的集合包括标识用于所有终端主机的终端主机附接点的主机表和标识交换机之间的链路的交换机间转发表,所述方法包括:通过控制器,使用所述函数基于主机表和交换机间转发表为交换机中的给定交换机生成每一交换机转发表。

根据另一个实施例,所述方法包括:通过控制器,基于标识当前网络配置的信息生成用于交换机的控制消息以实施期望的网络配置。

以上所述内容仅是本发明的原理的说明性内容,并且本领域技术人员可以在不脱离本发明的范围和精神的情况下做出多种修改。

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