一种报文组播的处理方法、处理装置、可读介质和系统转让专利

申请号 : CN202010005998.X

文献号 : CN111262713B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 莫灿徐亮

申请人 : 优刻得科技股份有限公司

摘要 :

本申请涉及通信技术领域,特别地公开了一种报文组播的处理方法、处理装置、可读介质和系统。报文组播的处理方法,包括:根据报文包含的内层地址,确定报文的组播网络的识别号,组播网络的识别号用于表示与内层地址对应的组播网络;对组播网络包含的每一个接收方配置一个编号,将组播网络的识别号与组播网络的接收方的编号建立对应关系;根据组播网络的接收方的数量,复制报文,并且将复制的报文发送至组播网络。本发明提供的报文组播的处理方法,对网络没有依赖,灵活性高。

权利要求 :

1.一种报文组播的处理方法,其特征在于,包括:

根据报文包含的内层地址,确定所述报文的组播网络的识别号,所述组播网络的所述识别号用于表示与所述内层地址对应的所述组播网络;

对所述组播网络包含的每一个接收方配置一个编号,将所述组播网络的所述识别号与所述组播网络的所述接收方的所述编号建立对应关系;其中,在交换机内预先配置组播流表,所述组播流表中包含所述组播网络的IP地址与所述组播网络的所述识别号之间的对应关系;

所述组播流表中包含所述组播网络的所述识别号和所述组播网络的所述接收方的所述编号之间的组合与所述接收方的网络IP地址之间的对应关系根据所述组播网络的所述接收方的数量,复制所述报文,并且将复制的所述报文发送至所述组播网络。

2.根据权利要求1所述的处理方法,其特征在于,包括:解析所述报文,获取封装了的所述内层地址,其中,所述内层地址为所述组播网络的所述IP地址。

3.根据权利要求1所述的处理方法,其特征在于,包括:根据所述组播网络的所述IP 地址,查找所述组播流表,获取与所述组播网络的所述 IP 地址对应的所述接收方的所述网络IP地址。

4.根据权利要求3所述的处理方法,其特征在于,包括:复制所述报文,获得与所述组播网络的所述接收方的数量相同的至少一个报文;

根据所述接收方的所述网络IP地址,将复制的所述报文分别发送至与每个报文对应的所述接收方。

5.一种报文组播的处理装置,其特征在于,包括:

解析模块,所述解析模块用于根据报文包含的内层地址,确定所述报文的组播网络的识别号,所述组播网络的所述识别号用于表示与所述内层地址对应的所述组播网络;

配置模块,所述配置模块用于对所述组播网络包含的每一个接收方配置一个编号,将所述组播网络的所述识别号与所述组播网络的所述接收方的所述编号建立对应关系;其中,所述配置模块用于在交换机内预先配置组播流表,所述组播流表中包含所述组播网络的IP地址与所述组播网络的所述识别号之间的对应关系;

所述组播流表中包含所述组播网络的所述识别号和所述组播网络的所述接收方的所述编号之间的组合与所述接收方的网络IP地址之间的对应关系;

复制模块,所述复制模块用于根据所述组播网络的所述接收方的数量,复制所述报文,并且将复制的所述报文发送至所述组播网络。

6.根据权利要求5所述的处理装置,其特征在于,包括:所述解析模块用于解析所述报文,获取封装了的所述内层地址,其中,所述内层地址为所述组播网络的IP地址。

7.根据权利要求6 所述的处理装置,其特征在于,包括:所述复制模块用于根据所述组播网络的所述IP 地址,查找所述组播流表,获取与所述组播网络的所述 IP 地址对应的所述接收方的所述网络IP地址。

8.根据权利要求7所述的处理装置,其特征在于,包括:所述复制模块用于复制所述报文,获得与所述组播网络的所述接收方的数量相同的至少一个报文;

发送模块,所述发送模块用于根据所述接收方的所述网络IP地址,将复制的所述报文分别发送至与每个报文对应的所述接收方。

9.一种机器可读介质,其特征在于,所述机器可读介质上存储有指令,该指令在机器上执行时使机器执行权利要求1至4中任一项所述的报文组播的处理方法。

10.一种用于报文组播的系统,包括:

存储器,用于存储由系统的一个或多个处理器执行的指令,以及处理器,是系统的处理器之一,用于执行权利要求1至4中任一项所述的报文组播的处理方法。

说明书 :

一种报文组播的处理方法、处理装置、可读介质和系统

技术领域

[0001] 本申请涉及通信技术领域,尤其涉及一种报文组播的处理方法、处理装置、可读介质和系统。

背景技术

[0002] 传统的报文转发过程完全是由交换机/路由器控制的。当前的overlay广播解决方案主要有三种,1.vSwitch上openflow流表;2.VXLAN里vtep上转换为underlay网络的多播;3.Overlay的广播送到一个dpdk集群,由集群做转发。方案1,受openflow流表长度的限制,广播域大小有限受cpu性能影响。方案2,依赖underlay网络的多播支持。方案3,dpdk集群性能有限,受制于cpu核的能力,延迟高。
[0003] 现在,相比于cpu+网卡,可编程交换机芯片报文线速转发能力更强,能做到全端口100G 256Byte报文线速;芯片报文吞吐能力更强,现有6.4T的可编程交换机已经量产,
12.8T的可编程交换机2020年会量产;芯片处理报文延时更低且更稳定。

发明内容

[0004] 本申请实施例提供了一种报文组播的处理方法,包括:
[0005] 根据报文包含的内层地址,确定报文的组播网络的识别号,组播网络的识别号用于表示与内层地址对应的组播网络;
[0006] 对组播网络包含的每一个接收方配置一个编号,将组播网络的识别号与组播网络的接收方的编号建立对应关系;
[0007] 根据组播网络的接收方的数量,复制报文,并且将复制的报文发送至组播网络。
[0008] 可选地,包括:
[0009] 解析报文,获取封装了的内层地址,其中,内层地址为组播网络的IP地址。
[0010] 可选地,包括:
[0011] 在交换机内预先配置组播流表,组播流表中包含组播网络的IP地址与组播网络的识别号之间的对应关系;
[0012] 组播流表中包含组播网络的识别号和组播网络的接收方的编号之间的组合与接收方的网络IP地址之间的对应关系。
[0013] 可选地,包括:
[0014] 根据组播网络的IP地址,查找组播流表,获取与组播网络的IP地址对应的接收方的网络IP地址。
[0015] 可选地,包括:
[0016] 复制报文,获得与组播网络的接收方的数量相同的至少一个报文;
[0017] 根据接收方的网络IP地址,将复制的报文分别发送至与每个报文对应的接收方。
[0018] 本申请还提供了一种报文组播的处理装置,包括:
[0019] 解析模块,解析模块用于根据报文包含的内层地址,确定报文的组播网络的识别号,组播网络的识别号用于表示与内层地址对应的组播网络;
[0020] 配置模块,配置模块用于对组播网络包含的每一个接收方配置一个编号,将组播网络的识别号与组播网络的接收方的编号建立对应关系;
[0021] 复制模块,复制模块用于根据组播网络的接收方的数量,复制报文,并且将复制的报文发送至组播网络。
[0022] 可选地,
[0023] 解析模块还用于解析报文,获取封装了的内层地址,其中,内层地址为组播网络的IP地址。
[0024] 可选地,
[0025] 配置模块还用于在交换机内预先配置组播流表,组播流表中包含组播网络的IP地址与组播网络的识别号之间的对应关系;
[0026] 组播流表中包含组播网络的识别号和组播网络的接收方的编号之间的组合与接收方的网络IP地址之间的对应关系。
[0027] 可选地,
[0028] 复制模块还用于根据组播网络的IP地址,查找组播流表,获取与组播网络的IP地址对应的接收方的网络IP地址。
[0029] 可选地,
[0030] 复制模块还用于复制报文,获得与组播网络的接收方的数量相同的至少一个报文;
[0031] 还包括发送模块,发送模块用于根据接收方的网络IP地址,将复制的报文分别发送至与每个报文对应的接收方。
[0032] 本申请还提供了一种机器可读介质,机器可读介质上存储有指令,该指令在机器上执行时使机器执行上述的报文组播的处理方法。
[0033] 本申请还提供了一种系统,包括:
[0034] 存储器,用于存储由系统的一个或多个处理器执行的指令,以及
[0035] 处理器,是系统的处理器之一,用于执行上述的报文组播的处理方法。
[0036] 本发明提供的报文组播的处理方法,对网络没有依赖,灵活性高。

附图说明

[0037] 图1根据本申请的一些实施例,示出了一种报文组播的处理系统的结构示意图;
[0038] 图2根据本申请的一些实施例,示出了图1所示的系统中的报文数据结构示意图;
[0039] 图3根据本申请的一些实施例,示出了图1中所示的系统的工作流程图;
[0040] 图4根据本申请的一些实施例,示出了一种报文组播的处理装置的结构示意图;具体实施例
[0041] 本申请的说明性实施例包括但不限于报文组播的处理方法及其装置、机器可读介质和系统。
[0042] 可以理解,如本文所使用的,术语“模块”可以指代或者包括专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用、或群组)和/或存储器、组合逻辑电路、和/或提供所描述的功能的其他适当硬件组件,或者可以作为这些硬件组件的一部分。
[0043] 下面将结合附图对本申请的实施例作进一步地详细描述。
[0044] 本发明的实施例中涉及的报文是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。
[0045] 根据本申请的一些实施例公开了一种组播报文的处理系统,图1示出了该组播报文的处理系统的结构示意图,如图1所示,该系统10在接收至少一个报文后,首先解析报文获取封装了的内层地址,其中,内层地址为组播网络的IP地址。
[0046] 在本发明的实施例中,可以支持VXLAN或者NVGRE的报文,在获取报文后解析该报文,获取报文包含的内层地址。
[0047] 该系统的配置模块200在支持GPRC协议的可编程交换机内预先配置至少两个流表,其中,定义子网标识(SubNetWork)流表,匹配(match)数据是内层地址,动作(action)是子网标识(SubNetWork_Id);定义目的(Dest)流表,匹配(match)数据是子网标识(SubNetWork_Id)加上复制标识(RID,Replication instance ID),动作(action)是接收方的网络IP地址。
[0048] 其中,需要指出的是,这里的流表可以在建立业务时就预先进行配置,也就是在报文复制之前都已经配置完毕。流表是数据转发的依据,与交换机的mac地址转发表和IP地址路由表类似,流表中保存了网络中各个层次的网络配置信息,因此可以进行更加丰富的转发规则。交换机收到来自主机的数据包后,会在本机查询对应的动作,和对应的输出端口。流表有很多流表项,每一条流表项都是一个转发规则,主要是由控制器下发给交换机。
[0049] 该系统的解析模块100,根据报文的内层地址,确定报文的组播网络的识别号,这里的组播网络的识别号用于表示与内层地址对应的组播网络。
[0050] 在本发明的实施例中,对于配置模块200预先配置的子网标识(SubNetWork)流表,该流表中的一个项目(entry)的匹配(match)数据可以是例如,52::54:00:01:02:03(内层地址),动作(action)数据可以是数值1(子网标识SubNetWork_Id,识别号)。这里的一个项目(entry)与一个具体的报文一一对应,匹配(match)数据即是报文中包含的内层地址,该内层地址表示接收该报文的组播网络的IP地址,也就是说该流表中包含组播网络的IP地址与组播网络的识别号之间的对应关系。该系统的解析模块100根据该内层地址,在网标识(SubNetWork)流表中查询到与该内层地址对应的子网标识(SubNetWork_Id),也就是组播网络的识别号。
[0051] 之后,该系统的解析模块100对一个包含的子网标识(SubNetWork_Id)的报文分配一个组播组标识(MGID,Multicast Group ID),该MGID由复制标识(RID)和出站端口(Egress Port)组成。
[0052] 在本发明的实施例中,对于该MGID,该系统的解析模块100可以通过查找的方式,在交换机的存储介质中的流表内查找与该MGID对应的出站端口(Egress Port,Egress Port是指交换机的前面板端口,比如48口交换机,端口号是1到48)以及复制标识(RID)。其中,对于每一个MGID,根据报文接收的组播网络的接收方的数量,设置复制标识表(RID List,Replication instance ID)和出站端口表(Egress Port List),出站端口表里只有一个端口port。也就是说,对组播网络包含的每一个接收方配置一个编号/复制标识,将组播网络的识别号与组播网络的接收方的编号/复制标识建立对应关系;例如,在报文接收的组的接收方的数量为100的情况下,那么复制标识表(RID List)可设置为[0,100),这里的标号可以以任何步长递增。也就是说该系统的复制模块300,会依据该复制标识表(RID List)的数量对报文进行复制。
[0053] 例如,如图2所示,子网标识(subnetwork_id)为1对应的组播组标识(MGID)可以是(0,10),其中0是指广播域中的第一个接收方,10是出站端口(Egress Port)。在交换机的复制引擎中,在复制标识表(RID List)为[0,99]的情况下,复制标识(RID)的数量为100,对应的组播组标识(MGID)的数量也是100,对应的子网标识(subnetwork_id)也是100,因此复制模块300会将包含子网标识(subnetwork_id)为1的报文复制100次。
[0054] 在复制模块300完成复制报文获得与组播网络的接收方个数相同的至少一个报文后,根据接收方的网络IP地址,发送模块400会将每一个复制的报文分别发送至与报文对应的接收方。
[0055] 在本发明的实施例中,该系统的发送模块400,根据复制完毕的报文对应的子网标识(subnetwork_id)以及组播组标识(MGID)中的复制标识(RID),在目的(Dest)流表中查找接收方的网络IP地址(外层地址),目的(Dest)流表中包含组播网络的识别号和组播网络的接收方的编号/复制标识之间的组合与接收方的网络IP地址之间的对应关系。将该报文发送至接收方。
[0056] 基于上面的描述,下面具体介绍在系统10中各设备的主要工作流程。
[0057] 根据本申请的一些实施例,结合上述对系统10的描述,对系统10中的工作流程进行说明,上述描述中的具体细节在此处依然适用,在此不再赘述。图3示出了系统10的工作流程图,如图3所示,包括:
[0058] 根据报文包含的内层地址,确定报文的组播网络的识别号,组播网络的识别号用于表示与内层地址对应的组播网络,其中该内层地址表示接收该报文的组播网络的IP地址。
[0059] 对组播网络包含的每一个接收方配置一个编号,将组播网络的识别号与组播网络的接收方的编号建立对应关系;
[0060] 在本发明的实施例中,在交换机内预先配置组播流表,组播流表中包含组播网络的IP地址与组播网络的识别号之间的对应关系和组播流表中包含组播网络的识别号和组播网络的接收方的编号之间的组合与接收方的网络IP地址之间的对应关系。例如,在支持GPRC协议的可编程交换机内预先配置至少两个流表,其中,定义子网标识流表,匹配数据是内层地址,动作是子网标识;定义目的流表,匹配数据是子网标识加上复制标识,动作是接收方的网络IP地址。
[0061] 根据组播网络的接收方的数量,复制报文,并且将复制的报文发送至组播网络。
[0062] 在本发明的实施例中,根据接收方的数量,完成复制报文获得与组播网络的接收方个数相同的至少一个报文后,根据接收方的网络IP地址,将每一个复制的报文分别发送至与报文对应的接收方。
[0063] 根据本申请的一些实施例,图4示出了一种报文组播的处理装置的结构示意图。具体地,如图4所示,该处理装置包括:
[0064] 解析模块100,解析模块用于根据报文包含的内层地址,确定报文的组播网络的识别号,组播网络的识别号用于表示与内层地址对应的组播网络;
[0065] 配置模块200,配置模块用于对组播网络包含的每一个接收方配置一个编号,将组播网络的识别号与组播网络的接收方的编号建立对应关系;
[0066] 在本发明的实施例中,,配置模块200在交换机内预先配置组播流表,组播流表中包含组播网络的IP地址与组播网络的识别号之间的对应关系和组播流表中包含组播网络的识别号和组播网络的接收方的编号之间的组合与接收方的网络IP地址之间的对应关系。例如,在支持GPRC协议的可编程交换机内预先配置至少两个流表,其中,定义子网标识流表,匹配数据是内层地址,动作是子网标识;定义目的流表,匹配数据是子网标识加上复制标识,动作是接收方的网络IP地址。
[0067] 复制模块300,复制模块用于根据组播网络的接收方的数量,复制报文,并且将复制的报文发送至组播网络。
[0068] 发送模块400,发送模块用于根据接收方的网络IP地址,将复制的报文分别发送至与每个报文对应的接收方。
[0069] 在本发明的实施例中,复制模块300根据接收方的数量,完成复制报文获得与组播网络的接收方个数相同的至少一个报文后,发送模块400根据接收方的网络IP地址,将每一个复制的报文分别发送至与报文对应的接收方。
[0070] 需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
[0071] 需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0072] 虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。