CN1315296C - 多端口虚拟局域网系统中的组播数据转发方法 - Google Patents
多端口虚拟局域网系统中的组播数据转发方法 Download PDFInfo
- Publication number
- CN1315296C CN1315296C CNB031466702A CN03146670A CN1315296C CN 1315296 C CN1315296 C CN 1315296C CN B031466702 A CNB031466702 A CN B031466702A CN 03146670 A CN03146670 A CN 03146670A CN 1315296 C CN1315296 C CN 1315296C
- Authority
- CN
- China
- Prior art keywords
- port
- multicast
- forwarding
- message
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种多端口虚拟局域网系统中的组播数据转发方法,该方法的中心思想是利用组播数据的三层转发功能来模拟组播数据的二层广播功能,进而通过在IP层上实现组播数据的转发以提高转发表项的可控能力。在经过这样的改造之后,就可使多端口虚拟局域网像一个处于IP层的虚拟组播数据可控集线器,它既能够仿照共享网段的组播路由功能来实现多端口虚拟局域网对组播路由的支持,又能对同一接口内不同端口之间的组播数据实现三层控制功能,从而提高了系统的业务控制能力和灵活性。
Description
发明领域
本发明一般涉及网络通信技术,特别涉及一种用于在多端口虚拟局域网(Vlan)系统中实现组播数据转发的方法。
背景技术
传统的互联网应用都是用点对点的IP传输(单播技术),而点对多点的IP传输(广播技术)只限于局域网内部应用,组播技术则是在广域网内实现点到多点的IP传输技术。
20世纪80年代,斯坦福大学的博士生Steve Deering开始了三层组播技术的研究并于1991年12月发表了其博士论文——《在一种数据报网络里的组播》。在该论文中描述了组播组管理IGMP协议(互联网组管理协议)和组播路由DVMRP协议(距离矢量组播路由协议)的基础,它成功地把组播技术推进到IP层。关于IP组播技术的探索一直在进行,在Deering博士的基础上,人们陆续完成了PIM(协议无关组播协议)等组播路由协议,把组播协议推向整个互联网。组播路由技术的基本思想是在离接收者最近的地方才复制组播数据,所以可以大大节省大量重复数据传输时的网络带宽,因而越来越多的人相信,在今后的宽带互联网应用中,组播技术将成为多媒体数据通信的主要路由协议之一。
另一方面,为了解决IP地址日益短缺的情况,人们在三层交换机上越来越倾向于使用多端口虚拟局域网的技术,这样就带来一个不可避免的矛盾——原来的路由协议是基于单端口的路由器设计的,一个拥有IP地址的逻辑接口与实际物理端口是唯一对应的,由于原来的路由协议没有考虑到三层交换机下一个虚拟局域网逻辑接口可能要和多个物理端口相对应的情况,因而必须对其进行适当修改来适应这种变化,这一点对组播路由协议更为明显。
与单播路由协议不同,当收到一份数据报文后,组播路由协议不仅关心报文要向哪些接口转发,还要关心数据报文是否从正确的接口到来。当数据报文是从错误的接口到来时,要触发协议完成相应的组播路由改变。在使用多端口虚拟局域网接口作为组播路由表项的入接口或出接口时,组播协议就必须考虑接口与端口的对应关系,因为在组播协议中明确规定,组播数据不能向路由表项的入接口转发,故在入接口中包括多个物理端口的情况下,当数据从其中的一个端口到来时,必须进行特殊处理以向其他端口转发数据。
目前主要有两种技术方案来实现组播对多端口虚拟局域网的支持。第一种技术方案是采用多端口虚拟局域网内各端口间二层组播数据和协议报文广播。图1是多端口虚拟局域网内各个端口间的二层组播数据和协议报文广播的示意图。如图1所示,该技术把多端口虚拟局域网彻底看作一个Hub(集线器)使用,从任何端口收到的数据报文和协议报文都在其他端口广播发送,因此,图1中的两种组网方式是等同的。由于组播协议本身能够处理与Hub类似的共享网段的路由情况,所以这种方案的实现过程非常简单,只需要在设备的数据平面做改动即可,原来的组播协议处理部分无需任何改动。这种方法简单易用,但是它也存在着如下缺点:1)对于网络层次比较高的设备或容量比较大的设备,二层广播性能比较差,且易造成广播风暴,大多数设备为了安全原因,都设置了广播数据限流功能;2)由于数据在所有端口转发,因此带来大量的无效数据流;3)二层数据广播缺乏灵活的控制机制
现有技术中第二种技术方案采用了使组播路由与端口相对应的方法。该方案是通过对原有基于路由器的协议平台做彻底的改造,这样组播路由协议中每个路由表项对应的就不再是三层逻辑接口,而是一个逻辑接口和物理端口的二元组,组播数据报文的转发将根据这种基于端口的路由进行,同时协议报文将负责维护端口与接口的对应关系。采用组播路由与端口相对应的方法解决多端口虚拟局域网下的组播路由问题是一个比较彻底的做法,但是它的适用环境有限。如果在原有的平台上进行改造升级,则需要对原来的协议体系进行很大的修改,需要投入较高的成本。另外,由于协议本身的复杂性所以这种修改所带来的系统稳定性风险在多数情况下是不能够被接受的。
发明内容
因此,本发明就是针对现有技术中所存在的上述问题而做出的,其目的是提供一种多端口虚拟局域网系统中的组播数据转发方法,该方法的中心思想是利用组播数据的三层转发功能来模拟组播数据的二层广播功能,从而通过在IP层上实现组播数据的转发以提高转发表项的可控能力。在经过这样的改造之后,就可使多端口虚拟局域网像一个处于IP层的虚拟组播数据可控集线器,它既能够仿照共享网段的组播路由功能来实现多端口虚拟局域网对组播路由的支持,又能对同一接口内不同端口之间的组播数据实现三层控制功能,提高了系统的业务控制能力和灵活性。
为了实现上述目的,本发明提供了一种多端口虚拟局域网系统中的组播数据转发方法,该方法包括以下步骤:1)当有组播转发表项需要创建时,由所述系统中的一个控制模块从组播路由表中读出所有的出接口数据,并将这些接口组成一个报文的出接口集合;2)所述控制模块查找出所述出接口集合中的各个出接口中所包含的端口,并将这些端口组成为一个报文转发的出端口集合;3)所述控制模块取出组播路由表项中的入接口中的所有端口,并将其中报文的入端口去除,把所述入接口中除报文入端口外的端口与步骤2)中查找出的出接口中的端口进行合并,以形成组播数据报文的转发出端口集,并根据这些信息生成组播转发表;以及4)所述控制模块将上述组播转发表项下发到微码,用以指导数据的转发或直接用于指导数据的转发。
所述步骤2)进一步包括从所述出端口集合中除去处于断言Assert状态的出端口的步骤;步骤3)为,所述控制模块查找出组播路由表项中的入接口中的所有端口,并将其中报文的入端口去除,把所述入接口中除报文入端口外的端口与步骤2)中查找出的出接口中的端口中除处于断言状态的出端口外的端口进行合并,以形成组播数据报文的转发出端口集,并根据这些信息生成组播转发表。
另外,在上述方法中,所述控制模块为所述虚拟局域网系统中的转发控制模块。
本发明的有益效果在于,与按照端口实现组播路由的方法相比较,本发明处理简单,不需要修改原来协议的处理流程,改动风险小,特别适用于从现有路由器平台移植组播路由功能的三层交换机使用。另外,与二层组播数据广播实现方式相比较,该方法具有转发性能好,避免多余组播数据流产生,防止了组播数据风暴的产生,安全性、灵活性和可控制性好,从而使三层交换机能够在IP层上提供更丰富的业务功能和控制手段。
附图的简要说明
通过以下结合附图做出的文字说明,本发明的上述目的、优点及特征将变得更加清楚。在以下附图中:
图1是根据一个现有技术方案所述的多端口虚拟局域网内各个端口间的二层组播数据和协议报文广播的示意图;
图2是常规组播转发表项创建的流程示意图;
图3是根据本发明一个实施例所述的组播转发表项创建的流程示意图;
图4的示意图用于说明断言过程;
图5是根据本发明另一个实施例所述的组播转发表项创建的流程示意图。
具体实施方式
组播数据转发是通过转发控制部分创建转发表项实现的。通过对常规的转发表项创建流程进行一些改进,就可以实现本发明的目的。为了便于对本发明的理解,有必要先对常规的创建流程进行简要说明。在常规的创建流程中,转发控制模块仅查询路由表项的出接口中的端口,把出接口的端口添加到组播数据的转发控制表项中。图2是常规组播转发表项创建的流程示意图。由于这个流程对于本领域的普通技术人员来说是公知的,因此不再赘述。
而在本发明中,为了实现多端口虚拟局域网的组播数据转发,故此时数据的转发制定了如下基本原则:1)当三层交换机收到一份组播数据的时候,它将查找组播路由表,如果找到对应的路由表项,则先向该路由表项中的入接口内除入端口以外的其他端口都转发一份该报文,然后遍历该路由表项的出接口,向出接口中的所有需要该组播数据的端口都转发一份;2)如果出接口中某端口存在断言状态(Assert状态,以下均称为端口Assert状态),则在向出接口中的端口转发数据时排除该端口。注意,这里所述的断言状态是组播PIM协议中定义的一种特殊状态,它用采保证在共享网段中只有一个上游路由器会向下游路由转发数据。组播PIM协议中的断言状态仅发生在三层接口上,但本发明中对该功能做了引申,在端口上也引入了Assert状态,即,处在Assert状态的端口不向下游转发组播数据:3)为了避免不必要的数据转发,组播数据只向有PIM协议邻居路由器的端口转发,或者有IGMP(Internet组管理协议)加入的组的端口转发。
因为协议报文相对较少,为简化处理,故组播协议报文的转发原则是在同一虚拟局域网内各端口广播发送。
为了实现以上数据转发原则,在路由表项的入接口模仿二层数据转发功能,故本发明在图2所示流程上增加了一个处理流程。图3是根据本发明一个实施例所述的组播转发表项创建过程的流程示意图。如图3所示,当组播路由表创建或更新后,需要立即更新组播转发表,以保证组播数据能按照更新后的组播路由表来完成正确的转发。具体的组播转发表更新过程如下:首先,由三层交换设备的转发控制模块从组播路由表中读出所有的出接口数据,把这些接口组成一个报文的出接口集合。然后,转发控制模块根据上述出接口集合,查找接口中包含的端口(注意:每个出接口中可能包括多个端口),并把这些端口组成为一个报文转发的出端口集合。接下来,转发控制模块取出组播路由表项中的入接口中所有端口,并把其中报文的入端口去除,把这些端口与前面取出的入接口中的端口进行合并,以形成组播数据报文的转发出端口集,并根据这些信息生成组播转发表。例如,假设接口A包含端口1、2、3,当组播数据从端口1到达三层交换机的时候,转发控制模块把入接口中的三个端口1、2和3取出,然后把入端口1去掉,把剩余的端口2、3添加到组播转发表的下游中,从而创建出一个新的组播转发表。在组播转发表生成之后,转发控制模块将把该组播转发表项下发到微码中,用以指导数据的转发或直接使用该转发表指导数据转发。
简单的实现组播数据向入接口内其他端口转发并不能完全实现对多端口虚拟局域网下组播路由的所有功能支持,组播PIM路由协议中的Assert过程需要特殊处理过程。图4的示意图用于说明断言过程。如图4所示,交换机C与B相连的端口和与组G2相连的端口同在一个虚拟局域网中。当组播数据从源S发送后,交换机C上可能收到来自B和A的两份重复的数据,故在B与C相连的接口上会发生Assert竞选过程,以保证交换机C只接受一份数据,当该C上的虚拟局域网在Assert竞选中失败后,要剪枝下游接口,故交换机C在Assert失败后,G2就无法收到数据。
图5是根据本发明另一个实施例所述的组播转发表项创建的流程示意图。如图5所示,为了保证Assert剪枝过程中组播数据的正常转发,我们需要对原协议做必要的修改,在原协议中规定“如果接口在Assert过程中竞选失败,要向上发送剪枝报文,剪除该出接口”,但由于该方案是用三层数据转发功能模拟的二层数据广播功能,故需要在Assert过程中实现有限的端口剪枝功能,在发生Assert剪枝后并不删除Assert失败的路由表项下游端口,而是记录剪枝端口的信息,在下发转发表项的时候把Assert端口去除,保证数据不再向发生Assert剪枝的端口转发,我们把接口的这种状态称为“端口Assert状态”。因此,如图3所示,在存在端口Assert状态的情况下,组播转发表项的创建流程如下:
首先,利用三层交换设备的转发控制模块从组播路由表中读出所有的出接口数据,并将这些接口组成一个报文的出接口集合。然后,转发控制模块然后根据出接口集合,查找接口中包含的端口(每个出接口中可能包括多个端口),把这些端口组成一个报文转发的出端口集合,然后从这些出端口接口中查找那些处在端口Assert状态的端口并将其去除。之后,转发控制模块取出组播路由表项中的入接口中所有端口,并把其中报文的入端口去除,把这些端口与前面取出的入接口中的端口进行合并,以形成组播数据报文的转发出端口集,并根据这些信息生成组播转发表。例如,假设接口B在组播转发表的下游,其中包括端口1、2、3这三个端口,当端口2发生Assert竞选并失败,这样转发表中就把端口2删除,只保留端口1和3。而在常规情况下,如果没有端口Assert功能,那么在发生Assert的时候,整个接口B将被从转发表中删除,这样原来连接在端口1和3下的用户将都不能接收组播数据。
最后,转发控制模块将组播转发表项下发到微码中,用以指导数据的转发或直接使用转发表指导数据转发。
应该注意的是,虽然以上对本发明的说明是参考其具体实施例进行的。但是,本发明领域的普通技术人员可以理解,在不背离本发明的精神和范围的情况下,可以对其做出各种修改和变换。而这些修改和变换都涵盖于由附带权利要求所定义的本发明的保护范围之内。
Claims (3)
1.一种多端口虚拟局域网系统中的组播数据转发方法,该方法包括以下步骤:
1)当有组播转发表项需要创建时,由所述系统中的一个控制模块从组播路由表中读出所有的出接口数据,并将这些接口组成一个报文的出接口集合;
2)所述控制模块查找出所述出接口集合中的各个出接口中所包含的端口,并将这些端口组成为一个报文转发的出端口集合;
3)所述控制模块取出组播路由表项中的入接口中的所有端口,并将其中报文的入端口去除,把去除报文的入端口后的入接口的所有端口与步骤2)中查找出的出接口中的端口进行合并,以形成组播数据报文的转发出端口集,并根据这些信息生成组播转发表;以及
4)所述控制模块将上述组播转发表项下发到微码,用以指导数据的转发或直接用于指导数据的转发。
2.根据权利要求1所述的方法,其特征在于,所述步骤2)进一步包括从所述出端口集合中除去处于断言Assert状态的出端口的步骤;步骤3)为,所述控制模块取出组播路由表项中的入接口中的所有端口,并将其中报文的入端口去除,把去除报文的入端口后的入接口的所有端口与步骤2)中查找出的出接口中的端口中除处于断言状态的出端口外的端口进行合并,以形成组播数据报文的转发出端口集,并根据这些信息生成组播转发表。
3.根据权利要求1或2所述的方法,其特征在于,所述控制模块为所述系统中的三层交换机的转发控制模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031466702A CN1315296C (zh) | 2003-07-11 | 2003-07-11 | 多端口虚拟局域网系统中的组播数据转发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031466702A CN1315296C (zh) | 2003-07-11 | 2003-07-11 | 多端口虚拟局域网系统中的组播数据转发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1571379A CN1571379A (zh) | 2005-01-26 |
CN1315296C true CN1315296C (zh) | 2007-05-09 |
Family
ID=34471821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031466702A Expired - Fee Related CN1315296C (zh) | 2003-07-11 | 2003-07-11 | 多端口虚拟局域网系统中的组播数据转发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1315296C (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442770C (zh) * | 2005-09-28 | 2008-12-10 | 华为技术有限公司 | 一种在bgp/mpls vpn实现组播的方法 |
CN100456684C (zh) * | 2006-04-07 | 2009-01-28 | 华为技术有限公司 | 一种组播业务的实现方法和网络设备 |
CN100420193C (zh) * | 2006-05-08 | 2008-09-17 | 国家数字交换系统工程技术研究中心 | 一种组播转发表输出端口的虚拟标识方法 |
CN101325536A (zh) * | 2007-06-15 | 2008-12-17 | 上海贝尔阿尔卡特股份有限公司 | WiMAX系统的基站和网关中控制组播数据包传输的方法及装置 |
CN101242254B (zh) * | 2008-02-26 | 2011-03-16 | 中兴通讯股份有限公司 | 虚拟冗余路由器系统及传输虚拟冗余路由协议报文的方法 |
CN102790692B (zh) * | 2011-05-19 | 2015-05-06 | 中兴通讯股份有限公司 | 计算网元接口的方法及网管 |
CN102694734B (zh) * | 2012-06-11 | 2016-02-10 | 烽火通信科技股份有限公司 | 二层交换设备基于Linux内核桥实现组播的方法 |
CN106610905A (zh) * | 2015-12-04 | 2017-05-03 | 中视迪威激光显示技术有限公司 | 辅助选择局域网接口系统及其通信方法 |
CN108063715B (zh) | 2016-11-09 | 2021-05-11 | 中兴通讯股份有限公司 | 虚拟局域网实现方法和终端设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11112544A (ja) * | 1997-10-01 | 1999-04-23 | Hitachi Ltd | Lanスイッチ |
US6188691B1 (en) * | 1998-03-16 | 2001-02-13 | 3Com Corporation | Multicast domain virtual local area network |
CN1378365A (zh) * | 2002-05-10 | 2002-11-06 | 北京港湾网络有限公司 | 一种ip组播路由转发优化方法 |
-
2003
- 2003-07-11 CN CNB031466702A patent/CN1315296C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11112544A (ja) * | 1997-10-01 | 1999-04-23 | Hitachi Ltd | Lanスイッチ |
US6188691B1 (en) * | 1998-03-16 | 2001-02-13 | 3Com Corporation | Multicast domain virtual local area network |
CN1378365A (zh) * | 2002-05-10 | 2002-11-06 | 北京港湾网络有限公司 | 一种ip组播路由转发优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1571379A (zh) | 2005-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8169924B2 (en) | Optimal bridging over MPLS/IP through alignment of multicast and unicast paths | |
US20070127477A1 (en) | Method for implementing multicast based on multi-service transport platform | |
US7855950B2 (en) | Congruent forwarding paths for unicast and multicast traffic | |
Sahasrabuddhe et al. | Multicast routing algorithms and protocols: A tutorial | |
DE602004009543T2 (de) | Verfahren und einrichtung zur protokollunabhängigen realisierung von ip-multicast | |
CN101616014B (zh) | 一种实现跨虚拟专用局域网组播的方法 | |
CN1315296C (zh) | 多端口虚拟局域网系统中的组播数据转发方法 | |
CN1700676A (zh) | 以太网交换机跨虚拟局域网的二层组播数据传输方法 | |
CN100527713C (zh) | Ip网络中基于虚拟分发网的多播传送方法 | |
CN106375223A (zh) | 一种基于sdn的数据转发系统及方法 | |
CN1996956A (zh) | 实现组播流跨vlan转发的三层网络设备及方法 | |
CN102104528A (zh) | 一种应用于农村地区的网络系统及业务报文的传送方法 | |
CN104113483B (zh) | 一种组播通信方法和汇聚交换机 | |
CN100484055C (zh) | 跨虚拟局域网组播的实现方法 | |
Clark et al. | Cisco LAN Switching (CCIE Professional Development series) | |
CN100539529C (zh) | 共享接入网的通讯系统及其进行业务报文交互的方法 | |
CN1710954A (zh) | 支持便携设备和无线网络的多方视频会议方法 | |
CN101917351A (zh) | 路由器上组播转发方法及转发路由器 | |
CN1859288A (zh) | 一种组播数据不间断转发的方法 | |
CN101166084A (zh) | 防止组播用户攻击的安全方法 | |
CN100440863C (zh) | 扩展路由功能的具体源静态组功能实现方法 | |
CN102946357A (zh) | 组播转发表项的下发方法及设备 | |
CN101170510B (zh) | 一种组播数据转发的控制方法 | |
CN101707526A (zh) | 一种跨网段组播数据系统及其方法 | |
EP2066073B1 (en) | Access system and method for multicast management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070509 Termination date: 20150711 |
|
EXPY | Termination of patent right or utility model |