一种二层组播的实现方法及接入设备的制作方法

文档序号:7974689阅读:261来源:国知局
专利名称:一种二层组播的实现方法及接入设备的制作方法
技术领域
本发明涉及组播技术,具体地说,是涉及一种二层组播的实现方法及接入设备。
背景技术
组播是指组播源将数据包发送到网络中的某个确定节点子集,这个子集称为组播组。组播的基本思想是组播源只发送一份组播数据,这份组播数据的目的地址为组播组地址,组播组中的所有成员都可以接收到同样的数据拷贝。组播组用D类IP地址(224.0.0.0~239.255.255.255)来标识,该IP地址不表示具体的用户终端,用户终端加入某个组播组即声明自己接收目的地址为该IP地址的报文。在一对多的通讯方式下,组播技术可以降低网络流量,提高网络通讯效率。
在数据链路层实现的组播称为二层组播。接入设备上维护有一个二层组播表,所述二层组播表包括组播业务信息、出端口信息,及二者之间的对应关系。组播业务信息是(S,G)信息,S表示组播源地址,G表示组播组地址,用户终端定制组播业务(S,G)后即成为该组播组的成员;出端口信息是组播组成员与接入设备连接的逻辑接口信息,出端口信息可能只包括一个与(S,G)对应的出端口,在存在多个用户终端定制相同的组播业务的情况下,出端口信息还可能是一个与(S,G)对应的出端口列表。
接入设备为二层交换设备,包括局域网交换机(Local Access NetworkSwitch,LSW)、无线网络中的接入控制器(Access Controller,AC)等。接入设备对组播报文进行窃听,接收到组播报文后,根据二层组播表中的相关信息,将组播报文从其所属的组播业务在二层组播表中对应的出端口转发出去。也就是说,组播报文只会发送到连接有组播组成员的端口上。
由于在一个网络中通常包括多个二层交换设备,这样就有可能会出现二层组播环路。图1为现有技术中存在二层组播环路的网络结构示意图。如图1所示,该组播网络中包括三个交换机第一交换机LSW1、第二交换机LSW2和第三交换机LSW3。LSW1、LSW2、LSW3之间的连接既可以是普通的二层连接,也可以是二层隧道连接。可以看出,LSW1、LSW2、LSW3构成了一个环路。对于定制了组播业务的用户终端STA来说,组播源,即媒体流服务器(Media Server,MS)的组播报文有两条通道到达该用户终端,一条是LSW1-LSW2-LSW3,另外一条是LSW1-LSW3。因此,LSW3对相同的组播报文要转发两次,同时STA也会收到两份相同的组播报文,这导致了系统资源的浪费,并增加了接入设备的工作负担。
在现有技术中,交换设备利用生成树协议(Spanning Tree Protocol,RTP)来解决二层组播环路问题。其采用的方法为,在网络中存在冗余链路时,只允许主链路被激活,而断开冗余链路;如果主链路因故障被断开,备用链路将被自动激活。但是,这需要交换设备支持STP。如果交换设备不支持STP,或者虽然支持STP,但存在异质网络,比如存在不参与生成树计算的二层隧道接口,则仍然不能避免二层组播环路。例如在无线局域网(Wireless LocalArea Network,WLAN)中,无线用户漫游时,在归属地AC和漫游地AC间就会存在二层隧道接口,如前所述,该二层隧道接口不参与生成树计算,因而不能通过STP解决其中的二层组播环路问题。
因此,如何提供一种二层组播的实现方法及接入设备,来克服二层组播环路问题,成为了亟待解决的技术问题。

发明内容
本发明所要解决的技术问题是提供一种二层组播的实现方法及接入设备,以克服二层组播环路问题,从而节约系统资源,降低接入设备的工作负担。
为了解决上述问题,本发明提供技术方案如下一种二层组播的实现方法,包括以下步骤(A)接入设备建立并维护二层组播表,所述二层组播表包括组播业务信息、入端口信息,及二者之间的对应关系;(B)接入设备在接收到组播报文时,判断接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口是否一致,若一致,将该组播报文从相应的出端口转发出去;否则,直接丢弃该组播报文。
本发明所述的方法,其中,步骤(A)中,建立并维护二层组播表的方法包括接入设备窃听用户终端发送的组播定制报文,根据该组播定制报文建立二层组播表或者对二层组播表进行更新;以及在确定所述用户终端为其所加入的组播组的第一个成员时,将二层组播表中相应的入端口信息设置为特定值。
本发明所述的方法,其中,步骤(A)之后进一步包括接入设备在其某个端口不可用时,将二层组播表中相应的入端口信息设置为特定值。
本发明所述的方法,其中,步骤(B)中,在确定接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口不一致时,若所述对应的入端口为特定值,则将所述对应的入端口替换为所述接收组播报文的端口,并将该组播报文从相应的出端口转发出去。
本发明所述的方法,其中,步骤(A)之前进一步包括,预先设置接入设备入端口的优先级,并保存该优先级信息;步骤(B)中,在确定接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口不一致时,若所述接收组播报文的端口的优先级比所述对应的入端口的优先级高,则将所述对应的入端口替换为所述接收组播报文的端口,并将该组播报文从相应的出端口转发出去。
一种接入设备,包括,组播定制模块、存储模块、组播窃听模块、组播转发模块,其中组播定制模块,用于根据用户终端发送的组播定制报文建立并维护二层组播表,以及将二层组播表发送到存储模块,所述二层组播表包括组播业务信息、入端口信息,及二者之间的对应关系;存储模块,用于保存所述二层组播表;组播窃听模块,用于接收组播报文,判断接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口是否一致,在确定二者一致时,将该组播报文交给组播转发模块并从相应的出端口转发出去;以及在确定二者不一致时,直接丢弃该组播报文。
本发明所述的接入设备,其中,组播定制模块在根据用户终端发送的组播定制报文建立并维护二层组播表的过程中,在确定所述用户终端为其所加入的组播组的第一个成员时,将二层组播表中相应的入端口信息设置为特定值。
本发明所述的接入设备,其中,还包括端口监测模块,用于对端口进行监测,以及在监测到某个端口不可用时,将二层组播表中相应的入端口信息设置为特定值。
本发明所述的接入设备,其中,组播窃听模块,进一步用于在确定接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口不一致,且所述对应的入端口为特定值时,将所述对应的入端口替换为所述接收组播报文的端口,并将该组播报文交给组播转发模块并从相应的出端口转发出去。
本发明所述的接入设备,其中,还包括,端口优先级设置模块,用于设置并保存接入设备入端口的优先级信息;组播窃听模块,进一步用于在确定接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口不一致,且根据所述优先级信息确定所述接收组播报文的端口的优先级比所述对应的入端口的优先级高时,将所述对应的入端口替换为所述接收组播报文的端口,并将该组播报文交给组播转发模块并从相应的出端口转发出去。
一种计算机软件产品,其中,包括若干指令用以使得一台计算机设备执行本发明所述的方法。
一种计算机设备,其中,包括用以执行本发明所述方法的软件以及运行该软件必须的硬件。
与现有技术相比,本发明的有益效果是通过在接入设备维护的二层组播表中增加入端口信息,在接收组播报文时,判断接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口是否一致,若一致,将该组播报文从相应的出端口转发出去;否则,直接丢弃该组播报文。这样,接入设备只从一个入端口接收组播业务,接收设备和用户终端都不会收到重复的组播报文,解决了二层组播环路问题,从而节约了系统资源,减轻了接入设备的工作负担。


图1为现有技术中存在二层组播环路的网络结构示意图;图2为本发明实施例所述二层组播的实现方法的流程图;图3为本发明实施例所述接入设备的结构示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
图2为本发明实施例所述二层组播的实现方法的流程图。以下结合图1及图2描述本发明实施例所述二层组播的实现方法,该方法包括以下步骤步骤201接入设备建立并维护二层组播表,所述二层组播表包括组播业务信息、入端口信息、出端口信息,以及组播业务信息分别与入端口信息、出端口信息之间的对应关系。
接入设备窃听用户终端发送的组播定制报文,根据该组播定制报文建立二层组播表或者对二层组播表进行更新。二层组播表项用{(S,G),in-port,out-port-list}表示,其中(S,G)表示组播业务,S为组播源地址,G为组播组地址;in-port表示组播业务的入端口,又称为源端口;out-port-list表示组播业务的出端口。
STA通过发送组播定制报文来加入或离开某个组播组。组播定制报文可以为互联网组播成员协议(Internet Group Member Protocol,IGMP)报文,或者组播成员发现协议(Multicast Listenter Discovery,MLD)报文。在本实施例中,STA通过LSW3接入网络,并通过IGMP报告报文申请在LSW3上加入组播组(S,G)。如果STA是组播组(S,G)的第一个成员,LSW3窃听到所述IGMP报告报文后,建立相应的二层组播表项。由于建立二层组播表项时并不知道入端口信息,此时入端口用一个特定值表示,比如用*表示,出端口为端口3,建立的二层组播表项为{(S,G),*,{端口3}}。
如果再有其他的用户终端,比如用户终端STA1也需要在LSW3上加入组播组(S,G),LSW3窃听到STA1发送的IGMP报告报文后,对出端口信息out-port-list进行更新,在out-port-list中增加STA1接入LSW3的端口(端口4,图中未示出),更新后的二层组播表项为{(S,G),*,{端口3,端口4}}。
接入设备为二层交换设备,包括LSW、无线网络中的AC等。接入设备对组播报文进行窃听,接收到组播报文后,根据二层组播表中的相关信息,将组播报文从其所属的组播业务在二层组播表中对应的出端口转发出去。
步骤202接入设备在接收到组播报文时,判断接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口是否一致,若一致,将该组播报文从相应的出端口转发出去;否则,直接丢弃该组播报文。
组播业务(S,G)的组播报文(假设通过LSW1-LSW3通道)到达LSW3,LSW3对该组播报文进行入端口检查,由于接收该组播报文的端口(端口1)同二层组播表中(S,G)对应的入端口(为特定值)不一致,于是,直接丢弃该组播报文。
此时,由于二层组播表中(S,G)对应的入端口为特定值,则可以确定这是组播业务(S,G)的第一份组播报文。在这种情况下,本发明实施例所述的方法进一步将二层组播表中(S,G)对应的入端口替换为接收该组播报文的端口(端口1),修改后的二层组播表项为{(S,G),{端口1},{端口3,端口4}}。
对后续的组播报文进行入端口检查时,如果后续的组播报文是通过LSW1-LSW3通道到达LSW3,由于接收该组播报文的端口(端口1)同二层组播表中(S,G)对应的入端口(端口1)一致,则将该组播报文从二层组播表中(S,G)对应的出端口{端口3,端口4}转发出去。如果是通过LSW1-LSW2-LSW3通道接收到组播报文,此时接收组播报文的端口(端口2)同二层组播表中(S,G)对应的入端口(端口1)不一致,则直接丢弃该组播报文。当然,对于第一份组播报文,也可以不丢弃,而是将该组播报文从相应的出端口转发出去。
这样,接入设备只从一个入端口接收组播业务,并将组播报文转发到用户终端,接入设备和用户终端都不会收到重复的组播报文,从而解决了二层组播环路问题。
在本发明实施例所述的二层组播的实现方法中,接入设备进一步对其端口进行监测,在监测到某个端口不可用时(比如端口DOWN、被删除或被禁用),将二层组播表中相应的入端口信息设置为特定值。因为在端口不可用时,如果在二层组播表中组播业务(S,G)对应的入端口为该不可用端口,由于该不可用端口不能接收组播报文,但从其他端口接收的组播报文却都被丢弃,导致用户终端一直接收不到其定制的组播业务的报文。而在将二层组播表中相应的入端口信息设置为特定值后,如果有组播报文从其他端口到达,如前所述,二层组播表中相应的入端口就会被替换为接收该组播报文的端口,这样,后续的组播报文也就可以从该替换后的入端口接收,并从相应的出端口转发出去。
在本发明另一实施例所述的二层组播的实现方法中,还预先设置接入设备入端口的优先级,并保存该优先级信息。设置端口优先级的目的是根据接入设备各端口的能力及负荷情况对端口进行优化配置。接入设备从优先级高的端口接收组播报文,从而提高了接入设备的传输效率。具体来说,就是在确定接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口不一致时,若所述接收组播报文的端口的优先级比所述对应的入端口的优先级高,则将所述对应的入端口替换为所述接收组播报文的端口,并将该组播报文从相应的出端口转发出去。
图3为本发明实施例所述接入设备的结构示意图,如图3所示,本发明实施例所述的接入设备包括组播定制模块31、存储模块32、组播窃听模块33和组播转发模块34。
组播定制模块31,用于根据用户终端发送的组播定制报文建立并维护二层组播表,以及将二层组播表发送到存储模块32,所述二层组播表包括组播业务信息、入端口信息、出端口信息,以及组播业务信息分别与入端口信息、出端口信息之间的对应关系。
组播定制模块31窃听用户终端发送的组播定制报文,根据该组播定制报文建立二层组播表或者对二层组播表进行更新。二层组播表项用{(S,G),in-port,out-port-list}表示,其中(S,G)表示组播业务,S为组播源地址,G为组播组地址;in-port表示组播业务的入端口;out-port-list表示组播业务的出端口。用户终端通过发送组播定制报文来加入或离开某个组播组。组播定制报文可以为IGMP报文,或者MLD报文。
如果用户终端是组播组(S,G)的第一个成员,组描定制模块31窃听到组播定制报文后,建立相应的二层组播表项。由于建立二层组播表项时并不知道入端口信息,此时入端口用一个特定值表示,例如用*表示。
存储模块32,用于保存所述二层组播表。组播定制模块31、组播窃听模块33、组播转发模块34都可以对存储模块32保存的二层组播表进行读取,组播定制模块31、组播窃听模块33还可以对该二层组播表进行修改。
组播窃听模块33,用于接收组播报文,判断接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口是否一致,在确定二者一致时,将该组播报文发送到组播转发模块34;以及在确定二者不一致时,直接丢弃该组播报文。这样能够保证接入设备只从一个入端口接收组播业务,并将组播报文转发到组播转发模块34,接收设备和用户终端都不会收到重复的组播报文。
组播转发模块34,用于根据二层组播表将所述组播报文从相应的出端口转发出去。组播转发模块34接收到组播报文后,从存储模块32保存的二层组播表中获取该组播报文所属的组播业务对应的出端口,并将所述组播报文从这些对应的出端口转发出去。
在本发明另一实施例所述的接入设备中,还包括端口监测模块,用于对端口进行监测,以及在监测到某个端口不可用时,将二层组播表中相应的入端口信息设置为特定值。因为在端口不可用时,如果在二层组播表中组播业务(S,G)对应的出端口为该不可用端口,由于该不可用端口不能接收组播报文,但从其他端口接收的组播报文却都被丢弃,导致用户终端一直接收不到其定制的组播业务的报文。因而需要将二层组播表中相应的入端口信息设置为特定值来避免这种情况的发生。
组播窃听模块33,进一步用于在确定接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口不一致,且所述对应的入端口为特定值时,将所述对应的入端口替换为所述接收组播报文的端口,并将该组播报文发送到组播转发模块34。将所述对应的入端口替换为所述接收组播报文的端口后,后续的组播报文就可以通过更新后的入端口进行接收。
在本发明又一实施例所述的接入设备中,还包括端口优先级设置模块,用于设置并保存接入设备入端口的优先级信息;组播窃听模块33,进一步用于在确定接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口不一致,且根据所述优先级信息确定所述接收组播报文的端口的优先级比所述对应的入端口的优先级高时,将所述对应的入端口替换为所述接收组播报文的端口,并将该组播报文发送到组播转发模块。设置端口优先级的目的是根据接入设备各端口的能力及负荷情况对端口进行优化配置。接入设备从优先级高的端口接收组播报文,从而提高了接入设备的传输效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必须的通用硬件平台的方式来实现,当然也可以通过硬件,但显然前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例所述方法。
同样,还可以通过一种计算机设备来实现,所述计算机设备包括用以执行本发明所述方法的软件以及运行该软件必须的硬件。
综上所述,本发明实施例所述二层组播的实现方法及接入设备,通过在接入设备维护的二层组播表中增加入端口信息,在接收组播报文时,判断接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口是否一致,若一致,将该组播报文从相应的出端口转发出去;否则,直接丢弃该组播报文。这样,接入设备只从一个入端口接收组播业务,接入设备和用户终端都不会收到重复的组播报文,解决了二层组播环路问题,从而节约了系统资源,减轻了接入设备的工作负担。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种二层组播的实现方法,其特征在于,包括以下步骤(A)接入设备建立并维护二层组播表,所述二层组播表包括组播业务信息、入端口信息,及二者之间的对应关系;(B)接入设备在接收到组播报文时,判断接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口是否一致,若一致,将该组播报文从相应的出端口转发出去;否则,直接丢弃该组播报文。
2.根据权利要求1所述的二层组播的实现方法,其特征在于,步骤(A)中,建立并维护二层组播表的方法包括接入设备窃听用户终端发送的组播定制报文,根据该组播定制报文建立二层组播表或者对二层组播表进行更新;以及在确定所述用户终端为其所加入的组播组的第一个成员时,将二层组播表中相应的入端口信息设置为特定值。
3.根据权利要求2所述的二层组播的实现方法,其特征在于,步骤(A)之后进一步包括接入设备在其某个端口不可用时,将二层组播表中相应的入端口信息设置为特定值。
4.根据权利要求2或3所述的二层组播的实现方法,其特征在于步骤(B)中,在确定接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口不一致时,若所述对应的入端口为特定值,则将所述对应的入端口替换为所述接收组播报文的端口,并将该组播报文从相应的出端口转发出去。
5.根据权利要求2或3所述的二层组播的实现方法,其特征在于步骤(A)之前进一步包括,预先设置接入设备入端口的优先级,并保存该优先级信息;步骤(B)中,在确定接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口不一致时,若所述接收组播报文的端口的优先级比所述对应的入端口的优先级高,则将所述对应的入端口替换为所述接收组播报文的端口,并将该组播报文从相应的出端口转发出去。
6.一种接入设备,其特征在于,包括,组播定制模块、存储模块、组播窃听模块、组播转发模块,其中组播定制模块,用于根据用户终端发送的组播定制报文建立并维护二层组播表,以及将二层组播表发送到存储模块,所述二层组播表包括组播业务信息、入端口信息,及二者之间的对应关系;存储模块,用于保存所述二层组播表;组播窃听模块,用于接收组播报文,判断接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口是否一致,在确定二者一致时,将该组播报文交给组播转发模块并从相应的出端口转发出去;以及在确定二者不一致时,直接丢弃该组播报文。
7.如权利要求6所述的接入设备,其特征在于组播定制模块在根据用户终端发送的组播定制报文建立并维护二层组播表的过程中,在确定所述用户终端为其所加入的组播组的第一个成员时,将二层组播表中相应的入端口信息设置为特定值。
8.根据权利要求7所述的接入设备,其特征在于,还包括端口监测模块,用于对端口进行监测,以及在监测到某个端口不可用时,将二层组播表中相应的入端口信息设置为特定值。
9.根据权利要求7或8所述的接入设备,其特征在于组播窃听模块,进一步用于在确定接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口不一致,且所述对应的入端口为特定值时,将所述对应的入端口替换为所述接收组播报文的端口,并将该组播报文交给组播转发模块并从相应的出端口转发出去。
10.根据权利要求7或8所述的接入设备,其特征在于,还包括端口优先级设置模块,用于设置并保存接入设备入端口的优先级信息;组播窃听模块,进一步用于在确定接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口不一致,且根据所述优先级信息确定所述接收组播报文的端口的优先级比所述对应的入端口的优先级高时,将所述对应的入端口替换为所述接收组播报文的端口,并将该组播报文交给组播转发模块并从相应的出端口转发出去。
11.一种计算机软件产品,其特征在于包括若干指令用以使得一台计算机设备执行如权利要求1-5所述的方法。
12.一种计算机设备,其特征在于包括用以执行如权利要求1-5所述方法的软件以及运行该软件必须的硬件。
全文摘要
本发明公开了一种二层组播的实现方法及接入设备。该方法包括(A)接入设备建立并维护二层组播表,所述二层组播表包括组播业务信息、入端口信息,及二者之间的对应关系;(B)接入设备在接收到组播报文时,判断接收组播报文的端口与组播报文所属的组播业务在二层组播表中对应的入端口是否一致,若一致,将该组播报文从相应的出端口转发出去;否则,直接丢弃该组播报文。本发明中,接入设备只从一个入端口接收组播业务,接收设备和用户终端都不会收到重复的组播报文,解决了二层组播环路问题,从而节约了系统资源,减轻了接入设备的工作负担。
文档编号H04L12/56GK1996867SQ20061016702
公开日2007年7月11日 申请日期2006年12月13日 优先权日2006年12月13日
发明者张志飞 申请人:杭州华为三康技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1