背景技术
组播由于能够有效地实现一点对多点通信,使同一个分组在一个网段中只出现一次,从而节约大量网络带宽,同时使得到达用户终端的分组的时延最短。因此组播技术已经大量用于IPTV网络电视解决方案中。
传统的接入网针对组播业务的网络拓朴结构如图1所示,从BRAS/BNG(宽带远程接入服务器/宽带网关)到用户机顶盒有且只有一条通路,构成一个树形结构。由于一个接入设备/节点上接入大量用户(比如单个接入设备ISAM7302(智能多业务接入平台)可以接入768个用户,此外ISAM还可以构成最大4级的级联系统,其最大容量达16K用户),因此中间节点或者链路的失效将导致多播业务(比如IPTV等)的中断。如何快速高效地恢复接入网中组播业务,是值得关注的问题。
对于接入网,目前针对单播的常用的保护上联工作链路(up-link)失效的方案有两种,即负载均衡的链路聚合(link aggregation/trunk)方案和基于生成树(STP/RSTP)的方案。它们可扩展支持一定的组播恢复。
链路聚合方案:接入设备通过多条物理线路连接同一个上一级设备,从逻辑上这些链路看成一条链路。负载在这些子链路上均衡,其中一条子链路负载转发IGMP(因特网组播管理协议)消息和组播业务,一旦此子链路失效,所有业务(包括组播业务)将重新在这个聚合链路(trunk)的剩余可用子链路进行业务均衡。在接入设备上的转发表不用发生任何变化。
生成树方案:对于使用生成树协议的二层网状网,组播业务的恢复一般是在生成树重构之后通过组播查询和组播报告等重建组播业务。
此外,现有还提出了一种组播业务快速恢复方法(不妨称为基于链路恢复的组播报告恢复方案),分为三步:(1)链路故障检测和链路恢复;(2)链路恢复之后,接入设备主动向原备份链路对端设备发出组播请求报文;(3)对端设备解析请求报文,提高组播数据流给接入设备。
当前存在的保护上联工作链路的方案没有充分考虑组播的特殊性,不利于组播业务的快速恢复。因为这些方案是尽快给失效链路找到备份的物理链路,从物理上保证连接性,而与失效链路相连的设备上的组播转发表需要重新通过IGMP snooping等手段重构,效率低。
图1所示的针对组播的网络结构方案即使使用了链路聚合,也不能解决接入设备的上联链路失效或上一级设备失效情况。
而使用快速生成树协议的二层网状网,当一个端口被使能或者被阻塞时,其设备(运行IGMP proxy的设备)上处于活动状态的非路由器端口会发出组播常规查询消息(注意:如果仅仅运行IGMP snooping的设备,不会有组播常规查询消息),用以加快网络的汇聚时间,这所需的时间相当长,显然不利于组播业务的快速恢复。由于组播常规查询消息查询周期时间一般是125s,并且下级设备或用户在10s内发生响应报文,所以在链路恢复或备份链路建立后,组播业务恢复时间较长,该恢复时间一般在链路恢复或备份链路建立后135(125+10)s内随机分布。
而基于链路恢复的组播报告恢复方案,仍然具有以下不足:
(1)接入设备在通过STP/RSTP等方式重新使链路恢复或备份链路建立后,向上一级报告组播请求报文,但运行STP的网络中断恢复时间为30-60s之间,而RSTP(快速生成树算法,IEEE802.1w)作为STP的升级,能将网络中断恢复时间缩短到1-2s。但仍然没有降至次毫秒级,这对于组播业务的开展不利。
(2)没有考虑IPv6的网络环境。
(3)没有考虑接入设备可能只维护了组播组的对应MAC信息,而没有对应IP组播地址信息。
发明内容
本发明的目的在于提供一种实现接入网中具有最小时延组播恢复的方法及其接入设备,以使得基于组播的业务具有更高的可靠性。
本发明所提供的一种具有最小时延的组播恢复的方法,第一接入设备(A1)通过工作链路、备份链路分别连接于若干上一级网络设备(S1、A2),包括下列步骤:
(1)当第一接入设备(A1)监测到工作链路失效,其在不用等待重新构建二层生成树的前提下,操作如下步骤:
(a)根据当前组播转发表信息,该第一接入设备(A1)立即通过其备份端口主动给备份链路所连的另一个新的上一级设备(A2)报告该第一接入设备(A1)感兴趣的组播信息;
(b)第一接入设备(A1)根据当前组播转发表信息,构造组播流入端口为原来的备份端口的新组播转发表;
(2)新的上一级设备(A2)接收到第一接入设备(A1)发来包含感兴趣的组播信息的组成员报告消息,更新其组播转发表;
(3)第一接入设备(A1)从备份端口接收到组播数据,根据在步骤(1)中建立的新组播转发表转发,从而完成组播业务的快速恢复。
在上述的方法中,当步骤(1)中第一接入设备(A1)备份端口处于阻塞状态、并能通过备份端口发送常规二层数据帧时,第一接入设备(A1)通过对现有的组管理协议IGMP/MLD进行扩展承载所述感兴趣的组播报告消息、并直接封装在常规二层数据帧中。
在上述的方法中,所述报告消息的实现方式即:直接使用IGMPv1/IGMPv2/MLDv1的组成员报告消息向新的上一级设备(A2)报告所感兴趣的组播信息,由第一接入设备(A1)为每个组播组构造一个组成员报告消息,经备份端口发送至新的上一级设备(A2)。
在上述的方法中,所述报告消息的实现方式即:使用IGMPv3/MLDv2组成员报告消息或者定义新的简化的多组成员关系报告消息,一次性向新的上一级设备(A2)报告所有感兴趣的组播信息。
在上述的方法中,当步骤(1)中第一接入设备(A1)备份端口处于阻塞状态、只能发送BPDU数据帧时,第一接入设备(A1)将所述感兴趣的组播信息的组成员报告消息封装在扩展后的BPDU数据帧中。
在上述的方法中,所述的BPDU为新的类型,即该类型的BPDU数据域中直接封装IGMP组播报告消息。
本发明还提供了一种具有最小时延的组播恢复的接入设备,它包括接入设备本体,该接入设备本体包括触发单元,其特征在于:在所述的接入设备本体上还设有组播转发表重构单元和扩展协议和封装数据帧单元,其中:触发单元,用于当检测到故障时,在触发生成树协议进行拓朴重构的同时,触发组播转发表重构,形成组播报告消息通过阻塞状态的端口发送出去进行组播恢复;组播转发表重构单元,用于在监测工作链路失效时,根据当前组播转发表信息,构造组播流入端口为原来的备份端口的新组播转发表;扩展协议和封装数据帧单元,用于通过对现有的组管理协议IGMP/MLD进行扩展承载所要传送的本接入设备感兴趣的组播报告消息、并直接封装在常规二层数据帧中或者在阻塞端口不能直接发送常规二层数据帧时将其封装在新BPDU类型帧中。
由于采用了上述的技术解决方案,即接入设备同时提供两个上联端口,分别连接不同的上一级设备,而在这网络模型中,传统的链路冗余连接同一上一级设备仍然可用。本发明提出的快速恢复机制,当监测到故障时,通过立即上报接入设备组播组信息和重用组播转发表,加快了接入网络中的组播业务恢复速度,使得基于组播的业务具有更高的可靠性。
具体实施方式
本发明基于的思想是,现有的简单的树形拓扑结构不能很好地保护正在运行大量组播业务的接入设备,因此考虑使重要的接入设备提供两个上一级设备,即构成相对复杂的网状网。其中一个上联链路处于正常单播、组播转发状态,一旦那个方向的链路或者上一级设备出故障,接入设备就立即(而不用等待链路恢复或备份链路建立之后)快速触发备份链路所连接的上一级设备建立该方向的组播转发状态,从而实现组播业务的快速恢复。由于是在检测到链路失效的同时就在进行向上一级设备发送组播组关系(从而各个节点的组播转发表恢复工作),组播恢复和链路恢复同时进行,因此具有最短的恢复时延。
一、网络模型
如图2所示,为了保护重要的接入设备,使该设备在物理上同时连接两个上一级设备:接入设备可以是同时连接两个交换机(例如接入设备A2同时连接交换机S1和S2),也可以是同时连接一个交换机和另外一个接入设备(例如接入设备A1连接交换机S1和接入设备A2),也可以是同时连接两个上一级接入设备(例如接入设备A3同时连接到接入设备A2和A4)。配置接入设备的上联口其中一个为工作端口(快速生成树协议中的根端口,root port),该端口的链路处于工作状态;另一端口为备份端口(快速生成树协议中的替换端口,alternative port),通常备份端口处于blocking状态,不转发任何非BPDU(BPDU:bridge protocol data unit,桥协议数据单元)数据,与备份端口相连的设备的该端口处于工作状态。当接入设备监测到其工作端口上链路故障等,通过STP/RSTP等协议,设备可快速切换至备份端口工作(即接收转发数据)。(注意:接入设备上通过链路冗余连接的同一个设备的链路,视为一个链路。)不妨设接入设备A1的当前工作端口为2号上联端口,接入设备A2的当前工作端口为1号上联端口。
接入设备和交换机中实现IGMP(因特网组播管理协议)/MLD(组播侦听发现协议)proxy/snooping功能。IGMP/MLD proxy设备上联端口执行主机的角色,下联端口执行路由器的角色,此设备靠拦截用户和路由器之间的IGMP/MLD报文建立组播表,该表维护了上联端口来的组播业务应该复制转发至哪些下联端口(或用户端口)。IGMP/MLD snooping设备以侦听主机发向路由器的IGMP/MLD成员报告消息的方式,形成组成员和交换机端口的对应关系,IGMP/MLD snooping设备则根据对应关系,将收到的组播数据包转发到组成员的端口。
参见图6,本发明的接入设备,它包括接入设备本体1,该接入设备本体1包括触发单元11,其特点是:在该接入设备本体1上还设有组播转发表重构单元12和扩展协议和封装数据帧单元13,其中:
触发单元11,用于当检测到故障时,在触发生成树协议进行拓朴重构的同时,触发组播转发表重构,形成组播报告消息通过阻塞状态的端口发送出去进行组播恢复;
组播转发表重构单元12,用于在监测工作链路失效时,根据当前组播转发表信息,构造组播流入端口为原来的备份端口的新组播转发表;
扩展协议和封装数据帧单元13,用于通过对现有的组管理协议IGMP/MLD进行扩展承载所要传送的本接入设备感兴趣的组播报告消息、并直接封装在常规二层数据帧中或者在阻塞端口不能直接发送常规二层数据帧时将其封装在新BPDU类型帧中。
二、组播业务快速恢复机制
为了完成组播业务的快速恢复,本发明的关键在于(1)重构已有组播转发表;(2)一旦检测到链路失效,立即沿备份链路报告接入设备当前组播情况,省去等待链路恢复的时延。以图2中接入设备A1为例,当前工作端口为2号端口,各种业务流(单播数据和组播数据)从交换机S1传来。具体恢复机制如下:
(1)当接入设备A1监测到工作链路失效,即与其工作端口相连的链路失效或者其与工作端口相连的上一级设备失效时,(a)根据当前组播转发表信息,接入设备通过1号端口主动给备份链路所连的上一级设备(图2中为接入设备A2)报告接入设备感兴趣的组播信息,即通告新的上一级设备组播组信息。(b)根据当前组播转发表信息,构造新的转发表(新表中的组播流入端口为原来的备份端口,即1号端口)。
(2)接入设备A2从3号口接收到A1发来组成员信息,更新其组播转发表:(a)如果A1感兴趣的组播业务,A2下已有用户正在享用,则A2不用继续向上发出新的组播成员报告申请新的业务;(b)如果A2上没有A1所感兴趣的组播业务,则A2上的IGMP/MLD proxy构造新的组播报告向网络申请服务。当A1所感兴趣的组播业务到达A2,则其将这些数据流复制转发至A2的3号端口,送往A1。
(3)A1从端口1接收到组播数据,根据在步骤(1)中建立的组播转发表转发,从而完成组播业务的快速恢复。
注意:(1)运行STP/RSTP协议的二层设备端口在处于blocking状态时,通常只能发送和接收BPDU,在这种情况下,我们需要把用于组播恢复的组播报告消息封装在BPDU之中。当前很多交换芯片即使端口处于blocking状态,交换机的控制模块(e.g.,CPU)仍然可以通过该端口发送数据到对端设备,在这种情况下,可以直接把用于组播恢复的组播报告消息封装通常的IP分组/Ethernet帧中。
(2)组播组报告是在检测到工作链路失效时就发送该信息到备份链路上的上一级设备,申请组播数据。因此一旦备份链路建立好成为工作链路,组播业务流会以最短的时间通过该链路到达接入设备,进而到达用户。
(3)通常对于A1下用户所订购的大部分组播业务,A2下已有用户订购,因此当A2接收到A1发送组播组报告,组播业务可以快速从A2传到A1,从而恢复由于A1最初的工作链路失效带来的短暂中断。
三、组播恢复报告消息
3.1处于blocking状态的端口可以发送非BPDU分组情形
由于此时可以发送非BPDU帧,因此可以直接利用已有的IGMP/MLD,对IGMP/MLD进行扩展实现组播恢复是对组播组信息的报告机制。
对于使用IGMPv3和MLDv2的网络环境,由于其组成员报告消息一次可以携带A1所感兴趣的所有组播组信息,因此可以直接使用其组成员报告消息(但这种方式不能用于接入网中组播绑定于虚拟局域网VLAN的情形)。
对于使用IGMPv1、IGMPv2和MLDv1时,组成员报告消息一次仅能报告一个成员关系,则需要多次报告不同的组成员关系。多次报告才能让A2获知A1感兴趣的组播组,这可能会影响组播恢复的速度。为了加快组播业务的恢复速度,A2需要尽快知道A1对哪些组播业务感兴趣,这可以通过定义专门的协议用以传递A1所感兴趣的组成员关系,也可以直接强制设备支持IGMPv3和MLDv2中的组成员报告消息(即将IGMPv3和MLDv2中的组成员报告消息用于组播业务快速恢复机制,而不管当前网络是支持那个版本)。
在IGMPv1、IGMPv2环境中使用IGMPv3的组成员关系报告消息(或者在MLDv1中使用MLDv2中的组播听众报告消息),很多域是不需要的,为了简化消息加快处理,在本发明中定义了用于接入设备和路由器或者IGMP/MLD proxy间的多组播组成员关系报告消息(Multicast Membership Recovery Report,MMRR)。
上一级设备需要能识别出这类用于组播快速恢复的消息,并给予这些消息高优先级以加快消息处理速度。
图3是扩展IPv4/IPV6中的IGMPv3和MLDv2来支持快速组播恢复的组成员报告消息格式示意图,即重用组播地址记录中的保留域和Auxiliary Datafield(辅助数据域)来传于组播相关的信息。针对IGMPv3类型域值为0x22,针对MLDv2类型域值为0x8F。IGMPv3和MLDv2也定义了一个辅助数据域,这个辅助数据域包含附属于组播地址记录的附加信息。但在RFC3376和RFC3380中的协议不定义任何辅助数据域。这两个文件要求实施协议:在任何发送组播地址记录中“不包括任何辅助数据域”(例如,辅助数据字长置0)并且在任何接收组播地址记录中必须忽略当前数据。辅助数据域的含义和内部编码可以通过任何改进和扩展IGMP/MLD来定义。因此使用IGMPv3和MLDv2信息,能够实施组播恢复报告信息。
Number of Multicast Group为当前节点所感兴趣的组播数目,后面M个域分别节点所感兴趣的各个组播记录。一比特的V域和I域分别用来说明Multicast AddressRecord(组播地址记录)域中的格式。
图4是新定义的用于IPv4/IPv6网络环境中接入设备检测到故障快速恢复组播业务时向上一级设备报告的多组播组成员关系报告MMRR消息格式示意图。在IPv4环境中,类型域为0x18,在IPv6环境中类型域为0x72。
如果V(虚拟句局域网VLAN)比特域设置为1,则用来表明组播地址记录中包含该组播组所属的VLAN信息;如果I(IP)比特域设置为1,则表明组播地址记录中地址信息使用的是IP组播地址,否则使用的组播MAC地址。当然,通过使用保留域1可以使组播地址记录扩展包含VLAN信息。
首先是32-bit的VLAN信息域,目前仅仅最低12-bit被使用,即VLAN ID域,域中记录该组播地址所属的VLAN ID信息。如果V域为0,可以考虑去掉VLAN信息域。Multicast Address域记录了接入设备感兴趣的组播地址,如果I置为1,则此域为4字节的IP组播地址;如果I域置为0,则此域为6字节的MAC组播地址。保留域Reserved1和Rsvd2目前没有使用,暂设置为0,可以忽略。
3.2处于blocking状态的端口只能发送BPDU分组情形
根据STP/RSTP协议,此时只能发送BPDU。因此我们考虑对STP/RSTP的帧类型进行扩展,进而封装3.1中所定义的消息。引入一个新的BPDU协议类型(BPDU=3),用于实现IP/BPDU/Ethernet封装,这实现了一个控制信令通道:任何通过处于blocking状态的端口传输控制信令的控制通道。
当然为了进一步简化分组,可以将前面定义的分组直接封装在新定义的BPDU类型中传输。所述的BPDU为新的类型,即该类型的BPDU数据域中直接封装IGMP/MLD组播报告消息。如图5所示。
综上所述,本发明接入设备同时提供两个上联端口,分别连接不同的上一级设备,而在这网络模型中,传统的链路冗余连接同一上一级设备仍然可用。本发明提出的快速恢复机制,当监测到故障时,通过立即上报接入设备组播组信息和重用组播转发表,加快了接入网络中的组播业务恢复速度,使得基于组播的业务具有更高的可靠性。
对于IPTV等组播业务,大多数情况下,备份链路所对应的上一级节点的其他端口已有用户订购了很多相同的IPTV组播业务,即很多IPTV组播业务已经到达该节点,因此这些节目可以通过备份链路很快地送到用户,显然组播业务可以快速恢复。对于那些即使没有送到备份链路所对应的上一级节点的业务,由于本发明采用是在链路恢复的同时就主动上报接入设备所感兴趣的组播组关系,因此本发明是所有组播恢复中具有最小的恢复速度的方案。
以上实施例仅供说明本发明之用,而非对本发明保护范围的限制。有关本技术领域的技术人员,在不脱离本发明的精神和范围的情况下,还可以作出各种变换或变型,而所有等同的技术方案也应归属于本发明保护的范畴之内,由各权利要求所限定。