组播报文处理方法及装置与流程

文档序号:29957657发布日期:2022-05-11 08:21阅读:402来源:国知局
组播报文处理方法及装置与流程

1.本技术涉及通信技术领域,尤其涉及一种组播报文处理方法及装置。


背景技术:

2.分布式弹性网络互联(英文:distributed resilient network interconnect,简称:drni)网络是一种跨设备链路聚合技术,其将两台物理设备在聚合层面虚拟为一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量如在分担。
3.如图1所示,图1为现有drni网络模型示意图。在图1中,设备(device)a和设备b形成负载分担,共同进行流量转发,当某一台设备故障时,可快速将流量切换至另一台设备处转发,保证业务正常运行。
4.互联网组管理协议窥探(英文:internet group management protocol snooping,简称:igmp snooping)运行在二层设备上,通过侦听三层设备与主机之间的igmp报文来生成二层组播转发表,从而管理和控制组播数据报文的转发,实现组播数据报文在二层的按需分发。
5.目前,为了提高组网网络的可靠性,igmp侦听(igmp snooping)可与drni网络结合,利用drni网络,将两台物理设备连接起来形成分布式聚合(英文:distributed relay,简称:dr)系统。该dr系统作为一台虚拟igmp snooping设备,使用该虚拟igmp snooping设备连接组播源或组播接收者,可避免单点故障对组播网络造成影响,提高组播网络可靠性。
6.如图2所示,图2为现有组播接收者接入dr系统并加入组播组示意图。在图2中,组播接收者(receiver)1为单挂网络设备并与dr系统内交换机(switch)a连接。组播接收者2与交换机c连接,且交换机c通过dr口接入dr系统。交换机c发送的报文通过负载分担方式进入dr系统。
7.组播接收者1向交换机a发送igmp成员关系报告报文(该报文包括组播组地址(*,225.1.1.1))。交换机a接收igmp成员关系报告报文后上送二层组播模块。二层组播模块将通过ipl链路向交换机b转发该igmp成员关系报告报文。如此,交换机a、交换机b分别学习到组播表项,交换机a学习到组播组表项的成员端口为单挂口,交换机b学习到组播组表项的成员端口为ipp口。
8.组播接收者2向交换机c发送igmp成员关系报告报文(该报文包括组播组地址(*,225.1.1.1))。该igmp成员关系报告报文被负载分担到交换机a上进行转发处理。交换机a接收igmp成员关系报告报文后上送二层组播模块。二层组播模块将通过ipl链路向交换机b转发该igmp成员关系报告报文,可以理解的是,在该igmp成员关系报告报文中包括交换机a的dr口信息。如此,交换机a、交换机b分别学习到组播表项,且每个交换机学习到组播组表项的成员端口均为dr口。
9.在图2中,组播源发送的组播数据报文通过二层网络到达交换机b。根据组播表项,交换机b查找到成员端口分别为内部控制链路端口(英文:intra-portal port,简称:ipp口)和dr口。交换机b通过dr口,向交换机c转发组播数据报文,以使得交换机c查表后将组播
数据报文转发至组播接收者2。交换机b通过ipp口以及内部控制链路链路(英文:intra-portal link,简称:ipl链路),向交换机a转发组播数据报文。根据组播表项,交换机a查找到成员端口分别为dr口和单挂口。交换机a通过单挂口,向组播接收者1转发组播数据报文。同时,根据dr系统对于数据报文的处理规则,从ipl链路上接收到的数据报文不再通过本地dr口转发(除非对端dr口故障时转发),如此,组播接收者2最终将接收到一份组播数据报文。
10.如图3所示,图3为现有组播接收者接入dr系统并离开组播组示意图。在图3中,组播接收者1、组播接收者2、组播接收者3均已加入组播组中。交换机a通过同一个单挂口与组播接收者1、组播接收者3连接。
11.组播接收者1向交换机a发送igmp离开组报文,通过ipl链路,交换机a向交换机b转发igmp离开组报文。交换机a对igmp离开组报文进行处理,根据igmp snooping协议,网络设备接收到igmp离开组报文后,需通过接收igmp离开组报文的成员端口发送特定组播组查询报文。同理,交换机b通过ipp口接收到igmp离开组报文后,也通过ipp口发送特定组播组查询报文。此时,交换机a将会通过单挂口发送2次特定组播组查询报文。组播接收者3也将接收到2次特定组播组查询报文,并回复2次igmp成员关系报告报文,交换机a、交换机b又分别接收到2次igmp成员关系报告报文。
12.上述组播接收者加入、离开组播组的过程中,ipl链路做为dr系统中两台dr设备之间报文同步的唯一通道,存在较多冗余报文的传递(例如,每一个接入交换机a的组播接收者加入、离开组播组时,交换机a均会向交换机b转发报文),占用了正常链路带宽,影响报文传递性能。


技术实现要素:

13.有鉴于此,本技术提供了一种组播报文处理方法及装置,用以解决组播接收者加入、离开组播组的过程中,ipl链路中存在较多冗余报文的传递,占用正常链路带宽,影响报文传递性能的问题。
14.第一方面,本技术提供了一种组播报文处理方法,所述方法应用于第一网络设备,所述第一网络设备处于dr系统内,所述dr系统还包括第二网络设备,所述第一网络设备与所述第二网络设备之间已建立ipl链路,所述方法包括:
15.通过第一接口,接收第一组播接收者发送的第一igmp成员关系报告报文,所述第一igmp成员关系报告报文包括第一组播组地址;
16.根据所述第一组播组地址,判断本地是否已存在与所述第一组播组地址匹配的第一组播组表项;
17.若存在,则将所述第一接口的标识加入所述第一组播组表项内,并不再通过所述ipl链路向所述第二网络设备转发所述第一igmp成员关系报告报文。
18.第二方面,本技术提供了一种组播报文处理装置,所述装置应用于第一网络设备,所述第一网络设备处于dr系统内,所述dr系统还包括第二网络设备,所述第一网络设备与所述第二网络设备之间已建立ipl链路,所述装置包括:
19.接收单元,用于通过第一接口,接收第一组播接收者发送的第一igmp成员关系报告报文,所述第一igmp成员关系报告报文包括第一组播组地址;
20.第一判断单元,用于根据所述第一组播组地址,判断本地是否已存在与所述第一组播组地址匹配的第一组播组表项;
21.加入单元,用于若存在,则将所述第一接口的标识加入所述第一组播组表项内,并不再通过所述ipl链路向所述第二网络设备转发所述第一igmp成员关系报告报文。
22.第三方面,本技术提供了一种网络设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使执行本技术第一方面所提供的方法。
附图说明
23.图1为多台路由器组网示意图;
24.图2为现有组播接收者接入dr系统并加入组播组示意图;
25.图3为现有组播接收者接入dr系统并离开组播组示意图;
26.图4为本技术实施例提供的组播报文处理方法的流程图;
27.图5为本技术实施例提供的dr系统内应用通信方法的组网示意图;
28.图6为本技术实施例提供的组播报文处理装置结构图;
29.图7为本技术实施例提供的网络设备硬件结构体。
具体实施方式
30.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本技术相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
31.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。
32.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
33.下面对本技术实施例提供的组播报文处理方法进行详细地说明。参见图4,图4为本技术实施例提供的组播报文处理方法的流程图。该方法应用于第一网络设备。本技术实施例提供的通信方法可包括如下所示步骤。
34.步骤410、通过第一接口,接收第一组播接收者发送的第一igmp成员关系报告报文,所述第一igmp成员关系报告报文包括第一组播组地址。
35.具体地,第一网络设备处于dr系统内,该dr系统还包括第二网络设备,第一网络设备、第二网络设备各自通过自身包括的ipp口,建立ipl链路。至少一个组播接收者接入第一网络设备。
36.第一组播接收者通过第一接口接入第一网络设备。当第一组播接收者预接入第一组播组时,第一组播接收者向第一网络设备发送第一igmp成员关系报告报文,第一igmp成员关系报告报文包括第一组播组地址。
37.通过第一接口,第一网络设备接收第一组播接收者发送的第一igmp成员关系报告报文。
38.进一步地,在本步骤之前,还包括第一网络设备接收其他组播接收者发送的igmp成员关系报告报文,并生成组播组表项的过程。
39.第二组播接收者通过第二接口接入第一网络设备。当第二组播接收者预接入第一组播组时,第二组播接收者向第一网络设备发送第二igmp成员关系报告报文,第二igmp成员关系报告报文包括第一组播组地址。
40.根据第一组播组地址,第一网络设备判断本地是否已存在与第一组播组地址匹配的第一组播组表项。若未存在,则说明第二组播接收者为首个加入第一组播组的网络设备,第一网络设备在本地创建第一组播组表项,第一组播组表项包括第一组播组地址以及第二接口的标识,其中,第二接口的标识存储至第一组播组表项的出端口列表中。
41.由于第二组播接收者为首个加入第一组播组的网络设备,此时,第一网络设备通过ipl链路,向第二网络设备转发第二igmp成员关系报告报文。
42.通过ipp口,第二网络设备接收到第二igmp成员关系报告报文后,从第二igmp成员关系报告报文中获取第一组播组地址。根据第一组播组地址,第二网络设备判断本地是否已存在与第一组播组地址匹配的第一组播组表项,若未存在,则第二网络设备在本地创建第一组播组表项,第一组播组表项包括第一组播组地址以及ipp口的标识,其中,ipp口的标识存储至第一组播组表项的出端口列表中。
43.在本技术实施例中,第一网络设备将第二接口作为动态成员口加入第一组播组表项中,该动态成员口设置老化。第二网络设备将ipp口作为静态成员口加入第一组播组表项中,该静态成员口不设置老化。
44.需要说明的是,第一接口与第二接口可为相同或不同的接口,本技术实施例并不对此进行限制。
45.步骤420、根据所述第一组播组地址,判断本地是否已存在与所述第一组播组地址匹配的第一组播组表项。
46.具体地,根据步骤410的描述,第一网络设备从第一igmp成员关系报告报文中获取第一组播组地址后,根据第一组播组地址,再次判断本地是否已存在与第一组播组地址匹配的第一组播组表项。
47.若存在,则执行步骤430;若未存在,则说明第一组播接收者为首个加入第一组播组的网络设备,第一网络设备再次在本地创建组一播组表项,该组播组表项包括第一组播组地址以及第一接口的标识。
48.可以理解的是,在本技术实施例中,第一igmp成员关系报告报文、第二igmp成员关系报告报文中包括的组播组地址均为相同的组播组地址,因此,在第一网络设备内存在匹配的第一组播组表项。
49.步骤430、若存在,则将所述第一接口的标识加入所述第一组播组表项内,并不再通过所述ipl链路向所述第二网络设备转发所述第一igmp成员关系报告报文。
50.具体地,根据步骤420的描述,若本地已存在与第一组播组地址匹配的第一组播组表项,则第一网络设备将第一接口的标识加入第一组播组表项内,其中,第一接口的标识存储至第一组播组表项的出端口列表中。此时,第一组播表项的出端口列表中包括第一接口的标识、第二接口的标识。
51.同时,第一网络设备不再通过ipl链路向第二网络设备转发第一igmp成员关系报告报文。
52.在本技术实施例中,第一网络设备将第一接口作为动态成员口加入第一组播组表项中,该动态成员口设置老化。
53.由于第一网络设备已将首次加入第一组播组地址的组播接收者发送的igmp成员关系报告报文转发至第二网络设备,也使得第二网络设备在本地创建对应的包括第一组播组地址以及ipp口的第一组播组表项,因此,后续加入同一组播组地址的组播接收者发送的igmp成员关系报告报文可不必再转发至第二网络设备,原因在于,第二网络设备接收到后续的igmp成员关系报告报文后,其仍将ipp口作为在先已建立的第一组播组的成员接口加入第一组播组表项中。如此,dr系统内的dr设备不再频繁使用ipl链路发送组播相关报文,有效地提升ipl链路的性能。
54.因此,通过应用本技术提供的组播报文处理方法,第一网络设备通过第一接口,接收第一组播接收者发送的第一igmp成员关系报告报文,该第一igmp成员关系报告报文包括第一组播组地址;根据第一组播组地址,第一网络设备判断本地是否已存在与第一组播组地址匹配的第一组播组表项;若存在,则第一网络设备将第一接口的标识加入第一组播组表项内,并不再通过ipl链路向第二网络设备转发第一igmp成员关系报告报文。
55.如此,当dr系统内某一个dr设备单挂接入一个或多个组播接收者时,不再频繁使用ipl链路向另一台dr设备转发组播相关报文,同理,另一台dr设备也不再频繁使用ipl链路发送组播相关报文,有效地提升ipl链路的性能。解决了组播接收者加入、离开组播组的过程中,ipl链路中存在较多冗余报文的传递,占用正常链路带宽,影响报文传递性能的问题。
56.可选地,在本技术实施例中,还包括第一网络设备接收到igmp离开组报文后,对igmp离开组报文进行处理的过程。
57.具体地,第三组播接收者通过第三接口接入第一网络设备,并且,第三组播接收者已加入第二组播组。当第三组播接收者预离开第二组播组时,第三组播接收者向第一网络设备发送第一igmp离开组报文,第一igmp离开组报文包括第二组播组地址。
58.通过第三接口,第一网络设备接收第一igmp离开组报文,并从第一igmp离开组报文中获取第二组播组地址。
59.根据第二组播组地址,第一网络设备判断本地是否已存在与第二组播组地址匹配的第二组播组表项。若本地已存在与第二组播组地址匹配的第二组播组表项,则第一网络设备判断第二组播组表项的出端口列表中是否不包括除第三接口之外的其他接口,也即是,第一网络设备判断第二组播组表项的出端口列表中第三接口是否为唯一接口。若第二组播组表项的出端口列表中第三接口是唯一接口,则第一网络设备判断第三接口下是否还接入第四组播接收者(也即是该第三接口下是否接入了多个组播接收者)。
60.若第三接口下未接入第四组播接收者,则说明该第三接口下当前仅第三组播接收
者接入,第一网络设备从出端口列表中删除第三接口,并删除第二组播组表项。
61.由于第一网络设备内已将第二组播组表项删除,也即是,第一网络设备当前接入的组播接收者均不再接收第二组播组的任何信息。此时,第一网络设备需将第一igmp离开组报文通过ipl链路转发至第二网络设备。
62.通过ipl链路,第一网络设备向第二网络设备转发第一igmp离开组报文。通过ipp口,第二网络设备接收到第一igmp离开组报文,并从第一igmp离开组报文中获取第二组播组地址。
63.根据第二组播组地址,第二网络设备判断本地是否已存在与第二组播组地址匹配的第二组播组表项。
64.可以理解的是,第一网络设备可参照前述实施例步骤410-步骤430的描述将包括第二组播组地址的igmp成员关系报告报文通过ipl链路传输至第二网络设备处,以使得第二网络设备已在本地创建第二组播组表项,该第二组播组表项包括第二组播组地址以及ipp口的标识。
65.若第二网络设备内已存在与第二组播组地址匹配的第二组播组表项,则第二网络设备判断第二组播组表项的出端口列表中是否不包括除ipp口之外的其他接口,也即是,第二网络设备判断第二组播组表项的出端口列表中ipp口是否为唯一接口。若第二组播组表项的出端口列表中ipp口是唯一接口,则第二网络设备从出端口列表中删除ipp口,并删除第二组播组表项;若第二组播组表项的出端口列表中ipp口不是唯一接口,则第二网络设备从出端口列表中删除ipp口。
66.需要说明的是,第二网络设备接收到第一igmp离开组报文后,不再通过ipl链路向第一网络设备发送igmp特定组查询报文。如此,dr系统内的dr设备不再频繁使用ipl链路发送组播相关报文,有效地提升ipl链路的性能。
67.进一步地,第一网络设备判断第二组播组表项的出端口列表中是否不包括除第三接口之外的其他接口还包括一种情况,即,若第二组播组表项的出端口列表中第三接口不是唯一接口,也即是,该出端口列表中还包括其他接口,则第一网络设备继续判断第三接口下是否还接入第四组播接收者(也即是该第三接口下是否接入了多个组播接收者)。
68.若第三接口下未接入第四组播接收者,则说明该第三接口下当前仅第三组播接收者接入,第一网络设备从出端口列表中删除第三接口,并保留第二组播组表项。同时,第一网络设备不再通过ipl链路向第二网络设备转发第一igmp离开组报文。
69.由于出端口列表中还包括其他接口,则说明第一网络设备内仍通过其他接口与组播接收者连接,因此,前述第一igmp离开组报文可不必再转发至第二网络设备,原因在于,在先已建立的第二组播组仍为有效的组播组,其对应的组播组表项中仍存在其他接口,若第二网络设备接收到igmp离开组报文后,其无法将ipp口从该组播组表项中删除,仍会保留ipp口在该组播组表项中,以使得第二网络设备接收到组播报文后,可通过ipl链路将组播报文转发至第一网络设备中,并由第一网络设备通过其他接口向组播接收者转发组播报文。如此,dr系统内的dr设备不再频繁使用ipl链路发送组播相关报文,有效地提升ipl链路的性能。
70.更进一步地,前述第一网络设备判断第三接口下是否接入第四组播接收者的具体过程为:第一网络设备生成igmp特定组查询报文,并向第三接口发送igmp特定组查询报文。
第三接口接收到igmp特定组查询报文后,向接入第三接口的第三组播接收者发送igmp特定组查询报文。
71.在本技术实施例中,第一网络设备向第三接口发送igmp特定组查询报文后,启动一定时器,并在定时器设置的时长内判断是否通过第三接口接收到第三组播接收者发送的第三igmp成员关系报告报文。
72.若在预设时间内,第一网络设备未通过第三接口接收到第三igmp成员关系报告报文,则第一网络设备确定第三接口下未接入第四组播接收者;若在预设时间内,第一网络设备通过第三接口接收到第三igmp成员关系报告报文,则第一网络设备确定第三接口下接入第四组播接收者。
73.可选地,在本技术实施例中,还包括第一网络设备接收第二网络设备发送的igmp离开组报文,并对igmp离开组报文进行处理的过程。
74.具体地,第一网络设备与第二网络设备角色互换,即第二网络设备通过自身接口接入过个组播接收者,与前一实施例的过程相似,第二网络设备可通过ipl链路,向第一网络设备转发igmp离开组报文,以使得第一网络设备在本地删除对应的组播组表项,在此仅简单说明。
75.当第二网络设备接收到第二igmp离开组报文后,确定接收第二igmp离开组报文的接口为出端口列表中唯一接口,且该接口下未接入其他组播接收者,通过ipl链路,第二网络设备向第一网络设备转发第二igmp离开组报文。
76.通过ipl链路,第一网络设备接收第二igmp离开组报文,该第二igmp离开组报文包括第三组播组地址。
77.根据第三组播组地址,第一网络设备判断本地是否已存在与第三组播组地址匹配的第三组播组表项。若已存在与第三组播组地址匹配的第三组播组表项,则第一网络设备判断第三组播组表项的出端口列表中是否不包括除ipp口之外的其他接口。若第三组播组表项的出端口列表中ipp口是唯一接口,则第一网络设备将ipp口从第三组播组表项的出端口列表中删除,并删除第三组播组表项;若第三组播组表项的出端口列表中ipp口不是唯一接口,则第一网络设备将ipp口从第三组播组表项的出端口列表中删除。
78.需要说明的是,第一网络设备接收到第二igmp离开组报文后,不再通过ipl链路向第二网络设备发送igmp特定组查询报文。如此,dr系统内的dr设备不再频繁使用ipl链路发送组播相关报文,有效地提升ipl链路的性能。
79.可选地,在本技术实施例中,还包括ipl链路故障、网络设备故障以使得ipp口down时,对本地组播组表项进行处理的过程。
80.具体地,若ipl链路故障或者第二网络设备故障,此时,第一网络设备的ipp口为down状态,则第一网络设备从本地获取包括ipp口的第四组播组表项。第一网络设备从第四组播组表项的出端口列表中删除ipp口。
81.可以理解的是,若第四组播组表项的出端口列表中不包括除ipp口之外的其他接口,则第一网络设备删除第四组播组表项。
82.下面通过一个具体示例详细说明本技术实施例提供的组播报文处理方法。以图5所示的组网为例进行说明。图5为本技术实施例提供的应用组播报文处理方法的组网示意图。
83.在图5中,交换机a与交换机b组成dr系统,交换机a与交换机b之间已建立ipl链路。组播接收者1、组播接收者3、组播接收者4、组播接收者5均为单挂网络设备并接入交换机a的不同接口。组播接收者2与交换机c连接,且交换机c通过dr口接入dr系统。交换机c发送的报文通过负载分担方式进入dr系统。
84.在本技术实施例中,以多个组播接收者接入交换机a的不同接口为例进行说明。在实际应用中,多个组播接收者也可接入交换机a的同一接口,本技术实施例并不对此进行限制。
85.组播接收者1预加入组播组1时,组播接收者1向交换机a发送第一igmp成员关系报告报文,第一igmp成员关系报告报文包括组播组地址1。
86.通过port1,交换机a接收第一igmp成员关系报告报文。根据组播组地址1,交换机a判断本地是否已存在与组播组地址1匹配的第一组播组表项。若未存在,则说明组播接收者1为首个加入组播组1的网络设备,交换机a在本地创建第一组播组表项,第一组播组表项包括组播组地址1以及port1的标识,其中,port1的标识存储至第一组播组表项的出端口列表中。
87.由于组播接收者1为首个加入组播组1的网络设备,此时,交换机a通过ipl链路,向交换机b转发第一igmp成员关系报告报文。
88.通过ipp口,交换机b接收到第一igmp成员关系报告报文后,根据组播组地址1,交换机b判断本地是否已存在与组播组地址1匹配的第一组播组表项,若未存在,则交换机b在本地创建第一组播组表项,第一组播组表项包括组播组地址1以及ipp口的标识,其中,ipp口的标识存储至第一组播组表项的出端口列表中。
89.在本技术实施例中,交换机a将port1作为动态成员口加入第一组播组表项中,该动态成员口设置老化。交换机b将ipp口作为静态成员口加入第一组播组表项中,该静态成员口不设置老化。
90.后续,组播接收者3、组播接收者4以及组播接收者5均预加入组播组1时,组播接收者3、组播接收者4以及组播接收者5向交换机a发送第二igmp成员关系报告报文(可以理解的是,每个组播接收者分别向交换机a发送一igmp成员关系报告报文,为了方便描述,在此统称为第二igmp成员关系报告报文),第二igmp成员关系报告报文包括组播组地址1。
91.以组播接收者3发送的第二igmp成员关系报告报文为例,通过port3,交换机a接收第二igmp成员关系报告报文。根据组播组地址1,交换机a判断本地是否已存在与组播组地址1匹配的第一组播组表项。若存在,则交换机a将port3的标识加入第一组播组表项内。此时,第一组播组表项包括组播组地址1、port1的标识以及port3的标识,其中,port3的标识存储至第一组播组表项的出端口列表中。
92.可以理解的是,后续交换机a接收到组播接收者4、组播接收者5发送的第二igmp成员关系报告报文后,将port4的标识、port5的标识加入第一组播组表项。第一组播组表项包括组播组地址1、port1的标识、port3的标识、port4的标识、port5的标识,其中,出端口列表包括port1的标识、port3的标识、port4的标识、port5的标识。
93.同时,交换机a不再通过ipl链路向交换机b转发第二igmp成员关系报告报文。
94.组播接收者1预离开组播组1时,组播接收者1向交换机a发送第一igmp离开组报文,第一igmp离开组报文包括组播组地址1。
95.通过port1,交换机a接收第一igmp离开组报文。根据组播组地址1,交换机a判断本地是否已存在与组播组地址1匹配的第一组播组表项。若存在,则交换机a判断第一组播组表项的出端口列表中是否不包括除port1之外的其他接口,也即是,交换机a判断第一组播组表项的出端口列表中port1是否为唯一接口。
96.在本技术实施例中,交换机a内第一组播表项的出端口列表中包括了4个接口的标识,分别为port1的标识、port3的标识、port4的标识、port5的标识。因此,第一组播组表项的出端口列表中port1不是唯一接口,则交换机a判断port1下是否还接入组播接收者6。
97.在本技术实施例中,port1下未接入组播接收者6,则交换机a从第一组播组表项的出端口列表中删除port1的标识,并保留第一组播组表项。同时,交换机a不再通过ipl链路向交换机b转发第一igmp离开组报文。
98.后续,组播接收者3、组播接收者4以及组播接收者5均预离开组播组1时,组播接收者3、组播接收者4以及组播接收者5向交换机a发送第二igmp离开组报文(可以理解的是,每个组播接收者分别向交换机a发送一igmp离开组报文,为了方便描述,在此统称为第二igmp离开组报文),第二igmp离开组报文包括组播组地址1。
99.同理,组播接收者3、组播接收者4发送第二igmp离开组报文后,交换机a也执行前述接收到第一igmp离开组报文相同过程,在此不再复述。可以理解的是,交换机a接收到组播接收者3、组播接收者4发送的第二igmp离开组报文后,第一组播组表项的出端口列表中包括port5的标识。
100.组播接收者5预离开组播组1时,组播接收者5向交换机a发送第二igmp离开组报文,第二igmp离开组报文包括组播组地址1。
101.通过port5,交换机a接收第二igmp离开组报文。根据组播组地址1,交换机a判断本地是否已存在与组播组地址1匹配的第一组播组表项。若存在,则交换机a判断第一组播组表项的出端口列表中是否不包括除port5之外的其他接口,也即是,交换机a判断第一组播组表项的出端口列表中port5是否为唯一接口。
102.在本技术实施例中,交换机a内第一组播表项的出端口列表中包括了1个接口的标识,即,port5的标识。因此,第一组播组表项的出端口列表中port5是唯一接口,则交换机a判断port5下是否还接入组播接收者6。
103.在本技术实施例中,port5下未接入组播接收者6,则交换机a从第一组播组表项的出端口列表中删除port5的标识,由于出端口列表中已不存在接口,交换机a删除第一组播组表项。同时,交换机a通过ipl链路向交换机b转发第二igmp离开组报文。
104.通过ipp口,交换机b接收到第二igmp离开组报文,并从第二igmp离开组报文中获取组播组地址1。
105.根据组播组地址1,交换机b判断本地是否已存在与组播组地址1匹配的第一组播组表项。
106.在本技术实施例中,交换机b内已存在与组播组地址1匹配的第一组播组表项,且该第一组播组表项的出端口列表中包括ipp口的标识。交换机b判断第一组播组表项的出端口列表中是否不包括除ipp口之外的其他接口,也即是,交换机b判断第一组播组表项的出端口列表中ipp口是否为唯一接口。
107.在本技术实施例中,交换机b内第一组播表项的出端口列表中包括了1个接口的标
识,即,ipp口的标识。因此,第一组播组表项的出端口列表中ipp口是唯一接口,则交换机b从出端口列表中删除ipp口,由于出端口列表中已不存在接口,交换机b删除第一组播组表项。
108.需要说明的是,交换机b接收到第二igmp离开组报文后,不再通过ipl链路向交换机a发送igmp特定组查询报文。如此,dr系统内的dr设备不再频繁使用ipl链路发送组播相关报文,有效地提升ipl链路的性能。
109.在本技术实施例中,若ipl链路故障或者交换机a故障,此时,交换机b的ipp口为down状态,则交换机b从本地获取包括ipp口的第一组播组表项,并从第一组播组表项的出端口列表中删除ipp口。
110.可以理解的是,若第一组播组表项的出端口列表中不包括除ipp口之外的其他接口,则交换机b删除第一组播组表项。
111.基于同一发明构思,本技术实施例还提供了与组播报文处理方法对应的通信装置。参见图6,图6为本技术实施例提供的组播报文处理装置结构图。所述装置应用于第一网络设备,所述第一网络设备处于dr系统内,所述dr系统还包括第二网络设备,所述第一网络设备与所述第二网络设备之间已建立ipl链路,所述装置包括:
112.接收单元610,用于通过第一接口,接收第一组播接收者发送的第一igmp成员关系报告报文,所述第一igmp成员关系报告报文包括第一组播组地址;
113.第一判断单元620,用于根据所述第一组播组地址,判断本地是否已存在与所述第一组播组地址匹配的第一组播组表项;
114.加入单元630,用于若存在,则将所述第一接口的标识加入所述第一组播组表项内,并不再通过所述ipl链路向所述第二网络设备转发所述第一igmp成员关系报告报文。
115.可选地,所述接收单元610还用于,通过第二接口,接收第二组播接收者发送的第二igmp成员关系报告报文,所述第二igmp成员关系报告报文包括所述第一组播组地址;
116.所述第一判断单元620还用于,根据所述第一组播组地址,判断本地是否已存在与所述第一组播组地址匹配的第一组播组表项;
117.所述装置还包括:创建单元(图中未示出),用于若未存在,则在本地创建所述第一组播组表项,所述第一组播组表项包括所述第一组播组地址以及所述第二接口的标识;
118.所述发送单元630还用于,通过所述ipl链路,向所述第二网络设备转发所述第二igmp成员关系报告报文,以使得所述第二网络设备在本地创建第一组播组表项,所述第一组播组表项包括所述第一组播组地址以及ipp口的标识,所述ipp口被设置为静态成员口且不设置老化时间。
119.可选地,所述接收单元610还用于,通过第三接口,接收第三组播接收者发送的第一igmp离开组报文,所述第一igmp离开组报文包括第二组播组地址;
120.所述装置还包括:第二判断单元(图中未示出),用于根据所述第二组播组地址,判断本地是否已存在与所述第二组播组地址匹配的第二组播组表项;
121.第三判断单元(图中未示出),用于若存在,则判断所述第二组播组表项的出端口列表中是否不包括除所述第三接口之外的其他接口;
122.第四判断单元(图中未示出),用于若是,则判断所述第三接口下是否接入第四组播接收者;
123.第一删除单元(图中未示出),用于若未接入,则从所述出端口列表中删除所述第三接口,并删除所述第二组播组表项;
124.所述发送单元630还用于,通过所述ipl链路,向所述第二网络设备转发所述第一igmp离开组报文,以使得所述第二网络设备在本地删除对应的第二组播组表项。
125.可选地,所述装置还包括:
126.第五判断单元(图中未示出),用于若否,则判断所述第三接口下是否接入第四组播接收者;
127.第二删除单元(图中未示出),用于若未接入,则从所述出端口列表中删除所述第三接口。
128.可选地,所述第四判断单元(图中未示出)、所述第五判断单元(图中未示出)具体用于,向所述第三接口发送igmp特定组查询报文;
129.若在预设时间内,未通过所述第三接口接收到第三igmp成员关系报告报文,则确定所述第三接口下未接入所述第四组播接收者。
130.可选地,所述接收单元610还用于,通过所述ipl链路,接收所述第二网络设备发送的第二igmp离开组报文,所述第二igmp离开组报文包括第三组播组地址;
131.第六判断单元(图中未示出),用于根据所述第三组播组地址,判断本地是否已存在与所述第三组播组地址匹配的第三组播组表项;
132.第七判断单元(图中未示出),用于若存在,则判断所述第三组播组表项的出端口列表中是否不包括除ipp口之外的其他接口;
133.第三删除单元(图中未示出),用于若是,则将所述ipp口从所述第三组播组表项的出端口列表中删除,并删除所述第三组播组表项;
134.若否,则将所述ipp口从所述第三组播组表项的出端口列表中删除。
135.可选地,所述装置还包括:
136.获取单元(图中未示出),用于若所述ipl链路故障或者所述第二网络设备故障,则从本地获取包括ipp口的第四组播组表项;
137.第四删除单元(图中未示出),用于从所述第四组播组表项的出端口列表中删除所述ipp口;
138.若所述第四组播组表项的出端口列表中不包括除所述ipp口之外的其他接口,则删除所述第四组播组表项。
139.因此,通过应用本技术提供的组播报文处理装置,第一网络设备通过第一接口,接收第一组播接收者发送的第一igmp成员关系报告报文,该第一igmp成员关系报告报文包括第一组播组地址;根据第一组播组地址,第一网络设备判断本地是否已存在与第一组播组地址匹配的第一组播组表项;若存在,则第一网络设备将第一接口的标识加入第一组播组表项内,并不再通过ipl链路向第二网络设备转发第一igmp成员关系报告报文。
140.如此,当dr系统内某一个dr设备单挂接入一个或多个组播接收者时,不再频繁使用ipl链路向另一台dr设备转发组播相关报文,同理,另一台dr设备也不再频繁使用ipl链路发送组播相关报文,有效地提升ipl链路的性能。解决了组播接收者加入、离开组播组的过程中,ipl链路中存在较多冗余报文的传递,占用正常链路带宽,影响报文传递性能的问题。
141.基于同一发明构思,本技术实施例还提供了一种网络设备,如图7所示,包括处理器710、收发器720和机器可读存储介质730,机器可读存储介质730存储有能够被处理器710执行的机器可执行指令,处理器710被机器可执行指令促使执行本技术实施例所提供的组播报文处理方法。前述图6所示的组播报文处理装置,可采用如图7所示的网络设备硬件结构实现。
142.上述计算机可读存储介质730可以包括随机存取存储器(英文:random access memory,简称:ram),也可以包括非易失性存储器(英文:non-volatile memory,简称:nvm),例如至少一个磁盘存储器。可选的,计算机可读存储介质730还可以是至少一个位于远离前述处理器710的存储装置。
143.上述处理器710可以是通用处理器,包括中央处理器(英文:central processing unit,简称:cpu)、网络处理器(英文:network processor,简称:np)等;还可以是数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)、现场可编程门阵列(英文:field-programmable gate array,简称:fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
144.本技术实施例中,处理器710通过读取机器可读存储介质730中存储的机器可执行指令,被机器可执行指令促使能够实现处理器710自身以及调用收发器720执行前述本技术实施例描述的组播报文处理方法。
145.另外,本技术实施例提供了一种机器可读存储介质730,机器可读存储介质730存储有机器可执行指令,在被处理器710调用和执行时,机器可执行指令促使处理器710自身以及调用收发器720执行前述本技术实施例描述的通信方法。
146.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
147.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
148.对于组播报文处理装置以及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
149.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1