CN115567436A - 组播报文的处理方法、系统、计算机设备和可读存储介质 - Google Patents

组播报文的处理方法、系统、计算机设备和可读存储介质 Download PDF

Info

Publication number
CN115567436A
CN115567436A CN202210987655.7A CN202210987655A CN115567436A CN 115567436 A CN115567436 A CN 115567436A CN 202210987655 A CN202210987655 A CN 202210987655A CN 115567436 A CN115567436 A CN 115567436A
Authority
CN
China
Prior art keywords
multicast
unknown
multicast message
message
chip
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.)
Pending
Application number
CN202210987655.7A
Other languages
English (en)
Inventor
王倩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Armyfly Technology Co Ltd
Original Assignee
Beijing Armyfly Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Armyfly Technology Co Ltd filed Critical Beijing Armyfly Technology Co Ltd
Priority to CN202210987655.7A priority Critical patent/CN115567436A/zh
Publication of CN115567436A publication Critical patent/CN115567436A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种组播报文的处理方法,包括通过交换芯片接收组播报文;查找组播路由表,基于组播查找结果确定组播报文是否为未知组播报文;若是,基于未知组播报文,查找与未知组播报文对应的单播路由表;根据单播查找结果,判断对未知组播报文是否检查通过:若否,丢弃未知组播报文,若是,将未知组播报文发送至中央处理器,以使中央处理器转发未知组播报文;接收检查通过的未知组播报文,转发未知组播报文至对应的组播出口中。本发明对不是未知组播的组播报文(即已知组播报文)通过一次查表即可进行转发,通过二次查表对检查不通过的未知组播即可丢弃,减少资源占用,转发延迟低,转发效率高,减少错误端口的组播流对中央处理器的冲击。

Description

组播报文的处理方法、系统、计算机设备和可读存储介质
技术领域
本发明实施例涉及网络通信技术领域,尤其涉及一种组播报文的处理方法、系统、计算机设备和可读存储介质。
背景技术
现有逆向路径转发技术(RPF:Reverse Path Forwarding)是以太网交换机上的一种功能,是大多数组播路由协议进行转发的基础。当组播报文到达交换机时,交换机对组播报文进行RPF检查。如果RPF检查成功了,组播报文被转发,否则,组播报文被丢弃。
RPF检查的原理如下:1、交换机检查到达的组播报文的源地址,以确定该组播报文的入接口,并判断该入接口是否是从本交换机到目的地的组播报文源地址的出接口;2、如果组播报文是在可返回源地址的接口上到达,则RPF检查成功,报文被转发;3、如果RPF检查失败,报文被丢弃。
现有实现RPF检查包括以下几种方法:(1)是交换芯片通过把未知组播的入口加入到组播查找表中与(S,G)一起作为KEY进行查找,由CPU进行RPF检查,并在RPF检查通过后下发芯片组播表。如果CPU进行的RPF检查失败,失败后也需为此未知组播下发口为空的芯片组播表,可见此种方法不仅占用CPU资源还占用芯片组播表。(2)通过将组播的源IP地址作为目的IP查找单播路由表如果能够查找到出口且出口和组播入口一致,则RPF检查通过如果不一致则RPF检查失败,RPF检查通过后再查找组播路由表进行转发,这种方法使得所有的组播转发需要查询两次表才能够转发,组播转发延迟增大。现有实现RPF检查的方法至少具有以下缺陷:(1)占用CPU资源,占用芯片组播表,导致计算机资源消耗大;(2)组播报文转发不灵活,转发延迟大,转发效率低。
发明内容
有鉴于此,本发明的目的是提供了一种组播报文的处理方法、系统、计算机设备及计算机可读存储介质,用于解决现有RPF检查方法占用CPU资源、占用芯片组播表、转发效率低的问题。
本发明实施例的一个方面提供了一种组播报文的处理方法,包括:
应用于数据处理系统中,所述数据处理系统包括中央处理器、交换芯片以及组播出口,所述交换芯片包括反向路径转发使能项,所述方法包括:
通过所述交换芯片接收组播报文;
通过所述交换芯片基于所述组播报文,查找所述交换芯片中预设的组播路由表得到组播查找结果,并基于所述组播查找结果确定所述组播报文是否为未知组播报文;
若确定所述组播报文为未知组播报文,则通过所述交换芯片中的反向路径转发使能项基于所述未知组播报文,查找与所述未知组播报文对应的单播路由表,得到单播查找结果;
根据所述单播查找结果,通过所述交换芯片判断对所述未知组播报文是否检查通过,并执行以下操作:若确定所述未知组播报文检查不通过,则丢弃所述未知组播报文,或者,若确定所述未知组播报文检查通过,则将所述未知组播报文发送至中央处理器,以使所述中央处理器转发所述未知组播报文;
通过所述中央处理器接收所述交换芯片转发的检查通过的所述未知组播报文,并转发所述未知组播报文至对应的组播出口中。
可选地,所述通过所述交换芯片基于所述组播报文,查找所述交换芯片中预设的组播路由表,得到组播查找结果,并基于所述组播查找结果确定所述组播报文是否为未知组播报文的步骤,还包括:
通过所述交换芯片从所述组播报文中获取组播源地址数据以及组播组地址数据;
通过所述交换芯片基于所述组播源地址数据和所述组播组地址数据从所述组播路由表中查找所述组播报文的组播源地址数据以及对应的所述组播组地址数据;
若从所述交换芯片中预设的所述组播路由表中查找不到所述组播源地址数据和对应的所述组播组地址数据,则通过所述交换芯片确定所述组播报文为未知组播报文;
若从所述交换芯片中预设的所述组播路由表中查找到所述组播源地址数据和对应的所述组播组地址数据,则通过所述交换芯片查找所述组播路由表中的端口清单中是否存在所述组播源地址数据对应的端口数据;
若所述组播路由表中的端口清单中存在所述组播源地址数据对应的端口数据,则通过所述交换芯片确定所述组播报文为已知组播报文。
可选地,在所述通过所述交换芯片确定所述组播报文为已知组播报文的步骤后,所述方法包括:
通过所述交换芯片基于所述已知组播报文以及所述预设的组播路由表,转发所述已知组播报文。
可选地,所述若确定所述组播报文为未知组播报文,则通过所述交换芯片中的反向路径转发使能项基于所述未知组播报文,查找与所述未知组播报文对应的单播路由表,得到单播查找结果的步骤,包括:
通过所述交换芯片中的反向路径转发使能项获取所述未知组播报文的组播源IP地址;
将所述组播源IP地址确定为目标IP地址,并基于所述目标IP地址查找对应的单播路由表,得到单播查找结果。
可选地,所述根据所述单播查找结果,通过所述交换芯片判断对所述未知组播报文是否检查通过,并执行以下操作:若确定所述未知组播报文检查不通过,则丢弃所述未知组播报文,或者,若确定所述未知组播报文检查通过,则将所述未知组播报文发送至中央处理器,以使所述中央处理器转发所述未知组播报文的步骤,包括:
若从所述单播路由表中查找不到与所述未知组播报文对应的出口地址,则通过所述交换芯片确定对所述未知组播报文的检查不通过,并丢弃所述未知组播报文;
若从所述单播路由表中查找到所述未知组播报文对应的出口地址,且所述出口地址与所述目标IP地址的出口地址一致,则通过所述交换芯片确定对所述未知组播报文的检查通过,并将所述未知组播报文发送至所述中央处理器中,以使所述中央处理器转发所述未知组播报文至对应的组播出口中。
可选地,所述通过所述中央处理器接收所述交换芯片转发的检查通过的所述未知组播报文,并转发所述未知组播报文至对应的组播出口中的步骤,包括:
通过所述中央处理器接收所述交换芯片转发的检查通过的所述未知组播报文;
通过所述中央处理器基于预设的组播协议处理所述未知组播报文,获取与所述未知组播报文对应的组播转发表,所述组播转发表包括与所述未知组播报文对应的目标关键词以及与所述未知组播报文的组播源地址数据对应的至少一个组播出口,其中,所述目标关键词包括:所述组播源地址数据、组播组地址数据以及组播源地址数据对应的端口数据;所述组播组地址数据对应所述至少一个组播出口;
通过所述中央处理器将所述未知组播报文转发至对应的至少一组播出口中。
本发明实施例的一个方面又提供了一种组播报文的处理方法,应用于交换芯片中,所述交换芯片包括反向路径转发使能项,所述方法包括:
接收组播报文;
基于所述组播报文,查找所述交换芯片中预设的组播路由表,得到组播查找结果,并基于所述组播查找结果确定所述组播报文是否为未知组播报文;
若确定所述组播报文为未知组播报文,则通过所述交换芯片中的反向路径转发使能项基于所述未知组播报文,查找与所述未知组播报文对应的单播路由表,得到单播查找结果;及
根据所述单播查找结果,判断对所述未知组播报文是否检查通过,并执行以下操作:若确定所述未知组播报文检查不通过,则丢弃所述未知组播报文,或者,若确定所述未知组播报文检查通过,则将所述未知组播报文发送至中央处理器,以使所述中央处理器转发所述未知组播报文至对应的组播出口中。
本发明实施例的一个方面又提供了一种组播报文的处理系统,应用于交换芯片中,所述交换芯片包括反向路径转发使能项,所述系统包括:
接收模块,用于接收组播报文;
判断模块,用于基于所述组播报文,查找所述交换芯片中预设的组播路由表,得到组播查找结果,并基于所述组播查找结果确定所述组播报文是否为未知组播报文;
查找模块,用于若确定所述组播报文为未知组播报文,则通过所述交换芯片中的反向路径转发使能项基于所述未知组播报文,查找与所述未知组播报文对应的单播路由表,得到单播查找结果;及
执行模块,用于根据所述单播查找结果,判断对所述未知组播报文是否检查通过,并执行以下操作:若确定所述未知组播报文检查不通过,则丢弃所述未知组播报文,或者,若确定所述未知组播报文检查通过,则将所述未知组播报文发送至中央处理器,以使所述中央处理器转发所述未知组播报文至对应的组播出口中。
本发明实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述组播报文的处理方法的步骤。
本发明实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的组播报文的处理方法的步骤。
本发明实施例提供的组播报文的处理方法、系统、计算机设备及计算机可读存储介质,所述方法包括:通过所述交换芯片接收组播报文;通过所述交换芯片基于所述组播报文,查找所述交换芯片中预设的组播路由表,得到组播查找结果,并基于所述组播查找结果确定所述组播报文是否为未知组播报文;若确定所述组播报文为未知组播报文,则通过所述交换芯片中的反向路径转发使能项基于所述未知组播报文,查找与所述未知组播报文对应的单播路由表,得到单播查找结果;根据所述单播查找结果,通过所述交换芯片判断对所述未知组播报文是否检查通过,并执行以下操作:若确定所述未知组播报文检查不通过,则丢弃所述未知组播报文,或者,若确定所述未知组播报文检查通过,则将所述未知组播报文发送至中央处理器,以使所述中央处理器转发所述未知组播报文;通过所述中央处理器接收所述交换芯片转发的检查通过的所述未知组播报文,并转发与所述未知组播报文对应的组播转发表至对应的出口客户端中转发所述未知组播报文至对应的组播出口中。本发明对已知组播通过一次查表即可进行转发,通过二次查表对检查不通过的未知组播即可丢弃,减少资源占用,转发延迟低,转发效率高,减少错误端口的组播流对中央处理器的冲击。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1示意性示出了本发明实施例一实现组播报文的处理方法的示例流程图;
图2示意性示出了根据本发明实施例一实现组播报文的处理方法中判断组播报文是否为未知组播报文的步骤流程图;
图3示意性示出了根据本发明实施例一实现组播报文的处理方法中基于未知组播报文查找对应的单播路由表的步骤流程图;
图4示意性示出了根据本发明实施例一实现组播报文的处理方法中判断位置组播保温是否检查通过,根据不同的检查结果,执行对应的操作的步骤流程图;
图5示意性示出了根据本发明实施例一实现组播报文的处理方法中通过中央处理器转发未知组播报文的步骤流程图;
图6示意性示出了根据本发明实施例二实现组播报文的处理方法的步骤流程图;
图7示意性示出了根据本发明实施例三的组播报文的处理系统的框图;
图8示意性示出了根据本发明实施例四之适于实现组播报文的处理方法的计算机设备的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。
以下为本申请涉及的一些术语解释:
RPF检查(Reverse Path Forwarding,反向路径转发技术):是以太网交换机上的一种功能,是大多数组播路由协议进行转发的基础。
CPU:(central processing unit,中央处理器):作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
组播RPF检查使能项:与组播相关的RPF检查机制配置项。
交换芯片:交换机的核心芯片之一。
交换机:意为“开关”,是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。
经过研究,本申请人认为目前实现RPF检查方法主要存在以下缺陷:(1)由CPU进行RPF检查,通过或不通过,均会下发芯片组播路由表,该种方法不仅占用CPU资源,还占用芯片组播路由表;(2)通过查找单播路由表执行RPF检查,检查通过后,再通过查找组播路由表进行转发,对于所有的组播报文均需要查询两次表才能转发,组播报文转发延迟增大,组播报文转发效率低;(3)对每个合法的单播路针对出端口路由进行ACL(Access ControlList,与报文匹配条件的判断语句)设置,对于源IP地址落入合法单播路由地址范围内的端口配置ACL允许规则且配置禁止其他源IP地址的报文,该种会占用大量的ACL资源。
鉴于上述问题,本发明提供一种基于交换芯片的组播报文的处理方法,能够有效减少资源占用,复用现有的芯片组播表,进行组播RPF检查,对已知组播查一次表即可进行转发,对于未知组播通过两次查表将RPF检查不通过的直接丢弃,避免错误端口的组播流冲击CPU,占用组播表。
下文将提供多个实施例,下文提供的各个实施例可以用于解决上述描述的缺陷。
实施例一
请参阅图1,示出了本发明实施例之组播报文的处理方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。所述组播报文的处理方法应用于数据处理系统中,所述数据处理系统包括中央处理器、交换芯片以及组播出口,所述交换芯片包括反向路径转发使能项,所述交换芯片为交换机中的核心芯片之一。在本实施例中,交换芯片接收到的组播报文通过中央处理器和交换机上的交换芯片进行处理,实现组播报文的转发和丢弃。具体如下:
如图1所示,所述组播报文的处理方法可以包括步骤S100~S108,其中:
步骤S100,通过所述交换芯片接收组播报文。
其中,通过所述交换芯片接收端口发送的组播报文,组播报文为基于组播方式传输的报文,组播方式是将一份报文沿基于网络中部署的组播协议而形成的树型路由同时发送到一组用户,一组用户可以理解为是对应的至少一个组播出口连接的至少一个用户端。
步骤S102,通过所述交换芯片基于所述组播报文,查找所述交换芯片中预设的组播路由表,得到组播查找结果,并基于所述组播查找结果确定所述组播报文是否为未知组播报文。
对于组播报文,先进行组播路由表查找,能够得到以下两种组播查找结果之一:如果能查找到对应的组播源地址,则确定组播报文是已知组播报文;如果没有查找到,则确定组播报文是未知组播报文。
在示例性的实施例中,若确定组播报文是已知组播报文,所述方法包括:通过所述交换芯片基于所述已知组播报文以及所述预设的组播路由表,转发所述已知组播报文。在本实施例中,基于所述已知组播报文、所述预设的组播路由表以及在所述交换芯片中预先设置的组播协议,将与所述已知组播报文转发至在所述组播路由表中与所述已知组播报文的组播组地址对应的至少一个组播出口中,其中,与已知组播报文对应的组播路由表至少包括以下数据:组播源地址,组播组地址,与组播组地址对应的至少一个组播出口等。
请参阅图2,为了提高交换芯片对于组播报文的识别效率,所述通过所述交换芯片基于所述组播报文,查找所述交换芯片中预设的组播路由表,得到组播查找结果,并基于所述组播查找结果确定所述组播报文是否为未知组播报文的步骤S102,还可以包括步骤S200~S208,其中:步骤S200,通过所述交换芯片从所述组播报文中获取组播源地址数据以及组播组地址数据;步骤S202,通过所述交换芯片基于所述组播源地址数据和所述组播组地址数据从所述组播路由表中查找所述组播报文的组播源地址数据;步骤S204,若从所述交换芯片中预设的所述组播路由表中查找不到所述组播源地址数据,则通过所述交换芯片确定所述组播报文为未知组播报文;步骤S206,若从所述交换芯片中预设的所述组播路由表中查找到所述组播源地址数据,则通过所述交换芯片查找所述组播路由表中的端口清单中是否存在所述组播源地址数据对应的端口数据;及步骤S208,若所述组播路由表中的端口清单中存在所述组播源地址数据对应的端口数据,则通过所述交换芯片确定所述组播报文为已知组播报文。
示例性的,在交换芯片中设置组播RPF检查使能项,即反向路径转发使能项,使用(S,G,V)作为目标关键词进行组播匹配,以判断所述组播报文是否为未知组播报文,其中,S表示组播源地址数据,即入口地址数据,G表示组播组地址数据,组播组地址数据与至少一组播出口地址数据对应;V表示为组播源地址数据对应的端口数据,该端口数据包括但不限于真实的物理端口、VLAN(Wireless Local AreaNetwork,无线局域网)接口,例如VLANIF接口;或者l3ifid(三层接口id)。需要说明的是,根据接收端口的类型的差异,会根据不同类型的端口对应的数据处理规则,对需要转发的组播报文进行处理,以得到处理后的组播报文,并将处理后的组播报文转发。在示例性的实施例中,使用(S,G)进行组播匹配以查找预设的所述组播路由表是否包括组播报文对应的组播源地址数据,在所述组播路由表中查找到所述组播报文的组播源地址数据后,通过指令(S,G)V_list_ptr索引到V list(V1,V2,...,Vn)进行源端口匹配,即索引到V list(V1,V2,...,Vn)中,基于组播报文的组播源地址数据进行对应的端口数据匹配,其中,V list的容量根据ECMP支持的下一跳(下一个最近或最佳的路由器)个数一致,以减少执行ECMP(Equal-costmulti-path,逐跳的基于流的负载均衡策略)时多出口会占用多条(S,G,V)的问题,如果组播源地址数据对应的端口数据在V list中,且与组播组地址数据一致,则确定组播报文为已知组播报文,如果组播源地址数据对应的端口数据不在V list中,则确定组播报文为未知组播报文。通过上述方法,对于已知组播报文,即通过一次查表,即可进行组播报文转发,有助于提高组播报文的转发效率。
步骤S104,若确定所述组播报文为未知组播报文,则通过所述交换芯片中的反向路径转发使能项基于所述未知组播报文,查找与所述未知组播报文对应的单播路由表,得到单播查找结果。
请参阅图3,交换芯片中的芯片表项包括组播路由表和单播路由表。所述若确定所述组播报文为未知组播报文,则通过所述交换芯片中的反向路径转发使能项基于所述未知组播报文,查找与所述未知组播报文对应的单播路由表,得到单播查找结果的步骤S106还可以包括以下步骤S300~S302,其中:步骤S300,通过所述交换芯片中的反向路径转发使能项获取所述未知组播报文的组播源IP地址;及步骤S302,将所述组播源IP地址确定为目标IP地址,并基于所述目标IP地址查找对应的单播路由表,得到所述单播查找结果。在本实施例中,当确定组播报文为未知组播报文时,即可通过未知组播源IP地址作为目标IP地址查找对应的芯片单播路由表,即进行二次查表,通过复用交换芯片中现有的芯片表项,能够有效减少资源的占用。
步骤S106,根据所述单播查找结果,通过所述交换芯片判断对所述未知组播报文是否检查通过,并执行以下操作:若确定所述未知组播报文检查不通过,则丢弃所述未知组播报文,或者,若确定所述未知组播报文检查通过,则将所述未知组播报文发送至中央处理器,以使所述中央处理器转发所述未知组播报文。
其中,单播查找结果包括:从所述芯片单播路由表中查找到出口地址为目标IP地址,且出口地址与未知组播源IP地址一致,或者从所述芯片单播路由表中查找不到目标IP地址。根据单播查找结果,将未知组播报文上送CPU(即中央处理器),或者,丢弃该未知组播报文,通过二次查表后,仍然无法通过组播RPF检查的未知组播报文直接丢弃,能够避免错误端口的组播流冲击CPU,占用组播路由表的情况发生,有效减少对于资源的占用。
结合图4,所述步骤S106还可以通过以下操作实现,具体如下:步骤S400,若从所述单播路由表中查找不到与所述未知组播报文对应的出口地址,则通过所述交换芯片确定对所述未知组播报文的检查不通过,并丢弃所述未知组播报文;及步骤S402,若从所述单播路由表中查找到所述未知组播报文对应的出口地址,且所述出口地址与所述目标IP地址的出口地址一致,则通过所述交换芯片确定对所述未知组播报文的检查通过,并将所述未知组播报文发送至所述中央处理器中,以使所述中央处理器转发所述未知组播报文至对应的组播出口中。在本实施例中,确定对所述未知组播报文的检查不通过或确定对所述未知组播报文的检查通过,即通过交换芯片的组播RPF检查机制确定未知组播报文转发路径的正确性,进而提高数据准发的准确性。
步骤S108,通过所述中央处理器接收所述交换芯片转发的检查通过的所述未知组播报文,并转发所述未知组播报文至对应的组播出口中。
请参阅图5,所述步骤S108还可以通过以下操作得到,其中:
步骤S500,通过所述中央处理器接收所述交换芯片转发的检查通过的所述未知组播报文;步骤S502,通过所述中央处理器基于预设的组播协议处理所述未知组播报文,获取与所述未知组播报文对应的组播转发表,所述组播转发表包括与所述未知组播报文对应的目标关键词以及与所述未知组播报文的组播源地址数据对应的至少一个组播出口,其中,所述目标关键词包括:所述组播源地址数据、组播组地址数据以及组播源地址数据对应的端口数据;所述组播组地址数据对应所述至少一个组播出口;及步骤S504,通过所述中央处理器基于所述组播转发表,将所述未知组播报文转发至对应的至少一组播出口中。在本实施例中,中央处理器从网络中获取与所述未知组播报文对应的,且预设好的组播协议,基于组播协议和未知组播报文,生成目标关键词,目标关键词为(S,G,V),其中,S表示组播源地址数据,即入口地址数据,G表示组播组地址数据,其中,组播组地址数据对应至少一组播出口地址数据;V表示为与组播源地址数据对应的端口数据;将目标关键词以及对应的至少一组播出口地址数据写入组播转发表中,以生成组播转发表。在一实施例中,CPU可以基于其内预设的组播协议将获取到的未知组播报文,转发至对应的组播出口中。在其他实施例中,CPU还可以将所述未知组播报文和对应的所述组播转发表转发至交换芯片中,以通过所述交换芯片从所述组播转发表中查找到对应的组播出口,再将所述未知组播报文转发至对应的所述组播出口中。
上述组播报文的处理方法至少包括以下有益效果:
1、对已知组播查一次表即可进行转发,即对已知组播无需进行两次查表才能进行转发,转发延迟低,转发效率高;
2、两次查表能够复用交换芯片中现有的芯片表项,减少资源占用;
3、通过组播RPF检查,对于未知组播报文通过两次查表将组播RPF检查不通过的直接丢弃,能够有效避免错误端口的组播流冲击CPU,占用CPU资源以及占用组播表资源;
4、芯片针对接收到的组播报文无需额外进行ACL设置,通过查两次表即可实现对组播报文的检查和输出,减少对ACL资源的占用。
实施例二
请参阅图6,示出了本发明实施例之组播报文的处理方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。所述组播报文的处理方法应用于交换芯片中,所述交换芯片包括反向路径转发使能项,下面将以交换芯片为执行主体示例性描述所述组播报文的处理方法,具体如下:
如图6所示,所述组播报文的处理方法可以包括步骤S600~S606,其中:
步骤S600,接收组播报文;
步骤S602,基于所述组播报文,查找所述交换芯片中预设的组播路由表,得到组播查找结果,并基于所述组播查找结果确定所述组播报文是否为未知组播报文;
步骤S604,若确定所述组播报文为未知组播报文,则通过所述交换芯片中的反向路径转发使能项基于所述未知组播报文,查找与所述未知组播报文对应的单播路由表,得到单播查找结果;及
步骤S606,根据所述单播查找结果,判断对所述未知组播报文是否检查通过,并执行以下操作:若确定所述未知组播报文检查不通过,则丢弃所述未知组播报文,或者,若确定所述未知组播报文检查通过,则将所述未知组播报文发送至中央处理器,以使所述中央处理器转发所述未知组播报文至对应的组播出口中。
实施例三
请继续参阅图7,示意性示出了本发明组播报文的处理系统的框图。在本实施例中,组播报文的处理系统可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述组播报文的处理方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述组播报文的处理系统在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能。该组播报文的处理系统用于交换芯片中,所述交换芯片包括反向路径转发使能项。
如图7所示,该组播报文的处理系统可以包括接收模块700、判断模块702、查找模块704以及执行模块706,其中:
接收模块700,用于接收组播报文;
判断模块702,用于基于所述组播报文,查找所述交换芯片中预设的组播路由表,得到组播查找结果,并基于所述组播查找结果确定所述组播报文是否为未知组播报文;
查找模块704,用于若确定所述组播报文为未知组播报文,则通过所述交换芯片中的反向路径转发使能项基于所述未知组播报文,查找与所述未知组播报文对应的单播路由表,得到单播查找结果;及
执行模块706,用于根据所述单播查找结果,判断对所述未知组播报文是否检查通过,并执行以下操作:若确定所述未知组播报文检查不通过,则丢弃所述未知组播报文,或者,若确定所述未知组播报文检查通过,则将所述未知组播报文发送至中央处理器,以使所述中央处理器转发所述未知组播报文至对应的组播出口中。
实施例四
参阅图8,是本发明实施例四之适于实现组播报文的处理方法的计算机设备10000的硬件架构示意图。本实施例中,所述计算机设备10000是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备10000可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)、网关等。如图8所示,所述计算机设备10000至少包括,但不限于,可通过系统总线相互通信连接存储器10010、处理器10020、网络接口10030组播报文的处理。其中:
本实施例中,存储器10010至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储单元,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储单元也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如上述实施例的组播报文的处理系统的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器10020在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据,例如运行组播报文的处理系统,以实现上述实施例的组播报文的处理方法。
所述网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在所述计算机设备10000与其他电子装置之间建立通信连接。例如,所述网络接口10030用于通过网络将所述计算机设备10000与外部终端相连,在所述计算机设备10000与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System ofMobilecommunication,简称为GSM)、宽带码分多址(Wideband Code Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图8仅示出了具有部件10010-10030的计算机设备10000,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器10010中的所述组播报文的处理系统还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器10010中,并由一个或多个处理器(本实施例为处理器10020)所执行,以完成本发明。
例如,图7示出了所述实现组播报文的处理系统实施例三的程序模块示意图,该实施例中,所述基于组播报文的处理系统可以被划分为接收模块700、判断模块702、查找模块704以及执行模块706。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述组播报文的处理系统在所述计算机设备10000中的执行过程。所述程序模块700-706的具体功能在实施例三中已有详细描述,在此不再赘述。
实施例五
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被至少一个处理器执行时实现实施例中的组播报文的处理方法的步骤。
在本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中卡顿检测方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种组播报文的处理方法,其特征在于,应用于数据处理系统中,所述数据处理系统包括中央处理器、交换芯片以及组播出口,所述交换芯片包括反向路径转发使能项,所述方法包括:
通过所述交换芯片接收组播报文;
通过所述交换芯片基于所述组播报文,查找所述交换芯片中预设的组播路由表,得到组播查找结果,并基于所述组播查找结果确定所述组播报文是否为未知组播报文;
若确定所述组播报文为未知组播报文,则通过所述交换芯片中的反向路径转发使能项基于所述未知组播报文,查找与所述未知组播报文对应的单播路由表,得到单播查找结果;
根据所述单播查找结果,通过所述交换芯片判断对所述未知组播报文是否检查通过,并执行以下操作:若确定所述未知组播报文检查不通过,则丢弃所述未知组播报文,或者,若确定所述未知组播报文检查通过,则将所述未知组播报文发送至中央处理器,以使所述中央处理器转发所述未知组播报文;及
通过所述中央处理器接收所述交换芯片转发的检查通过的所述未知组播报文,并转发所述未知组播报文至对应的组播出口中。
2.根据权利要求1所述的组播报文的处理方法,其特征在于,所述通过所述交换芯片基于所述组播报文,查找所述交换芯片中预设的组播路由表,得到组播查找结果,并基于所述组播查找结果确定所述组播报文是否为未知组播报文的步骤,还包括:
通过所述交换芯片从所述组播报文中获取组播源地址数据以及组播组地址数据;
通过所述交换芯片基于所述组播源地址数据和所述组播组地址数据从所述组播路由表中查找所述组播报文的组播源地址数据以及对应的所述组播组地址数据;
若从所述交换芯片中预设的所述组播路由表中查找不到所述组播源地址数据和对应的所述组播组地址数据,则通过所述交换芯片确定所述组播报文为未知组播报文;
若从所述交换芯片中预设的所述组播路由表中查找到所述组播源地址数据和对应的组播组地址数据,则通过所述交换芯片查找所述组播路由表中的端口清单中是否存在所述组播源地址数据对应的端口数据;
若所述组播路由表中的端口清单中存在所述组播源地址数据对应的端口数据,则通过所述交换芯片确定所述组播报文为已知组播报文。
3.根据权利要求2所述的组播报文的处理方法,其特征在于,在所述通过所述交换芯片确定所述组播报文为已知组播报文的步骤后,所述方法包括:
通过所述交换芯片基于所述已知组播报文以及所述预设的组播路由表,转发所述已知组播报文。
4.根据权利要求3所述的组播报文的处理方法,其特征在于,所述若确定所述组播报文为未知组播报文,则通过所述交换芯片中的反向路径转发使能项基于所述未知组播报文,查找与所述未知组播报文对应的单播路由表,得到单播查找结果的步骤,包括:
通过所述交换芯片中的反向路径转发使能项获取所述未知组播报文的组播源IP地址;及
将所述组播源IP地址确定为目标IP地址,并基于所述目标IP地址查找对应的单播路由表,得到所述单播查找结果。
5.根据权利要求4所述的组播报文的处理方法,其特征在于,所述根据所述单播查找结果,通过所述交换芯片判断对所述未知组播报文是否检查通过,并执行以下操作:若确定所述未知组播报文检查不通过,则丢弃所述未知组播报文,或者,若确定所述未知组播报文检查通过,则将所述未知组播报文发送至中央处理器,以使所述中央处理器转发所述未知组播报文的步骤,包括:
若从所述单播路由表中查找不到与所述未知组播报文对应的出口地址,则通过所述交换芯片确定对所述未知组播报文的检查不通过,并丢弃所述未知组播报文;
若从所述单播路由表中查找到所述未知组播报文对应的出口地址,且所述出口地址与所述目标IP地址的出口地址一致,则通过所述交换芯片确定对所述未知组播报文的检查通过,并将所述未知组播报文发送至所述中央处理器中,以使所述中央处理器转发所述未知组播报文至对应的组播出口中。
6.根据权利要求5所述的组播报文的处理方法,其特征在于,所述通过所述中央处理器接收所述交换芯片转发的检查通过的所述未知组播报文,并转发所述未知组播报文至对应的组播出口中的步骤,包括:
通过所述中央处理器接收所述交换芯片转发的检查通过的所述未知组播报文;
通过所述中央处理器基于预设的组播协议处理所述未知组播报文,获取与所述未知组播报文对应的组播转发表,所述组播转发表包括与所述未知组播报文对应的目标关键词以及与所述未知组播报文的组播源地址数据对应的至少一个组播出口,其中,所述目标关键词包括:所述组播源地址数据、组播组地址数据以及组播源地址数据对应的端口数据;所述组播组地址数据对应所述至少一个组播出口;及
通过所述中央处理器基于所述组播转发表,将所述未知组播报文转发至对应的至少一组播出口中。
7.一种组播报文的处理方法,其特征在于,应用于交换芯片中,所述交换芯片包括反向路径转发使能项,所述方法包括:
接收组播报文;
基于所述组播报文,查找所述交换芯片中预设的组播路由表,得到组播查找结果,并基于所述组播查找结果确定所述组播报文是否为未知组播报文;
若确定所述组播报文为未知组播报文,则通过所述交换芯片中的反向路径转发使能项基于所述未知组播报文,查找与所述未知组播报文对应的单播路由表,得到单播查找结果;及
根据所述单播查找结果,判断对所述未知组播报文是否检查通过,并执行以下操作:若确定所述未知组播报文检查不通过,则丢弃所述未知组播报文,或者,若确定所述未知组播报文检查通过,则将所述未知组播报文发送至中央处理器,以使所述中央处理器转发所述未知组播报文至对应的组播出口中。
8.一种组播报文的处理系统,其特征在于,应用于交换芯片中,所述交换芯片包括反向路径转发使能项,所述系统包括:
接收模块,用于接收组播报文;
判断模块,用于基于所述组播报文,查找所述交换芯片中预设的组播路由表,得到组播查找结果,并基于所述组播查找结果确定所述组播报文是否为未知组播报文;
查找模块,用于若确定所述组播报文为未知组播报文,则通过所述交换芯片中的反向路径转发使能项基于所述未知组播报文,查找与所述未知组播报文对应的单播路由表,得到单播查找结果;及
执行模块,用于根据所述单播查找结果,判断对所述未知组播报文是否检查通过,并执行以下操作:若确定所述未知组播报文检查不通过,则丢弃所述未知组播报文,或者,若确定所述未知组播报文检查通过,则将所述未知组播报文发送至中央处理器,以使所述中央处理器转发所述未知组播报文至对应的组播出口中。
9.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的组播报文的处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1至6中任一项所述的组播报文的处理方法的步骤。
CN202210987655.7A 2022-08-17 2022-08-17 组播报文的处理方法、系统、计算机设备和可读存储介质 Pending CN115567436A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210987655.7A CN115567436A (zh) 2022-08-17 2022-08-17 组播报文的处理方法、系统、计算机设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210987655.7A CN115567436A (zh) 2022-08-17 2022-08-17 组播报文的处理方法、系统、计算机设备和可读存储介质

Publications (1)

Publication Number Publication Date
CN115567436A true CN115567436A (zh) 2023-01-03

Family

ID=84738281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210987655.7A Pending CN115567436A (zh) 2022-08-17 2022-08-17 组播报文的处理方法、系统、计算机设备和可读存储介质

Country Status (1)

Country Link
CN (1) CN115567436A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116192741A (zh) * 2023-04-27 2023-05-30 顺霆科技(无锡)有限公司 基于自组网的数据传输方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014036430A (ja) * 2012-08-10 2014-02-24 Nippon Telegr & Teleph Corp <Ntt> マルチキャストパケット転送システムおよび方法
CN110149276A (zh) * 2019-05-30 2019-08-20 新华三技术有限公司 组播转发方法和装置
CN111107008A (zh) * 2018-10-25 2020-05-05 深圳市中兴微电子技术有限公司 一种反向路径检查方法和装置
CN114244768A (zh) * 2021-12-23 2022-03-25 北京东土军悦科技有限公司 二层未知组播的转发方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014036430A (ja) * 2012-08-10 2014-02-24 Nippon Telegr & Teleph Corp <Ntt> マルチキャストパケット転送システムおよび方法
CN111107008A (zh) * 2018-10-25 2020-05-05 深圳市中兴微电子技术有限公司 一种反向路径检查方法和装置
CN110149276A (zh) * 2019-05-30 2019-08-20 新华三技术有限公司 组播转发方法和装置
CN114244768A (zh) * 2021-12-23 2022-03-25 北京东土军悦科技有限公司 二层未知组播的转发方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116192741A (zh) * 2023-04-27 2023-05-30 顺霆科技(无锡)有限公司 基于自组网的数据传输方法

Similar Documents

Publication Publication Date Title
KR102579059B1 (ko) 패킷 처리 방법 및 장치, 기기, 그리고 시스템
CN107078963B (zh) 虚拟可扩展局域网中的路由追踪
CN108768866B (zh) 组播报文跨卡转发方法、装置、网络设备及可读存储介质
EP1158729A2 (en) Stackable lookup engines
CN108259347B (zh) 一种报文传输方法和装置
US20180367431A1 (en) Heavy network flow detection method and software-defined networking switch
CN108449228B (zh) 报文处理方法及网络设备
US8938579B2 (en) Method and system for using range bitmaps in TCAM access
US20220345400A1 (en) Packet sending method and apparatus, and storage medium
CN115567436A (zh) 组播报文的处理方法、系统、计算机设备和可读存储介质
WO2022121707A1 (zh) 报文传输方法、设备及系统
US20110078181A1 (en) Communication device
CN112565045A (zh) Evpn中报文转发方法、装置、设备及存储介质
CN112311672B (zh) 一种路由表项获得方法、装置及设备
CN110995609A (zh) 报文发送方法、装置、电子设备及存储介质
CN108777654B (zh) 报文转发方法及路由设备
CN112367261B (zh) 一种报文转发方法及装置、分布式设备
TWI281804B (en) Packet forwarding method and system
CN116962161A (zh) 路径检测方法、装置、系统及计算机可读存储介质
CN115701145A (zh) 流量管理方法、装置、设备及计算机可读存储介质
CN107483334B (zh) 一种报文转发的方法及装置
CN113992561A (zh) 一种报文处理方法及装置
CN111083059B (zh) 一种分布式设备中的流量转发方法
CN113542131B (zh) 一种报文转发方法及装置
CN107483331B (zh) 用于消除业务成环的处理方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination