太阳城集团

  • / 24
  • 下载费用:30 金币  

本地局域网中组播流量转发方法及组播路由器.pdf

摘要
申请专利号:

太阳城集团CN201110102021.0

申请日:

2011.04.22

公开号:

CN102158415B

公开日:

2015.01.28

当前法律状态:

授权

有效性:

有权

法律详情: 授权|||实质审查的生效IPC(主分类):H04L 12/56申请日:20110422|||公开
IPC分类号: H04L12/70(2013.01)I; H04L12/18 主分类号: H04L12/70
申请人: 中兴通讯股份有限公司
发明人: 林智
地址: 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部
优先权:
专利代理机构: 深圳市世纪恒程知识产权代理事务所 44287 代理人: 胡海国
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201110102021.0

授权太阳城集团号:

102158415B||||||

法律状态太阳城集团日:

2015.01.28|||2012.12.12|||2011.08.17

法律状态类型:

授权|||实质审查的生效|||公开

摘要

本发明涉及一种本地局域网中组播流量转发方法及组播路由器,其方法包括:非DR在非DR本地加入接口检测到DR转发的组播流量时,进入延迟等待状态;若延迟等待超时,则向RP或S方向的上游路由器发送PIM加入消息;从RPT或SPT接收到组播流量后,向本地局域网转发组播流量;接收DR在下游出接口检测到组播流量时发出的Assert消息;根据Assert消息及本地路由度量值,与DR竞争转发组播流量。本发明通过引入非DR本地加入接口概念,并扩展Assert过程对非DR本地加入接口类型的处理,非DR根据Assert消息及本地路由度量值与DR竞争转发组播流量,实现本地局域网中没有下游组播路由器时,主机接收者仍是从位于RP或S到本地局域网最优路径上的路由器接收组播流量,从而达到对网络资源的优化利用。

权利要求书

1.一种本地局域网中组播流量转发方法,其特征在于,包括:非指定路由器非DR在非DR本地加入接口检测到DR转发的组播流量时,进入延迟等待状态;若延迟等待超时,则向汇聚点RP或数据源S方向的上游路由器发送独立组播协议PIM加入消息,生成共享树RPT或有源树SPT;从RPT或SPT接收到组播流量后,向本地局域网转发所述组播流量;接收DR在下游出接口检测到组播流量时发出的断言Assert消息;根据所述Assert消息及本地路由度量值,与所述DR竞争转发所述组播流量。2.根据权利要求1所述的方法,其特征在于,所述根据Assert消息及本地路由度量值,与所述DR竞争转发所述组播流量的步骤包括:将收到的Assert消息与本地路由度量值进行比较;若本地路由度量值优于收到的Assert消息,则从非DR本地加入接口继续转发组播流量,并发送Assert消息;否则停止转发组播流量,继续由DR负责向本地局域网转发组播流量。3.根据权利要求2所述的方法,其特征在于,所述非DR在非DR本地加入接口检测到DR转发的组播流量时,进入延迟等待状态的步骤之前还包括:所述非DR与所述本地局域网内的DR及其他非DR一同接收主机接收者发送的组管理协议IGMP加入消息,由DR负责向RP或S方向的上游路由器发送PIM加入消息及从RPT或SPT接收组播流量,并向本地局域网转发。4.根据权利要求1所述的方法,其特征在于,所述非DR的非DR本地加入接口是指有收到IGMP加入消息,但没有收到PIM加入消息且未被选为DR的接口。5.根据权利要求1所述的方法,其特征在于,延迟等待的太阳城集团根据到达RP或S的路由度量值计算;其中,路由度量值越小,延迟等待太阳城集团越短。6.根据权利要求3所述的方法,其特征在于,若非DR本地加入接口收到的是IGMPv3加入消息,则非DR向S方向发送PIM(S,G)消息;若非DR本地加入接口收到的是IGMPv2加入消息,则非DR向RP方向发送PIM(*,G)消息。7.根据权利要求1-6中任一项所述的方法,其特征在于,所述DR发送的Assert消息的类型由DR当前所处转发状态决定:当DR使用SPT转发时,则为Assert(S,G)消息;当DR使用RPT转发时,则为Assert(*,G)消息。8.根据权利要求7所述的方法,其特征在于,还包括:在延迟等待未超时期间,当所述非DR收到DR在下游出接口检测到组播流量时发出的Assert消息时,根据所述Assert消息及本地路由度量值,与所述DR竞争转发所述组播流量。9.根据权利要求6所述的方法,其特征在于,所述根据Assert消息及本地路由度量值,与所述DR竞争转发所述组播流量的步骤进一步包括:当所述主机接收者发送IGMPv2加入消息且所述非DR为最后一跳并满足本地SPT切换条件时,所述非DR完成从RPT到SPT的切换,之后竞争转发从SPT接收的组播流量。10.一种本地局域网中组播流量转发的组播路由器,其特征在于,包括:延迟等待模块,用于在所述组播路由器的非DR本地加入接口检测到DR转发的组播流量时,进入延迟等待状态;加入消息发送模块,用于当延迟等待超时,向RP或S方向的上游路由器发送PIM加入消息,生成共享树RPT或有源树SPT;组播流量转发模块,用于从RPT或SPT接收到组播流量后,向本地局域网转发所述组播流量;消息接收模块,用于接收DR在下游出接口检测到组播流量时发出的Assert消息;竞争转发模块,用于根据所述Assert消息及本地路由度量值,与所述DR竞争转发所述组播流量。11.根据权利要求10所述的组播路由器,其特征在于,所述竞争转发模块包括:比较单元,用于将收到的Assert消息与本地路由度量值进行比较;转发控制单元,用于当本地路由度量值优于收到的Assert消息时,控制组播流量转发模块从非DR本地加入接口继续转发组播流量,并发送Assert消息;否则停止转发组播流量,继续由DR负责向本地局域网转发组播流量。12.根据权利要求10所述的组播路由器,其特征在于,所述竞争转发模块还用于在延迟等待未超时期间,且消息接收模块收到DR在下游出接口检测到组播流量时发出的Assert消息时,根据所述Assert消息及本地路由度量值,与所述DR竞争转发所述组播流量。13.根据权利要求10所述的组播路由器,其特征在于,所述竞争转发模块还用于当所述主机接收者发送IGMPv2加入消息,且所述路由器为最后一跳并满足本地SPT切换条件时,完成从RPT到SPT的切换,之后竞争转发从SPT接收的组播流量。

说明书

本地局域网中组播流量转发方法及组播路由器

技术领域

太阳城集团本发明涉及通信技术领域,尤其涉及一种用来实现主机接收者从数据源到本地局域网最优路径上的组播路由器接收组播流量的本地局域网中组播流量转发方法及组播路由器。

背景技术

组播是一种带宽节约技术,在组播技术中,数据源只发送一份流量,所有且只有加入组播组的主机接收者都可以收到相同的流量。目前,被广泛使用的三层组播技术包括PIM-SM(Protocol Independent Multicast-Sparse Mode,独立组播协议稀疏模式),PIM-SSM(Protocol Independent Multicast-Source Specific Multicast,独立组播协议源特定组播)和IGMP(Internet Group Management Protocol,Internet组管理协议),其中,PIM用于组播路由器(以下简称路由器)之间,IGMP用于本地局域网主机和路由器之间。

太阳城集团通常主机接收者通过向本地局域网中的路由器发送IGMP加入太阳城集团,以表达希望接收到的组播流量,当本地局域网中有多台路由器时,选举出来的DR(Designated Router,指定路由器)负责代表本地局域网中的主机接收者向RP(Rendezvous Point,汇聚点)或S(数据源)方向的上游路由器发送PIM(Protocol Independent Multicast,独立组播协议)加入消息,生成RPT(Rendezvous Point Tree,共享树)或SPT(Shortest Path Trees,有源树),接收组播流量并向本地局域网转发。

根据DR的选举规则“优先级最大或优先级相同的情况下,IP地址最大的路由器成为DR”,显然不能动态的保证DR一直处于数据源S到本地局域网的最优路径上。

太阳城集团如果本地局域网的下游接收者中还存在路由器,则下游路由器会向MRIB(Multicast Routing Information Base,组播路由太阳城集团库)指出的到RP或S的最优路径的下一跳路由器发送PIM加入消息。当下游路由器选择的下一跳不是DR时,就会有两台路由器同时向本地局域网转发组播流量,触发Assert(断言)过程,最终由Assert Winner(经Assert过程的获胜者)负责向本地局域网转发组播流量。其中,Assert判定规则为:都采用SPT转发时,距离数据源S最近的路由器获胜;如果一个用SPT转发,另外一个用RPT转发,用SPT转发的路由器获胜;都用RPT转发时,距离RP最近的路由器获胜。可见,经Assert过程,本地局域网从距RP或S最近的Assert Winner接收流量,并且Assert Winner将负责代表本地局域网中的主机接收者向上游路由器加入或离开。

太阳城集团如果本地局域网的下游接收者中没有路由器,如用户接入网络,根据PIM-SM协议对宏CouldAssert(S,G,I)(SPT可断言)和宏CouldAssert(*,G,I)(RPT可断言)的定义,本地局域网中非DR组播路由器的接口都不属于CouldAssert(可断言)范围,不会有Assert过程。所以,当本地局域网中只有主机接收者而没有下游路由器时,一定是DR负责向上游发送PIM加入消息,并向本地局域网转发组播流量。因此,本地局域网就可能不是从距离RP或S最近的路由器接收组播流量。

如图1所示,本地局域网A中只有下游主机接收者,DR R5将代表接收者Host1向RP发送PIM加入消息,生成经由R1、R2、R5的RPT。经SPT切换后,生成经R1、R2、R5的SPT。网络中有3台路由器要记录相关的组播路由太阳城集团,有2条链路要承载从数据源网络到接收者网络的组播流量。从网络拓扑看,非DR R4处于数据源S到本地局域网A的最优路径上。

因此,当下游主机接收者中不存在路由器时,现有组播路由技术限制了只有DR能代表主机接收者向上游发送PIM加入消息并向本地局域网转发组播流量,当DR不能处于数据源到本地局域网的最优路径上时,就存在网络资源浪费的情况。

发明内容

本发明的主要目的在于提供一种本地局域网中组播流量转发方法及组播路由器,旨在避免因完全依靠DR转发造成的路由器处理资源和链路带宽资源的浪费。

太阳城集团为了达到上述目的,本发明提出一种本地局域网中组播流量转发方法,包括:

太阳城集团非指定路由器非DR在非DR本地加入接口检测到DR转发的组播流量时,进入延迟等待状态;

若延迟等待超时,则向汇聚点RP或数据源S方向的上游路由器发送独立组播协议PIM加入消息,生成共享树RPT或有源树SPT;

从RPT或SPT接收到组播流量后,向本地局域网转发所述组播流量;

接收DR在下游出接口检测到组播流量时发出的断言Assert消息;

根据所述Assert消息及本地路由度量值,与所述DR竞争转发所述组播流量。

太阳城集团优选地,所述根据Assert消息及本地路由度量值,与所述DR竞争转发所述组播流量的步骤包括:

将收到的Assert消息与本地路由度量值进行比较;

太阳城集团若本地路由度量值优于收到的Assert消息,则从非DR本地加入接口继续转发组播流量,并发送Assert消息;否则停止转发组播流量,继续由DR负责向本地局域网转发组播流量。

太阳城集团优选地,所述非DR在非DR本地加入接口检测到DR转发的组播流量时,进入延迟等待状态的步骤之前还包括:

太阳城集团所述非DR与所述本地局域网内的DR及其他非DR一同接收主机接收者发送的组管理协议IGMP加入消息,由DR负责向RP或S方向的上游路由器发送PIM加入消息及从RPT或SPT接收组播流量,并向本地局域网转发。

优选地,所述非DR的非DR本地加入接口是指有收到IGMP加入消息,但没有收到PIM加入消息且未被选为DR的接口。

太阳城集团优选地,延迟等待的太阳城集团根据到达RP或S的路由度量值计算;其中,路由度量值越小,延迟等待太阳城集团越短。

优选地,若非DR本地加入接口收到的是IGMPv3加入消息,则非DR向S方向发送PIM(S,G)消息;若非DR本地加入接口收到的是IGMPv2加入消息,则非DR向RP方向发送PIM(*,G)消息。

优选地,所述DR发送的Assert消息的类型由DR当前所处转发状态决定:当DR使用SPT转发时,则为Assert(S,G)消息;当DR使用RPT转发时,则为Assert(*,G)消息。

优选地,还包括:

在延迟等待未超时期间,当所述非DR收到DR在下游出接口检测到组播流量时发出的Assert消息时,根据所述Assert消息及本地路由度量值,与所述DR竞争转发所述组播流量。

优选地,所述根据Assert消息及本地路由度量值,与所述DR竞争转发所述组播流量的步骤进一步包括:

太阳城集团当所述主机接收者发送IGMPv2加入消息且所述非DR为最后一跳并满足本地SPT切换条件时,所述非DR完成从RPT到SPT的切换,之后竞争转发从SPT接收的组播流量。

本发明还提出一种本地局域网中组播流量转发的组播路由器,包括:

延迟等待模块,用于在所述组播路由器的非DR本地加入接口检测到DR转发的组播流量时,进入延迟等待状态;

加入消息发送模块,用于当延迟等待超时,向RP或S方向的上游路由器发送PIM加入消息,生成共享树RPT或有源树SPT;

组播流量转发模块,用于从RPT或SPT接收到组播流量后,向本地局域网转发所述组播流量;

太阳城集团消息接收模块,用于接收DR在下游出接口检测到组播流量时发出的Assert消息;

竞争转发模块,用于根据所述Assert消息及本地路由度量值,与所述DR竞争转发所述组播流量。

太阳城集团优选地,所述竞争转发模块包括:

比较单元,用于将收到的Assert消息与本地路由度量值进行比较;

转发控制单元,用于当本地路由度量值优于收到的Assert消息时,控制组播流量转发模块从非DR本地加入接口继续转发组播流量,并发送Assert消息;否则停止转发组播流量,继续由DR负责向本地局域网转发组播流量。

太阳城集团优选地,所述竞争转发模块还用于在延迟等待未超时期间,且消息接收模块收到DR在下游出接口检测到组播流量时发出的Assert消息时,根据所述Assert消息及本地路由度量值,与所述DR竞争转发所述组播流量。

优选地,所述竞争转发模块还用于当所述主机接收者发送IGMPv2加入消息,且所述路由器为最后一跳并满足本地SPT切换条件时,完成从RPT到SPT的切换,之后竞争转发从SPT接收的组播流量。

太阳城集团本发明提出的一种本地局域网中组播流量转发方法及组播路由器,通过引入非DR本地加入接口概念,并扩展Assert过程对非DR本地加入接口类型的处理,非DR根据Assert消息及本地路由度量值与DR竞争转发组播流量,实现了本地局域网中没有下游组播路由器时,主机接收者仍是从位于RP或S到本地局域网最优路径上的路由器接收组播流量,从而达到对网络资源的优化利用,避免因完全依靠DR转发造成的路由器处理资源和链路带宽资源的浪费。

附图说明

图1是现有协议实现组播流量转发的示意图;

太阳城集团图2是本发明本地局域网中组播流量转发方法一实施例流程示意图;

图3是本发明本地局域网中组播流量转发方法一实施例中根据Assert消息及本地路由度量值,与DR竞争转发组播流量的流程示意图;

太阳城集团图4是本发明本地局域网中组播流量转发方法一实施例中PIM-SSM结合IGMPv3网络处理流程示意图;

太阳城集团图5是本发明本地局域网中组播流量转发方法一实施例中PIM-SM结合IGMPv2网络前期处理流程示意图;

图6是图5所示的当DR转发RPT流量的后期处理流程示意图;

图7是图5所示的当DR转发SPT流量的后期处理流程示意图;

太阳城集团图8是本发明本地局域网中组播流量转发的组播路由器一实施例结构示意图;

图9是本发明本地局域网中组播流量转发的组播路由器一实施例中竞争转发模块的结构示意图。

为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。

具体实施方式

本发明实施例解决方案主要是:通过引入非DR本地加入接口概念,并扩展Assert过程对非DR本地加入接口类型的处理,非DR根据Assert消息及本地路由度量值与DR竞争转发组播流量,实现本地局域网中没有下游组播路由器时,主机接收者仍是从位于RP或S到本地局域网最优路径上的路由器接收组播流量,达到对网络资源的优化利用。

如图2所示,本发明一实施例提出一种本地局域网中组播流量转发方法,包括:

步骤S101,非DR在非DR本地加入接口检测到DR转发的组播流量时,进入延迟等待状态;

其中,非DR在非DR本地加入接口检测到DR转发的组播流量是DR从RPT或SPT接收的组播流量向本地局域网转发的。当主机接收者希望接收某组播流量时,主机接收者向本地局域网内的多台组播路由器发送IGMP加入消息,非DR与本地局域网内的DR及其他非DR一同接收主机接收者发送的IGMP加入消息,并由DR负责向RP或S方向的上游路由器发送PIM加入消息,建立RPT或SPT,并从RPT或SPT接收组播流量向本地局域网转发。

本实施例中主机接收者为本地局域网中没有下游组播路由器的主机接收者。

太阳城集团非DR的非DR本地加入接口是指有收到IGMP加入消息,但没有收到PIM加入消息且未被选为DR的接口。

太阳城集团延迟等待的太阳城集团根据到达RP或S的路由度量值计算;其中,路由度量值越小,延迟等待太阳城集团越短。

步骤S102,若延迟等待超时,则向RP或S方向的上游路由器发送PIM加入消息,生成共享树RPT或有源树SPT;

太阳城集团步骤S103,从RPT或SPT接收到组播流量后,向本地局域网转发组播流量;

太阳城集团步骤S104,接收DR在下游出接口检测到组播流量时发出的Assert消息;

步骤S105,根据Assert消息及本地路由度量值,与DR竞争转发组播流量。

上述步骤S102-步骤S105中,当延迟等待超时后,非DR向RP或S方向的上游路由器发送PIM加入消息,并生成共享树RPT或有源树SPT。非DR从RPT或SPT接收到组播流量后向本地局域网转发,DR在下游出接口检测到组播流量时发生Assert过程,非DR收到DR发出的Assert消息,加入对Assert Winner的竞争。

太阳城集团DR发生的Assert过程与协议RFC4601 PIM-SM:Protocol Specification(Revised)规定一致,DR发送的Assert消息的类型由DR当前所处转发状态决定:当DR使用SPT转发时,则为Assert(S,G)消息;当DR使用RPT转发时,则为Assert(*,G)消息。

非DR本地加入接口发生的Assert过程是指将收到的Assert消息与本地路由度量值进行比较。如果非DR的本地路由度量值优于收到的Assert消息,则非DR本地加入接口进入Assert Winner状态,继续转发组播流量,并发送Assert消息。当DR的下游出接口收到优于自己的Assert消息,则进入Assert Loser状态,停止转发组播流量。至此,到RP或S最优路径上的非DR负责向本地局域网转发组播流量。如果非DR的本地路由度量值不能优于收到的Assert消息,则非DR本地加入接口进入Assert Loser状态,停止转发组播流量,继续由DR负责向本地局域网转发流量。

太阳城集团其中,PIM加入消息的类型由非DR在本地加入接口收到的IGMP加入消息的版本决定:若收到的是IGMPv3加入消息,则非DR向S方向发送PIM(S,G)消息;若非DR在本地加入接口收到的是IGMPv2加入消息,则非DR向RP方向发送PIM(*,G)消息。

当主机接收者发送IGMPv2加入消息且非DR为最后一跳并满足本地SPT切换条件,则非DR进行从RPT到SPT的切换,完成切换之后竞争转发从SPT接收的组播流量。

太阳城集团此外,在延迟等待未超时期间,当非DR收到DR在下游出接口检测到组播流量时发出的Assert消息时,非DR根据Assert消息及本地路由度量值,与DR竞争转发组播流量。

如图3所示,步骤S105包括:

太阳城集团步骤S1051,非DR将收到的Assert消息与本地路由度量值进行比较;

步骤S1052,若本地路由度量值优于收到的Assert消息,则从非DR本地加入接口继续转发组播流量,并发送Assert消息;否则停止转发组播流量,继续由DR负责向本地局域网转发组播流量。

由上述可知,本地局域网中的组播路由器在满足相应条件的情况下均可以参与组播流量转发的竞争过程,与现有技术相比较,本实施例引入一种新的接口概念——非DR本地加入接口。通过扩展Assert过程对这种接口类型的处理,实现本地局域网中没有下游组播路由器时,主机接收者仍是从位于RP或S到本地局域网最优路径上的路由器接收组播流量,从而达到对网络资源的优化利用。

下面根据网络中使用的不同组播路由技术对本发明实现本地局域网主机接收者以最优路径接收组播流量的方法分两种情况进行说明。

太阳城集团情况(一):PIM-SSM结合IGMPv3;路由器间使用PIM-SSM协议,路由器和主机间使用IGMPv3协议。这种情况的特点是网络中只有SPT,不存在RPT向SPT的切换过程。

上述情况(一)使用到的变量说明如下:

非DR本地加入接口宏定义:

Non_DR_CouldAssert(S,G,I)=(RPF_interface(S)!=I);

太阳城集团AND(I_am_not_DR(I)AND local_receiver_include(S,G,I)==TRUE);

太阳城集团AND  (I not in  (joins(*,*,RP(G))(+)joins(*,G)(+)joins(S,G)))。

非DR本地加入接口满足以下条件:

太阳城集团不是到数据源S的RPF(反向路径转发)接口;

收到IGMPv3加入消息,但本身不是DR;

没有收到过PIM加入消息;

spt_assert_metric(S,I):非DR路由器到数据源S的路由度量值,计算方法与RFC4601定义一致。

太阳城集团Non_DR_DataTrigger_Timer(S,G,I):非DR本地加入接口检测到(S,G)流量时设置的向数据源S方向发送PIM JOIN(S,G)消息的延迟计时器。计算方法如下:

Non_DR_DataTrigger_Timer(S,G,I)=27-10000/(metric(S)+400);

其中metric(S)是非DR到数据源S的路由向量。Non_DR_DataTrigger_Timer(S,G,I)取值范围(2,27),在[0,+∞)上单调递增。具体实现中,只要满足距离S越近,延迟等待太阳城集团越短的条件,Non_DR_DataTrigger_Timer(S,G,I)也可以使用其他计算方法。

太阳城集团情况(一)的处理流程说明如下:

处于同一本地局域网的多台组播路由器收到主机接收者发送的IGMPv3加入消息,由选举出的DR负责向数据源S方向的上游路由器发送PIM JOIN(S,G)消息,生成SPT,DR从SPT接收组播流量并向本地局域网转发。

太阳城集团当本地局域网中的非DR在非DR本地加入接口检测到组播流量时,设置延迟计时器Non_DR_DataTrigger_Timer(S,G,I)。延迟计时器超时触发非DR向数据源S方向的上游路由器发送PIM JOIN(S,G)消息,生成SPT并向本地局域网转发组播流量。

太阳城集团DR在下游出接口收到组播流量,触发Assert过程,发送Assert(S,G)消息并进入Assert(S,G)Winner状态。非DR将本地spt_assert_metric(S,I)与收到的Assert(S,G)消息进行比较,如果本地spt_assert_metric(S,I)更优且已经向本地局域网转发过组播流量,则非DR本地加入接口进入Assert(S,G)Winner状态,发送Assert(S,G)消息并继续转发组播流量。如果非DR的本地spt_assert_metric(S,I)不如收到的Assert(S,G)消息,则非DR本地加入接口进入Assert(S,G)Loser状态,如果延迟计时器尚未超时,则取消计时器,如果非DR因为本地局域网的关系向上游发送过PIMJOIN(S,G)消息则发送PIM PRUNE(S,G)消息。DR如果收到优于自身的Assert(S,G)消息,则进入Assert(S,G)Loser状态并停止转发组播流量,否则继续负责向本地局域网转发组播流量。至此,主机接收者从位于数据源S到本地局域网最优路径上的路由器接收组播流量。

太阳城集团如图4所示,下面结合附图4,对PIM-SSM结合IGMPv3的网络环境,在非DR本地加入接口检测到组播流量后的处理流程进行详细说明:

太阳城集团步骤S201:非DR连接到本地局域网的非DR本地加入接口检测到DR转发的组播流量;

步骤S202:非DR设置向数据源S方向发送PIM JOIN(S,G)消息的延迟计时器Non_DR_DataTrigger_Timer(S,G,I),根据延迟计时器的计算方法,距离数据源S越近的非DR路由器的延迟等待太阳城集团越短;

太阳城集团步骤S203:判断延迟计时器是否超时,若超时,则执行步骤S204,否则继续等待,如果在等待超时期间收到Assert(S,G)消息,则执行步骤S206;

步骤S204:延迟计时器超时触发非DR向数据源S方向的上游路由器发送PIM JOIN(S,G)消息,建立数据源S到非DR的SPT。

步骤S205:非DR从SPT接收组播流量并向本地局域网转发。DR的下游出接口收到非DR转发的组播流量,触发Assert过程,进入Assert(S,G)Winner状态,发送Assert(S,G)消息。

步骤S206:非DR收到Assert(S,G)消息,如果本地spt_assert_metric(S,I)优于收到的Assert(S,G)消息,则执行步骤S207,否则执行步骤S208;

步骤S207:本地spt_assert_metric(S,I)优于收到的Assert(S,G)消息,进入Assert(S,G)Winner状态,发送Assert(S,G)消息。根据非DR是否转发过组播流量执行不同的后续操作。

如果非DR已经向本地局域网转发过组播流量,则继续负责转发流量。该非DR发送的Assert(S,G)消息将使DR的下游出接口和其它非DR的非DR本地加入接口进入Assert(S,G)Loser状态。

如果非DR尚未向本地局域网转发过组播流量,即存在其他非DR先完成了SPT的建立。该非DR因收到DR发送的Assert(S,G)消息暂时进入Assert(S,G)Winner状态,但很快又会收到转发过组播流量的非DR发送的Assert(S,G)消息,根据延迟计时器的计算方法,该非DR到数据源S的路由度量不会比从其他非DR接收到的Assert(S,G)消息更优,取消延迟计时器并进入Assert(S,G)Loser状态。如果该非DR因为本地局域网的关系向上游发送过PIM JOIN(S,G)消息,则发送PIM PRUNE(S,G)消息,取消SPT的建立。

至此,本地局域网中位于到数据源S最优路径上的路由器负责向本地局域网转发组播流量。

太阳城集团步骤S208:非DR路由器的本地spt_assert_metric(S,I)不能优于收到的Assert(S,G)消息,进入Assert(S,G)Loser状态,取消尚未超时的延迟计时器,如果已经因为本地局域网的关系向上游发送过PIM JOIN(S,G)消息,则发送PIM PRUNE(S,G)。

情况(二):PIM-SM结合IGMPv2;路由器间使用PIM-SM协议,路由器和主机间使用IGMPv2协议。这种情况的特点是主机接收者最初是从RPT接收组播流量,由最后一跳组播路由器判断是否要进行SPT切换,组播流量的转发存在从RPT向SPT的切换过程。

情况(二)使用的变量说明如下:

非DR本地加入接口宏定义:

太阳城集团Non_DR_CouldAssert(*,G,I)=(RPF_interface(RP(G))!=I);

AND(I_am_not_DR(I)AND local_receiver_include(*,G,I)==TRUE);

AND(I not in(joins(*,*,RP(G))(+)joins(*,G)))。

太阳城集团非DR本地加入接口满足以下条件:

不是到汇聚点RP的RPF接口;

收到IGMPv2加入消息,但本身不是DR;

没有收到过PIM加入消息;

spt_assert_metric(G,I):非DR到汇聚点RP的路由度量值,计算方法与RFC4601定义一致。

太阳城集团spt_assert_metric(S,I):非DR到数据源S的路由度量值,计算方法与RFC4601定义一致。

太阳城集团Non_DR_DataTrigger-Timer(*,G,I):非DR本地加入接口检测到组播流量时设置的向汇聚点RP方向发送PIM JOIN(*,G)消息的延迟计时器。计算方法如下:

Non_DR_DataTrigger_Timer(*,G,I)=30-10000/(metric(RP(G))+400);

太阳城集团其中metric(RP(G))是非DR到汇聚点RP的路由向量。Non_DR_DataTrigger_Timer(*,G,I)取值范围(5,30),在[0,+∞)单调递增。

太阳城集团Non_DR_DataTrigger_Timer(S,G,I):非DR在满足SPT切换条件时设置的向数据源S方向发送PIM JOIN(S,G)消息的延迟计时器。计算方法如下:

太阳城集团Non_DR_DataTrigger_Timer(S,G,I)=27-10000/(metric(S)+400)

其中metric(S)是非DR到数据源S的路由向量。Non_DR_DataTrigger_Timer(S,G,I)取值范围(2,27),在[0,+∞)单调递增。

具体实现中,只要满足路由向量越小延迟等待太阳城集团越短的条件,以上两个延迟计时器也可以使用其他计算方法。

情况(二)的处理流程说明如下:

主机接收者发送IGMPv2加入消息,请求组地址为G的组播流量。本地局域网中的DR在收到IGMPv2加入消息后,代表本地局域网中的主机接收者向汇聚点RP方向的上游路由器发送PIM JOIN(*,G)消息,建立RPT,接受组播流量并向本地局域网转发。非DR连接到本地局域网的非DR本地加入接口检测到组播流量后设置向汇聚点RP方向发送PIM JOIN(*,G)消息的延迟计时器Non_DR_DataTrigger_Timer(*,G,I)。待延迟计时器超时,非DR向汇聚点RP方向的上游路由器发送PIM JOIN(*,G)消息,生成RPT并向本地局域网转发组播流量。DR在下游出接口收到组播流量时发生Assert过程,并根据当前所处的转发状态,发送不同的Assert消息。DR在下游出接口接收到组播流量时,如果仍处于RPT转发状态,则发送Assert(*,G)消息;如果已经完成RPT到SPT的切换,则发送Assert(S,G)消息。非DR根据收到的不同Assert消息,进入不同的处理流程:

太阳城集团流程(1):非DR路由器收到Assert(*,G)消息。如果非DR的本地rpt_assert_metric(G,I)优于收到的Assert(*,G)消息,则进入Assert(*,G)Winner状态,发送Asser(*,G)消息并继续转发组播流量。非DR发送的Assert(*,G)消息使DR进入Assert(*,G)Loser状态,取代DR负责向本地局域网转发从RPT接收到的组播流量。如果非DR的本地rpt_assert_metric(G,I)不能优于收到的Assert(*,G)消息,则进入Assert(*,G)Loser状态,取消未超时的延迟计时器,如果因为本地局域网的关系向RP方向发送过PIM JOIN(*,G)消息,则发送PIM PRUNE(*,G)消息。

太阳城集团因为SPT切换仅取决于最后一跳路由器,所以非DR只要满足本地SPT切换条件,就可以生成SPT,转发从SPT接收到的组播流量,取代当前本地局域网中使用RPT转发的组播路由器。

满足SPT切换条件的组播路由器设置向数据源S方向发送PIM JOIN(S,G)消息的延迟计时器Non_DR_DataTrigger_Timer(S,G,I),计时器超时后,向数据源S方向的上游路由器发送PIM JOIN(S,G)消息,建立SPT,从SPT接收组播流量并向本地局域网转发。处于SPT转发状态的组播路由器在下游出接口收到从RPT转发过来的组播流量,发生Assert过程,发送Assert(S,G)消息。Assert(S,G)消息使当前仍处于RPT转发状态的组播路由器或者进入Loser状态,停止转发从RPT接收到的组播流量;或者进行SPT切换,加入SPT转发竞争。至此,本地局域网从SPT接受组播流量。

如果在满足本地SPT切换条件之前,收到优于本地spt_assert_metric(S,I)的Assert(S,G)消息,则进入Assert(S,G)Loser状态,否则继续检查SPT切换条件。

如果在等待Non_DR_DataTrigger_Timer(S,G,I)延迟计时器超时期间收到优于本地spt_assert_metric(S,I)的Assert(S,G)消息,取消延迟计时器并进入Assert(S,G)Loser状态,否则继续等待延迟计时器超时。

流程(2):非DR收到Assert(S,G)消息。如果非DR因为本地局域网的关系向汇聚点RP方向发送过PIM JOIN(*,G)消息,则发送PIM PRUNE(*,G)消息,取消RPT的建立。如果非DR的本地spt_assert_metric(S,I)优于收到的Assert(S,G)消息,且满足本地切换SPT条件,设置向数据源S方向发送PIM JOIN(S,G)消息的延迟计时器Non_DR_DataTrigger_Timer(S,G,I)。计时器超时后,向数据源S方向的上游路由器发送PIM JOIN(S,G)消息,建立SPT,接收组播流量并向本地局域网转发。当出接口收到其他组播路由器转发到本地局域网的组播流量时,发生Assert过程,发送Assert(S,G)消息,进入Assert(S,G)Winner状态。当前负责转发的组播路由器收到优于自己的Assert(S,G)消息,进入Assert(S,G)Loser状态,停止向本地局域网转发流量。至此,满足切换SPT条件且位于数据源S到本地局域网最优路径上的组播路由器负责向本地局域网转发流量。

如果非DR的本地spt_assert_metric(S,I)不能优于收到的Assert(S,G)消息,则进入Assert(S,G)Loser状态。

太阳城集团如果非DR的本地spt_assert_metric(S,I)优于收到的Assert(S,G)消息,但不满足本地切换SPT条件,则周期性的检查判断,直到满足切换SPT条件,建立SPT,加入SPT转发竞争;或是收到优于本地spt_assert_metric(S,I)的Assert(S,G)消息,进入Assert(S,G)Loser状态。

如果在等待Non_DR_DataTrigger_Timer(S,G,I)延迟计时器超时期间收到优于本地spt_assert_metric(S,I)的Assert(S,G)消息,取消延迟计时器,进入Assert(S,G)Loser状态,否则继续等待延迟计时器超时。

太阳城集团如图5所示,下面结合附图5,对本发明主机接收者以最优路径接收组播流量的第二种情况:PIM-SM结合IGMPv2的网络环境,在非DR本地加入接口检测到组播流量后的处理过程进行详细说明:

太阳城集团步骤S301:非DR的非DR本地加入接口检测到由DR路由器向本地局域网转发的组播流量;

步骤S302:非DR设置向汇聚点RP方向发送PIM JOIN(*,G)消息的延迟计时器Non_DR_DataTrigger_Timer(*,G,I)。该延迟计时器的等待太阳城集团相对较长,如果DR能进行SPT切换,可以在该等待太阳城集团内完成;

步骤S303:检查Non_DR_DataTrigger_Timer(*,G,I)计时器是否超时。超时执行步骤S304,否则继续等待,如果在等待期间收到Assert消息,执行步骤S306;

步骤S304:Non_DR_DataTrigger_Timer(*,G,I)延迟计时器超时触发非DR向汇聚点RP方向发送PIM JOIN(*,G)消息,建立RPT。

步骤S305:非DR从RPT接收组播流量,向本地局域网转发。DR的下游出接口收到组播流量时,发生Assert过程。如果DR处于RPT转发状态,发送Assert(*,G)消息。如果DR已经完成从RPT到SPT的切换,则发送Assert(S,G)消息。

太阳城集团步骤S306:非DR判断接收到的Assert消息的类型。如果收到的是Assert(*,G)消息,执行步骤S307;否则,执行步骤S308。

步骤S307:非DR收到Assert(*,G)消息,进入相应的处理过程,该过程请参见后续结合图6的详细说明。

太阳城集团步骤S308:非DR收到Assert(S,G)消息,判断本路由器是否因本地局域网的关系向汇聚点RP方向发送过PIM JOIN(*,G),如果已经发送过,则执行步骤S309,否则,执行步骤310。

太阳城集团步骤S309:DR已经完成RPT向SPT的切换,根据Assert的判定规则,SPT转发要优于RPT转发,非DR向汇聚点RP方向发送PIM PRUNE(*,G)消息,取消RPT的建立。

太阳城集团步骤310:进入非DR收到Assert(S,G)消息的处理过程。该过程请参见后续结合图7的详细描述。

如图6所示,非DR收到Asser(*,G)消息情况的处理过程详细说明如下:

太阳城集团步骤S401:非DR将本地rpt_assert_metric(G,I)与收到的Assert(*,G)消息进行比较,如果本地rpt_assert_metric(G,I)优于收到的Assert(*,G)消息,执行步骤S402,否则,执行步骤S403;

太阳城集团步骤S402:本地rpt_assert_metric(G,I)优于收到的Assert(*,G)消息,进入Assert(*,G)Winner状态,发送Assert(*,G)消息。DR收到优于本地的Assert(*,G)消息,进入Asser(*,G)Loser状态,停止转发流量。至此,网络中由距汇聚点RP最近的路由器负责转发从RPT接收到的组播流量。

步骤S403:非DR的本地rpt_assert_metric(G,I)不能优于接收到的Assert(*,G)消息,接口进入Asser(*,G)Loser状态,取消尚未超时的延迟计时器,如果已经向汇聚点RP方向发送过PIM JOIN(*,G)消息,还需发送PIM PRUNE(*,G)消息,执行步骤S404;

步骤S404:各路由器判断本地切换SPT条件是否满足。满足切换条件的执行步骤S405,否则执行步骤S409;

步骤S405:设置向数据源S方向发送PIM JOIN(S,G)消息的延迟计时器Non_DR_DataTrigger_Timer(S,G,I);

太阳城集团步骤S406:判断Non_DR_DataTrigger_Timer(S,G,I)延迟计时器是否超时。超时执行步骤S407,否则执行步骤411;

步骤S407:延迟计时器超时触发路由器向数据源S方向发送PIM JOIN(S,G)消息,建立SPT;

步骤S408:完成SPT切换的路由器向本地局域网转发从SPT接收到的组播流量,该路由器的(S,G)出接口接收到其他路由器转发的组播流量,触发Assert过程,发送Assert(S,G)消息,进入Assert(S,G)Winner状态。之前负责向本地局域网转发流量的路由器收到优于自己的Assert(S,G)消息,进入Assert(S,G)Loser状态,停止转发流量。至此,本地局域网从满足切换SPT条件且距离数据源S最近的路由器接收组播流量;

步骤S409:本地切换SPT条件满足前收到Assert(S,G)消息,如果本地spt_assert_metric(S,I)优于收到的Assert(S,G)消息,继续等待本地切换SPT条件满足,执行步骤S404,否则执行步骤410;

太阳城集团步骤410:收到优于本地spt_assert_metric(S,I)的Assert(S,G)消息,接口进入Assert(S,G)Loser状态。本路由器对SPT转发竞争结束;

太阳城集团步骤411:在延迟计时器Non_DR_DataTrigger_Timer(S,G,I)超时之前收到Assert(S,G)消息,如果本地spt_assert_metric(S,I)优于收到的Assert(S,G)消息,执行步骤S406,继续等待延迟计时器超时,否则执行步骤412;

太阳城集团步骤412:本地spt_assert_metric(S,I)不能优于收到的Assert(S,G)消息,取消Non_DR_DataTrigger_Timer(S,G,I)延迟计时器,接口进入Assert(S,G)Loser状态,本路由器对SPT转发竞争结束;

如图7所示,非DR路由器收到Assert(S,G)消息情况的处理流程详细说明如下:

步骤S501:非DR将本地spt_assert_mitric(S,I)与收到的Assert(S,G)消息进行比较,如果不能优于收到的Assert(S,G)消息,执行步骤S502,否则执行步骤S503;

步骤S502:非DR路由器收到优于本地的Assert(S,G)消息,非DR本地加入接口进入Assert(S,G)Loser状态,本路由器的SPT转发竞争结束;

太阳城集团步骤S503:非DR路由器本地spt_assert_metric(S,I)优于收到的Assert(S,G)消息,判断本地切换SPT的条件是否满足,满足时执行步骤S504,否则继续等待,如果在切换SPT条件满足之前又收到新的Assert(S,G)消息,执行步骤S501;

太阳城集团步骤S504:设置向数据源S方向发送PIM JOIN(S,G)的延迟计时器Non_DR_DataTrigger_Timer(S,G,I);

步骤S505:检测延迟计时器是否超时,超时执行步骤S506,否则继续等待,如果在超时之前收到Assert(S,G)消息,执行步骤S508;

步骤S506:计时器超时,非DR向数据源S方向发送PIM JOIN(S,G)消息,建立SPT;

步骤S507:完成SPT切换的非DR向本地局域网转发组播流量,在出接口收到其他路由器转发的组播流量时,触发Assert过程,发送Assert(S,G)消息,接口进入Assert(S,G)Winner状态。之前负责转发组播流量的路由器因收到优于自己的Assert(S,G)消息而进入Assert(S,G)Loser状态。至此,本地局域网从满足切换SPT条件且距离数据源S最近的路由器接收组播流量;

太阳城集团步骤S508:在延迟计时器超时之前收到Assert(S,G)消息,如果本地spt_assert_metric(S,I)优于收到的Assert(S,G)消息,则继续等待计时器超时,执行步骤S505,否则执行步骤S509;

太阳城集团步骤S509:取消延迟计时器Non_DR_DataTrigger_Timer(S,I,G),接口进入Assert(S,G)Loser状态,本路由器的SPT转发竞争结束。

需要说明的是,在路由器间使用PIM-SM,路由器与主机间使用IGMPv2的情况下,因为路由器需要先检查切换SPT的条件是否满足,所以,最先向数据源S发送PIM JOIN(S,G)并完成SPT建立的路由器不一定是本地局域网到数据源S最优路径上的路由器,因此,当有距数据源S的路由度量更优的路由器满足切换SPT的条件时,就会取代当前负责流量转发的路由器。

太阳城集团由上述两种网络情况PIM-SSM网络和PIM-SM网络的具体实施过程可以看到,通过定义一种新的协议接口类型,并扩展该接口类型的Assert处理过程,达到本地局域网中没有下游组播路由器时的主机接收者以最优路径接收组播流量的目的,实现对网络资源的优化利用。

如图8所示,本发明一实施例提出一种本地局域网中组播流量转发的组播路由器,包括:延迟等待模块801、加入消息发送模块802、组播流量转发模块803、消息接收模块804及竞争转发模块805,其中:

延迟等待模块801,用于在非DR本地加入接口检测到DR转发的组播流量时,进入延迟等待状态;

加入消息发送模块802,用于当延迟等待超时,向RP或S方向的上游路由器发送PIM加入消息,生成共享树RPT或有源树SPT;

太阳城集团组播流量转发模块803,用于从RPT或SPT接收到组播流量后,向本地局域网转发所述组播流量;

消息接收模块804,用于接收DR在下游出接口检测到组播流量时发出的Assert消息;

太阳城集团竞争转发模块805,用于根据Assert消息及本地路由度量值,与DR竞争转发所述组播流量。

其中,非DR在非DR本地加入接口检测到DR转发的组播流量是DR从RPT或SPT接收的组播流量向本地局域网转发的。当主机接收者希望接收某组播流量时,主机接收者向本地局域网内的多台组播路由器发送IGMP加入消息,非DR与本地局域网内的多台组播路由器一同接收主机接收者发送的IGMP加入消息,并由DR负责向RP或S方向的上游路由器发送PIM加入消息,建立RPT或SPT,并从RPT或SPT接收组播流量向本地局域网转发。

太阳城集团非DR本地加入接口是指有收到IGMP加入消息,但没有收到PIM加入消息且未被选为DR的接口。

太阳城集团延迟等待的太阳城集团根据到达RP或S的路由度量值计算;其中,路由度量值越小,延迟等待太阳城集团越短。

当延迟等待超时后,非DR向RP或S方向的上游路由器发送PIM加入消息。非DR从RPT或SPT接收到组播流量后向本地局域网转发,DR在下游出接口检测到组播流量时发生Assert过程,非DR收到DR发出的Assert消息,加入对Assert Winner的竞争。

DR发生的Assert过程与协议RFC4601PIM-SM:Protocol Specification(Revised)规定一致,DR发送的Assert消息的类型由DR当前所处转发状态决定:当DR使用SPT转发时,则为Assert(S,G)消息;当DR使用RPT转发时,则为Assert(*,G)消息。

非DR本地加入接口发生的Assert过程是指将收到的Assert消息与本地路由度量值进行比较。如果非DR的本地路由度量值优于收到的Assert消息,则非DR本地加入接口进入Assert Winner状态,继续转发组播流量,并发送Assert消息。当DR的下游出接口收到优于自己的Assert消息,则进入AssertLoser状态,停止转发组播流量。至此,到RP或S最优路径上的非DR负责向本地局域网转发组播流量。如果非DR的本地路由度量值不能优于收到的Assert消息,则非DR本地加入接口进入Assert Loser状态,停止转发组播流量,继续由DR负责向本地局域网转发流量。

其中,PIM加入消息的类型由非DR本地加入接口收到的IGMP加入消息的版本决定:若收到的是IGMPv3加入消息,则非DR向S方向发送PIM(S,G)消息;若收到的是IGMPv2加入消息,则非DR向RP方向发送PIM(*,G)消息。

太阳城集团当主机接收者发送IGMPv2加入消息且非DR为最后一跳并满足本地SPT切换条件时,非DR进行从RPT到SPT的切换,完成切换之后竞争转发从SPT接收的组播流量。

如图9所示,竞争转发模块805包括:比较单元8051及转发控制单元8052,其中:

比较单元8051,用于将收到的Assert消息与本地路由度量值进行比较;

转发控制单元8052,用于当本地路由度量值优于收到的Assert消息时,控制组播流量转发模块从非DR本地加入接口继续转发组播流量,并发送Assert消息;否则停止转发组播流量,继续由DR负责向本地局域网转发组播流量。

太阳城集团进一步的,竞争转发模块805还用于在延迟等待未超时期间,且消息接收模块804收到DR在下游出接口检测到组播流量时发出的Assert消息时,根据Assert消息及本地路由度量值,与DR竞争转发组播流量。

进一步的,竞争转发模块805还用于当主机接收者发送IGMPv2加入消息,且路由器为最后一跳并满足本地SPT切换条件时,进行从RPT到SPT的切换,完成切换之后竞争转发从SPT接收的组播流量。

本发明实施例本地局域网中组播流量转发方法及组播路由器,通过引入非DR本地加入接口概念,并扩展Assert过程对非DR本地加入接口类型的处理,非DR根据Assert消息及本地路由度量值与DR竞争转发组播流量,实现本地局域网中没有下游组播路由器时,主机接收者仍是从位于RP或S到本地局域网最优路径上的路由器接收组播流量,从而达到对网络资源的优化利用,避免因完全依靠DR转发造成的路由器处理资源和链路带宽资源的浪费。

太阳城集团以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

关 键 词:
本地 局域网 中组播 流量 转发 方法 路由器
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:本地局域网中组播流量转发方法及组播路由器.pdf
链接地址:http://zh228.com/p-6420877.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');