组播数据报文的转发方法和装置的制造方法

文档序号:10578080
组播数据报文的转发方法和装置的制造方法
【专利摘要】本发明提供一种组播数据报文的转发方法和装置,该方法应用在支持互联网组管理协议窥探IGMP Snooping的交换机上,包括:当接收到来自路由器的组播数据报文时,判断是否从预设的二层转发表中匹配到组播数据报文的目的MAC地址;若匹配到,则从二层转发表中获取组播数据报文的目的MAC地址及组播VLAN所在表项的索引值;判断是否从预设的三层转发表中匹配到二层转发表中组播数据报文的目的MAC地址所在表项的索引值;当匹配到时,基于从三层转发表中匹配到的索引值对应的表项,转发组播数据报文。应用本发明实施例,将二层转发和三层转发结合转发组播数据报文,节省了网络带宽,提高了数据传输效率,且减轻了路由器的负载压力。
【专利说明】
组播数据报文的转发方法和装置
技术领域
[0001] 本发明设及通信技术领域,尤其设及一种组播数据报文的转发方法和装置。
【背景技术】
[0002] 组播是指在IPQnternet Protocol,网络之间互连的协议)网络中将数据W尽力 传送的形式发送到某个确定的节点集合(即组播组),其基本思想是:源主机(即组播源) 只发送一份数据,其目的地址为组播组地址;组播组中的所有接收者都可收到同样的复制 数据,并且只有组播组内的主机可W接收该数据,而其它主机则不能收到。
[0003] 相关技术中,当任一个组播源向处于不同VLAN(Virtual Local Area化twork,虚 拟局域网)中的多台主机发送同一份数据时,设置在组播源和所述多台主机之间的路由器 在接收到数据后,需要将数据在每个VLAN内均复制一份,再发送给下游交换机,由交换机 将数据转发给每个VLAN中的主机。在路由器向下游交换机发送数据的过程中,由于需要传 输多份相同的数据,从而浪费网络带宽,降低数据传输效率,又增加路由器的负载压力。

【发明内容】

[0004] 有鉴于此,本发明提供一种组播数据报文的转发方法和装置,W减少网络带宽的 耗费,提高数据传输效率,减少路由器的负载压力。 阳0化]具体地,本发明是通过如下技术方案实现的:
[0006] 根据本发明一方面,提供一种组播数据报文的转发方法,所述方法应用在支持互 联网组管理协议窥探IGMP Snooping的交换机上,所述方法包括:
[0007] 当接收到来自路由器的组播数据报文时,判断是否从预设的二层转发表中匹配到 所述组播数据报文的目的MC地址,所述二层转发表包括不同的索引值、不同的组播MC地 址W及组播VLAN的对应关系;
[0008] 若匹配到,则从所述二层转发表中获取所述组播数据报文的目的MC地址及组播 VLAN所在表项的索引值;
[0009] 判断是否从预设的=层转发表中匹配到所述二层转发表中所述组播数据报文的 目的MC地址所在表项的索引值,所述S层转发表包括不同的索引值、组播VLAN的子VLAN W及所述子VLAN中的目标端口的对应关系;
[0010] 当匹配到时,基于从所述=层转发表中匹配到的索引值对应的表项,转发所述组 播数据报文,所述索引值为所述二层转发表中所述组播数据报文的目的MC地址所在表项 的索引值。
[0011] 根据本发明的另一个方面,提供一种组播数据报文的转发装置,所述装置应用在 支持互联网组管理协议窥探IGMP Snooping的交换机上,所述装置包括:
[0012] 第一判断单元,用于当接收到来自路由器的组播数据报文时,判断是否从预设的 二层转发表中匹配到所述组播数据报文的目的MC地址,所述二层转发表包括不同的索引 值、不同的组播MAC地址W及组播VLAN的对应关系;
[0013] 第一获取单元,用于当从预设的二层转发表中匹配到所述组播数据报文的目的 MC地址时,从所述二层转发表中获取所述组播数据报文的目的MC地址及组播VLAN所在 表项的索引值;
[0014] 第二判断单元,用于判断是否从预设的=层转发表中匹配到所述二层转发表中所 述组播数据报文的目的MC地址对应的索引值,所述S层转发表包括不同的索引值、组播 VLAN的子VLAN W及所述子VLAN中的目标端口的对应关系;
[0015] 转发单元,用于当从预设的=层转发表中匹配到所述二层转发表中所述组播数据 报文的目的MC地址对应的索引值时,基于所述S层转发表中所述索引值对应的表项,转 发所述组播数据报文。
[0016] 应用本发明实施例,在支持互联网组管理协议窥探IGMP Snooping的交换机中,将 二层转发和=层转发结合,W转发组播数据报文,路由器只需把组播数据报文在组播VLAN 内复制一份发送给交换机,而不必为每个主机所属的VLAN都复制一份,从而节省了网络带 宽,提高了数据传输效率,且减轻了路由器的负载压力。
【附图说明】
[0017] 图1是本发明一示例性实施例示出的一种应用场景示意图;
[0018] 图2是本发明一示例性实施例示出的一种组播数据报文的转发方法的流程示意 图;
[0019] 图3是本发明一示例性实施例示出的另一种组播数据报文的转发方法的流程示 意图;
[0020] 图4是本发明一示例性实施例示出的组播数据报文的转发装置的一硬件结构示 意图;
[0021] 图5是本发明一示例性实施例示出的一种组播数据报文的转发装置的结构框图;
[0022] 图6是本发明一示例性实施例示出的另一种组播数据报文的转发装置的结构框 图。
【具体实施方式】
[0023] 运里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述设及 附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。W下示例性实施例 中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附 权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0024] 在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。 在本发明和所附权利要求书中所使用的单数形式的"一种"、"所述"和"该"也旨在包括多 数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语"和/或"是指 并包含一个或多个相关联的列出项目的任何或所有可能组合。
[00巧]应当理解,尽管在本发明可能采用术语第一、第二、第=等来描述各种信息,但运 些信息不应限于运些术语。运些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离 本发明范围的情况下,第一信息也可W被称为第二信息,类似地,第二信息也可W被称为第 一信息。取决于语境,如在此所使用的词语"如果"可W被解释成为"在……时"或"当…… 时"或"响应于确定"。
[00%] 图1是本发明一示例性实施例示出的一种应用场景示意图。
[0027] 如图1所示,包括组播源、路由器、交换机W及多个主机,多个主机分别为主机 A、主机 B 和主机 C,其中,交换机上运行 IGMP Snoopingdnternet Group Management Protocol Snooping,互联网组管理协议窥探)功能,可W基于IGMP协议进行转发表(二层 转发表和=层转发表)的学习,基于转发表对组播数据报文进行转发。具体地,技术人员可 W预先通过Web页面或者命令行配置组播VLAN,W及配置属于该组播VLAN的组播子VLAN, 组播子VLAN均为用户VLAN,即一个组播子VLAN中可能包括一个或者多个主机,比如,主机 A在组播子VLAN 2,主机B在组播子VLAN 3 W及主机C在组播子VLAN 4,在本发明实施例 中,W-个组播子VLAN中包括一个主机为例,如图中所示,将VLAN 10设置为组播VLAN,而 VLAN 2、VLAN 3和VLAN 4配置为VLAN 10的子VLAN,基于此,当组播源向主机发送组播数 据报文时,组播数据报文首先经过路由器,路由器根据报文的特征信息将组播数据报文发 送给VLAN 10中的交换机,交换机接收到组播数据报文后,会基于其中的二层转发表和= 层转发表向各个主机转发组播数据报文。
[0028] 为了使本发明技术方案更加清楚易懂,下面将结合附图和具体实施例对本发明进 行详细说明。
[0029] 图2是本发明一示例性实施例示出的一种组播数据报文的转发方法的流程示意 图。
[0030] 如图2所示,一种组播数据报文的转发方法,该方法应用在支持互联网组管理协 议窥探IGMP Snooping的交换机上,该方法包括如下步骤:
[0031] 步骤210,接收来自路由器的组播数据报文。
[0032] 步骤220,判断是否从预设的二层转发表中匹配到组播数据报文的目的MC地址, 其中,二层转发表包括不同的索引值、不同的组播MC地址W及组播VLAN的对应关系。若 匹配到,执行步骤230,反之,执行步骤260。
[0033] 步骤230,从二层转发表中获取组播数据报文的目的MC地址及组播MC地址所在 表项的索引值。
[0034] 步骤240,判断是否从预设的=层转发表中匹配到二层转发表中组播数据报文的 目的MC地址所在表项的索引值,其中,S层转发表包括不同的索引值、组播VLAN的子VLAN W及子VLAN中的目标端口的对应关系。若匹配到,则执行步骤250,反之,执行步骤260。
[0035] 步骤250,基于从所述=层转发表中匹配到的索引值对应的表项,转发组播数据报 文,结束当前流程。
[0036] 本步骤中所指的索引值为前面所述的二层转发表中所述组播数据报文的目的MC 地址所在表项的索引值。
[0037] 根据本发明一可选实施例,在步骤250中,可W通过从=层转发表中匹配到的索 引值对应的表项,确定该表项中目标端口的总个数,并复制组播数据报文,复制后的组播数 据报文的个数等于其目标端口的总个数,再向每个目标端口发送一个组播数据报文,W通 过目标端口将组播数据报文转发至目标主机。
[0038] 步骤260,向目的MC地址对应的主机发送查询报文,并接收主机返回的IGMP报 文,分析IGMP报文W建立相应的=层转发表和二层转发表。结束当前流程
[0039] 在步骤260中,由于交换机运行IGMP Snooping功能,可W对接收到的IGMP分析 从而进行转发表表项学习,进而学习建立=层转发表和二层转发表。
[0040] 图3是本发明一示例性实施例示出的另一种组播数据报文的转发方法的流程示 意图。
[0041] 根据本发明一可选实施例,如图3所示,步骤260可W包括如下步骤:
[0042] 步骤261,接收来自主机的IGMP报文。
[0043] 步骤262,通过分析IGMP报文,获取主机所属的VLAN,W及交换机中用于接收IGMP 报文的端口的标志信息,标志信息可W包括端口号。
[0044] 步骤263,将主机所属的VLAN W及端口的标志信息存入=层转发表的表项中,其 中,=层转发表的每个表项都包括索引值。
[0045] 在本步骤中,可W判断=层转发表中是否已包括组播VLAN的其他子VLAN,若是, 则在组播VLAN的其他子VLAN所在表项中存入主机所属的VLAN W及端口的标志信息,反 之,则将主机所属的VLAN W及端口的标志信息存入S层转发表的任一空表项中。在此举例 来说,若组播VLAN的子VLAN包括VLAN 2、VLAN 3和VLAN 4,假设发送IGMP报文的主机在 VLAN 2中,且交换机中接收该IGMP报文的端口为pod3,=层转发表中已包括组播VLAN的 其他子VLAN,如表1所示:
[0046] 表 1
[0047]
[0048] 从表1中可W看出,在S层转发表中包括一个与VLAN 2同属于一个组播VLAN的 其他子VLAN(VLAN 3和VLAN 4),W及VLAN 3和VLAN 4对应的目标端口(IGMP报文的端 口)的标志信息的表项,因此,可W将VLAN2 W及其目标端口(IGMP报文的端口)的标志信 息添加到表项中,添加后的表项如表2所示:
[0049] 表 2 阳化0]
[0051] 步骤264,获取S层转发表中存储主机所属的VLAN W及交换机中接收IGMP报文的 端口的标志信息对应表项的索引值。 阳05引步骤265,将索引值、主机所属的VLAN所属的组播VLAN W及IGMP报文的组播MC 地址存入二层转发表的表项中。
[0053] 下面对建立二层转发表的过程进行举例说明,获取表2所示表项的索引值"1",其 中,获取主机所属的VLAN 2的组播VLAN,即VLAN 10, W及获取IGMP报文的组播MAC地址, 比如,OOl20E02434,将运些信息存入二层转发表的表项,如表3所示:
[0054] 表 3 阳化引
[0056] 综上,通过步骤261~步骤265建立二层转发表和=层转发表,基于二层转发表和 =层转发表,交换机在接收到组播数据报文时,可W根据前述步骤210~步骤250对组播数 据报文进行转发。
[0057] 应用本发明实施例,在支持互联网组管理协议窥探IGMP Snooping的交换机中,将 二层转发和=层转发结合,W转发组播数据报文,路由器只需把组播数据报文在组播VLAN 内复制一份发送给交换机,而不必在每个主机所属的VLAN内都复制一份,从而节省了网络 带宽,提高了数据传输效率,且减轻了路由器的负载压力。
[0058] 与前述组播数据报文的转发方法的实施例相对应,本发明还提供了组播数据报文 的转发装置的实施例。
[0059] 本发明组播数据报文的转发装置400的实施例可W应用交换机上。装置实施例可 W通过软件实现,也可W通过硬件或者软硬件结合的方式实现。W软件实现为例,作为一个 逻辑意义上的装置,是通过其所在交换机的处理器将非易失性存储器中对应的计算机程序 指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发组播数据报文的转发 装置所在设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、W及非易失性 存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可W包括其他硬件, 对此不再寶述。
[0060] 图5是本发明一示例性实施例示出的组播数据报文的转发装置的结构框图。
[0061] 如图5所示,一种组播数据报文的转发装置400,应用在支持互联网组管理协议窥 探IGMP Snooping的交换机上,该装置包括第一判断单元401、第一获取单元402、第二判断 单元403化及转发单元404。
[0062] 第一判断单元401用于当接收到来自路由器的组播数据报文时,判断是否从预设 的二层转发表中匹配到组播数据报文的目的MC地址,其中,二层转发表包括不同的索引 值、不同的组播MAC地址W及组播VLAN的对应关系。
[0063] 第一获取单元402用于当从预设的二层转发表中匹配到组播数据报文的目的MC 地址时,从二层转发表中获取组播数据报文的目的MC地址及组播VLAN所在表项的索引 值。
[0064] 第二判断单元403用于判断是否从预设的=层转发表中匹配到二层转发表中组 播数据报文的目的MC地址对应的索引值,其中,S层转发表包括不同的索引值、组播VLAN 的子VLAN W及所述子VLAN中的目标端口的对应关系。
[0065] 转发单元404用于当从预设的=层转发表中匹配到二层转发表中组播数据报文 的目的MC地址对应的索引值时,基于S层转发表中索引值对应的表项,转发所述组播数 据报文。
[0066] 根据本发明一可选实施例,转发单元404可W包括确定子单元、复制子单元W及 发送子单元。
[0067] 确定子单元用于通过=层转发表中索引值对应的表项,确定该表项中的目标端口 的总个数。
[0068] 复制子单元用于对组播数据报文进行复制处理,复制处理后的组播数据报文的个 数等于表项中的目标端口的总个数。
[0069] 发送子单元用于向每个目标端口发送一个组播数据报文,W通过表项中的目标端 口将组播数据报文发送至目标主机。
[0070] 图6是本发明一示例性实施例示出的另一种组播数据报文的转发装置的结构框 图。
[0071] 如图6所示,根据本发明的另一可选实施例,一种组播数据报文的转发装置400还 可W包括接收单元405、第二获取单元406 W及第一存储单元407。
[0072] 接收单元405用于接收来自主机的IGMP报文,第二获取单元406用于通过分析 IGMP报文,获取主机所属的VLAN,W及获取交换机中用于接收IGMP报文的端口,第一存储 单元407用于将主机所属的VLAN W及端口的端口号标志信息存入=层转发表的表项中。
[0073] 根据本发明一可选实施例,第一存储单元407还可W包括判断子单元、第一存储 子单元W及第二存储子单元。其中,判断子单元用于判断=层转发表是否包括组播VLAN的 其他子VLAN,第一存储子单元用于当判断子单元确定=层转发表是否包括组播VLAN的其 他子VLAN时,在组播VLAN的其他子VLAN所在表项中存入主机所属的VLAN W及端口的标 志信息,而第二存储子单元用于当=层转发表是否包括组播VLAN的其他子VLAN时,将主机 所属的VLAN W及端口的标志信息存入=层转发表的任一空表项中。
[0074] 根据本发明的另一可选实施例,通过上述实施例中各个单元建立的=层转发表, 其每个表项可W包括相应的索引值,基于上述实施例,种组播数据报文的转发装置400还 可W包括第=获取单元和第二存储单元,其中,第=获取单元用于获取=层转发表中存储 主机所属的VLAN W及交换机中接收IGMP报文的端口的表项的索引值,第二存储单元用于 将索引值、主机所属的VLAN所属的组播VLAN W及IGMP报文的组播MC地址存入二层转发 表的表项中。
[00巧]上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的 实现过程,在此不再寶述。
[0076] 对于装置实施例而言,由于其基本对应于方法实施例,所W相关之处参见方法实 施例的部分说明即可。W上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件 说明的单元可W是或者也可W不是物理上分开的,作为单元显示的部件可W是或者也可W 不是物理单元,即可W位于一个地方,或者也可W分布到多个网络单元上。可W根据实际的 需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付 出创造性劳动的情况下,即可W理解并实施。
[0077] W上所述仅为本发明的较佳实施例而已,并不用W限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1. 一种组播数据报文的转发方法,其特征在于,所述方法应用在支持互联网组管理协 议窥探IGMP Snooping的交换机上,所述方法包括: 当接收到来自路由器的组播数据报文时,判断是否从预设的二层转发表中匹配到所述 组播数据报文的目的MAC地址,所述二层转发表包括不同的索引值、不同的组播MAC地址以 及组播VLAN的对应关系; 若匹配到,则从所述二层转发表中获取所述组播数据报文的目的MAC地址及组播VLAN 所在表项的索引值; 判断是否从预设的三层转发表中匹配到所述二层转发表中所述组播数据报文的目的 MAC地址所在表项的索引值,所述三层转发表包括不同的索引值、组播VLAN的子VLAN以及 所述子VLAN中的目标端口的对应关系; 当匹配到时,基于从所述三层转发表中匹配到的索引值对应的表项,转发所述组播数 据报文,所述索引值为所述二层转发表中所述组播数据报文的目的MAC地址所在表项的索 引值。2. 根据权利要求1所述的方法,其特征在于,所述基于从所述三层转发表中匹配到的 索引值对应的表项,转发所述组播数据报文,包括: 通过从所述三层转发表中匹配到的索引值对应的表项,确定该表项中目标端口的总个 数; 对所述组播数据报文进行复制处理,复制处理后的组播数据报文的个数等于所述表项 中的目标端口的总个数; 向每个目标端口发送一个组播数据报文,以通过所述表项中的目标端口将组播数据报 文转发至目标主机。3. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 接收来自主机的IGMP报文; 通过分析所述IGMP报文,获取所述主机所属的VLAN,以及获取所述交换机中用于接收 所述IGMP报文的端口的标志信息; 将所述主机所属的VLAN以及所述端口的标志信息存入所述三层转发表的表项中。4. 根据权利要求3所述的方法,其特征在于,所述将所述主机所属的VLAN以及所述端 口的标志信息存入所述三层转发表的表项中,包括: 判断所述三层转发表是否包括所述组播VLAN的其他子VLAN ; 若是,则在所述组播VLAN的其他子VLAN所在表项中存入所述主机所属的VLAN以及所 述端口的标志信息; 若否,则将所述主机所属的VLAN以及所述端口的标志信息存入所述三层转发表的任 一空表项中。5. 根据权利要求3所述的方法,其特征在于,所述三层转发表的每个表项还包括索引 值, 所述方法还包括: 获取所述三层转发表中存储所述主机所属的VLAN以及所述交换机中接收所述IGMP报 文的端口的标志信息对应表项的索引值; 将所述索引值、所述主机所属的VLAN所属的组播VLAN以及所述IGMP报文的组播MAC 地址存入所述二层转发表的表项中。6. -种组播数据报文的转发装置,其特征在于,所述装置应用在支持互联网组管理协 议窥探IGMP Snooping的交换机上,所述装置包括: 第一判断单元,用于当接收到来自路由器的组播数据报文时,判断是否从预设的二层 转发表中匹配到所述组播数据报文的目的MAC地址,所述二层转发表包括不同的索引值、 不同的组播MAC地址以及组播VLAN的对应关系; 第一获取单元,用于当从预设的二层转发表中匹配到所述组播数据报文的目的MAC地 址时,从所述二层转发表中获取所述组播数据报文的目的MAC地址及组播VLAN所在表项的 索引值; 第二判断单元,用于判断是否从预设的三层转发表中匹配到所述二层转发表中所述组 播数据报文的目的MAC地址对应的索引值,所述三层转发表包括不同的索引值、组播VLAN 的子VLAN以及所述子VLAN中的目标端口的对应关系; 转发单元,用于当从预设的三层转发表中匹配到所述二层转发表中所述组播数据报文 的目的MAC地址对应的索引值时,基于所述三层转发表中所述索引值对应的表项,转发所 述组播数据报文。7. 根据权利要求6所述的装置,其特征在于,所述转发单元包括: 确定子单元,用于通过所述三层转发表中所述索引值对应的表项,确定该表项中的目 标端口的总个数; 复制子单元,用于对所述组播数据报文进行复制处理,复制处理后的组播数据报文的 个数等于所述表项中的目标端口的总个数; 发送子单元,用于向每个目标端口发送一个组播数据报文,以通过所述表项中的目标 端口将组播数据报文发送至目标主机。8. 根据权利要求6所述的装置,其特征在于,所述装置还包括: 接收单元,用于接收来自主机的IGMP报文; 第二获取单元,用于通过分析所述IGMP报文,获取所述主机所属的VLAN,以及获取所 述交换机中用于接收所述IGMP报文的端口; 第一存储单元,用于将所述主机所属的VLAN以及所述端口的标志信息存入所述三层 转发表的表项中。9. 根据权利要求8所述的装置,其特征在于,所述第一存储单元包括: 判断子单元,用于判断所述三层转发表是否包括所述组播VLAN的其他子VLAN ; 第一存储子单元,用于当所述三层转发表是否包括所述组播VLAN的其他子VLAN时,在 所述组播VLAN的其他子VLAN所在表项中存入所述主机所属的VLAN以及所述端口; 第二存储子单元,用于当所述三层转发表是否包括所述组播VLAN的其他子VLAN时,将 所述主机所属的VLAN以及所述端口存入所述三层转发表的任一空表项中。10. 根据权利要求8所述的装置,其特征在于,所述三层转发表的每个表项还包括索引 值, 所述装置还包括: 第三获取单元,用于获取所述三层转发表中存储所述主机所属的VLAN以及所述交换 机中接收所述IGMP报文的端口的表项的索引值; 第二存储单元,用于将所述索引值、所述主机所属的VLAN所属的组播VLAN以及所述 IGMP报文的组播MAC地址存入所述二层转发表的表项中。
【文档编号】H04L12/46GK105939276SQ201510716118
【公开日】2016年9月14日
【申请日】2015年10月29日
【发明人】刘晓贺
【申请人】杭州迪普科技有限公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1