具体实施方式
下文将参考附图来更完整地描述本发明,这些附图形成本发明的一部分,以及通过图示来示出可用来实践本发明的具体示范实施例。然而,本发明可以许多不同形式被具体化,不应当理解为囿于这里阐述的实施例,提供这些实施例是使得本公开彻底和完整,以及将向本领域的技术人员完全地传达本发明的范围。特别地,本发明可具体化为方法或设备。因此,本发明可利用全硬件实施例、全软件实施例或组合软件和硬件方面的形式。因此如下具体描述不应理解为具有限制意义。
网络集群化是用以为计算机服务器或网络设备提供高可用性和增强性能的方式。配置为集群的服务器或设备组向外部网络实体保持单个服务器或设备的表象。该集群在每个网络上通过集群IP(网际协议)地址来标识。集群成员可相互交换集群协议消息,以动态地改变集群成员关系(即添加或去除成员)、检测成员故障、在成员之间分布工作或者检测成员故障。集群的一个成员可静态或动态地指定为集群主设备,以及协调集群成员(包括自身)之间的事件。
当新的服务器或网络设备加入集群时,它可承担其他成员的一些负载,由此增大集群的容量或性能。如果至少一个集群成员遭受关键功能的部分或完全故障,则它可离开集群,另一集群成员能够承担其工作负载。集群成员可周期性地交换状态信息,以使得任何集群成员能够接管任何其他成员的工作负载。以此方式,网络集群化能够提供网络服务或设备的高可用性和可伸缩的性能。于是,本发明正是针对这些以及其他考虑而做出的。
简言之,本发明涉及一种利用网络集群配置来为组播路由器提供高可用性和增强性能的系统、设备及方法。在集群配置中,集群主设备主动地参与与集群的组播路由器邻近设备的组播控制协议通信,由此保持单个组播路由器设备的表象。集群主设备利用集群网际协议(IP)地址作为从集群发出组播控制协议包的源。非主设备节点或集群成员节点通常不参与集群外部的组播控制协议操作。然而,集群的每个成员虚拟地保持相同协议状态,使得如果集群主设备变得不可用,集群的另一成员可以最小的延迟来承担集群主设备的角色。新加入集群的成员通过从集群主设备接收初始协议状态信息来同步。在初始协议状态同步之后,群成员主动地监视网络上的组播控制协议传输,以获取新的协议状态信息。此外,集群成员在其之间交换一旦离开网络就不可得到的协议状态信息。而且,由每个集群成员进行组播数据包的过滤,以对集群成员进行组播数据传输的负载均衡。
说明性操作环境
图1图示了本发明可操作于其中的环境的一个实施例。并非需要所有部件以实践本发明,可在不脱离本发明的精神和范围的前提下进行部件布局和类型的变化。
如图所示,集群系统100包括局域网/广域网(LAN/WAN)106和107、目的设备114、源设备112、组播路由器110以及组播集群101。组播集群100包括集群成员102-104和集群主设备105。组播集群101与LAN/WAN 106和107通信。目的设备114与LAN/WAN107通信,源设备112与LAN/WAN 106通信。
集群成员102-104和集群主设备105可经过多个网络与LAN/WAN 106和107通信。例如,尽管未示出,多个网络连接可存在于集群成员102-104、集群主设备105与LAN/WAN 107之间。多个网络连接还可存在于集群成员102-104、集群主设备105与LAN/WAN 106之间。然而,为了清楚,仅网络108在图1中被图示。网络108可实际包括任何局域网(LAN)、包括但不限于以太网、802.3等等。在一个实施例中,网络108是协议网络。协议网络实际包括任何网络,包括其互连等等,其被用于协议消息的交换。
组播集群101通常配置为包括松散耦合的网络设备,它们可协同向另一设备提供对服务、资源等等的访问。在一个实施例中,组播集群101配置为通过自适应地均衡集群成员102-104的负载来优化消息吞吐率。组播集群101可实际利用任何负载均衡机制,包括往返时间、循环重复、最少连接、包完成率、服务质量、集群拓扑、全局可用性、转发段(hop)、散列、静态比率和动态比率。在一个实施例中,基本类似于用于单播传输的方案,组播数据包可利用基于散列的方案等等映射到集群成员的工作分配。
组播集群101还可配置为提供各种网络管理服务,包括但不限于域名服务、安全服务等等。
集群成员102-104可以是能够在集群构架中通过网络发送和接收包的任何网络设备。集群成员,比如集群成员102-104的一个实施例,将结合图3来更为具体地描述。
在一个实施例中,集群成员102-104被配置为作为用于收到的消息包的协议栈处理器来操作。这样的设备集可包括通常利用有线通信介质来连接的设备,比如个人计算机、多处理器系统、基于微处理器或可编程用户电子产品、网络PC等等,它们配置为作为集群设备来操作。这样的设备集还可包括通常利用无线通信介质来连接的设备,比如移动设备,包括但不限于蜂窝电话、智能电话、寻呼机、步谈机、射频(RF)设备、红外(IR)设备、膝上型电脑、CB、组合前述设备的一个或多个的集成设备等等,它们配置为集群设备。替代地,集群成员102-104可以是能够利用有线或无线通信介质来连接的任何设备,比如PDA、POCKET PC、可佩带的计算机以及配备为通过有线和/无线通信介质进行通信的任何其他设备,它们操作为集群设备。
而且,集群成员102-104内的每个集群成员可包括应用程序等等,其配置为在其自身与集群成员105之间传送包。该应用程序例如可在集群成员加入集群时从集群主设备105接收同步协议状态数据。集群成员102-104然后可利用应用程序监视网络108以获取附加的协议状态信息。这样的协议状态信息可使得集群成员102-014能够更新其各自路由表,包括其组播和单播路由表,以及有关信息。同样地,协议状态信息可包括关于成员的直接邻居设备、发送方、接收方的信息、距离信息、组播树信息等等。应用程序还可允许集群成员将其自身的协议状态信息提供给另一集群成员,使得如果该集群成员发生故障,其他集群成员可承担其角色。
然而,组播集群101和集群成员102-104不限于用以保持状态同步的上述机制。例如,集群成员102-104可利用完全同步机制,其中集群主设备105实际通过将协议状态信息发送到集群成员102-104来不断地同步该信息。在此机制中,集群成员102-104实际上单纯依赖于集群主设备105以便获取协议状态信息。同步还可利用“纯监视”机制来完成,其中集群主设备105不将任何协议状态信息同步至集群成员102-104。而是集群成员102-104单纯依赖于它们从网络108监视到的传输,以获取协议状态信息。于是,集群成员102-104可实际利用任何同步机制,而不脱离本发明的范围或精神。
集群成员102-104内的每个集群成员可将过滤器应用程序应用于它接收到的组播协议控制和数据包,以确定如何处理它们。例如,基于负载均衡机制,一个集群成员可被分配用来将收到的组播数据包朝着其目的地转发,而其他集群成员可简单地丢弃组播数据包。
集群成员102-104还可包括常驻于其中的应用程序,其可加入与特定的包传输流相关的组。例如,在一个实施例中,集群成员102可包括寻求访问特定传输流的应用程序。在此例中,集群成员102可配置为接收与用于该应用程序的传输流相关联的组播数据包,并非丢弃组播数据包,而是将组播数据包传递到其常驻的应用程序。集群成员102可进行这样的动作,而无关于它是否还将组播数据包朝着组播集群101外部的目的地,比如源设备112、目的设备114等等转发。
集群主设备105实际包括任何网络设备,其被配置为作为集群管理网络设备来操作,以允许进行集群配置的变化管理。这样的设备集可包括但不限于个人计算机、多处理器系统、基于微处理器或可编程用户电子产品、网络PC、移动设备(包括但不限于蜂窝电话、智能电话、寻呼机、步谈机)、射频(RF)设备、红外(IR)设备、CB、组合前述设备的一个或多个的集成设备、PDA、POCKET PC、可佩带的计算机、以及配备为通过有线和/或无线通信介质进行通信的任何其他设备,以管理组播集群101的配置变化。在一个实施例中,实际上集群成员102-104的任一个可配置为在集群主设备105变得不可用时承担集群主设备105的角色。于是,集群成员102-104和集群主设备105的配置一般基本上是相同的。
在一个实施例中,尽管包括集群主设备的每个成员接收所有组播协议控制和数据包,但是由集群主设备105主动地参与组播控制协议操作。在一个实施例中,集群主设备105利用集群IP地址作为所发起的组播包的源。集群成员102-104一般不参与组播控制协议的操作。也就是,集群主设备105被配置用来为组播集群101而响应,以便保持单个的组播邻近网络设备的表象。
LAN/WAN 106和107被使得能够利用任何形式的计算机可读介质,用于从一个电子设备到另一电子设备传送信息。同时,LAN/WAN106和107可包括无线接口和/或有线接口,比如除局域网(LAN)、广域网(WAN)之外的互联网,直接连接,比如经过通用串行总线(USB)端口,其他形式的计算机可读介质,或者其组合。在互连的LAN集上,包括基于不同构架和协议的那些LAN,路由器充当LAN之间的链接,使得消息能够从一个LAN发送到另一LAN。同时,LAN内的通信链路一般包括双绞线对或同轴电缆,而网络之间的通信链路可利用模拟电话线、包括T1、T2、T3和T4的全部或部分专用数字线、综合业务数字网(ISDN)、数字用户线(DSL)、包括卫星链路的无线链路、基于各种标准(包括IEEE 802.11a、802.11g、802.11b)的连接。或者任何其他通信链路。
LAN/WAN 106和107还可利用多个无线接入技术,包括但不限于用于蜂窝系统的第二代(2G)、第三代(3G)无线接入、无线-LAN、无线路由器(WR)网格等等。接入技术比如2G、3G以及未来的接入网络可以各种程度的移动性实现移动设备的广域覆盖。例如,LAN/WAN106、107可通过无线网络接入来实现无线连接,比如通过全球移动通信系统(GSM)、通用分组无线传输(GPRS)、宽带码分多址(WCDMA),802.16等等。
而且,远程计算机和其他有关电子设备可经由调制解调器和暂时的电话链路来远程地连接至LAN或WAN。实质上,LAN/WAN 106和107包括任何通信方法,信息可通过该方法行进于一个网络设备与另一网络设备之间。
此外,LAN/WAN 106和107可包括通信介质,其一般体现有计算机可读指令、数据结构、程序模块或者在调制的数据信号比如载波、数据信号或其他传送机制中的其他数据,以及包括任何信息传递介质。术语“调制的数据信号”和“载波信号”包括这样的信号,该信号令其一个或多个特征以对此信号中的信息、指令、数据等进行编码的方式来设置或改变。作为实例,通信介质包括有线介质,比如但不限于双绞线对、同轴电缆、光纤、波导和其他有线介质,以及包括无线介质,比如但不限于声、RF、红外和其他无线介质。
如上所述用来在通信链路中传输信息的介质说明了一种类型的计算机可读介质,即通信介质。一般而言,计算机可读介质包括任何可由计算设备访问的介质。计算机可读介质可包括计算机存储介质、通信介质或其组合。
一般地,LAN/WAN 106可包括内容服务器、应用服务器等等,组播集群101使得能够为常驻于LAN/WAN 107内的另一网络设备访问这些服务器。类似地,LAN/WAN 107可包括内容服务器、应用服务器等等,它们可利用组播集群101来实现对常驻于LAN/WAN 106内的网络设备的访问。如图1所示,源设备112和目的设备114是可利用组播集群101来实现通信的两个网络设备的实例。在一个实施例中,源设备112可配置为提供也去往目的设备的组播消息。尽管标记为目的设备,但是目的设备114还可提供组播消息,其包括作为该消息的目的地的源设备112。
为了说明目的,组播路由器110在图1中也被示出为与组播集群101接口的可能路由器。于是,组播路由器110可配置为接收组播消息以及将它们朝着邻居网络设备转发。组播路由器110还可由桥接器、交换机、网关等来代表,其配置为接收和转发组播消息。
图2图示了网络设备200的一个实施例的功能框图,其可操作为集群成员和/或集群主设备。网络设备200可包括比所示多得多的部件。然而所示部件足以公开用于实践本发明的说明性实施例。
网络设备200包括处理单元212、视频显示适配器214和大容量存储器,它们都经由总线222相互通信。大容量存储器一般包括RAM216、ROM 232和一个或更多永久大容量存储设备,比如硬盘驱动器228、磁带驱动器、光驱和/或软盘驱动器。大容量存储器存储用于控制网络200的操作的操作系统220。任何通用操作系统均可被利用。基本输入/输出系统(“BIOS”)218也被提供以用于控制网络设备200的低级操作。
如图2所示,网络设备200也能够经由网络接口单元210与互联网或一些其他通信网络比如图1中的LAN/WAN 106-107通信,该网络接口单元被构造用于各种通信协议,包括但不限于TCP/IP协议、UDP/IP协议等等。网络接口单元210有时称为收发器或收发设备。
网络设备200还可包括用于传输电子邮件的SMTP处理应用程序、用于接收和处理HTTP请求的HTTP处理应用程序以及用于处理安全连接的HTTPS处理应用程序。HTTPS处理应用程序可以安全方式发起与外部应用程序的通信。然而网络设备200不限于这些处理应用程序,许多其他协议处理应用程序可由网络设备200利用,而不脱离本发明的范围。
网络设备200还可包括用于与外部设备,比如鼠标、键盘、扫描仪或图2中未示出的其他输入设备通信的输入/输出接口224。类似地,网络设备200还可包括附加的大容量存储设备,比如CD-ROM/DVD-ROM驱动器226和硬盘驱动器228。除存储其它之外,硬盘驱动器228由网络设备200用来存储应用程序、数据库等等。
如上所述的大容量存储器图示了一类计算机可读介质,即计算机存储介质。计算机存储介质可包括易失性、非易失性、可移动和不可移动的介质,其在任何方法或技术中实施用于存储信息,比如计算机可读指令、数据结构、程序模块或其他数据。计算机存储介质的实例包括RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字通用光盘(DVD)或其他光存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储设备、或者可用来存储所需信息以及可由计算设备访问的任何其他介质。
在一个实施例中,大容量存储器存储用于实施操作系统220的程序代码和数据。大容量存储器还可存储用于进行网络设备200的功能的附加程序代码和数据。一个或更多应用程序250等可加载到大容量存储器中和运行于操作系统220上。如图所示,组播集群管理器(MCM)242是可运行于操作系统220上的应用程序的实例。
MCM 242可配置为使得计算设备能够加入集群以作为集群成员,以及从集群主设备105接收协议状态信息、配置信息等等。MCM
242还可使得集群成员能够通过过滤数据包、管理协议包以及与组播集群101的其他成员(和集群主设备105)同步协议状态信息来操作为集群中的成员。而且,MCM 242还可使得集群成员能够在集群主设备105发生故障时承担集群主设备的角色,和/或在另一集群成员发生故障时承担管理数据传输的责任,等等。MC 242可分别利用图3和4的处理300和400来执行许多的这些动作。
说明性操作
现在将参考图3-4来描述本发明的某些方面的操作。图3图示了逻辑流图,其概括地示出了用于在诸如如图1所示的组播路由集群中的成员之间管理状态同步的处理的一个实施例。处理300例如可实施于图1的组播集群101的成员和/或集群主设备,和/或安排进行组播路由的集群内的类似网络设备中。
处理300在开始方框之后始于判决框302处,其中确定网络设备是否为集群成员。如果网络设备是集群成员,则处理分支到方框306;否则,处理继续到判决框304。
在判决框304处,确定网络设备是否正加入集群以作为新的集群成员。如果网络设备是新近正加入的集群成员,则处理流向方框314;否则,处理继续到方框306。
在方框314处,新的正加入的集群成员将加入请求消息发送到集群主设备。然后处理流向方框316,其中新的正加入的集群成员从集群主设备接收协议状态信息,以初始地同步新的集群成员,使得新成员的协议状态与其余集群成员的协议状态之间的滞后最小。处理继续到方框318,其中新加入的集群成员利用收到的协议状态信息来更新其协议状态,包括路由表、过滤器等等。处理继续到方框306。
在方框306处,网络设备继续监视网络以获取和保持协议状态。处理接着流向方框308,其中网络设备可利用收到的协议状态信息来同步和/或更新其自身的协议状态信息。在一个实施例中,获取的组播控制协议包可包括来自集群外部的邻居网络设备的消息。在另一实施例中,获取的组播控制协议包可包括对于来自集群的响应的请求。
处理流向判决框310,其中确定是否收到组播控制协议消息。这样的消息例如可提供来自并不在集群内的网络设备的协议信息。如果收到组播控制协议消息,则处理分支到判决框320;否则,处理流向判决框312。
在判决框320处,确定网络设备是集群主设备还是集群成员。如果网络设备是集群主设备,则处理流向方框322;否则,处理继续到判决框312。在方框322处,集群主设备可响应于组播控制协议消息。然后处理继续到判决框312。
在判决框312处,网络设备确定其协议状态是否已改变,使得它可与其他集群成员共享这样的变化。如果其协议状态已变,则处理继续到方框324;否则,处理返回到调用处理以进行其他动作。在方框324处,网络设备将其协议状态变化发送到集群中的其他成员,使得另一集群成员可在发生故障时承担其角色。然后处理返回到调用处理以进行其他动作。
图4图示了逻辑流图,其概括地示出了用于按照本发明来管理经过图1的组播集群中的网络设备的组播数据传输的处理的一个实施例。图4的处理400例如可操作于集群成员内,比如图1的集群成员102-104和/或集群成员105。
处理400在开始方框之后始于方框402处,其中组播数据包由网络设备接收。处理接着流向方框404,其中网络设备可部分地利用组播数据包来更新其状态过滤器。
处理接着继续到判决框408,其中确定组播数据包是否将由常驻应用程序接收。这例如可在常驻应用程序已加入与收到的组播数据包相关联的组时发生。如果常驻应用程序将接收组播数据包,则处理继续到方框414,其中组播数据包被发送到常驻应用程序。在任一情况下,处理接着流向判决框410。
在判决框410处,确定收到的组播数据包是否将被转发。在一个实施例中,接收网络设备可能未被分配用来转发数据。这可以是基于各种判决,包括负载均衡判决。在任一情况下,如果网络设备将转发组播数据包,则处理400继续到方框416,其中网络设备朝着其目的地来发送组播数据包。然后处理返回以进行其他动作。
替代地,如果在判决框410处网络设备将不转发接收到的组播数据包,则处理继续到方框412,其中网络设备丢弃收到的组播数据包。然后处理返回到调用处理以进行其他动作。
将理解到上述流程图图示的每个方框以及上述流程图图示中方框的组合可通过计算机程序指令来实施。这些程序指令可提供给处理器以产生机器,使得在处理器上执行的指令建立了用于实施在流程图的一个或多个方框中指定的动作的装置。计算机程序指令可由处理器执行以使得一连串操作步骤由处理器执行,以产生计算机实施的处理,使得在处理器上执行的指令提供了用于实施在流程图的一个或多个方框中执行的动作的步骤。
因此,流程图图示的方框支持用于进行指定动作的装置的组合、用于进行指定动作的步骤的组合、以及用于进行指定动作的程序指令装置。还将理解,流程图图示的每个方框以及流程图图示中方框的组合能够由进行指定动作或步骤的基于专用硬件的系统,或者专用硬件与计算机指令的组合来实施。
上面的说明书、实例及数据提供了本发明的构成的制造及使用的完整描述。由于本发明的许多实施例可在不脱离本发明的精神和范围时来做出,所以本发明存在于这里所附的权利要求中。