本发明的实施例涉及用于改进在下游代理装置的多播订户管理的效率和可扩展性的方法和系统。具体而言,本发明的实施例涉及使用接口跟踪表管理关于多播订户节点的聚合要求的多播源,在下游代理装置与上游多播路由器之间接口的聚合状态。
背景技术:代理装置在多播网络中用于管理在多播订户节点集与上游多播路由器之间多播源的转发和阻塞。上游多播路由器与多播源直接连接,或者中间装置间接连接到提供内容到多播订户节点集的多播源。代理装置是为多播群组管理成员数据库的二级(L2)装置。成员数据库的管理在RFC4605中描述。代理装置使用成员数据请求上游多播路由器转发或阻塞用于每个多播源的业务。RFC4605建议在维护成员数据库中,代理装置使用在RFC3376的第3.2部分(用于IPv4)或RFC3810的第4.2部分(用于IPv6)中描述的合并规则。这些参考的部分描述了能够维护在使用因特网群组管理协议版本3(IGMPv3)或多播侦听器发现版本2(MLDv2)的上游多播路由器与代理装置之间的接口上用于多播群组的成员的聚合状态的方式。在接口的不同侧上用于相同多播群组的成员状态不同时,此聚合状态能够用于管理接口。对于IGMPv3和MLDv2,多播群组中的成员状态能够是在包含或排除模式中。聚合状态能够基于在来自多播订户节点的多播成员报告中收到的信息推导。多播订户节点在其报告中识别它们要求来自其的业务的多播源(即,被转发的那些源)和它们不要求来自其的业务的那些多播源(即,被阻塞的那些源)。在包含模式中,将只为多播群组转发来自多播订户节点请求的源的业务。在排除模式中,将为多播群组转发来自除多播订户节点明确请求的那些源外所有源的业务。然而,如果在接口上存在是包含和排除模式的混合的多个应用或套接字,则接口需要聚合此状态以便能够正确服务于所有订户节点。RFC3376的第3.2部分描述了一种用于计算聚合状态的方法。然而,此过程要求检查被排除的所有多播群组以便为排除确定共同源,并且随后从共同排除源的列表减去明确包括的所有源。在代理装置上管理成员数据库的此过程效率低,并且不能扩展。接口的数量(例如,在智能边缘装置的多结(mutli-bond)接口上的订户电路)能够是大约数千个接口。单个电路上多播群组成员状态的任何更改要求重新处理所有电路的群组成员状态以便得出多结接口的新聚合状态。此方法对于代理装置是处理器密集型,并且延迟接口的新聚合状态的计算。此外,虽然基于所有电路的聚合状态在被重新处理,但已经处理的电路的状态的任何更改将还要求重新处理。由于来自多播订户节点的成员报告能够经常更改状态,因此,这能够经常发生。例如,在某些实施例中,多播订户节点是管理生成经常信道更改的因特网协议电视(IPTV)的机顶盒,其中,每个信道对应于一个多播源。
技术实现要素:一种在广域网的网络单元中实现的方法,网络单元充当用于上游多播路由器的代理,上游多播路由器使用因特网群组管理协议(IGMP)或多播侦听器发现(MLD)提供多个多播源到多个多播订户节点,多个多播订户节点与网络单元进行通信,方法通过跟踪多个多播订户节点的聚合状态要求的多个多播源中多播源的子集,以有效和可扩展的方式管理在上游多播路由器与代理之间的接口,跟踪使用接口跟踪表来确定接口的聚合状态,而不是跟踪详细描述每个多播订户节点要求的每个多播源的更特定数据的转发信息库(FIB)和成员数据库,方法包括以下步骤:由网络单元接收来自多个多播订户节点的第一节点的IGMP或MLD成员报告,IGMP或MLD成员报告指示在网络单元与上游多播路由器之间的接口上第一多播订户节点要接收的多播源集中的至少一个更改;更新接口跟踪表以在多播源的子集中反映至少一个更改,接口跟踪表对应于在网络单元与上游多播路由器之间的接口,并且维护多个多播订户节点的聚合状态,聚合状态定义要转发到多个多播订户节点或为多个多播订户节点阻塞的多播源的子集;以及基于接口跟踪表的更新,将要转发到网络单元或为网络单元阻塞的多播源的子集中的至少一个更改通知上游多播路由器,接口跟踪表的更新独立于为每个多播订户节点维护要转发和阻塞的多播源的FIB和成员数据库的更新。一种配置成充当用于上游多播路由器的代理的网络单元,上游多播路由器使用因特网群组管理协议(IGMP)或多播侦听器发现(MLD)提供多个多播源到多个多播订户节点,多个多播订户节点与网络单元通信耦合,网络单元通过跟踪多个多播订户节点的聚合状态要求的多个多播源中多播源的子集,以有效和可扩展的方式管理与上游多播路由器之间的接口,跟踪使用接口跟踪表来确定接口的所述聚合状态,而不是跟踪详细描述每个多播订户节点要求的每个多播源的更特定数据的转发信息库(FIB)和成员数据库,网络单元包括:入口模块,配置成通过在网络单元与上游多播路由器之间的网络连接接收数据分组;出口模块,配置成传送数据分组到多个多播订户节点;以及网络处理器,以通信方式耦合到入口模块和出口模块,网络处理器配置成执行IGMP模块或MLD模块,IGMP模块或MLD模块配置成处理IGMP分组或MLD分组以及更新跟踪多个多播订户分组节点的每个节点要求的多播源的FIB和成员数据库,IGMP分组或MLD分组包括IGMP或MLD成员报告,IGMP或MLD成员报告指示多个多播订户节点的每个节点要求的多个多播源的更改,IGMP模块或MLD模块包括聚合管理模块,IGMP模块或MLD模块配置成提供更改到聚合管理模块,并且更新FIB和成员数据库,聚合管理模块配置成基于在处理IGMP或MLD成员报告后识别的更改,更新用于与上游多播路由器之间接口的接口跟踪表,以维护聚合状态,并且聚合管理模块配置成将聚合状态的更改通知上游多播路由器,其中,聚合状态定义要转发到多个多播订户节点或为多个多播订户节点阻塞的多播源的子集。附图说明本发明通过示例方式而不是限制的方式在附图的图形中被示出,附图中,相似的标号表示类似的单元。应注意,在此公开中对“一”或“一个”实施例的不同引用不一定是指相同的实施例,并且此类引用是指至少一个。此外,在结合实某个施例描述某个特定特征、结构或特性时,认为结合无论是否明确描述的其它实施例来实现此类特征、结构或特性是在本领域技术人员的认知之内。图1是多播网络的一个实施例的图形。图2是代理装置的一个实施例的图形。图3A和3B是IGMP成员报告和群组记录的一个实施例的图形。图4是接口跟踪表的一个实施例的图形。图5是聚合状态管理过程的一个实施例的流程图。图6A和6B是使用接口跟踪表添加源到聚合状态的过程的一个实施例的流程图。图7A和7B是使用接口跟踪表从聚合状态减去源的过程的一个实施例的流程图。具体实施方式在下面的描述中,陈述了许多特定细节。然而,要理解的是,实践本发明的实施例可无需这些特定细节。在其它情况下,众所周知的电路、结构和技术未详细显示以免混淆对此描述的理解。然而,本领域的技术人员将领会到,可无需此类特定细节而实践本发明。通过包括的描述,本领域技术人员将能够在不进行不当实验的情况下实现适当的功能性。现在将参照图1-4的示范实施例,描述流程图的操作。然而,应理解,流程图的操作能根据参照图1-4所述实施例外的本发明的其它实施例执行,并且参照图1-4所述实施例能执行与参照图5、6A、6B和7A-C的流程图所述的那些操作不同的操作。所述图中所示技术可使用一个或多个电子装置(例如,终端站、网络单元等)上存储和执行的代码和/或数据来实现。此类电子装置使用非暂时性机器可读或计算机可读媒体存储和传递(在内部和/或通过网络与其它电子装置)代码和数据,如非暂时性机器可读或计算机可读存储媒体(例如,磁盘、光盘、随机存取存储器、只读存储器、闪存装置及相变存储器)。另外,此类电子装置一般情况下包括耦合到诸如一个或多个存储装置、用户输入/输出装置(例如,键盘、触摸屏和/或显示器)和网络连接等一个或多个其它组件的一个或多个处理器的集合。处理器的集合与其它组件的耦合一般情况下是通过一个或多个总线和桥接器(也称为总线控制器)。存储装置表示一个或多个非暂时性机器可读或计算机可读存储媒体和非暂时性机器可读或计算机可读通信媒体。因此,给定电子装置的存储装置一般情况下存储代码和/或数据以便在该电子装置的一个或多个处理器的集合上执行。当然,本发明的实施例的一个或多个部分可使用软件、固件和/或硬件的不同组合来实现。在本文中使用时,网络单元(例如,路由器、交换器、桥接器等)是一件连网设备,包括硬件和软件,其在通信上与网络上的其它设备(例如,其它网络单元、计算机终端站等)互连。一些网络单元是“多服务网络单元”,其为多个连网功能(例如,路由选择、桥接、交换、第2层聚合、会话边界控制、多播和/或订户管理)提供支持和/或为多个应用服务(例如,数据、话音和视频)提供支持。订户终端站(例如,服务器、工作站、膝上型计算机、掌上型计算机、移动电话、智能电话、多媒体电话、基于因特网协议的话音(VOIP)电话、便携式媒体播放器、GPS单元、游戏系统、机顶盒(STB)等)访问通过因特网提供的内容/服务和/或在因特网上重叠的虚拟专用网(VPN)上提供的内容/服务。所述内容和/或服务一般由属于服务或内容提供商的一个或多个终端站(例如,服务器终端站)或参与对等服务的终端站来提供,并且可包括公共网页(免费内容、店面、搜索服务等)、私有网页(例如,提供电子邮件服务的用户名/密码访问的网页等)、通过VPN的企业网络、IPTV等。一般情况下,订户终端站耦合(例如,通过耦合到接入网络(以有线或无线方式)的客户驻地设备)到边缘网络单元,所述边缘网络单元耦合(例如通过到其它边缘网络单元的一个或多个核心网络单元)到其它终端站(例如,服务器终端站)。本发明的实施例提供用于避免现有技术的缺点的方法和系统。现有技术的缺点包括缺乏可扩展性和处理器资源的使用效率低。跟踪接口的聚合状态的以前方法要求处理整个成员数据库以便为结合到该接口的所有电路确定所有排除的和包含的源。由于要求的时间原因,此过程可在其它更改发生前未完成。因此,跟踪聚合状态的以前方法效率低,并且处理成员数据库中的大量数据要求相当多的处理器时间和系统存储器。本发明的实施例克服了现有技术的这些缺点。实施例不处理整个成员数据库以确定接口的聚合状态,而是跟踪作为简化记分板的接口跟踪表中接口的状态,接口跟踪表跟踪要求每个多播源的多个订户节点而不是如在成员记录中维护的有关每个预订电路的详细信息。因此,能够更快并且利用更少资源向上游多播路由器发送用于接口的更新。图1是多播网络的一个实施例的图形。多播网络100包括多个多播源101A-D、多播路由器103、代理装置107和多播订户集109A-C。在其它实施例中,其它中间装置或其它多播路由器和代理装置能够是在多播源与多播订户之间网络的一部分。所示实施例通过示例示出,并且为清晰起见,另外的装置和变化未示出。本领域技术人员将理解,本文中关于此实施例所述的原理和结构将适用于其它实施例。每个多播源101A-D能够由任何类型的计算装置提供,如服务器、台式计算机、膝上型计算机、便携式装置或类似装置。多播源101A-D每个能够通过分开的装置提供,或者通过包括单个装置在内的装置的任何组合提供。多播源101A-D是由在这些装置上运行的应用提供的能够由多个多播订户的任何订户获得的内容。通过使用IGMP或MLD或类似协议的多播群组地址,可提供多播源。提供的内容能够是视频内容、音频内容或类似类型的内容。在一个示例实施例中,每个多播源是IPTV系统中的电视信道。上游多播路由器103能够是任何类型的连网单元,包括边缘路由器或类似类型的路由选择装置。上游多播路由器能够通过网络直接或间接连接到每个多播源。上游多播路由器103将这些多播源101A-D提供到连接到上游多播路由器的每个下游装置。在一示例实施例中,示出了单个代理装置107,然而,上游多播路由器103能够具有到下游装置的任何数量的连接。每个这些连接将是在上游多播路由器103与下游装置之间的分开接口。上游多播路由器103为连接到上游多播路由器103的每个下游装置维护成员数据库。此成员数据库跟踪每个连接的装置请求的多播源101A-D,并且根据下游装置的要求适当地转发或阻塞多播源101A-D。在一个实施例中,下游装置能够是充当代理装置107的网络单元。上游多播路由器103能够通过网络连接到代理装置107。代理装置107通过网络连接到上游多播路由器103,并且通过相同或另一网络直接或间接耦合到多个多播订户109A-C。代理装置107管理上游多播路由器103提供到多播订户109A-C的每个多播源101A-D的转发或阻塞。代理装置107为其与上游多播路由器103之间的接口105维护请求和阻塞的多播源的聚合状态。此聚合状态在接口跟踪表中维护。代理装置107能够为与上游多播路由器之间或者与任何数量的上游多播路由器之间的每个接口维护分开的接口跟踪表。代理装置107能够具有与上游多播路由器之间的分开接口,或者具有与基于分开的多播群组的其它装置之间的分开接口,而每个群组与分开的套接字联系在一起。代理装置107将多播源101A-D的要求集通知上游多播路由器103,并且将多播源转发到适当的多播订户节点109A-C上。多播订户节点109A-C能够是任何类型的计算装置,包括机顶盒、膝上型计算机、手持装置、台式计算机及消费多播源101A-D的类似计算装置。在一个示例实施例中,多播订户节点是用于IPTV系统或类似系统的机顶盒。在此实施例中,多播源是IPTV信道,并且多播订户能够管理请求的信道集,请求的信道集能够基于与机顶盒的用户交互而经常更改。多播源101A-D、上游路由器103、代理装置107及订户节点109A-C能够通过包括局域网(LAN)、诸如因特网等广域网(WAN)或类似通信系统等网络的任何组合相互进行通信。这些网络能够包括无线和有线组件和网络单元的任何组合。图2是充当代理装置的网络单元的一个实施例的图形。网络单元200能够包括入口模块201、出口模块205和网络处理器303。入口模块201能够处置由网络单元在物理链路和数据链路层收到的数据分组的处理。出口模块205处置由网络单元在物理链路和数据链路层传送的数据分组的处理。网络处理器203处置数据业务的路由选择、转发和更高级处理。网络处理器203能够执行或包括协议无关多播(PIM)模块207和因特网群组管理协议(IGMP)/多播侦听器发现模块209。IGMP/MLD模块209管理成员数据库213,并且可管理转发信息库211(FIB)。在其它实施例中,PIM模块207可管理FIB211,或者PIM模块207和IGMP/MLD模块209组合管理FIB。IGMP/MLD模块209包括聚合管理模块215。IGMP/MLD模块209接收包括来自下游多播订户节点的成员报告的IGMP和MLD分组。这些成员报告经分析以确定成员数据的更改以及更新成员数据库213和FIB211。在图3A和3B中示出了用于IGMP成员报告和群组记录的成员报告的格式的示例。IGMP/MLD模块209检测成员状态的更改,更改传递到聚合管理模块215。IGMP/MLD模块209能够分析在接收的记录的类型,并且确定更改的类型,以及将此信息提供到聚合管理模块215。IGMP/MLD模块209将多播成员数据的更改传递到上游多播路由器。在一个实施例中,IGMP/MLD模块209将这些更改传递到PIM模块207,PIM模块将它们发送到上游多播路由器。更改从聚合管理模块215接收,并且不直接从成员数据库213确定。聚合管理模块215从IGMP/MLD模块209接收成员数据的数据更改的指示符,并且随后相应地更新接口跟踪表217。此过程与IGMP/MLD模块209更新转发信息库211和成员数据库213并行进行。接口跟踪表217的更新维护对应于每个表的接口的聚合状态。由于每个表只为对应接口跟踪用于每个源及用于常规“全部源”的包含和排除的总数,因此,它能够快速进行更新并用作将检测到的更改通知上游多播路由器的基础。与此相反,由于IGPM/MLD模块209必须在成员数据库的成员记录中详细维护在每个多播订户节点与多播源之间的特定关系,因此,使用此数据更新聚合状态效率低或不可扩展。图3A和3B是IGMP成员报告(图3A)和群组记录(图3B)的一个实施例的图形。标准IGMPv3报告包括带有类型字段、两个预留字段、校验和字段及群组记录数量字段的报头301。消息的正文包括群组记录集。各个群组记录(图3B)包括报头部分305和正文部分307。报头部分包括记录类型字段、辅助日期长度字段、来源数量字段及群组地址字段。正文包含诸如IP地址等用于提供源数据的终端站或服务器的源标识符集。此复杂的分层结构要求IGMP模块解析消息以识别消息中的源标识符并且基于这些源标识符来维护源状态。此消息作为示例提供,以示出在代理装置接收和处理的成员数据。订户模式在使用因特网协议v6与代理装置进行通信时,从MLD成员报告接收类似的数据。此外,聚合过程与其它成员管理系统兼容,包括在2009年9月11日提出的题为“具多播能力的路由器上的轻型主机管理协议”(LightHostManagementProtocolonMulticastCapableRouter),通过引用结合于本文中的共同待定专利申请12/558365的系统、方法和消息。图4是接口跟踪表的一个实施例的图形。所示跟踪表作为示例提供,带有在接口跟踪表400内存储的示例数据集。接口跟踪表400跟踪对每个多播源401的请求的数量。在所示实施例中,列出的用于接口的每个当前已知源在顶行中,其中,“全部源”由S0表示。每个其它各个源由S1-n表示。因此,每列跟踪识别的多播源,并且通过用于每个多播源的模式将上游路由器状态与聚合订户状态相关。表400中的第二行是用于每个源403的上游路由器状态,其是在转发(F)或剪除(P)模式中。转发模式指示对应多播源在由上游多播路由器转发到代理装置,并最终转发到至少一个订户节点。已剪除状态指示上游多播路由器未在将对应多播源发送到代理装置,并且对应多播源未被发送到任何订户节点。在用于每个多播源的包含行和排除行405中按模式跟踪聚合订户状态。对于用于每个多播源的包含模式和排除模式,维护有计数器。在两个多播订户排除除一个或两个源外所有源时接口跟踪表400的此状态能够发生,这因此作为使用“全部源”列S0的请求所有其它源被跟踪。在多播订户节点更改其状态时,能够为接口跟踪表400更新对应字段。例如,如果订户节点明确请求S1源,则可增大用于该源的包含模式值。类似地,如果以前已排除某个源的多播订户随后只请求该相同源,则可降低排除计数器,并且也可降低请求全部计数器,同时增大对应包含计数器。此过程相对于图6A-6C更详细描述。图5是在代理装置维护每个接口的聚合状态的总过程的一个实施例的流程图。在一个实施例中,过程是响应在IGMP/MLD成员报告中收到的每个更改。每次从多播订户节点收到IGMP成员报告或MLD成员报告时,能够分析报告以确定在成员数据库中是否有用于为与上游多播路由器之间每个接口请求的多播源集的任何更改(方框501)。如果检测到更改,则进行接口跟踪表的更新以在多播订户节点集请求转发或阻塞的多播源集中反映更改(方框503)。选择对应于在代理装置与上游多播路由器之间接口的接口跟踪表,并且更新用于多播订户节点的聚合多播源成员。通过增大和降低用于对应源的适当计数器,维护聚合多播源成员,从而维护聚合多播源成员状态,其定义要转发到多个多播订户节点或者为多个多播订户节点阻塞的多播源。一旦已更新聚合状态,则将聚合状态的更改通知上游多播路由器,包括在与代理装置/网络单元之间的接口上要转发或阻塞哪些多播源的指示(方框505)。聚合状态的更新独立于成员数据库和转发信息库的更新。通知能够通过使用PIM、IGMP、MLD或类似协议实现。IGMP模块或MLD模块为在网络单元与每个多播订户节点之间的每个电路并行更新转发信息库和成员数据库,以使用更新的数据定义在每个多播订户节点与每个多播源之间的对应关系,使得代理装置能够将业务从上游多播路由器适当地转发到每个多播订户节点(方框507)。然而,此过程与聚合状态和上游路由器的更新不同步,使得维护成员记录和FIB的更慢得多和更详细的过程不会减慢与上游多播路由器之间接口的更新。图6A和6B示出用于维护接口跟踪表的过程的一个实施例的流程图集。为清晰起见,相对于IGMP成员报告的处理描述该过程。本领域技术人员将理解,该过程也能够应用到MLD成员报告和类似的多播协议。在一个实施例中,通过接收来自订户节点的IGMP成员报告,启动该过程(方框601)。IGMP成员报告能够包括定义要发送到特定订户的请求的多播源的群组记录集。过程迭代通过来自成员报告的每个群组记录(方框603),并且识别记录对应的接口(方框605)。因此,识别了要更新的正确接口跟踪表。在每个群组记录中,迭代通过每个源集,直至穷尽(方框607)。源为订户节点识别在请求发送或阻塞的每个多播源。穷尽某个群组记录中的源时,处理下一群组记录(方框603),直至穷尽群组记录。执行检查以确定接口跟踪表是否在跟踪通过群组记录识别的群组(方框609)。如果群组在接口跟踪表中不存在,则将它添加到接口跟踪表。进行检查以确定过滤器模式是否已从包含更改成排除(方框611)。如果没有更改,则成员报告的检查指示是否添加源到用于群组的成员(方框612)。如果未在添加某个源,则过程继续到下一源(方框607)。如果在添加某个源,则进行检查以确定在接口跟踪表中是否在跟踪该源(方框613)。接口跟踪表能够是动态的,并且只跟踪已由与接口联系在一起的任何多播订户节点识别为需要包含或排除的那些源。如果在接口跟踪表中未找到源,则将源添加到接口跟踪表,并且为所有对应计数器和转发状态赋予空状态(方框615)。随后进行检查以确定源是在包含还是排除模式中(方框617)。如果源是在包含模式中,则在接口跟踪表中增大用于对应源的源包含计数器(方框621)。随后进行检查以确定在接口跟踪表中源是否设成要转发(方框625)。如果源设成转发,则过程继续到下一源。如果源未设成转发,则更新表以将源设成转发(方框629),并且启动过程以便启动转发源的更新消息到上游路由器的发送(方框631)。在更新消息已发送后,随后处理下一源。如果源已从排除模式更改成包含模式,则增大包含全部源计数器(方框675)。参见图6B。检查其源排除计数器小于用于S0的包含计数器的那些源,以及其中源在要为IGMP成员报告的群组记录阻塞的源列表中不存在(方框677)。为满足这些准则的每个源将更新消息发送到上游路由器,并且将这些源设成转发(方框679)。随后进行检查以确定在群组记录中是否有要阻塞的源(方框681)。如果有要阻塞的源,则该过程通过增大用于源的排除计数器而继续(方框619)。如果没有,则该过程继续到下一群组记录或源。回到图6A,如果源在排除模式中,则增大用于源的排除计数器(方框619)。进行检查以确定源排除计数器是否大于或等于包含全部源计数器(方框627)。如果源排除计数器等于包含全部源计数器,则在接口跟踪表中将源设成剪除(方框633)。随后,将更新消息发送到上游路由器以剪除源(方框635)。该过程通过处理下一源而继续。如果源排除计数器不等于包含全部源计数器,则检查在接口跟踪表中源是否设成转发(方框681)。参见图6B。如果在接口跟踪表中源设成转发,则处理下一源记录,并且不进行其它操作。如果在接口跟踪表中源未设成转发,则在接口跟踪表中将源设成转发(方框653)。随后,将更新消息发送到上游路由器以转发源(方框615)。该过程继续处理下一源记录。参见图6B。在图7A、7B和7C中,如果要减去源,则过程在图7A、7B和7C中概述。此过程是处理IGMP或MLD成员报告的一部分,并且能够与处理添加的源结合或分开执行。IGMP成员报告的示例同样作为示例提供,并且原理适用于处理MLD成员报告和类似多播协议。成员报告的初始处理与上述源的添加相同(方框701-707)。先检查源以前是否在排除列表中并且无需阻塞,随后,从排除列表中将它删除(方框711)。随后,降低源排除计数器(方框745)。随后进行检查以确定源排除计数器和包含计数器是否均为0(方框747)。如果它们均为0,则从接口跟踪表删除源(方框749)。如果它们不是全为0,则过程继续到下一源或群组记录(方框703/707)。在图7B中,降低用于ITT中源的包含计数器的触发是源的计时器在用于订户的IGMP状态中截止时。能够为每个源和/或源和订户维护计时器。此情形能够在如下所述中发生:(1)在以前已被转发的成员报告中的源被阻塞,造成源的计时器截止时,(2)在源计时器由于订户未在发送任何其它成员报告而未刷新时,或者(3)如果用于包含过滤器模式中订户的IGMP群组的群组计时器在用于订户的IGMP状态中截止。在此最后情况下,所有源计时器也将截止(方框708)。在这些操作中,先进行检查以确定是否某个源以前在成员报告的包含列表中,并且无需转发。如果发现情况是如此,则从包含列表中删除该源(方框709)。随后,过程通过降低源包含计数器而继续(方框737)。过程继续的操作是检查以确定源排除和源包含计数器是否均为0(方框741)。如果它们均为0,则从接口跟踪表删除源(方框747)。随后进行检查以确定包含全部源计数器是否也为0(方框750)。如果不是,则过程继续处理下一源。如果包含全部源计数器为0,则检查源是否为群组中的最后源(方框751)。如果源是群组中的最后一个源,则从接口跟踪表中删除群组(方框752)。随后,将更新消息发送到上游路由器以剪除源(方框753)。如果源包含和排除计数器不为0,则进行检查以确定源包含计数器是否等于0,并且排除计数器等于包含全部源计数器(方框755)。如果情况不是如此,则不进行任何操作。如果源包含计数器等于0,并且排除计数器等于包含全部源计数器,则在接口跟踪表中将源设成剪除(方框757)。随后,将更新消息发送到上游路由器以剪除源(方框753)。过程随后结束。图7C是基于接口跟踪表中用于减法的触发条件的流程图。响应用于在排除过滤器模式中的IGMP群组的群组计时器在用于订户的IGMP状态中截止的触发条件(方框764),进行检查以确定如果订户的IGMP群组的过滤器模式从排除模式更改成包含模式,则删除用于该订户的该群组的排除源列表上存在的所有源(方框765)。随后,降低包含全部源计数器(方框767)。接着仅检查带有转发的状态,并且包含计数器等于0,以及在订户的IGMP群组过滤器模式更改时在订户IGMP群组状态的排除源列表上不存在的那些源。对于这些源,随后检查包含全部源计数器是否等于每个源排除计数器(方框770)。在源排除计数器等于包含全部源计数器的情况下,进行设成转发的所有源到剪除状态的切换(方框771)。随后,将更新消息发送到上游路由器以将这些源的每个源更改成剪除状态(方框773)。删除在订户的IGMP群组状态的排除源列表上的任何源(方框775)。随后,过程继续以降低源排除计数器(方框777)。如果存在排除计数器和包含计数器为0的源(方框779),则从接口跟踪表删除源(方框781)。在一个实施例中,系统能够实现为硬件装置集。在另一实施例中,系统组件以软件实现(例如,微代码、汇编语言或更高级语言)。这些软件实现能够存储在非暂时性计算机可读媒体上。非暂时性“计算机可读”媒体能够包括能够存储信息的任何媒体。计算机可读媒体的示例包括只读存储器(ROM)、软盘、CDRom、DVD、闪速存储器、硬盘驱动器、光盘或类似媒体。因此,用于以有效方式管理代理装置上主机预订状态的方法、系统和设备已描述。要理解的是,上述描述旨在是说明性而不是限制性的。在阅读和理解上述描述后,本领域的技术人员将明白许多其它实施例。因此,本发明的范围应参照所附权利要求以及此类权利要求被授权的等同的完全范围来确定。