一种组播报文转发方法、装置和交换机与流程

文档序号:33625144发布日期:2023-03-25 17:37阅读:83来源:国知局
一种组播报文转发方法、装置和交换机与流程

1.本发明涉及通信技术领域,具体地涉及一种组播报文转发方法、装置和交换机。


背景技术:

2.组播是一种重要的网际协议(ip:internet protocol)技术,当网络中的某些用户需求特定信息时,组播信息发送者(即组播源)仅发送一次信息,借助组播路由协议为组播数据包建立树型路由,被传递的信息在尽可能远的分叉路口开始复制和分发。
3.目前组播报文转发设备,例如交换机,基本包括cpu(central processing unit,中央处理器)和asci(application specific integrated circuit,专用集成电路芯片(交换芯片))。当交换机接收未知组播报文时需要将该未知组播报文上传至cpu,cpu通过对未知组播报文进行学习形成组播转发表,然后将此组播转发表发送至asci芯片,后续的相关组播报文就会根据所述组播转发表直接转发。
4.现有的对未知组播报文进行学习形成的组播转发表的组播源地址掩码和组播组地址掩码为32位全掩码即完全的源ip地址和组播组地址,组播源在同一网段的同一组播组需要分别建表不能复用组播转发表项,无法有效的降低芯片中组播转发表项的数量。


技术实现要素:

5.本发明实施例的目的是提供一种组播报文转发方法、装置和交换机。通过本发明实施例可以实现组播源在同一网段的同一组播组可以复用组播转发表项,降低芯片中组播转发表项的数量。
6.为了实现上述目的,本发明实施例提供一种组播报文转发方法,应用于交换机的中央处理器中,所述方法包括:
7.在接收到交换芯片上报的未知组播报文时,对所述未知组播报文进行rpf检查,得到通过所述rpf检查的最短路由匹配信息;
8.根据所述最短路由匹配信息生成第一组播转发表,并将所述第一组播转发表下发到所述交换芯片。
9.可选的,在接收到交换芯片上报的未知组播报文之前,所述方法还包括:
10.当交换芯片接收到组播报文时,通过所述交换芯片查找是否存在组播转发表,所述组播转发表包含对应的组播转发表项;
11.若存在,则将所述组播报文标记为已知组播报文,并获取与所述已知组播报文匹配的组播转发表;
12.若不存在,则将所述组播报文标记为未知组播报文,并将所述未知组播报文上报至所述交换机的中央处理器。
13.可选的,所述在接收到交换芯片上报的未知组播报文时,对所述未知组播报文进行rpf检查,得到通过rpf检查的最短路由匹配信息包括:
14.获取所述未知组播报文的组播源地址;
15.判断单播路由表中到达所述组播源地址的出端口与接收到所述未知组播报文的入端口是否一致;
16.若一致,则确定通过rpf检查,获取与所述组播源地址匹配的至少一个路由匹配信息,从各所述路由匹配信息中选择最短路由匹配信息;
17.若不一致,则确定未通过rpf检查。
18.可选的,获取与所述组播源地址匹配的至少一个路由匹配信息,从各所述路由匹配信息中选择最短路由匹配信息,包括:
19.将包含所述组播源地址的至少一个网段地址作为路由匹配信息;
20.获取各所述路由匹配信息表示的子网掩码,将最小的所述子网掩码对应的路由匹配信息作为最短路由匹配信息。
21.可选的,所述根据所述最短路由匹配信息生成第一组播转发表,并将所述第一组播转发表下发到所述交换芯片包括:
22.将所述最短路由匹配信息作为所述未知组播报文的组播源地址;
23.将所述组播源地址和所述未知组播报文的组播组地址组合,生成组播转发表项;根据所述组播转发表项得到第一组播转发表;
24.将所述第一组播转发表下发到所述交换芯片。
25.可选的,当未通过rpf检查时,所述方法还包括:创建内容为空的组播转发表项;根据所述组播转发表项得到第二组播转发表,并将所述第二组播转发表下发到所述交换芯片。
26.相应的,本发明实施例还提供一种组播报文转发方法,应用于交换机的交换芯片中,所述方法包括:
27.当交换芯片接收到组播报文时,通过所述交换芯片查找是否存在组播转发表,所述组播转发表包含对应的组播转发表项;
28.若存在,则将所述组播报文标记为已知组播报文,并获取与所述已知组播报文匹配的组播转发表;
29.若不存在,则将所述组播报文标记为未知组播报文,并将所述未知组播报文上报至中央处理器,以指示所述中央处理器对所述未知组播报文进行rpf检查,得到通过所述rpf检查的最短路由匹配信息,根据所述最短路由匹配信息生成第一组播转发表,并将所述第一组播路由表下发到交换芯片。
30.可选的,当所述中央处理器对所述未知组播报文进行rpf检查未通过rpf检查时,接收所述中央处理器下发的内容为空的第二组播转发表。
31.相应的,本发明实施例还提供一种组播报文转发装置,应用于交换机的中央处理器,所述装置用于执行所述的组播报文转发方法。
32.相应的,本发明实施例还提供一种组播报文转发装置,应用于交换机的交换芯片,所述装置用于执行所述的组播报文转发方法。
33.相应的,本发明实施例还提供一种交换机,所述交换机包括:
34.交换芯片、至少一个处理器;以及
35.与所述至少一个处理器通信连接的存储器;其中,
36.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序
被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利所述的方法。
37.通过上述技术方案,即收到未知组播报文后,进行rpf检查,然后匹配最短路由创建组播转发表的方式,可以实现组播源在同一网段的同一组播组能够复用组播转发表项,降低芯片中组播转发表项的数量,提高了组播报文的转发效率,减少了芯片硬件资源的占用。
38.本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
39.附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
40.图1是本发明实施例提供的一种应用于交换机的中央处理器的组播报文转发方法的流程图;
41.图2是本发明实施例提供的组播转发表的示意图;
42.图3是本发明实施例提供的一种应用于交换机的转发芯片的组播报文转发方法的流程图;
43.图4是本发明实施例提供的一种交换机的结构框图。
具体实施方式
44.以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
45.图1是本发明实施例提供的一种应用于交换机的中央处理器的组播报文转发方法的流程图。
46.如图1所示,所述组播报文转发方法包括:
47.s100:在接收到交换芯片上报的未知组播报文时,对所述未知组播报文进行rpf检查,得到通过所述rpf检查的最短路由匹配信息;
48.s110:根据所述最短路由匹配信息生成第一组播转发表,并将所述第一组播转发表下发到所述交换芯片。
49.其中,组播指的是一个发送者给多个接收者传输数据,把相同数据同时传递给一组目的地址的过程。所述组播报文包含了将要发送的完整的数据信息。
50.当交换芯片接收到所述组播报文时,可以先判断所述组播报文是已知组播报文还是未知组播报文。若所述组播报文是已知组播报文则可以直接通过所述交换芯片进行转发;若所述组播报文是未知组播报文,则将所述报文上报到中央处理器进行处理。
51.在优选实施例中,当交换芯片接收到所述组播报文时,可以通过交换芯片查找是否存在组播转发表,来判断所述组播报文是已知组播报文还是未知组播报文。当存在组播转发表且所述组播转发表中包含对应的组播转发表项时,将所述组播报文标记为已知组播报文,当组播转发表中不包含对应的组播转发表项时,则将所述组播报文标记为未知组播报文。
52.所述对应的组播转发表项指该表项的源地址是包含所述组播报文的组播源地址
的网段地址,该表项的目的地址是所述组播报文的组播组地址。
53.例如,从入口interface 1接收到一条(10.10.1.2,224.2.2.2)的组播报文,通过交换芯片查找到组播转发表中含有(10.10.1.0/29,224.2.2.2)的组播转发表项,其中,组播转发表项的源地址是网段地址10.10.1.0/29,该网段地址包含的地址范围为10.10.1.1-10.10.1.6,因为所述组播报文的组播源地址10.10.1.2包含在该网段地址的范围内,且该表项的目的地址224.2.2.2是所述组播报文的组播组地址224.2.2.2,所以可以根据所述组播转发表项对所述报文进行转发,该报文为已知组播报文。
54.需要说明的是,网段地址10.10.1.0/29用二进制表示共32位,其中29表示子网掩码,其含义为:网段地址10.10.1.0/29前29位是网络位,后3位是主机位,该网段地址范围包含6台主机,即10.10.1.1-10.10.1.6,该子网掩码越小代表主机位越多,则该网段包含的主机也就越多,也就有更多的主机可以共用10.10.1.0/29表示。
55.在步骤s100中,当交换芯片没有查找到所述组播转发表时,则将所述组播报文标记为未知组播报文,并将所述未知组播报文上报中央处理器。在优选实施例中,中央处理器可以对所述未知组播报文进行rpf检查,得到通过所述rpf检查的最短路由匹配信息。
56.其中,所述rpf检查指的是判断单播路由表中到达所述组播源地址的出端口与接收到所述未知组播报文的入端口是否一致的过程(单播路由表是指导报文进行单播转发的表)。
57.若一致,则确定通过rpf检查;若不一致,则确定未通过rpf检查。通过所述rpf检查可以保证组播报文按照正确的路径和接口进行转发,保证报文的正常转发。举例说明,从入端口interface 1接收到一条(192.168.1.54,255.12.12.1)的未知组播报文,对其进行rpf检查,即在单播路由表中查找到达所述组播源地址的出端口(若所述出端口为interface 2)与接收到所述组播报文的入端口是否一致,因为出端口为interface 2,入端口为interface 1,两端口不一致,所以所述报文没有通过rpf检查;又例如,从入端口interface 1接收到一条(192.168.1.54,255.12.12.1)的未知组播报文,对其进行rpf检查,即在单播路由表中查找到达所述组播源地址的出端口(若所述出端口为interface 1)与接收到所述组播报文的入端口是否一致,因为出端口和入端口都是interface 1,所以所述报文通过rpf检查。
58.在优选实施例中,当通过所述rpf检查时,可以获取与所述组播源地址匹配的至少一个路由匹配信息,从各所述路由匹配信息中选择最短路由匹配信息。
59.更优选的,可以将包含所述组播源地址的至少一个网段地址作为路由匹配信息;获取各所述路由匹配信息表示的子网掩码,将最小的所述子网掩码对应的路由匹配信息作为最短路由匹配信息。
60.例如,从入口interface 1接收到一条(192.168.1.54,255.12.12.1)的未知组播报文,通过所述rpf检查后,与所述组播源地址匹配的路由匹配信息为:192.168.1.54/32(出接口interface1)、192.168.1.0/24(出接口interface1)以及192.168.1.0/26(出接口interface1)。因为无论网段地址192.168.1.54/32、192.168.1.0/24还是网段地址192.168.1.0/26,都包含了所述组播源地址192.168.1.54,因此,192.168.1.54/32、192.168.1.0/24以及192.168.1.0/26都是组播源地址192.168.1.54的路由匹配信息。其中,路由匹配信息192.168.1.54/32(出接口interface 1)表示的子网掩码是32、
192.168.1.0/24(出接口interface 1)表示的子网掩码是24、192.168.1.0/26(出接口interface 1)表示的子网掩码是26,可以选择最小子网掩码即24对应的路由匹配信息192.168.1.0/24作为最短路由匹配信息。因为包含所述组播源地址的子网掩码越小,代表所述网段包含的主机越多,可以最大程度的减少同一组播组同一网段的组播转发表项。
61.在步骤s110中,可以根据所述最短路由匹配信息生成第一组播转发表,并将所述第一组播转发表下发到所述交换芯片。更优选的,可以将所述组播源地址和所述未知组播报文的组播组地址组合,生成组播转发表项;根据所述组播转发表项得到第一组播转发表;将所述第一组播转发表下发到所述交换芯片。其中,将所述组播源地址和所述未知组播报文的组播组地址组合,生成组播转发表项具体可以包括:构建表项的源地址是所述组播源地址,表项的目的地址是所述未知组播报文的组播组地址的组播转发表项。图2是本发明实施例提供的组播转发表的示意图。
62.例如,从入口interface1接收到一条(192.168.1.54,255.12.12.1)的未知组播报文,通过所述rpf检查后,与所述组播源地址匹配的路由匹配信息为:192.168.1.54/32(出接口interface 1)、192.168.1.0/24(出接口interface 1)以及192.168.1.0/26(出接口interface 1),其中,路由匹配信息192.168.1.54/32(出接口interface 1)表示的子网掩码是32、192.168.1.0/24(出接口interface 1)表示的子网掩码是24、192.168.1.0/26(出接口interface 1)表示的子网掩码是26,可以选择最小子网掩码即24对应的路由匹配信息192.168.1.0/24作为最短路由匹配信息,创建组播转发表项(192.168.1.0/24,255.12.12.1/32),生成组播转发表,并将所述组播转发表下发到所述交换芯片。包含在网段地址192.168.1.0/24内的如192.168.1.55的组播源地址发送到255.12.12.1的组播不再需要新建表,也能够通过之前建立的组播转发表进行转发。
63.又如,从入口interface1收到一条(192.168.1.54,255.12.12.1)的组播未知组播报文,通过rpf检查后,与所述组播源地址匹配的路由匹配信息为:192.168.1.54/32(出接口interface 1),其中,路由匹配信息192.168.1.54/32(出接口interface 1)表示的子网掩码是32,可以选择最小子网掩码即32对应的路由匹配信息192.168.1.54/32作为最短路由匹配信息,创建组播转发表项(192.168.1.54/32,255.12.12.1/32),生成组播转发表,并将所述组播转发表下发到所述交换芯片。192.168.1.55不包含在网段地址192.168.1.54/32内,因此从192.168.1.55发送到255.12.12.1的组播不能通过所述组播转发表进行转发。
64.又如,从入口interface 1收到一条(192.168.1.54,255.12.12.1)的组播未知组播报文,通过rpf检查后,与所述组播源地址匹配的路由匹配信息为:192.168.1.54/32(出接口interface 1)、192.168.1.0/24(出接口interface 1),其中,路由匹配信息192.168.1.54/32(出接口interface 1)表示的子网掩码是32、192.168.1.0/24(出接口interface 1)表示的子网掩码是24,可以选择最小子网掩码即24对应的路由匹配信息192.168.1.0/24作为最短路由匹配信息,创建组播转发表项(192.168.1.0/24,255.12.12.1/32),生成组播转发表,并将所述组播转发表下发到所述交换芯片。同一网段如192.168.1.55发送255.12.12.1组播不再需要新建表,也能够通过之前建立的组播转发表进行转发。
65.通过上述技术方案,即收到收到未知组播报文后,进行rpf检查,然后匹配最短路由,创建组播转发表项的方式,可以实现组播源在同一网段的同一组播组能够复用组播转
发表,降低芯片中组播转发表项的数量,提高了组播报文的转发效率,减少了芯片硬件资源的占用。
66.在另一个实施例中,当所述未知组播报文没有通过所述rpf检查时,所述方法还包括:创建内容为空的组播转发表项;根据所述组播转发表项得到第二组播转发表,并将所述第二组播转发表下发到所述交换芯片。通过建立接口为空的组播路由表项可以防止此错误报文不断冲击中央处理器,给中央处理器造成负担,同时也提高了以太网交换设备的性能。
67.图3是本发明实施例提供的一种应用于交换机的交换芯片的组播报文转发方法的流程图。
68.如图3所示,所述组播报文转发方法包括:
69.s300:当交换芯片接收到组播报文时,通过所述交换芯片查找是否存在组播转发表,所述组播转发表包含对应的组播转发表项;
70.s310:若存在,则将所述组播报文标记为已知组播报文,并获取与所述已知组播报文匹配的组播转发表;
71.s320:若不存在,则将所述组播报文标记为未知组播报文,并将所述未知组播报文上报至中央处理器,以指示所述中央处理器对所述未知组播报文进行rpf检查,得到通过所述rpf检查的最短路由匹配信息,根据所述最短路由匹配信息生成第一组播转发表,并将所述第一组播路由表下发到交换芯片。
72.相应的,本发明实施例还提供一种组播报文转发装置,应用于交换机的中央处理器,所述装置用于执行所述的组播报文转发方法。
73.相应的,本发明实施例还提供一种组播报文转发装置,应用于交换机的交换芯片,所述装置用于执行所述组播报文转发方法。
74.相应的,本发明实施例还提供一种交换机,图4是本发明实施例提供的一种交换机的结构框图。
75.所述交换机包括:
76.交换芯片、至少一个处理器;以及
77.与所述至少一个处理器通信连接的存储器;其中,
78.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述的方法。
79.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
80.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
81.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
82.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
83.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
84.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
85.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
86.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
87.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1