在分布式开关中管理全局转发表的制作方法

文档序号:7550670阅读:128来源:国知局
专利名称:在分布式开关中管理全局转发表的制作方法
技术领域
本公开涉及计算技术,更具体地,涉及在分布式开关中多播(multicast)数据。
背景技术
通常,多播指在单个传输中将数据递送到多个主机(host)。诸如分布式开关的开关使用多播成员资格信息将发送到多播目的地地址的多播数据(例如多播分组)转发到正确的主机。但是,当分布式开关不具有对于多播目的地地址的多播成员资格信息时,分布式开关通常默认将该多播分组广播或者泛洪(flooding)到网络上的实际所有主机(例如多播域内的所有主机)。通过泛洪,分布式开关确保由多播目的地地址标识的组的主机接收到多播分组。但是,泛洪也可能导致带宽的浪费以及多播分组传输到非意欲的主机,这可能进一步引起安全风险。泛洪还可能导致资源的浪费,因为接收多播分组的每个非意欲的主机可能花费资源最终确定其需要丢弃该多播分组,或者多播分组被非意欲的主机接收并且可能发生安全性暴露。

发明内容
在一个具体实施例中,公开了在分布式开关中管理全局转发表的方法。该分布式开关可以包括多个开关转发单元。该方法可以启动针对全局转发表中的条目的计时器,该条目包括多播目的地地址和相应的多播成员资格信息。该方法还可以响应于该条目的计时器到期,检查至少一个命中状态,以确定所述多个开关转发单元中的至少一个开关转发单元是否已经对于该条目的多播目的地地址的相应多播成员资格信息转发了多播数据。该方法还可以基于所述命中状态确定该条目是否是排除(cast-out)的候选者。

在另一个实施例中,公开了一种装置,包括:至少一个处理器;以及程序代码,配置为由所述处理器执行以在分布式开关中管理全局转发表。该分布式开关可以包括多个开关转发单元。该程序代码可以配置为由处理器执行以启动针对全局转发表中的条目的计时器,该条目可以包括多播目的地地址和相应的多播成员资格信息。该程序代码还可以配置为由处理器执行以响应于该条目的计时器到期,检查至少一个命中状态,以确定所述多个开关转发单元中的至少一个开关转发单元是否已经对于该条目的多播目的地地址的相应多播成员资格信息转发了多播数据。该程序代码还可以配置为由处理器执行以基于所述命中状态确定该条目是否是排除的候选者。在一个具体实施例中,公开了可以在分布式开关中管理全局转发表的另一方法。该分布式开关可以包括多个开关转发单元。该方法可以启动针对全局转发表中的条目的计时器,所述条目包括多播目的地地址和相应的多播成员资格信息。该方法可以响应于所述条目的计时器到期,确定任意主开关转发单元是否被编程有所述条目的多播目的地地址和相应的多播成员资格信息。该方法还可以检查被编程的主开关转发单元的命中状态,以确定任意的被编程的主开关转发单元是否已经对于所述条目的多播目的地地址的多播成员资格信息转发了多播数据。该方法还可以确定任意从开关转发单元是否被编程有所述条目的多播目的地地址和相应的多播成员资格信息。该方法还可以检查被编程的从开关转发单元的命中状态,以确定任意的被编程的从开关转发单元是否已经对于所述条目的多播目的地地址的多播成员资格信息转发了多播数据。该方法还可以基于命中状态确定所述条目是否是排除的候选者。


图1是配置为在分布式开关中管理全局转发表的计算系统的实施例的框图。图2是更详细地例示用于实施与图1的计算系统一致的分布式开关的实施例的主要硬件和固件实体的框图。图3是在分布式开关中请求由多播目的地地址标识的组的多播成员资格信息的方法的实施例的流程图。图4是在分布式开关中请求由多播目的地地址标识的组的多播成员资格信息的方法的另一实施例的流程图。
图5是在分布式开关中管理全局转发表的方法的实施例的流程图。
具体实施例方式集中式开关通常利用单个开关转发单元对于所有附连的主机进行所有转发功能性,通常导致瓶颈和延迟。但是,通过引入分布式开关,已经克服了集中式开关的许多挑战。具体地,分布式开关通常跨过大量开关转发单元分布功能性,每个开关转发单元仅负责其附连的主机的转发功能性。当开关转发单元“需要知道”时,开关转发单元通常还仅被编程多播目的地地址和相应的多播成员资格信息。具体地,当“需要知道”时,开关转发单元可能被编程,因为在可能被编程的多播目的地地址的数量方面,开关转发单元可能具有限的容量。有限的容量可能由于内容可寻址存储器的使用而导致。事实上,当包含在每个开关转发单元内的内容可寻址存储器(CAM)提供快速搜索时间时,CAM通常是昂贵的。不过,例如,当开关转发单元附连到发送多播数据(例如多播分组)的主机时,开关转发单元“需要知道”多播数据的多播目的地地址的多播成员资格信息,以便将多播数据恰当地转发到各成员。分布式开关可以通过使用探听器(snooper)探听通信来“学习”将多播数据转发到明哩。例如,经由诸如因特网组管理协议(IGMP)或者多播侦听发现(MLD),路由器或者分布式开关充当询问者,并且主机以对于多播成员信息进行探听的报告来响应询问。具体地,可以响应于由询问者以某个间隔发起的一般询问来接收报告。该一般询问通常请求每个主机报告其成员资格。在由询问者发起的MLD的情况下,也可以响应于具体组询问/具体多播地址询问而接收报告。具体组询问/具体多播地址询问请求主机报告对于该具体组的成员资格。此外,可以按非请求的方式接收报告,比如在主机加入组时。探听器通常建立已经学习的多播目的地地址及其相应的多播成员资格信息的有限大小的全局转发表。当该表填满时,探听器通常停止学习,直到该表具有空间。这样,探听器可能不能获悉新的多播目的地地址及其相应的多播成员资格信息。此外,新的多播目的地地址及其相应的多播成员资格信息可能未被编程到“需要知道”它的开关转发单元中,并且该开关转发单元默认将多播数据泛洪到网络上的实际所有的主机(例如在广播域内的所有主机)。该开关转发单元还产生被称为故障(miss)事件的硬件事件以通知“需要知道”。在此提供了在分布式开关中管理全局转发表的装置和方法的实施例。这样做,可以加速对多播目的地地址的更新或最新的多播成员资格信息的学习,可能引起更少的泛洪。图1例示可以配置为请求由多播目的地地址标识的组的多播成员资格信息的计算系统100的框图。多播成员资格信息实际上可以是与成员资格有关的任意信息,比如但不限于已经加入由该多播目的地地址标识的组的成员资格的任何主机或其标识符。多播成员资格信息可以符合与多播成员资格相关联的通信协议,比如IGMP或者MLD。多播目的地地址可以是具有设置为多播而不是单播或者广播的位的媒体访问控制(MAC)目的地地址。该多播目的地地址标识主机组或者已经加入该组的成员,以便接收发送到该多播目的地地址的多播分组。每个多播分组可以包括多播目的地地址。计算系统100可以包括至少一个主机(例如主机102、104、106)、至少一个多播路由器108和至少一个分布式开关110。分布式开关110可以包括具有至少一个探听器114和至少一个主开关转发单元116的至少一个主分布式开关元件112。分布式开关110还可以包括具有至少一个从开关转发单元120的至少一个从分布式开关元件118。实际上,分布式开关元件110可以包括多个从分布式开关元件118、多个主开关转发单元116和多个从开关转发单元120,如结合图2所示。主机102、104、106、多播路由器108和分布式开关110的每个可以经由诸如以太网络的网络耦接。主机102、104、106的每个可以是任何适当的计算设备,比如个人计算机、工作站、客户端、服务器、大型机(mainframe)、手持计算机、掌上计算机、电话设备、网络工具、刀锋计算机、其他计算机或者其任意组合。主机102、104、106可以配置为发送和接收多播分组。具体地,主机102可以是充当向该组的成员的多播目的地地址发送至少一个多播分组的多播发送器的服务器。主机104、106的每个可以是已经加入由多播目的地地址标识的组以便接收多播分组的客户端。这样,主机104、106的每个可以充当接收来自主机102的多播分组的多播侦听器。多播路由器108可以是配置为路由多播分组的任何适当的设备。此外,多播路由器108可以配置为充当询问器,比如IGMP询问器或者MLD询问器,并且可以发起和转发比如IGMP或MLD询问的询问,其是一般询问、具体组询问或者其任意组合的询问。IGMP或MLD询问可以包括IGMP或MLD分组。值得注意的是,与询问和多播成员资格信息相关联的IGMP分组和MLD分组可以不同于发送到多播目的地地址的数据的多播分组。此外,IGMP可以是但不限于因特网协议版本4 (IPv4)的组件。MLD可以是但不限于因特网协议版本6 (IPv6)的组件。此外,可以利用其他通信协议或者其他版本的IGMP和MLD。具体地,多播路由器108可以发起并发送请求大致上所有主机提供大致上所有多播成员资格信息的一般询问。换句话说,主机要响应于一般询问而报告其成员的所有组。该一般询问可以由多播路由器108发送到每个主机在变为联机时加入的所有组。可以基于间隔发送该一般询问。该间隔 可以是可配置的,并且可以被设置为大约I秒到高达大约65535秒。在一个实施例中,该间隔可以设置为大约125秒。多播路由器108也可以发起和发送具体组询问。例如,如果主机指示其想要离开组,则多播路由器108可以发起并发送具体组询问到该组的多播目的地地址,以请求该组的成员资格。组可以具有O或更多个成员。主机104、106的每个可以以多播成员资格信息来响应一般询问和具体组询问。例如,主机104、106的每个对于其是成员的每一组,可以用IGMP或MLD报告来应答。IGMP或者MLD报告可以包括IGMP或者MLD分组。主机104、106的每个还可以在其加入组时发送非请求的IGMP或者MLD报告。主机104、106的每个可以加入一个或多个组,并且可以离开一个或多个组。分布式开关110的探听 器114可以是“侦听”主机104、106和询问器(例如多播路由器108或者分布式开关110)之间的IGMP或MLD通信的IGMP或者MLD探听器。这样,探听器114可以从IGMP或MLD报告学习多播成员资格信息,比如哪些主机与哪些多播目的地地址相关联。分布式开关110可以是配置为跨过多个开关转发单元分布转发功能性的任何适当的分布式开关,所述多个开关转发单元比如主开关转发单元116和从开关转发单元120,它们按“需要知道”被编程。事实上,分布式开关110实际上可以是利用“需要知道”编程算法的任何分布式开关。分布式开关110可以是层2 (L2)分布式开关。例如,分布式开关110可以是分布式L2开关,并且主开关转发单元116和从开关转发单元120可以是分布式虚拟以太网桥(dVEB)。分布式开关可以包括层2功能性、层3功能性或其任意组合。分布式开关110还可以充当询问器,比如IGMP或者MLD询问器,而不是多播路由器108充当,并且可以基于间隔发起和转发作为一般询问的询问或者发起和转发作为具体组询问的询问,比如IGMP或MLD询问。响应于故障事件,分布式开关110可以充当询问器,该询问器发起和转发作为没有间隔的一般询问或者具体组询问的询问,比如IGMP或MLD询问。例如,分布式开关110可以响应于故障事件在下一间隔之前发起和转发一般询问。更具体地,主分布式开关元件112或者从分布式开关元件118可以充当询问器,并且发起和转发询问。例如,与主分布式开关元件112或者从分布式开关元件118对应的固件(图2所示)可以响应于故障事件而发起询问,并且主分布式开关元件112的主开关转发单元116或者从分布式开关元件118的从开关转发单元120可以将该询问转发给主机。事实上,主开关转发单元116和从开关转发单元120可以基于“需要知道”而被编程,将多播分组转发到主机,将IGMP或者MLD分组转发到主机,并产生故障事件。然后,多播路由器108可以恢复其职责作为询问器,并且基于间隔发起和转发一般询问或者发起和转发具体组询问。但是,能够暂时在网络上具有多个询问。如果分布式开关Iio在故障事件之前是询问器,而不是多播路由器108是询问器,则分布式开关110可以基于间隔发起和转发一般询问或者发起和转发具体组询问。图2例示用于实现包括至少一个处理器和配置为由该至少一个处理器执行的程序代码的装置的主要硬件和固件实体。该装置可以是类似于图1的分布式开关110的分布式开关200的实施例。分布式开关200可以包括分别可以类似于图1的具有探听器114和主转发单元116的主分布式开关元件112的、具有探听器208和主开关转发单元220、224的主分布式开关元件202。主分布式开关元件202还可以包括处理器210和存储器212。处理器210、存储器212以及主开关转发单元220、224可以通过总线直接或者间接耦接。
分布式开关200还可以包括第一从分布式开关元件204和第η从分布式开关元件206,两者类似于图1的从分布式开关元件118。此外,第一从开关转发单元236、240和第η从开关转发单元252、256可以类似于图1的从开关转发单元120。第一从分布式开关元件204包括处理器228和存储器230。处理器228、存储器230和第一从开关转发单元236、240可以通过总线耦接。第η从分布式开关元件206包括处理器244和存储器246。处理器244、存储器246和从开关转发单元252、256可以通过总线直接或者间接耦接。存储器212、230、246的每个分别可以包括多播固件,比如主多播固件213、第一从多播固件232和第η从多播固件248。多播固件可以是在分布式开关元件中运行的代码层,其可以在开关转发单元220、224、236、240、252、256中进行读操作、写操作或其任意组合。事实上,单个多播固件组件可以管理对于分布式开关200的开关转发单元220、224、236、240、252、256的子集的读操作、写操作或其任意组合。主多播固件213、第一从多播固件232和第η从多播固件248可以是配置为分别由处理器210、228、244执行的程序代码。探听器208可以与主多播固件213通信。主多播固件213和诸如第一从多播固件232以及第η从多播固件248的从多播固件可以彼此通信。主多播固件213、第一从多播固件232和第η从多播固件248也可以响应于故障事件而发起作为一般询问、具体组询问或其任意组合的询问,比如IGMP或MLD询问。存储器212、230、246还可以包括可以指示哪些多播目的地地址及相应的多播成员资格信息被编程在相应的开关转发单元220、224、236、240、252中的编程表214、234、250。事实上,编程表可以具有多个条目,每个条目具有多播目的地地址和多播成员资格信息(例如其指示哪些主机或端口是与多播目的地地址对应的多播组的成员)。开关转发单元220、224、236、240、252、256的每个可以是具有用于附连到诸如图1的主机102、104、106的主机的物理端口的硬件。事实上,基于“需要知道”用多播目的地地址的多播成员资格信息编程开关转发单元220、224、236、240、252、256,并且分组由开关转发单元220、224、236、240、252、256转发到附连的图1的主机102、104、106。在一个实施例中,分布式开关200可 以是分布式L2开关,开关转发单元220、224、236、240、252、256可以是dVEB,并且基于“需要知道”用多播成员资格信息编程dVEB。开关转发单元220、224、236、240、252、256的每个还可以产生故障事件。故障事件可以是分别由开关转发单元220、224、236、240、252、256对于相应的多播固件213、232、248产生的中断(例如硬件中断)。当开关转发单元220、224、236、240、252、256之一“需要知道”多播目的地地址的多播成员资格信息时,可以产生故障事件,但是多播目的地地址不登记在各自的多播目的地地址高速缓存222、226、238、242、254、258中。多播目的地地址可以在(与相应的多播成员资格信息一起)被存储在多播目的地地址高速缓存222、226、238、242、254、258的至少一个中时被登记。开关转发单元220、224、236、240、252、256的每个分别可以包括硬件的多播目的地地址高速缓存222、226、238、242、254、258,指示被编程到相应的开关转发单元的硬件中的多播目的地地址。具体地,每个高速缓存可以具有多个条目,每个条目具有多播目的地地址、多播成员资格信息(例如指示哪些主机或端口是对应于该多播目的地地址的多播组的成员)以及命中状态。当也是硬件的相应的开关转发单元进行对于给定的多播目的地地址的任意分组转发功能时,对于该条目的命中状态可以指示转发(例如命中状态可以被设置为真和/或可以利用位)。相应的多播固件可以检验命中状态以确定相应的开关转发单元是否已经进行分组转发。因为命中状态可以处于硬件高速缓存级,所有可以由诸如相应的开关转发单元的硬件来设置命中位,并由相应的多播固件来检验并重置该命中位。从非常普遍的意义来说,“高速缓存”可以仅仅指存储在硬件中的多播目的地地址。但是,尽管在此利用了措辞“高速缓存”,但是本领域技术人员可以认识到,高速缓存替换地可以是存储器、内容可寻址存储器(CAM)或者其任意组合。因此,多播目的地地址高速缓存 222、226、238、242、254、258 可以分别是多播目的地地址 CAM222、226、238、242、254、258,并且权利要求的范围不应受在此使用措辞“高速缓存”的限制。主分布式开关元件202还可以包括由探听器208学习的多播目的地地址和对应的多播成员资格信息的、由主多播固件213维持的至少一个全局转发表215。具体地,全局转发表215由探听的多播成员资格信息与相应的多播目的地地址一起构成。全局转发表215可以包括多个条目,比如第一条目216和第η条目217,每个条目可以包括计时器,比如与第一条目216对应的第一计时器218和与第η条目217对应的第η计时器219。计时器可以记录老化时间并且可以用于确定已经“老化(age out)”的条目的目的。已经老化的条目可以是排除的(cast-out)候选者。事实上,可以在此可互换地使用老化和排除。实体216、217的每个可以包括多播目的地地址及其相应的多播成员资格信息。可以通过与探听器208的 通信建立全局转发表,并且探听器208可以决定多播目的地地址应该何时作为条目被添加或者作为条目从全局转发表215移除。为此,探听器208还可以具有与主多播固件215的全局转发表215—致的并且与之同步的全局转发表209。具体地,探听器208可以是具有添加或移除条目的权限的唯一实体,并且其可以在全局转发表209中添加或移除实体,然后向主多播固件213传送该添加或移除,用于全局转发表215的同步。在一些实施例中,具体条目可以具有在全局转发表209和全局转发表215两者中的计时器。或者,计时器可以在全局转发表215中。在后一替换中,探听器208可以周期地向主多播固件213进行关于计时器的询问。值得注意,尽管具体格式和实现方式可能变化,但是某个多播目的地地址及其相应的多播成员资格信息可以存储在各个位置中,例如在全局转发表215 (以及全局转发表209)中、在诸如编程表214、234、250的编程表中、以及在诸如多播目的地地址高速缓存222、226、238、242、254和258的多播目的地地址高速缓存中。在具体成员(或端口)正加入或离开给定的多播组时,在所有的四个位置中的多播目的地地址和对应的多播成员资格信息可以被更新。因此,这四个位置的每个可以具有针对多播目的地地址和对应的多播成员资格信息的条目。图3示出请求由分布式开关中的多播目的地地址标识的组的多播成员资格信息的方法300的实施例。在方法300中,(a)响应于故障事件并且(b)探听器不知道针对给定多播地址的多播成员资格信息(例如全局转发表中没有消息),发起询问。继续到302,可以探听IGMP或者MLD报告的至少一个IGMP或者MLD分组。例如,图1的多播路由器108可以以设置的间隔发出一般询问或者发出具体组询问,并且主机104、106可以用具有多播成员资格信息的IGMP或者MLD报告来响应。图1的探听器114或者图2的探听器208可以探听IGMP或者MLD报告的IGMP或者MLD分组。此外,在硬件级,可以设置过滤器以便任意IGMP或者MLD分组可以由探听器208探听,即使不是以所述间隔探听。例如,在主机来到网络上并且想要加入组时可以接收的任何非请求的IGMP或者MLD报告分组可以被探听器208探听。在304,可以传送来自探听的多播成员资格信息。例如,图1的探听器114或者图2的探听器208可以决定向其全局转发表209添加新条目,并且可以与主多播固件213通信以将探听的多播成员资格信息和相应的多播目的地地址添加到全局转发表209以保持各表同步。在多播成员资格信息被主多播固件213存储在全局转发表215中之后,基于“需要知道”,可以由主多播固件213检索该多播成员资格信息用于编程其主开关转发单元220、224,或者提供给第一从多播固件232用于编程其第一从开关转发单元236、240,或者提供给第η从多播固件232用于编程其第η从开关转发单元252、256。在306,可以接收至少一个多播分组。例如,图1的主机102可以向由多播分组的多播目的地地址标识的组的成员发送该多播分组。主开关转发单元220、224、第一从开关转发单元236、240或者第η开关转发单元252、256之一可以基于物理端口接收多播分组。为了简化,假设第一从开关转发单元236接收该多播分组。继续到308,确定是否登记了该多播分组的多播目的地地址。例如,可以从图2的第一从开关转发单元236的多播目的地地址高速缓存238搜索该多播分组的多播目的地地址。登记可以指示第一从开关转发单元236已经被编程有多播成员资格信息和多播目的地地址。当登记了多播目的地地址时,图2的从开关转发单元236在310基于多播成员资格信息转发该多播分组310到比如作为由该多播目的地地址标识的组的成员的任意主机。在310还可以在相应的多播目的地地址高速缓存中将命中状态设置为真,以指示向登记的多播目的地地址的转发,如将结合图5进一步讨论的。控制可以继续到302。当未登记多播目的地地址时,在312,可以广播该多播分组。例如,图2的第一从开关转发单元236可以将该多播分组广播或者泛洪到广播域中的大致上所有主机以确保作为由未登记的多播目的地地址标识的组的成员的任意主机接收到该多播分组。广播域可以是可配置的,并且可以包括多达耦接到分布式开关200的所有主机。在314,可以产生故障事件。具体地,可以由“需要知道”但是未被编程有该多播目的地地址的开关转发单元产生故障事件。对开关转发单元的相应的多播固件产生故障事件。例如,图2的第一从开关转发单元236可以对第一从多播固件232产生故障事件,指示其“需要知道”该多播分组的多播目的地地址的多播成员资格信息。在316,可以请求多播成员资格信息。产生的故障事件不仅通知对于未登记的多播目的地地址的“需要知道”状态,而且可以响应于该故障事件而请求该未登记的多播目的地地址的多播成员资格信息。当在图2的第一从开关转发单元236、240或者在第η从开关转发单元252、256的任意一个中产生故障事件时,相应的第一从多播固件232或者第η从多播固件248可以与主多播固件213通信以请求多播成员资格信息。当在主开关转发单元220,224之一中产生故障事件时,主多播固件213不需要从另一实体请求。例如,响应于在第一从开关转发单元236中产生的故障事件,图2的第一从多播固件232可以代表第一从开关转发单元236从主分布式开关元件202的主多播固件213请求多播成员资格信息。继续到318,可以确定多播成员资格信息是否存储在全局转发表中,具体地,尽管开关转发单元可能未被编 程,多播目的地地址的多播成员资格信息可以在全局转发表中。这样,可以在全局转发表中搜索未登记的多播目的地地址的多播成员资格信息,即使其不是最新的多播成员资格信息。例如,图2的主分布式开关元件202的主多播固件213可以在全局转发表215的条目216、217中搜索多播成员资格信息。
当在全局转发表215中找到多播成员资格信息,并且在第一从开关转发单兀236、240或者第η从开关转发单元252、256的任意一个中产生故障事件时,则相应的第一从多播固件232或者第η从多播固件248可以接收多播成员资格信息。相应的第一从多播固件232或者第η从多播固件248可以用多播成员资格信息和多播目的地地址来更新相应的第一从编程表234或者第η从编程表250。多播目的地地址和多播成员资格信息可以被编程在产生故障事件的第一从开关转发单元236、240或者第η从开关转发单元252、256的开关转发单元中。当在全局转发表215中找到多播成员资格信息,并且在主开关转发单元220、224中产生故障事件时,相应的主多播固件213可以接收多播成员资格信息并用多播成员资格信息和多播目的地地址来更新主编程表214。多播成员资格信息可以被编程在产生故障事件的主开关转发单元220、224的开关转发单元中。例如,响应于在第一从开关转发单兀236中产生的故障事件,相应的第一从多播固件232可以从主多播固件213接收来自全局转发表215的多播成员资格信息。相应的第一从多播固件232可以更新相应的第一从编程表234。在320,多播成员资格信息可以被编程在第一从开关转发单元236中,并且控制可以转到302。当未在全局转发表215中找到多播成员资格信息时,控制可以继续到322以发起询问。当未在全局转发表215中找到多播成员资格信息时,主多播固件213可以发起作为一般询问或者具体组询问的询问,比如IGMP或者MLD询问。主开关转发单元220、224的至少一个可以将该询问转发到主机。或者,诸如第一从多播固件232和第η从多播固件248的从多播固件可以发起询问,并且相应的第一从开关转发单元236、240或者第η从开关转发单元252、256的至少一个可以将该询问转发到主机。在324,可以接收多播成员资格信息。例如,主机可以用传送多播成员资格信息的IGMP或MLD分组的报告来响应,并且图1的探听器114或者图2的探听器208可以探听,如之前结合302所讨论的。在328,可以存储接收的多播成员资格信息。例如,图1的探听器114或者图2的探听器208可以决定向其全局转发表209添加新条目,并且可以与主多播固件213通信,以将探听的多播成员资格信息和相应的多播目的地地址添加到全局转发表215以保持各表同步,如结合304所讨论的。值得注意,针对在分布式开关中管理全局转发表的方法的实施例的更详细的讨论,参考图5。在330,编程开关转发单元。当在第一从开关转发单元236、240或者第η从开关转发单元252、256的任意一个中产生故障事件时,则相应的第一从多播固件232或者第η从多播固件248可以接收多播成员资格信息。相应的第一从多播固件232或者第η从多播固件248可以用多播成员资格信息和多播目的地地址来更新相应的第一从编程表234或者第η从编程表250。在330,多播目的地地址和多播成员资格信息可以被编程在产生故障事件的第一从开关转发单元236、240或者第η从开关转发单元252、256的开关转发单元中以及编程在相应的多播目的地地址高速缓存238、242、254、258中。
当在主开关转发单元220、224中产生故障事件时,相应的主多播固件213可以接收多播成员资格信息并且用该多播成员资格信息和多播目的地地址来更新主编程表214。在330,该多播成员资格信息和多播目的地地址可以被编程在产生故障事件的主开关转发单元220、224的开关转发单元中,以及编程在相应的多播目的地地址高速缓存222、226中。例如,响应于在第一从开关转发单元236中产生的故障事件,相应的第一从多播固件232可以从主多播固件213接收来自全局转发表215的多播成员资格信息。相应的第一从多播固件232可以更新相应的第一从编程表234。在330,多播成员资格信息可以被编程在第一从开关转发单元236中,并且可以用该多播目的地地址和相应的多播成员资格信息来更新多播目的地地址高速缓存238。控制可以继续到302。本领域普通技术人员可以理解,下一次接收到多播分组时,在308,可以登记相应的多播目的地地址,并且在310可以将该多播分组转发到意欲的主机而不在312广播。此夕卜,开关转发单元可以基于编程的多播目的地地址和多播成员资格信息直接转发该多播分组而不用与多播固件或探听器通信。事实上,在多播成员资格信息被主多播固件213存储在全局转发表215中之后,基于“需要知道”,该多播成员资格信息可以由主多播固件213取得,用于编程其主开关转发单元220、224,或者提供给第一从多播固件232用于编程其第一从开关转发单元236、240,或者提供给第η从多播固件232用于编程其第η从开关转发单元252、256。图4示出在分布式开关中请求由多播目的地地址标识的组的多播成员资格信息的方法400的实施例。在方法400中,响应于故障事件发起询问。例如,大致上可以在每次产生故障事件时发起询问。继续到402,可以探听IGMP或者MLD报告的至少一个IGMP或者MLD分组。例如,图1的多播路由器108可以以设置的间隔发起询问或者发起具体组询问,并且主机104、106可以用具有多播成员资格信息的IGMP或者MLD报告来响应。图1的探听器114或者图2的探听器208可以探听该IGMP或者MLD报告的IGMP或MLD分组。此夕卜,在硬件级,可以设置过滤器以便可以由探听器208探听任意的IGMP或者MLD分组,即使不是按间隔侦听。例如,可以由探听器208探听在主机来到网络上并且想要加入组时可以接收的任何非请求 的IGMP或者MLD报告分组。在404,可以传送来自探听的多播成员资格信息。例如,图1的探听器114或者图2的探听器208可以决定向其全局转发表209添加新条目并且可以与主多播固件213通信以将探听的多播成员资格信息和相应的多播目的地地址添加到全局转发表215,用于保持各表同步。在多播成员资格信息被主多播固件213存储在全局转发表215中之后,基于“需要知道”,该多播成员资格信息可以由主多播固件213取回用于编程其主开关转发单元220、224,或者提供给第一从多播固件232用于编程其第一从开关转发单元236、240,或者提供给第η从多播固件232用于编程其第η从开关转发单元252、256。在406,可以接收至少一个多播分组。例如,图1的主机102可以向由多播分组的目的地地址标识的组的成员发送该多播分组。主开关转发单元220、224、第一从开关转发单元236、240或者第η从开关转发单元252、256之一可以基于物理端口接收该多播分组。为了简化,假设第一从开关转发单元236接收该多播分组。继续到408,确定是否登记了的该多播分组的多播目的地地址。例如,可以在图2的第一从开关转发单元236的多播目的地地址高速缓存238中搜索该多播分组的多播目的地地址。登记可以指示第一从开关转发单元236已经被编程有多播成员资格信息和多播目的地地址。当登记了多播目的地地址时,在410,图2的从开关转发单元236基于多播成员资格信息将该多播分组转发到比如作为由多播目的地地址标识的组的成员的任意主机。在410,还可以在相应的多播目的地地址高速缓存410中将命中状态设置为真,以指示向登记的多播目的地地址的转发,如将结合图5进一步讨论的。控制可以继续到402。当未登记多播目的地地址时,在412,可以广播该多播分组。例如,图2的第一从开关转发单元236可以广播或泛洪该多播分组到广播域中的大致上所有主机,以确保作为由未登记的多播目的地地址标识的组的成员的任意主机都接收到该多播分组。广播域可以是可配置的,并且可以包括多达耦接到分布式开关200的所有主机。在414,可以产生故障事件。具体地,可以由“需要知道”多播目的地地址但是未被编程有多播目的地地址的开关转发单元产生故障事件。对该开关转发单元的相应的多播固件产生故障事件。例如,图2的第一从开关转发单元236可以对第一从多播固件232产生故障事件,指示其“需要知道”多播分组的多播目的地地址的多播成员资格信息。在416,可以请求多播成员资格信息。产生的故障事件不仅通知对于未登记的多播目的地地址的“需要知道”状态,而且可以响应于故障事件请求未登记多播目的地地址的多播成员资格信息。当在图2的第一从开关转发单元236、240或者第η从开关转发单元252、256的任意一个中产生故障 事件时,相应的第一从多播固件232或者第η从多播固件248可以与主多播固件213通信以请求该多播成员资格信息。当在主开关转发单元220、224之一中产生故障事件时,主多播固件213不需要从另一实体请求。例如,响应于在第一从开关转发单元236中产生的故障事件,图2的第一从多播固件232可以代表第一从开关转发单元236从主分布式开关元件202的主多播固件213请求多播成员资格信息。在322,可以发起询问。主多播固件213可以发起作为一般询问或者具体组询问的询问,比如IGMP或者MLD询问。主开关转发单元220、224的至少一个可以将该询问转发给主机。或者,诸如第一从多播固件232和第η从多播固件248的从多播固件可以发起该询问,并且相应的第一从开关转发单元236、240或者第η从开关转发单元252、256的至少一个可以将该询问转发给主机。在424,可以接收多播成员资格信息。例如,主机可以用传送该多播成员资格信息的IGMP或MLD分组的报告来响应,并且图1的探听器114或者图2的探听器208可以探听,如之前结合402所讨论的。在428,可以存储接收的多播成员资格信息。例如,图1的探听器114或者图2的探听器208可以决定向其全局转发表209添加新条目,并且可以与主多播固件213通信,以将探听的多播成员资格信息和相应的多播目的地地址添加到全局转发表215以保持各表同步,如结合404所讨论的。值得注意,针对在分布式开关中管理全局转发表的方法的实施例的更详细的讨论,参考图5。在430,编程开关转发单元。当在第一从开关转发单元236、240或者第η从开关转发单元252、256的任意一个中产生故障事件时,则相应的第一从多播固件232或者第η从多播固件248可以接收该多播成员资格信息。相应的第一从多播固件232或者第η从多播固件248可以用该多播成员资格信息和多播目的地地址来更新相应的第一从编程表234或者第η从编程表250。在430,该多播目的地地址和多播成员资格信息可以被编程在产生故障事件的第一从开关转发单元236、240或者第η从开关转发单元252、256的开关转发单元中,以及编程在相应的多播目的地地址高速缓存238、242、24、258中。当在主开关转发单元220、224中产生故障事件时,相应的主多播固件213可以接收多播成员资格信息并且用该多播成员资格信息和多播目的地地址来更新主编程表214。在430,多播成员资格信息和多播成员资格信息可以被编程在产生该故障事件的主开关转发单元220、224中的开关转发单元中以及编程在相应的多播目的地地址高速缓存222、226中。例如,响应于在第一从 开关转发单兀236中产生的故障事件,相应的第一从多播固件232可以从主多播固件213接收来自全局转发表215的多播成员资格信息。相应的第一从多播固件232可以更新相应的第一从编程表234。在430,多播成员资格信息可以被编程在第一从开关转发单元236中,并且可以用该多播目的地地址和相应的多播成员资格信息来更新多播目的地地址高速缓存238。控制可以继续到402。本领域技术人员可以理解,下一次接收到多播分组时,在408,可以登记相应的多播目的地地址,并且在410可以将该多播分组转发到意欲的主机而不在412广播。此外,开关转发单元可以基于编程的多播目的地地址和多播成员资格信息直接转发该多播分组而不与多播固件或探听器通信。事实上,在多播成员资格信息被主多播固件213存储在全局转发表215中之后,基于“需要知道”,该多播成员资格信息可以由主多播固件213取回用于编程其主开关转发单元220、224,或者提供给第一从多播固件232用于编程其第一从开关转发单元236、240,或者提供给第η从多播固件232用于编程其第η从开关转发单元252、256。本领域技术人员可以理解,经由图3的方法300和图4的方法400,当遇到未登记的多播目的地地址并且产生故障事件时,分布式开关或者其主分布式开关元件或者从分布式开关元件可以临时充当询问器。这样,可以加速对多播目的地地址的最新多播成员资格信息的学习而不是等待配置的询问间隔的到期,作为探听器“学习”最新的多播成员资格信息的下一次机会,该配置的询问间隔可以被设置为从大约I秒到大约65536秒。此外,加速多播成员资格信息的学习可以减小由泛洪引起的带宽浪费,可以改进在将多播分组转发到其意欲的目的地时的准确性,并且可以增加学习并利用多播目的地地址的更新的或者最新的多播成员资格信息用于转发的可能性。图5示出在分布式开关中管理全局转发表的方法的实施例。如以上结合图3和图4所讨论的,响应于故障事件,图2的主分布式开关元件202、第一从分布式开关元件204或者第η从分布式开关元件206可以用作询问器。开关元件的相应的多播固件发起一般询问或者具体组询问,并且相应的开关转发单元将该询问转发到适当的主机。响应于该询问,主机可以发送探听器探听以学习多播成员资格信息的报告。探听器208可以是具有添加或移除条目的权限的唯一实体,并且其可以添加或移除全局转发表209中的条目,然后向主多播固件213通信该添加或移除,用于全局转发表215的同步。在一些实施例中,具体条目可以具有在全局转发表209和全局转发表215两者中的计时器。或者,该计时器可以在全局转发表215中。在后一替换情况下下,探听器208可以关于计时器周期地向主多播固件213进行询问。为了易于说明,假设在图5中全局转发表215正被管理并且计时器仅在全局转发表215中。但是,本领域技术人员将理解,全局转发表209可以用一个计时器管理,全局转发表215可以用两个表中的计时器管理,全局转发表215可以用一个计时器管理,等等。例如,可以由分布式开关的探听器管理全局转发表,可以由分布式开关的主分布式开关元件的主多播固件管理全局转发表,或者是它们的任何组合。事实上,可以存在其他变化,例如,在一些实施例中可以省略502。此外,尽管结合在响应于通过故障事件发起的询问接收的报告中的探听的多播成员资格信息描述图5的方法500的实施例,但是实际上可以在从主机接收到多播成员资格信息时的任何其他时间进行方法500 (例如由主机发送的响应于基于间隔的一般询问的报告或者非请求的报告)。继续502,发出向表添加条目的请求。例如,图2的探听器208可能已经探听了IGMP或者MLD通信,比如探听图1的多播路由器108和其附连的主机中的一个或多个之间的报告,或者探听响应于对故障事件进行响应而发起并转发的询问的报告。不过,探听器208可以确定存在新的多播组成员资格(例如先前不知道的新的多播目的地地址),并且将该条目添加到全局转发表209。探听器208可以将该新的多播成员资格传送到主多播固件213。在504,该条目被添加到该表。例如,图2的多播固件213可以将第一条目216添加到全局转发表215用于由探听器208传送的新的多播组成员资格。第一条目216可以包括新的多播目的地地址并且可以包括作为由该多播目的地地址标识的组的成员的至少一个主机。在506,启动针对该条目的计时器。例如,图2的主多播固件213可以启动针对该第一条目216的计时器。值得注意,表中的每个条目可以具有与其相关联的唯一的计时器。在一些实施例中,在该条目的多播目的地地址和多播成员资格信息被编程在产生故障事件的开关转发单元中之后,可以启动第一计时器218。但是,在一些实施例中,可以在第一条目216的多播目的地地址和多播成员资格信息被编程在产生故障事件的开关转发单元中之前启动第一计时器218。尽管如此,开关转发单元220、224、236、240、252、256的任意一个可以在其“需要知道”时被编程有来自全局转发表215的第一条目216的多播目的地地址和相应的多播成员资格信息。继续到508,确定计时器是否已经到期。例如,图2的主多播固件213可以确定第一计时器218是否已经到期。只要第一计时器218未到期,主多播固件213就可以继续确定第一计时器218是否已经到期。当第一计时器218到期时,在510,确定第一条目216是否被编程在主开关转发单元的任意一个中。例如,图2的主多播固件213可以搜索主编程表214以确定第一条目216是否已被编程在主开关转发单元220、224的任意一个中。具体地,主多播固件213可以通过在主编程表214中搜索在504添加到全局转发表的第一条目216的多播目的地地址和相应的多播成员资格信息来搜索主编程表214,以确定第一条目216是否已被编程。在512,当该条目未被编程在主开关转发单元的任意一个中时,在514,确定该条目是否被编程在从开关转发单元的任意一个中。例如,图2的主多播固件213可以与大致上所有的从分布式开关元件的从多播固件通信并请求在相应的从编程表中搜索第一条目216。第一从多播固件232和 第η从多播固件248可以通过在编程表234、250中搜索在504被添加到全局转发表的第一条目216的多播目的地地址和相应的多播成员资格信息,而分别搜索第一从编程表234和第η从编程表250的条目,以确定第一条目216是否已经被编程。具体地,主多播固件213可以与第一从多播固件232通信并且请求来自第一从编程表234的该条目的编程状态。类似地,主多播固件213可以与第η从多播固件248通信并且请求来自第η从编程表250的第一条目216的编程状态。第一从多播固件234和第η从多播固件248可以分别搜索第一编程表234和第η编程表250以确定第一条目216是否已被编程在第一从开关转发单元236、240和第η开关转发单元252、256的任意一个中。在516,接收该条目的编程状态。例如,图2的第一从多播固件234和第η从多播固件248两者可以向主多播固件213通信该第一条目216的编程状态,并且该编程状态被主多播固件213接收。在518,当该条目的编程状态指示该条目未被编程在任何从开关转发单元中时,在520,该条目可以被指示为是排除的候选者,因为其已经老化。事实上,该条目未被编程在任何主开关转发单元或者任何从开关转发单元中,这样,图2的主多播固件213可以与探听器208通信并且指示第一条目216是排除的候选者。探听器208可以决定是否应该从全局转发表209移除第一条目216,并且可以向主多播固件213通信该第一条目216的移除用于全局转发表215的同步。在522,可以重新启动该条目的计时器。例如,主多播固件213可以重新启动第一计时器218,并且控制可以继续到508,如上所述。返回到512,当该条目被编程在主开关转发单元的任意一个中时,在524,可以检查命中状态。因为命中状态可能处于硬件高速缓存级,所以当多播分组被转发到该条目时,该命中状态可以通过硬件设置,并且通过相应的多播固件来检查(例如,如果命中状态=真或者如果设置了命中位,则可以发生命中)和重置。当命中发生时,这指示多播分组的转发,在526,可以重置命中状态,并且在522可以重新启动该条目的计时器。例如,假设主编程表214指示主开关转发单元220被编程有第一条目216,则主多播固件213可以检查多播目的地地址高速缓存222中的第一条目216的命中状态。具体地,主多播固件213可以在多播目的地地址高速缓存222的条目中搜索在504添加到全局转发表的第一条目216的多播目的地地址和相应的多播成员资格信息,并检查命中状态。主多播固件213可以重置多播目的地地址高速缓存222中的第一条目216的命中状态(例如将该命中状态重置到假或者清除命中位)。此外,主多播固件213可以重新启动第一计时器218,并且控制可以继续到502,如上所述。
返回到512,即使因为主开关转发单元220、224的至少一个已经使用第一条目216转发了多播分组,主多播固件213发现命中发生,无论何时第一计时器218到期,对于从开关转发单元的任意一个发生的命中可能需要被重置(将命中状态重置为假或者清除命中位)。这样,控制也可以继续到514、516、518和520,如上所述。此外,当由于老化而指示排除的候选者并且第一条目216被编程在至少一个开关转发单元中时,探听器208可以请求主多播固件213从该条目被编程到其中的大致上所有开关转发单元中无效或者移除该条目。如果主开关转发单元220、224的任意一个按照主编程表214被编程,则主多播固件213可以从主开关转发单元220、224移除该条目。主多播固件213还可以与第一从多播固件232和第η从多播固件248通信,并且如果第一从开关转发单元236、240和第η从开关转发单兀252、256的任意一个分别按照第一从编程表234和第η从编程表250被编程,则使第一从多播固件232和第η从多播固件248从第一从开关转发单元236、240和第η从开关转发单元252、256移除该条目。返回到518,当该条目被编程在从开关转发单元的任意一个中时,在528,可以检查命中状态。当命中发生时,这指示多播分组的转发,在526可以重置命中状态,并且在522可以重新启动该条目的计时器。例如,假设第一从编程表234指示第一从开关转发单元236被编程有第一条目216,第一从多播固件232可以检查多播目的地地址高速缓存238中的第一条目216的命中状态。具体地,第一从多播固件232可以在多播目的地地址高速缓存238的条目中搜索在504添加到全局转发表的第一条目216的多播目的地地址和相应的多播成员资格信息,并检查命中状态。第一从多播固件232可以重置多播目的地地址高速缓存238中的命中状态(例如将命中状态重置为假或者清除命中位)。此外,第一从多播固件232可以重新启动第一计时器218,并且控制可以继续到502,如上所述。总的来说,如果条目未被编程在任何主开关转发单元中,或者如果该条目被编程但是具有等于假的命中状态,则主多播固件可以与探听器通信以指示已经老化的排除的候选者。如果该条目被编程在任何主开关转发单元中并且具有等于真的命中状态,则主多播固件可以重置相应的开关转发单元中的命中状态并且可以重新启动该条目的计时器。此外,如果该条目未被编程在任何主开关转发单元中,并且至少一个从多播固件确定该条目被编程在其管理的从开关转发单元中,则从多播固件可以重置命中状态。此外,从开关元件可以将该命中状态返回给主多播固件并指示该条目被编程并且分组转发活动已经发生(例如不是排除的候选者)。 本领域技术人员可以理解,经由方法500,即使在全局转发表和编程在硬件中的分组转发指令之间不再有一对一的对应性,也可以管理全局转发表。利用传统的集中化的开关,通常存在一对一的对应性,因为在探听器学习新的多播组成员资格时,其立即将此信息编程到其硬件中(例如其唯一的开关转发单元中)。此外,探听器还启动针对该条目的“排除”计时器。如果排除计时器到期,则探听器通常请求编程在硬件中的相应条目的命中状态。该命中状态指示自从上次计时器到期(并且请求命中状态)起,对于该多播目的地地址是否发生任何分组转发活动。如果命中状态是真,则这向探听器指示此条目不是排除的候选者,并且探听器重新启动该条目的排除计时器,并且重置相应硬件条目的命中状态。在命中状态为假的情况下,一般认为该条目是排除的候选者,并且探听器将其从其多播表中移除并且使硬件中的该条目无效。这样,另外的条目可能变得可用于要学习的新的多播组成员资格。但是,分布式开关中的对应性可以是一对多的对应性,因为某个多播目的地地址和相应的多播成员资格信息可以被编程在多个开关转发单元中。此外,如结合图5所讨论的,在此所述的是多播固件利用跨过多个开关转发单元的命中状态以及与探听器一起工作来确定作为排除的候选者的多播条目的方法。具体地,在全局转发表中利用计时器,并且多播固件(即主多播固件和从多播固件)可以找到被设置为“真”或“假”的条目的命中状态。如果例如在计时器到期时任意的开关转发单元具有设置为“真”的命中状态,则该条目可能被认为不是排除的候选者。在此情况下,对于该条目的命中状态可以设置为假。下一次该计时器到期时,可以再次轮询命中状态。如果跨过多个开关转发单元命中状态仍然是假,则该条目可以被认为是排除的候选者,因为其已经老化,并且主多播固件将此传送到探听器。探听器具有从其全局转发表中移除条目并且随后请求主多播固件从其全局转发表移除该条目的权限。此外,可以请求多播固件(主多播固件和从多播固件两者)无效或移除跨过多个开关转发单元被编程在任意地方的相应条目。在此所述的具体实施例可以采取全硬件实施例、全固件环境、全软件实施例或者包含硬件、固件和软件要素的任意组合的实施例。在具体实施例中,所公开的方法以嵌入在处理器可记录和可读的存储介质中并且由处理器执行的软件而实现,这包括但不限于固件、驻留软件、微代码等。此外,本公开的实施例( 比如一个或多个实施例)可以采取可从提供由计算机或者任意指令执行系统使用或者与计算机或者任意指令执行系统结合使用的程序代码的计算机可用或者计算机可读的存储介质访问的计算机程序产品的形式。为了此说明的目的,计算机可用或者可记录的计算机可读的非瞬时存储介质可以是可以有形地具体化计算机程序并且可以包含、存储、通信、传播或者传输由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任意装置。在各个实施例中,介质可以包括电子、磁、光、电磁、红外或者半导体系统(或装置或设备)或者传播介质。可记录的计算机可读存储介质的例子包括半导体或者固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前例子包括紧凑盘-只读存储器(CD-ROM)、紧凑盘-读/写(CD-R/W)和数字通用盘(DVD)0适合于存储和/或执行程序代码的数据处理系统可以包括通过系统总线直接或者间接耦接到存储器元件的至少一个处理器。存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储器和提供至少一些程序代码的临时存储以便减少在执行期间必须从大容量存储器取回代码的次数的高速缓存。输入/输出或者I/O设备(包括但不限于键盘、显示器、指示设备等)可以直接耦接或者通过居间的I/O控制器间接耦接到数据处理系统。网络适配器还可以耦接到数据处理系统以使数据处理系统能够变得通过居间的私有或者公共网络耦接到其他数据处理系统或者远程打印机或者存储设备。调制解调器、线缆调制解调器和以太网卡仅仅是一些当前可用类型的网络适配器。提供所公开的实施例的以上描述以使本领域技术人员能够做出或使用公开的实施例。对这些实施例的各种修改对本领域技术人员将是非常显而易见的,并且在此定义的一般原理可以应用于其他实施例而不脱离本公开的范围。因此,本公开不意欲限于在此示出的实施例,而是按照与以下权利要求定义的原理和特征一致的可能的最宽范围。
权利要求
1.一种在分布式开关中管理全局转发表的方法,其中该分布式开关包括多个开关转发单元,该方法包括: 启动针对全局转发表中的条目的计时器,其中该条目包括多播目的地地址和相应的多播成员资格信息; 响应于该条目的计时器到期,检查至少一个命中状态,以确定所述多个开关转发单元中的至少一个开关转发单元是否已经对于该条目的多播目的地地址的相应多播成员资格信息转发了多播数据;以及 基于所述命中状态确定该条目是否是排除的候选者。
2.如权利要求1所述的方法,其中检查命中状态不指示对于所述条目的多播目的地地址的相应多播成员资格信息转发了多播数据,该方法还包括指示所述条目是排除的候选者。
3.如权利要求1所述的方法,其中检查命中状态指示对于所述条目的多播目的地地址的相应多播成员资格信息转发了多播数据,该方法还包括重置所述命中状态。
4.如权利要求1所 述的方法,还包括在检查所述命中状态之前确定开关转发单元是否被编程有所述条目的多播目的地地址和相应的多播成员资格信息。
5.如权利要求1所述的方法,其中确定所述条目是排除的候选者,该方法还包括向所述分布式开关的探听器指示所述条目是排除的候选者。
6.如权利要求1所述的方法,其中确定所述条目是排除的候选者,该方法还包括从所述全局转发表移除所述条目。
7.如权利要求1所述的方法,其中确定所述条目是排除的候选者,该方法还包括使被编程有所述条目的多播目的地地址和相应的多播成员资格信息的至少一个开关转发单元中的所述条目的多播目的地地址和相应的多播成员资格信息无效。
8.如权利要求1所述的方法,其中所述全局转发表由所述分布式开关的探听器来管理。
9.如权利要求1所述的方法,其中所述全局转发表由所述分布式开关的主分布式开关元件的主多播固件来管理。
10.如权利要求1所述的方法,还包括: 重新启动所述条目的计时器; 响应于所述条目的重新启动的计时器到期,检查至少一个命中状态,以确定所述多个开关转发单元中的开关转发单元是否已经对于所述条目的多播目的地地址的相应的多播成员资格信息转发了多播数据;以及 基于所述命中状态确定所述条目是否是排除的候选者。
11.一种装置,包括: 至少一个处理器;以及 程序代码,配置为由所述处理器执行,以通过以下操作在分布式开关中管理全局转发表,其中该分布式开关包括多个开关转发单元: 启动针对全局转发表中的条目的计时器,其中该条目包括多播目的地地址和相应的多播成员资格信息; 响应于该条目的计时器到期,检查至少一个命中状态,以确定所述多个开关转发单元中的至少一个开关转发单元是否已经对于该条目的多播目的地地址的相应多播成员资格信息转发了多播数据;以及 基于所述命中状态确定该条目是否是排除的候选者。
12.如权利要求11所述的装置,其中所述程序代码配置为检查所述命中状态不指示对于所述条目的多播目的地地址的相应多播成员资格信息转发了多播数据,以及其中所述程序代码还配置为指示所述条目是排除的候选者。
13.如权利要求11所述的装置,其中所述程序代码配置为检查所述命中状态指示对于所述条目的多播目的地地址的相应多播成员资格信息转发了多播数据,以及其中所述程序代码还配置为重置所述命中状态。
14.如权利要求11所述的装置,其中所述程序代码配置为在检查所述命中状态之前确定开关转发单元是否被编程有所述条目的多播目的地地址和相应的多播成员资格信息。
15.如权利要求11所述的装置,其中所述程序代码配置为确定所述条目是排除的候选者,以及其中所述程序代码还配置为向所述分布式开关的探听器指示所述条目是排除的候选者。
16.如权利要求11所述的装置,其中所述程序代码配置为确定所述条目是排除的候选者,以及其中所述程序代码还配置为从所述全局转发表移除所述条目。
17.如权利要求11所述的装置,其中所述程序代码配置为确定所述条目是排除的候选者,以及其中所述程序代码还配置为使被编程有所述条目的多播目的地地址和相应的多播成员资格信息的至少一个开关转发单元中的所述条目的多播目的地地址和相应的多播成员资格信息无效。
18.如权利要求11所述的装置,其中所述程序代码配置为: 重新启动所述条目的计时器; 响应于所述条目的重新启动的计时器到期,检查至少一个命中状态,以确定所述多个开关转发单元中的开关转发单元是否已经对于所述条目的多播目的地地址的相应的多播成员资格信息转发了多播数据;以及 基于所述命中状态确定所述条目是否是排除的候选者。
19.如权利要求11所述的装置,其中所述全局转发表由所述分布式开关的探听器、所述分布式开关的主分布式开关元件的主多播固件或者其任意组合来管理。
20.一种在分布式开关中管理全局转发表的方法,其中该分布式开关包括多个开关转发单元,该方法包括: 启动针对全局转发表中的条目的计时器,其中所述条目包括多播目的地地址和相应的多播成员资格信息; 响应于所述条目的计时器到期,确定任意主开关转发单元是否被编程有所述条目的多播目的地地址和相应的多播成员资格信息; 检查被编程的主开关转发单元的命中状态,以确定任意的被编程的主开关转发单元是否已经对于所述条目的多播目的地地址的相应的多播成员资格信息转发了多播数据; 确定任意从开关转发单元是否被编程有所述条目的多播目的地地址和相应的多播成员资格信息; 检查被编程的从开关转发单元的命中状态,以确定任意的被编程的从开关转发单元是否已经对于所述条目的多播目的地地址的相应的多播成员资格信息转发了多播数据;以及 基于命中状态确定 所述条目是否是排除的候选者。
全文摘要
本发明提供了用于在分布式开关中管理全局转发表的装置和方法。具体方法可以包括在分布式开关中管理全局转发表。该分布式开关可以包括多个开关转发单元。该方法可以启动针对全局转发表中的条目的计时器,该条目可以包括多播目的地地址和相应的多播成员资格信息。该方法还可以响应于该条目的计时器到期,检查至少一个命中状态以确定所述多个开关转发单元中的至少一个开关转发单元是否已经对于该条目的多播目的地地址的相应多播成员资格信息转发了多播数据。该方法还可以基于所述命中状态确定该条目是否是排除的候选者。
文档编号H04L12/18GK103220160SQ201310019590
公开日2013年7月24日 申请日期2013年1月18日 优先权日2012年1月18日
发明者D.L.昂斯特, C.巴索, J.科斯, R.蒙德拉, N.韦德亚纳塞恩 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1