在非指定路由器处接收多播业务的制作方法

文档序号:7936848阅读:205来源:国知局
专利名称:在非指定路由器处接收多播业务的制作方法
在非指定路由器处接收多播业务
背景技术
协议无关的多播-稀疏模式(PIM-SM)是一种与转发多播业务关联的 协议。在PIM-SM中,指定路由器(DR)负责将多播业务转发到局域网 (LAN)上请求或以其他方式需要多播业务的主机。有时,指定路由器会 出现故障。在某些应用中,指定路由器的故障是所不期望的,因为在网络 恢复期间(例如,几秒)将丢失一些数量的多播业务。在某些情况下,多 播业务包括音频/视频并且收听者/观看者将注意到闪信号。期望一种在指定 路由器出现故障的情况下在较短时间内恢复的技术。


在以下详细说明和附图中披露了本发明的各个实施例,其中
图l是示出处理指定路由器的故障的现有技术的实例的流程图2是示出包括配置为接收而不向下游主机转发所述下游主机已预订
的多播业务的非指定路由器的网络的实施例的图3是示出使用配置为在非指定状态中接收一个或多个多播流的非指
定路由器从指定路由器故障恢复的过程的实施例的流程图4是示出检测指定路由器的故障的过程的实施例的流程图5是示出判定是否成为指定路由器的过程的实施例的流程图6是示出修改现有过程以便能够在非指定路由器处接收业务的过程
的实施例的流程图;以及
图7是示出包括业务接收非指定路由器和非指定路由器的网络的实施
例的图。
具体实施例方式
本发明可以以多种方式实现,包括实现为过程、装置、系统、物质成 分、计算机可读介质(如计算机可读存储介质),或其中通过光或通信链 路发送程序指令的计算机网络。在本说明书中,这些实施方式或本发明可 以采取的任何其他形式可以被称为技术。诸如处理器或存储器的被描述为 配置成执行任务的组件同时包括临时配置为在给定时刻执行该任务的通用 组件和被制造为执行该任务的特定组件。通常,所披露过程的步骤的顺序 可以在本发明的范围内改变。
以下连同图示本发明原理的附图 一起提供了本发明的一个或多个实施 例的详细描述。结合此类实施例描述了本发明,但是本发明并不限于任何 实施例。本发明的范围仅由权利要求限定并且本发明包括大量备选物、修 改物和等同物。在以下描述中提出了大量具体细节以便提供对本发明的彻 底理解。出于实例目的提供了这些细节并且可以在没有某些或全部这些具 体细节的情况下才艮据权利要求实现本发明。为了简洁,未详细描述与本发 明相关的技术领域中公知的技术材料以免不必要地掩盖本发明。
本发明公开了接收多播流。在一些实施例中,在路由器之间使用路由
到多播组的协议,如协议无关的多播-稀疏模式(PIM-SM)。主机发送在 局域网上接收多播流的请求。局域网上的所有路由器都发现该请求。局域 网上的路由器之一被选为指定路由器。该指定路由器负责将多播业务提供 给主机。非指定路由器是指定路由器以外的路由器。公开的是在非指定路 由器处接收多播流。在一些实施例中,使用路由到多播组的协议,如协议 无关的多播-稀疏模式(PIM-SM)。丟弃所接收的多播流。在一些实施例
中,所述过程还包括在所述指定路由器出现故障的情况下将所述多播j;;IL^
送到所述主机。在一些实施例中,所述过程还包括判定是否接收所述多播流。
图l是示出处理指定路由器的故障的现有技术的实例的流程图。在所 示实例中,所述过程由非指定路由器执行,并且所述指定路由器和非指定
路由器被配置为支持协议无关的多播-稀疏模式(PIM-SM)。在PIM-SM中,所述指定路由器负责在局域网(LAN)上转发多播业务。
在100,检测到指定路由器的故障并且决定成为新的指定路由器。例 如,指定路由器和非指定路由器定期交换hello消息。非指定路由器具有定 时器并且如果在定时器即将到期之前未从指定路由器接收到hello消息,则 确定指定路由器出现故障。在一些情况下,存在多个非指定路由器,并且 存在确定哪个非指定路由器成为新的指定路由器的过程。在一些实施例中, 使用hello消息交换优先级值并且具有最高优先级值的非指定路由器将成 为新的指定路由器。
在102,发送接收多播流的请求。在此实例中,支持PIM-SM并且4吏 用PIM Join消息。将PIM Join消息从新的指定路由器向上游(经由4壬何 数量的中间节点或路由器)传递到特定多播流的源。如在此4吏用的,下游 指朝向发出请求的主机并且远离给定多播流的源的方向;上游指相反的方 向。如在此使用的,流指在网络上承载的一组逻辑或关联信息(例如,从 特定源到特定组/多播地址);业务通常指在网络上承载的信息。例如,多 播业务可以包括与网际协议电视(IPTV)关联的内容; 一个多播流与来自 一个电视频道的内容关联,而另 一个多播流与来自另 一个电视频道的内容 关联。
在104,在新的指定路由器处从多播流的源接收多播流。新的指定路 由器将所接收的多播流转发到局域网上发出请求的主机。
在此实例中,从指定路由器故障恢复的时间量等于故障检测时间(即, 步骤IOO)、向上游发送请求的时间(即,步骤102),以及在主机处接收 到多播流的时间(即,步骤104)的总和。在某些情况下,恢复时间在几 秒钟的量级,如果可以减小恢复时间,则这是所期望的。
图2是示出包括配置为接收而不向下游主机转发所述下游主机已预订 的多播业务的非指定路由器的网络的实施例的图。在所示实例中,发出请 求的主机210请求由源200生成的多播流。局域网212包括指定路由器206、 接收业务的非指定路由器208,以;SJC出请求的主机210。使用以太网连接 来连接局域网212中的设备。在一些实施例中,除以太网连接以外,还使用某些其他类型的广播连接。指定路由器206与路由器202相连。接收业 务的非指定路由器208与路由器204相连,后者又与路由器202相连。路 由器202与源200相连。在一些实施例中,网络与在此示出的实例不同(例 如,不同的拓朴、组件、连接类型等)。
在一些实施例中,使用PIM-SM和网际組管理协议(IGMP)。例如, 指定路由器206、接收业务的非指定路由器208以及发出请求的主机210 使用IGMP来管理实例多播组。路由器202、204、206以及208使用PIM-SM 来执行实例多播组的路由。在各个实施例中,使用除PIM-SM和/或IGMP 以外的一个或多个协议。
在此实例中,指定路由器206负责在局域网212上转发多播流。例如, 在确定其应为指定路由器之后,指定路由器206向上游发送PIM Join( PIM 加入)。为了正确地转发或路由PIM Join消息,指定路由器206可以查询 路由表并且将PIM Join消息发送到路由器202。在接收到PIM Join消息 时,路由器200可以查询其自己的路由表并将PIM Join消息转发到源200。 经由路由器202和指定路由器206将期望的多播流从源200发送到发出请 求的主机210。在某些情况下(例如,路由器202具有在其他接口上的已 请求所述多播流的其他主机),路由器202可能已正在接收期望的多播流, 在此情况下,路由器202可以简单地将所述多播流转发到指定路由器206 而不继续将PIM Join转发到源200。
接收业务的非指定路由器208被配置为吸引由局域网请求的多播流, 尽管其是非指定路由器。在一些实施例中,接收业务的非指定路由器208 使用与指定路由器206相同类型的消息来向源200指示或以其他方式发信 号通知源200其需要特定多播流。例如,接收业务的非指定路由器208可 以经由路由器204和202向源200发送PIM Join消息。路由器202、 204 和208均可以查询路由表来确定要向其发送PIM Join消息的下一节点或路 由器。在接收到PIM Join消息后,从源200向接收业务的非指定路由器 208发送多播流。在某些情况下,源200与接收业务的非指定路由器208 之间的中间路由器(即,路由器202或204)已正在接收期望的多播流并且向下游发送多播流而不进一步向下游发送PIM Join消息。
尽管接收业务的非指定路由器208接收到多播流,但是其并不通过因 特网连接将该多播流转发到发出请求的主机210。在一些实施例中,接收 业务的非指定路由器208仅在其确定指定路由器206已出现故障并且路由 器208被选为指定路由器的情况下才转发所接收的多播流。以下进一步详 细描述了确定指定路由器已出现故障的实施例。
当使用接收业务的非指定路由器时,恢复时间等于检测故障的时间量 (例如,而不是如图l的过程中,等于故障检测时间、向上游发送请求的 时间,以及开始在新确定的指定路由器处接收多播流的时间的总和)。在 某些应用中,在指定路由器出现故障的情况下较快的恢复时间是所期望的。 在一些实施例中,多播流包括"实时"内容。例如,多播流可以是运动游 戏的IPTV数据。在这些和其他情况下,期望减少恢复时间。
在一些实施例中,将在此披露的技术与其他技术组合或使用其他技术 补充在此披露的才支术以实现进一步的改进。例如,能够在相对较短的时间 内(例如,在毫秒的量级)检测指定路由器的故障的过程或机制可以是有 吸引力的。在一些实施例中,使用双向转发检测(BFD)。当使用此类实 施例时,将显著减少故障检测时间并且恢复时间处于毫秒的量级。
在一些实施例中,局域网212包括附加的非指定路由器。在各个实施 例中,以多种方式处理这些附加的非指定路由器是否同样接收多播业务。 在一些实施例中,路由器是硬编码的或固定的并且所有非指定路由器都被 配置为接收多播业务。在一些实施例中,存在某些能够通过其单独配置每 个路由器是否接收多播业务的参数或变量。
在一些实施例中,基于网络拓朴和/或业务负荷来确定哪个非指定路由 器接收多播业务。例如,如果网络具有相对较少的业务,则使所有非指定 路由器都接收多播业务可能几乎没有或没有困难。作为在此类决策中如何 考虑网络拓朴的实例,在一些实施例中,如果与给定非指定路由器关联的 路径或路线和与指定路由器关联的路径或路线重叠的跳数(或某些其他测 量单位)超过给定数量,则该非指定路由器将接收多播流。在一些实施例中,手动地设置特定非指定路由器接收业务的设置。例 如,某些网络拓朴的更改4艮少发生并且网络管理员配置新安装的非指定路 由器是否接收多播业务。在一些实施例中,可以提供远程访问以配置此类 设置。例如,管理在广大地理区域上分布的网络(例如,在许多地点都具 有办公室的公司)的网络管理员可能希望具有能力来远程地访问特定非指 定路由器并开启/关闭该路由器的多播流接收(例如,响应于网络拓朴和/ 或业务负荷变化)。在一些实施例中,自动地设置特定非指定路由器接收 业务的设置。例如,非指定路由器可以建立网络的部分或完整的图和/或监 视业务并相应地配置自身是否接收多播流。
尽管在此描述的某些实例示出了单个多播流,但是在一些实施例中, 存在多个多播流。在各个实施例中,给定源生成两个或更多个多播流,给 定接收业务的非指定路由器接收两个或更多个多播流,和/或给定主机接收 两个或更多个多播流。可以适当修改在此披露的技术以适合两个或更多个 多播流。
图3是示出4吏用配置为在非指定状态中接收一个或多个多播流的非指 定路由器从指定路由器故障恢复的过程的实施例的流程图。在一些实施例 中,由图2的接收业务的非指定路由器208执行图3的过程。
在300,判定是否成为接收业务的非指定路由器。在一些实施例中, 在做出此判定时查询或访问寄存器或布尔变量。在一些实施例中,非指定 路由器被硬编码以接收多播业务。在一些实施例中,非指定路由器的某些 子集接收多播业务。如果判定接收业务,在302,发送接收多播流的请求。 例如,接收业务的非指定路由器208经由图2中的路由器204和202将PIM Join消息向上游发送到源200。在一些实施例中,在302发送的消息包括 源地址(例如,源200的地址)和/或与多播流关联的多播地址。在304, 接收多播流但 不将其发送到发出请求的主机。例如,源200经由路由器 202和204将多播流向下游发送到接收业务的非指定路由器208,但是接收 业务的非指定路由器208不在连接到发出请求的主机210的以太网端口上 发出该多播流。在306,判定是否检测到指定路由器故障。在各个实施例中,可以使 用任何适合的故障检测机制或技术。在一些实施例中,定期交换hello消息 并且如果接收业务的非指定路由器在某些时段内未从指定路由器接收到 hello消息,则其断定指定路由器出现故障。如果未检测到故障,则在306 执行新的故障判定。
如果判定存在故障,则在308决定是否成为指定路由器。以下进一步 详细描述了一个实施例。
如果决定不成为指定路由器,则在306执行新的故障判定。例如,成 为新的指定路由器的接收业务的非指定路由器可能发生故障并且另一接收 业务的非指定路由器可能必须作为下一指定路由器进行接管。如果决定成 为指定路由器,则在310向发出请求的主机发送多播流。所述路由器已接 收多播流并且现在将其转发到发出请求的主机而不是丢弃该多播流。
图4是示出检测指定路由器的故障的过程的实施例的流程图。在一些 实施例中,由接收业务的非指定路由器执行该过程。在一些实施例中,在 图3的步骤306处使用该实例过程。在一些实施例中,使用某些其他过程 来检测指定路由器的故障。
在400,判定事件的类型。如果接收到hello消息,则在402,重置超 时计数器。在此实例中,超时计数器自由运行并且自最后接收hello消息以 来向上/向下进行计数。如果事件类型是超时,则在404,断定指定路由器 出现故障。
图5是示出判定是否成为指定路由器的过程的实施例的流程图。在所 示实例中,由接收业务的非指定路由器执行该过程。在一些实施例中,在 图3的步骤308处使用该实例过程。在一些实施例中,使用某些其他过程。
在500,判定是否存在多于一个非指定路由器。如果仅有一个非指定 路由器,则在510,其成为新的指定路由器。否则,在502,根据现有的邻 居路由器信息评估一组指定路由器优先级。
在506,执行优先级比较。如果执行所述过程的路由器不具有最高优 先级值,则所述过程结束。如果其具有最高优先级值并且存在平局(tie),则在508判定其是否贏得平局(win the tie)。如果是,则在510其成为新
的指定路由器。如果所述路由器具有最高优先级值并且不存在平局,则在
510其成为新的指定路由器。
在一些实施例中,采取步骤确保成为新的指定路由器的非指定路由器
是接收业务的非指定路由器。在一些实施例中,设置优先级值以使得接收 业务的非指定路由器始终具有最高优先级值。在某些应用中,可能难以控
制优先级值。在一些实施例中,具有最高优先级的非指定路由器被配置为 接收多播流。
图6是示出修改现有过程以便能够在非指定路由器处接收业务的过程 的实施例的流程图。在所示实例中,现有过程可以以各种方式实现,包括 以*更件(例如,专用集成电路(ASIC)或现场可编程门阵列(FPGA)) 和/或以软件(例如,固件、宏、可执行代码等)实现。
在600,适当地修改生成接收多播流的请求的过程。某些现有路由器
只有在其是指定路由器时才生成接收多播流的请求。在其中非指定路由器 始终接收多播流的一些实施例中取消此检查。在一些实施例中,非指定路 由器是否接收多播流是可配置的。在一些实施例中,修改生成接收多播流 的请求的过程,以便根据用于开启/关闭多播流接收的寄存器、设置或布尔 值来生成此类请求。
在602,修改转发过程以便在路由器是非指定路由器时丟弃所接收的 多播流。在一些实施例中,修改转发过程以包括路由器是指定路由器的检 查,否则,丢弃所接收的多播流。
在604,更新路由器以使用修改后的过程。在一些实施例中,固件或 新的可执行指令净皮分发给路由器并用于更新路由器。
路由器以各种方式实现并且在各个实施例中需要不同的修改。上述修 改只是实例。
图7是示出包括业务接收非指定路由器和非指定路由器的网络的实施 例的图。在此实例中,非指定路由器702和接收业务的非指定路由器700 包括在局域网704中。在此实例中,非指定路由器702不接收与源706关联的发出请求的主机708所期望的多播流。在此实例中,路由器700和702 都能够从源706接收多播流,但是由于实例网络的拓朴,非指定路由器702 被配置为不接收业务。虽然接收业务的非指定路由器700和指定路由器710 具有相对类似的路径(仅在路由器714的下游不同),但是指定路由器710 和非指定路由器702具有相对不同的路径(例如,分别经过路由器714和 714以及路由器716和718 )。从源706通过路由器716和718向非指定路 由器702发送多播流会负面地影响通过这些路由器的其他业务。
尽管为了理解的清晰以某些细节描述了上述实施例,但是本发明并不 限于所提供的细节。存在许多实现本发明的备选方式。所披露的实施例是 示例性的而非限制性的。
权利要求
1.一种接收多播流的方法,包括在非指定路由器处接收多播流,就所述多播流而言,所述非指定路由器并不是负责向主机发送所述多播流的指定路由器;以及丢弃所接收的多播流。
2. 如权利要求l所述的方法,还包括发送在所述非指定路由器处接 收所述多播流的请求。
3. 如权利要求l所述的方法,还包括判定是否接收所述多播流。
4. 如权利要求1所述的方法,还包括至少部分基于网络拓朴和/或 业务负荷来判定是否接收所述多播流。
5. 如权利要求l所述的方法,还包括检测所述指定路由器的故障。
6. 如权利要求l所述的方法,还包括至少部分基于超时来检测所述 指定路由器的故障。
7. 如权利要求l所述的方法,还包括在所述指定路由器出现故障的 情况下将所接收的多播流发送到所述主机。
8. 如权利要求l所述的方法,还包括在所述指定路由器出现故障的 情况下如果存在多个接收所述多播流的非指定路由器,则判定是否将所接收 的多播i谈送到所述主机;以及如果判定将所接收的多播流发送到所述主机,则执行此操作。
9. 如权利要求1所述的方法,其中使用协议无关的多播-稀疏模式 (PIM画SM)。
10. 如权利要求l所述的方法,其中使用网际組管理协议(IGMP)。
11. 如权利要求l所述的方法,其中所述多播流包括与网际协议电视 (IPTV)关联的彩:据。
12. —种接收多播流的系统,包括 非指定路由器,被配置为接收多播流,就所述多播流而言,所述非指定路由器并不是负责向主机发送所述多播流的指定路由器;以及 丢弃所接收的多播流。
13. 如权利要求12所述的系统,其中所述非指定路由器还被配置为 发送在所述非指定路由器处接收所述多播流的请求。
14. 如权利要求12所述的系统,其中所述非指定路由器还被配置为 判定是否接收所述多播流。
15. 如权利要求12所述的系统,其中所述非指定路由器还被配置为 检测所述指定路由器的故障。
16. 如权利要求12所述的系统,其中所述非指定路由器还被配置为 在所述指定路由器出现故障的情况下将所接收的多播^^送到所述主机。
17. 如权利要求12所述的系统,其中在所述指定路由器出现故障的情 况下,所述非指定路由器还被配置为如果存在多个接收所述多播流的非指定路由器,则判定是否将所接收 的多播流发送到所述主机;以及如果判定将所接收的多播流发送到所述主机,则执行此操作。
18. —种接收多播流的计算机程序产品,所述计算机程序产品体现在 计算机可读介质中并且包括用于执行以下操作的计算机指令在非指定路由器处接收多播流,就所述多播流而言,所述非指定路由 器并不是负责向主机发送所述多播流的指定路由器;以及 丢弃所接收的多播流。
19. 如权利要求18所述的计算机程序产品,所述计算枳一呈序产品还包 括用于执行以下操作的计算机指令发送在所述非指定路由器处接收所述 多播流的请求。
20. 如权利要求18所述的计算机程序产品,所述计算积一呈序产品还包 括用于执行以下操作的计算机指令判定是否接收所述多播流。
21. 如权利要求18所述的计算机程序产品,所述计算;^序产品还包 括用于执行以下操作的计算机指令检测所述指定路由器的故障。
22. 如权利要求18所述的计算机程序产品,所述计算枳一呈序产品还包 括用于执行以下操作的计算机指令在所述指定路由器出现故障的情况下 将所接收的多播流发送到所述主机。
23. 如权利要求18所述的计算机程序产品,其中在所述指定路由器出 现故障的情况下,所述计算机程序产品还包括用于执行以下操作的计算机 指令如果存在多个接收所述多播流的非指定路由器,则判定是否将所接收 的多播流发送到所述主机;以及如果判定将所接收的多播流发送到所述主机,则执行此操作。
全文摘要
接收多播流。在非指定路由器处接收多播流,就所述多播流而言,所述非指定路由器并不是负责向主机发送所述多播流的指定路由器。丢弃所接收的多播流。
文档编号H04L12/56GK101617512SQ200880005835
公开日2009年12月30日 申请日期2008年2月13日 优先权日2007年2月23日
发明者J·克塔尔沃, S·博达帕蒂, V·V·海米格 申请人:阿尔卡特朗讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1