CN107888518A - 用于转发报文的方法及装置 - Google Patents
用于转发报文的方法及装置 Download PDFInfo
- Publication number
- CN107888518A CN107888518A CN201710986040.1A CN201710986040A CN107888518A CN 107888518 A CN107888518 A CN 107888518A CN 201710986040 A CN201710986040 A CN 201710986040A CN 107888518 A CN107888518 A CN 107888518A
- Authority
- CN
- China
- Prior art keywords
- message
- output port
- port
- mirror
- description information
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/208—Port mirroring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/65—Re-configuration of fast packet switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种用于转发报文的方法及装置,属于通信领域。所述方法包括:从当前报文中获取对应于该当前报文的报文描述信息,所述报文描述信息至少包括输出端口标识,该输出端口标识中的每一元素标识是否将报文转发至该元素所对应的输出端口;根据输出端口标识判断所述当前报文是否是单播报文;在所述当前报文是单播报文的情况下,根据所述输出端口标识确定出对应于所述当前报文的目的输出端口;以及将所述报文描述信息转发至所述目的输出端口。在报文描述信息中包含输出端口标识,在当前报文是单播报文的情况下,对该单播报文进行快速、低延迟转发,从而减小报文转发所需时间。
Description
技术领域
本发明涉及通信领域,具体地,涉及一种用于转发报文的方法及装置。
背景技术
计算机网络的交换机中通常需要支持单播转发和组播转发,单播转发是将报文发送到一个目的输出端口,组播转发是将报文转发到多个目的输出端口。不管是单播转发还是组播转发,只需要将报文描述信息复制多份,而不需要在交换机的存储器中将报文的数据体保存多份,这样可以极大地减少对存储器容量的需求。
镜像也是交换机必须支持的功能之一,其作用是在某个端口收集或监控其它端口的报文。镜像分为输入端口镜像和输出端口镜像,简称入口镜像和出口镜像。入口镜像是将从一个输入端口输入的报文复制一份到另一个端口,出口镜像是将从一个输出端口输出的报文复制一份到另一个端口。报文被复制到的端口称为镜像端口。镜像的实现也不需要在交换机的存储器中保存多份报文,只需要保存一份即可,但是需要将报文描述信息复制到镜像端口。可以看出,镜像功能的实现与组播复制非常类似,本质上都是将一个报文转发到多个端口。
现有技术中,报文在交换机中的处理流程如图1所示,从交换机输入端口输入的报文被入口流水线处理,通过查表获得报文将要被转发到的输出端口信息,然后保存到存储器中。向组播复制与镜像模块发送报文描述信息,进行组播复制和镜像复制,得到报文的输出端口信息;将报文输出端口信息和镜像复制信息加入到报文描述信息中,形成修改后的报文描述信息,发送到输出端口调度器。调度器根据修改后的报文描述信息中的输出端口号将报文描述信息调度到相应的输出端口,将调度出的修改后的报文描述信息发送到存储器。存储器从调度出的报文描述信息中得到报文在存储器中的位置,以及需要复制的次数,从相应的位置读出报文,发送到出口流水线,将报文复制次数减一;当报文复制次数减为0时,将报文从存储器中删除。出口流水线对报文头部进行必要的修改之后,发送到输出端口。
从交换机中的报文处理流程可以看出,报文转发速度的将交换机的交换性能,例如影响吞吐率、延迟等,需要尽可能快速地实现报文转发。
发明内容
本发明实施例的目的是提供一种用于转发报文的方法及装置,用于解决或至少部分解决上述技术问题。
为了实现上述目的,本发明实施例提供一种用于转发报文的方法,所述方法包括:从当前报文中获取对应于该当前报文的报文描述信息,所述报文描述信息至少包括输出端口标识,该输出端口标识中的每一元素标识是否将报文转发至该元素所对应的输出端口;根据输出端口标识判断所述当前报文是否是单播报文;在所述当前报文是单播报文的情况下,根据所述输出端口标识确定出对应于所述当前报文的目的输出端口;以及将所述报文描述信息转发至所述目的输出端口。
可选地,在所述当前报文不是单播报文的情况下,所述方法还包括:根据所述输出端口标识确定出对应于所述当前报文的多个目的输出端口;以及将所述报文描述信息分别转发至所述多个目的输出端口的每一个目的输出端口。
可选地,所述根据所述输出端口标识确定出对应于所述当前报文的多个目的输出端口包括:将所述输出端口标识中的所有元素分成多个元素组;判断每一元素组中是否有特征元素,该特征元素标识需要将报文转发至该特征元素所对应的输出端口;以及确定具有特征元素的每一元素组中的特征元素所对应的目的输出端口。
可选地,每一输入端口均被维护有入口镜像配置,该入口镜像配置包括对是否进行入口镜像的标识以及对入口镜像端口的标识,所述方法还包括:根据所述入口镜像配置中的是否进行入口镜像的标识判断是否需要进行入口镜像;在需要进行入口镜像的情况下,对所述报文描述信息进行复制;以及根据所述入口镜像配置中所述对入口镜像端口的标识将所复制的报文描述信息转发至相应的入口镜像端口。
可选地,每一输出端口均被维护有出口镜像配置,该出口镜像配置包括对是否进行出口镜像的标识以及对出口镜像端口的标识,所述方法还包括:根据对应于所述目的输出端口的出口镜像配置判断是否需要进行出口镜像;以及在需要进行出口镜像的情况下,对所述报文描述信息进行复制;以及根据对应于所述目的输出端口的出口镜像配置中的对出口镜像端口的标识将所复制的报文描述信息转发至相应的出口镜像端口。
可选地,当对所述报文描述信息进行转发时,所述方法还包括:从所述报文描述信息中删除所述输出端口标识,并将所述报文描述信息将要转发至的相应端口号添加至所述报文描述信息中;以及对修改后的报文描述信息进行转发。
相应地,本发明实施例还提供一种用于转发报文的装置,所述装置包括:获取模块,用于从当前报文中获取对应于该当前报文的报文描述信息,所述报文描述信息至少包括输出端口标识,该输出端口标识中的每一元素标识是否将报文转发至该元素所对应的输出端口;第一判断模块,用于根据输出端口标识判断所述当前报文是否是单播报文;目的输出端口确定模块,用于在所述当前报文是单播报文的情况下,根据所述输出端口标识确定出对应于所述当前报文的目的输出端口;以及转发模块,用于将所述报文描述信息转发至所述目的输出端口。
可选地,在所述当前报文不是单播报文的情况下,所述目的输出端口确定模块还用于根据所述输出端口标识确定出对应于所述当前报文的多个目的输出端口;以及所述转发模块还用于将所述报文描述信息分别转发至所述多个目的输出端口的每一个目的输出端口。
可选地,所述目的输出端口确定模块包括:分组单元,用于将所述输出端口标识中的所有元素分成多个元素组;判断单元,用于判断每一元素组中是否有特征元素,该特征元素标识将报文转发至该特征元素所对应的输出端口;以及目的端口确定单元,用于确定具有特征元素的每一元素组中的特征元素所对应的目的输出端口。
可选地,每一输入端口均被维护有入口镜像配置,该入口镜像配置包括对是否进行入口镜像的标识以及对入口镜像端口的标识,所述装置还包括:第二判断模块,用于根据所述入口镜像配置中的是否进行入口镜像的标识判断是否需要进行入口镜像;以及第一复制模块,用于在需要进行入口镜像的情况下,对所述报文描述信息进行复制;所述转发模块,还用于根据所述入口镜像配置中所述对入口镜像端口的标识将所复制的报文描述信息转发至相应的入口镜像端口。
可选地,每一输出端口均被维护有出口镜像配置,该出口镜像配置包括对是否进行出口镜像的标识以及对出口镜像端口的标识,所述装置还包括:第三判断模块,用于根据对应于所述目的输出端口的出口镜像配置判断是否需要进行出口镜像;以及第二复制模块,用于在需要进行出口镜像的情况下,对所述报文描述信息进行复制;所述转发模块还用于根据对应于所述目的输出端口的出口镜像配置中的对出口镜像端口的标识将所复制的报文描述信息转发至相应的出口镜像端口。
可选地,当对所述报文描述信息进行转发时,所述装置还包括:修改模块,用于从所述报文描述信息中删除所述输出端口标识,并将所述报文描述信息将要转发至的相应端口号添加至所述报文描述信息中;以及所述转发模块用于对修改后的报文描述信息进行转发。
相应地,本发明实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述的用于转发报文的方法。
通过上述技术方案,在报文描述信息中包含输出端口标识,当对当前报文进行转发时,首先根据输出端口标识判断当前报文是否是单播报文,在当前报文是单播报文的情况下,对该单播报文进行快速、低延迟转发,从而减小报文转发所需时间。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1示出了现有技术中报文在交换机中的处理流程示意图;
图2示出了根据本发明一实施例的用于转发报文的方法的流程示意图;
图3示出了根据本发明另一实施例的用于转发报文的方法的流程示意图;
图4示出了根据本发明又一实施例的用于转发报文的方法的流程示意图;以及
图5示出了根据本发明一实施例的用于转发报文的装置的结构示意图。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
图2示出了根据本发明一实施例的用于转发报文的方法的流程示意图。如图2所示,本发明实施例提供一种用于转发报文的方法,用于实现报文在交换机中的快速转发,所述方法可以包括以下步骤:
步骤S21,从当前报文中获取对应于该当前报文的报文描述信息,所述报文描述信息至少包括输出端口标识,该输出端口标识中的每一元素标识是否将报文转发至该元素所对应的输出端口。
输出端口标识中可以是包括有多个元素的数组,元素的个数可以与交换机的端口数相同,每个元素可以对应于一个端口。例如,本发明实施例中可以使用数组OUTPUT_BITMAP[N-1:0]来表示输出端口标识,N为正整数,大小可以为交换机的输出端口数,表示该数组的宽度为N位,每一位对应于交换机的一个端口,例如,可以使用[0]位代表端口0,[1]位代表端口1,以此类推。可选地,可以使用值0和1来表示是否将报文转发至所对应的输出端口,例如,某一位为1表示需要将报文输出到该元素对应的端口,某一位为0则表示不需要将报文输出到该元素对应的端口。
步骤S22,根据输出端口标识判断所述当前报文是否是单播报文。
例如,可以输出端口标识OUTPUT_BITMAP[N-1:0]中的每一元素进行相加,如果相加结果为1,则表示当前报文是单播报文,需要输出到一个端口。否则,表示当前报文是组播报文,需要输出到多个端口。
步骤S23,在所述当前报文是单播报文的情况下,根据所述输出端口标识确定出对应于所述当前报文的目的输出端口。
在判断出当前报文是单播报文的情况下,可以根据输出端口标识OUTPUT_BITMAP[N-1:0]来确定出对应于当前报文的目的输出端口,例如,可以遍历输出端口标识OUTPUT_BITMAP[N-1:0]来确定出值为1的元素在第几位,从而确定出对应的目的输出端口。可选地,可以对输出端口标识OUTPUT_BITMAP[N-1:0]对应的端口进行编码,以得到目的输出端口的端口号。
步骤S24,将所述报文描述信息转发至所述目的输出端口。
在确定出目的输出端口后,可以将报文描述信息转发至所确定的目的输出端口。
本发明实施例提供的用于转发报文的方法,在报文描述信息中包含输出端口标识,当对当前报文进行转发时,首先根据输出端口标识判断当前报文是否是单播报文,在当前报文是单播报文的情况下,对该单播报文进行快速、低延迟转发,从而减小报文转发所需时间。
图3示出了根据本发明另一实施例的用于转发报文的方法的流程示意图。如图3所示,基于上述实施例,在确定出当前报文不是单播报文而是组播报文的情况下,本发明实施例提供的用于转发报文的方法可以进一步包括以下步骤:
步骤S31,根据所述输出端口标识确定出对应于所述当前报文的多个目的输出端口。
可选地,可以遍历输出端口标识OUTPUT_BITMAP[N-1:0]来确定出值为1的元素在第几位,从而确定出对应的目的输出端口。但是,遍历OUTPUT_BITMAP[N-1:0]中的每一元素可能会增加处理延迟。
可选地,步骤S31可以通过以下过程来确定所述多个目的输出端口:
首先,将所述输出端口标识中的所有元素分成多个元素组。例如可以将每p个元素分为一组,p为正整数,每一组中的元素个数可以相同,且元素个数应该能被交换机的端口数N整除。
然后,判断每一元素组中是否有特征元素,该特征元素标识需要将报文转发至该特征元素所对应的输出端口。对于所分成的多个元素组一次检查每组是否有需要输出报文的端口,例如,可以对每组中的元素进行或运算,如果结果为1则说明该组中具有特征元素,否则说明该组中不具有特征元素。
最后,确定具有特征元素的每一元素组中的特征元素所对应的目的输出端口。例如,针对具有特征元素的每一元素组遍历元素组中的每一元素,在元素的值为1的情况下,确定其对应的输出端口,以此类推,从而确定出所有的目的输出端口。对输出端口标识中的所有元素进行分组,并仅对具有特征元素的元素组进行遍历,可以避免对输出端口标识中的每一元素进行逐位判断,从而减小了处理延迟。
步骤S32,将所述报文描述信息分别转发至所述多个目的输出端口的每一个目的输出端口。
可选地,可以在所有目的输出端口均确定的情况下,将报文描述信息分别转发至所有目的输出端口中的每一个目的输出端口。或者可选地,目的输出端口的确定和报文描述信息的转发可以同时进行,即,每确定出一个目的输出端口,可以将报文描述信息转发至该目的输出端口。
上述实施例通过对输出端口标识中的所有元素进行分组,便于快速定位目的输出端口的位置,避免对输出端口标识中的每一元素进行逐位判断,从而减小了处理延迟,使得报文能够被快速转发。
鉴于交换机一般需要实现镜像功能,因此,基于上述实施例,本发明实施例提供的用于转发报文的方法还可以包括对入口镜像和出口镜像的判断。
具体地,可以为交换机的每一输入端口维护一个入口镜像配置,该入口镜像配置包括对是否进行入口镜像的标识以及对入口镜像端口的标识。在本发明实施例中,可以使用IMIR_EN来表示对是否进行入口镜像的标识,可以使用IMIR_DEST_PORT来表示对入口镜像端口的标识,其中IMIR_EN的值为1可以表示需要进行入口镜像,否则表示不需要进行入口镜像,入口镜像端口是指需要经报文复制到的输入端口。
对于当前报文的输入端口,检测入口镜像配置中的IMIR_EN位的值,如果值为1则确定需要进行入口镜像。在需要进行入口镜像的情况下,可以首先对报文描述信息进行复制,然后根据IMIR_DEST_PORT位来确定入口镜像端口,并将所复制的报文描述信息转发至该相应地入口镜像端口。
进一步地,可以为交换机的每一输出端口维护一个出口镜像配置,该出口镜像配置可以包括对是否进行出口镜像的标识以及对出口镜像端口的标识。例如,本发明实施例中出口镜像配置可以使用PORTx_EMIR表示,其中x为端口号,取值范围为0到N-1,N为正整数。配置内容由EMIR_EN和EMIR_DEST_PORT两部分组成,即{EMIR_DEST_PORT,EMIR_EN},其中EMIR_EN表示对是否进行出口镜像的标识,EMIR_DEST_PORT表示对出口镜像端口的标识,其中EMIR_EN值为1则表示需要进行出口镜像标识,否则表示不需要进行出口镜像标识。
在确定出目的输出端口后,根据目的输出端口的出口镜像配置中的EMIR_EN位的值来判断是否进行出口镜像标识,在判断出需要进行出口镜像标识的情况下,可以首先对报文描述信息进行复制,然后根据EMIR_DEST_PORT来确定出口镜像端口,并将所复制的报文描述信息转发至该相应地出口镜像端口。对于组播报文,可以在所有目的输出端口均确定后,逐一根据每一目的输出端口的出口镜像配置判断是否进行出口镜像配置,或者可以每确定出一个目的输出端口就根据该目的输出端口的出口镜像配置判断是否进行出口镜像配置。
进一步可选地,本发明实施例中在对报文描述信息进行转发时,可以从所述报文描述信息中删除所述输出端口标识OUTPUT_BITMAP[N-1:0],并将所述报文描述信息将要转发至的相应端口号添加至所述报文描述信息中,然后对修改后的报文描述信息进行转发。例如,如果需要将报文转发至目的输出端口m,m表示输出端口的端口号,m为整数,且范围是从0至N-1,可以在存储器中将报文描述信息复制一份,并将复制的报文描述信息中的输出端口标识OUTPUT_BITMAP[N-1:0]删除,然后将端口号m加入至报文描述消息中,并将该修改后的报文描述信息转发至端口m。在对入口镜像端口或出口镜像端口转发报文描述信息时,对报文描述信息的修改与上述类似,将不再赘述。
下面将通过一具体实施例对本发明实施例提供的用于转发报文的方法进行非限制性的具体描述。
图4示出了根据本发明又一实施例的用于转发报文的方法的流程示意图。如图4所示,从交换机输入端口输入的报文被保存到交换机的存储器中,存储器向组播复制与镜像模块发送报文描述信息,本发明实施例提供的用于转发报文的方法是根据组播复制与镜像模块所执行的功能而展开的。
在获得报文描述信息后,首先对报文描述信息中的输出端口标识OUTPUT_BITMAP[N-1:0]进行逐位相加,其中N为正整数且N的大小与交换机的输出端口数相等,输出端口标识OUTPUT_BITMAP[N-1:0]中元素的值为0表示不需要将报文转发至该元素所对应的输出端口,元素的值为1表示需要将报文转发至该元素所对应的输出端口。如果相加结果为1,则表示当前报文是单播报文,只需要输出到一个输出端口。对于单播报文,可以对输出端口标识OUTPUT_BITMAP[N-1:0]中值为1的元素进行编码以确定其对应的输出端口,进而得到输出端口号m,m表示输出端口的端口号,m为整数,且范围是从0至N-1。对于输出端口m,将报文描述信息复制一份,并将所复制的报文描述信息中的输出端口标识OUTPUT_BITMAP[N-1:0]删除,将端口号m添加至报文描述信息中,然后将该修改后的报文描述信息发送至输出端口m。
然后通过检查报文的输入端口的入口镜像配置中的EMIR_EN位的值来确定是否进行入口镜像,如果值为1,表示进行入口镜像,否则表示不进行入口镜像。如果判断出需要进行入口镜像配置,则将报文描述信息复制一份,并将所复制的报文描述信息中的输出端口标识OUTPUT_BITMAP[N-1:0]删除,将入口镜像配置中的入口镜像端口标识IMIR_DEST_PORT添加至报文描述信息中,然后将该修改后的报文描述信息发送至入口镜像端口标识IMIR_DEST_PORT指定的端口。可选地,入口镜像配置也可以包括在报文描述信息中,在这种情况下,执行入口镜像时,只需将所复制的报文描述信息中的输出端口标识OUTPUT_BITMAP[N-1:0]删除,然后将该修改后的报文描述信息发送至入口镜像端口标识IMIR_DEST_PORT指定的端口。
最后检查端口m的出口镜像配置PORTm_EMIR,PORTm_EMIR表示为端口号为m的端口所维护的出口镜像配置,如果出口镜像配置PORTm_EMIR中EMIR_EN的值为1表示需要进行出口镜像,否则表示不需要进行出口镜像。在需要进行出口镜像配置的情况下,则将报文描述信息复制一份,并将所复制的报文描述信息中的输出端口标识OUTPUT_BITMAP[N-1:0]删除,将出口镜像配置中的出口镜像端口标识EMIR_DEST_PORT添加至报文描述信息中,然后将该修改后的报文描述信息发送至出口镜像端口标识EMIR_DEST_PORT指定的端口。
对不需要进行入口镜像和出口镜像的单播报文,只需删除原报文描述信息中输出端口标识OUTPUT_BITMAP[N-1:0]删除,将端口号m添加至报文描述信息中,然后将该修改后的报文描述信息发送至输出端口m,则报文转发就完成。通过识别无镜像的报文,可以使得这类报文在组播复制阶段可以快速、低延迟转发,提高报文转发效率。
如果输出端口标识OUTPUT_BITMAP[N-1:0]逐位相加的结果不为1,则说明当前报文是组播报文。
这种情况下,首先将输出端口标识OUTPUT_BITMAP[N-1:0]中的所有元素分成多个组,假设p个元素为一组,N个元素共分为s组,则OUTPUT_BITMAP[p-1:0]为第0组,OUTPUT_BITMAP[2p-1:p]为第1组,以此类推,其中p和s均为正整数。依次检查每组是否有特征元素,该特征元素标识需要将报文转发至该特征元素所对应的输出端口,可以理解,特征元素为输出端口标识OUTPUT_BITMAP[N-1:0]中值为1的元素。需要说明的是,交换机的端口数一般为偶数,例如16、24、32、48、64等,选择组大小p时,应使得端口数N能够被组大小p整除。
检查第i组元素,是否有特征元素。i为整数,且i<s,初始时,i=0。例如,可以对OUTPUT_BITMAP[(i+1)p-1:ip]做或操作,如果结果为1,则说明该组元素中具有特征元素,需要继续检查组内各元素;否则,说明该组元素中不具有特征元素,不需要继续检查组内各元素,则继续检查第i+1组端口,以此类推。如果i=s-1,完成组播转发和出口镜像复制;否则,检查i+1组的是否有特征元素。
对于具有特征元素的元素组,检查组内每个元素,是否需要将报文组播至该元素所对应的端口。每组有p个端口,首先检查元素组中第j个元素的值是否为1,j为整数,且j<p,初始时j=0。如果为1,确定第j个元素所对应的输出端口号m,删除报文描述信息中的输出端口标识OUTPUT_BITMAP[N-1:0],加入输出端口号m,生成修改后的报文描述信息,并将其发送到m端口。然后,检查端口m的出口镜像配置PORTm_EMIR,如果EMIR_EN为0,表示不做出口镜像;否则,需要做出口镜像,删除原报文描述信息中的输出端口标识OUTPUT_BITMAP[N-1:0],加入输出端口号EMIR_DEST_PORT,生成修改后的报文描述信息,将其发送到EMIR_DEST_PORT指定的端口。如果j=p-1,表示对组内所有元素检查完毕,否则,对第j+1个元素执行上述过程。
可选地,在当前报文为组播报文的情况下,在确定要组播至的输出端口时,也可以对输出端口进行分组,然后判断对应于输出端口的输出端口标识OUTPUT_BITMAP[N-1:0]中元素的值,来判断是否组播至该输出端口,其执行过程与上述对输出端口标识OUTPUT_BITMAP[N-1:0]中元素分组的执行过程类似,这里将不再赘述。
此外,对于每一报文需要判断进行入口镜像。具体地,检查入口镜像配置中的IMIR_EN位,如果为0,表示不执行入口镜像;否则,需要执行入口镜像,删除报文描述信息中的输出端口标识OUTPUT_BITMAP[N-1:0],加入端口号IMIR_DEST_PORT,生成修改后的报文描述信息,将其发送到IMIR_DEST_PORT指定的端口。
将输出端口标识中的元素进行分组或者对交换机输出端口进行分组,便于快速定位组播至的目的输出端口的位置,避免对输出端口标识逐位判断,减小了处理延迟。对于两个或更多个目的输出端口在一个组内的情况,本发明提出的方法可以显著减小组播复制需要的时间,从而加快组播复制。此外,本发明所提出的方法将入口镜像、出口镜像与组播复制一起实现,处理更加简洁。
图5示出了根据本发明一实施例的用于转发报文的装置的结构示意图。如图5所示,本发明实施例还提供一种用于转发报文的装置,该装置包括:获取模块51,用于从当前报文中获取对应于该当前报文的报文描述信息,所述报文描述信息至少包括输出端口标识,该输出端口标识中的每一元素标识是否将报文转发至该元素所对应的输出端口;第一判断模块52,用于根据输出端口标识判断所述当前报文是否是单播报文;目的输出端口确定模块53,用于在所述当前报文是单播报文的情况下,根据所述输出端口标识确定出对应于所述当前报文的目的输出端口;以及转发模块54,用于将所述报文描述信息转发至所述目的输出端口。在报文描述信息中包含输出端口标识,当对当前报文进行转发时,首先根据输出端口标识判断当前报文是否是单播报文,在当前报文是单播报文的情况下,对该单播报文进行快速、低延迟转发,从而减小报文转发所需时间。
进一步地,在当前报文不是单播报文的情况下,目的输出端口确定模块53还用于根据所述输出端口标识确定出对应于所述当前报文的多个目的输出端口,具体地,目的输出端口模块53可以包括:分组单元,用于将所述输出端口标识中的所有元素分成多个元素组;判断单元,用于判断每一元素组中是否有特征元素,该特征元素标识将报文转发至该特征元素所对应的输出端口;以及目的端口确定单元,用于确定具有特征元素的每一元素组中的特征元素所对应的目的输出端口。所述转发模块54还可以用于将所述报文描述信息分别转发至所述多个目的输出端口的每一个目的输出端口。通过对输出端口标识中的所有元素进行分组,便于快速定位目的输出端口的位置,避免对输出端口标识中的每一元素进行逐位判断,从而减小了处理延迟,使得报文能够被快速转发。
进一步地,本发明实施例提供的用于转发报文的装置还可以用于实现入口镜像和出口镜像。
每一输入端口均可以被维护有入口镜像配置,该入口镜像配置包括对是否进行入口镜像的标识以及对入口镜像端口的标识,所述装置还可以包括:第二判断模块,用于根据所述入口镜像配置中的是否进行入口镜像的标识判断是否需要进行入口镜像;以及第一复制模块,用于在需要进行入口镜像的情况下,对所述报文描述信息进行复制;所述转发模块,还用于根据所述入口镜像配置中所述对入口镜像端口的标识将所复制的报文描述信息转发至相应的入口镜像端口。
每一输出端口均可以被维护有出口镜像配置,该出口镜像配置包括对是否进行出口镜像的标识以及对出口镜像端口的标识,所述装置还可以包括:第三判断模块,用于根据对应于所述目的输出端口的出口镜像配置判断是否需要进行出口镜像;以及第二复制模块,用于在需要进行出口镜像的情况下,对所述报文描述信息进行复制;所述转发模块还用于根据对应于所述目的输出端口的出口镜像配置中的对出口镜像端口的标识将所复制的报文描述信息转发至相应的出口镜像端口。
可选地,当对所述报文描述信息进行转发时,所述装置还包括:修改模块,用于从所述报文描述信息中删除所述输出端口标识,并将所述报文描述信息将要转发至的相应端口号添加至所述报文描述信息中;以及所述转发模块用于对修改后的报文描述信息进行转发。
通过实现入口镜像和出口镜像可以使得入口镜像与出口镜像与组播复制或者单播复制一起实现,处理上更加简洁。
本发明实施例提供的用于转发报文的装置的具体工作原理及益处与上述的用于转发报文的方法的具体工作原理及益处相似,这里将不再赘述。
相应地,本发明实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述的用于转发报文的方法。
以上结合附图详细描述了本发明例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。
Claims (13)
1.一种用于转发报文的方法,其特征在于,所述方法包括:
从当前报文中获取对应于该当前报文的报文描述信息,所述报文描述信息至少包括输出端口标识,该输出端口标识中的每一元素标识是否将报文转发至该元素所对应的输出端口;
根据输出端口标识判断所述当前报文是否是单播报文;
在所述当前报文是单播报文的情况下,根据所述输出端口标识确定出对应于所述当前报文的目的输出端口;以及
将所述报文描述信息转发至所述目的输出端口。
2.根据权利要求1所述的方法,其特征在于,在所述当前报文不是单播报文的情况下,所述方法还包括:
根据所述输出端口标识确定出对应于所述当前报文的多个目的输出端口;以及
将所述报文描述信息分别转发至所述多个目的输出端口的每一个目的输出端口。
3.根据权利要求2所述的方法,其特征在于,根据所述输出端口标识确定出对应于所述当前报文的多个目的输出端口包括:
将所述输出端口标识中的所有元素分成多个元素组;
判断每一元素组中是否有特征元素,该特征元素标识需要将报文转发至该特征元素所对应的输出端口;以及
确定具有特征元素的每一元素组中的特征元素所对应的目的输出端口。
4.根据权利要求1至3中任意一项权利要求所述的方法,其特征在于,每一输入端口均被维护有入口镜像配置,该入口镜像配置包括对是否进行入口镜像的标识以及对入口镜像端口的标识,
所述方法还包括:
根据所述入口镜像配置中的是否进行入口镜像的标识判断是否需要进行入口镜像;
在需要进行入口镜像的情况下,对所述报文描述信息进行复制;以及
根据所述入口镜像配置中所述对入口镜像端口的标识将所复制的报文描述信息转发至相应的入口镜像端口。
5.根据权利要求1所述的方法,其特征在于,每一输出端口均被维护有出口镜像配置,该出口镜像配置包括对是否进行出口镜像的标识以及对出口镜像端口的标识,
所述方法还包括:
根据对应于所述目的输出端口的出口镜像配置判断是否需要进行出口镜像;
在需要进行出口镜像的情况下,对所述报文描述信息进行复制;以及
根据对应于所述目的输出端口的出口镜像配置中的对出口镜像端口的标识将所复制的报文描述信息转发至相应的出口镜像端口。
6.根据权利要求1所述的方法,其特征在于,当对所述报文描述信息进行转发时,所述方法还包括:
从所述报文描述信息中删除所述输出端口标识,并将所述报文描述信息将要转发至的相应端口号添加至所述报文描述信息中;以及
对修改后的报文描述信息进行转发。
7.一种用于转发报文的装置,其特征在于,所述装置包括:
获取模块,用于从当前报文中获取对应于该当前报文的报文描述信息,所述报文描述信息至少包括输出端口标识,该输出端口标识中的每一元素标识是否将报文转发至该元素所对应的输出端口;
第一判断模块,用于根据输出端口标识判断所述当前报文是否是单播报文;
目的输出端口确定模块,用于在所述当前报文是单播报文的情况下,根据所述输出端口标识确定出对应于所述当前报文的目的输出端口;以及
转发模块,用于将所述报文描述信息转发至所述目的输出端口。
8.根据权利要求7所述的装置,其特征在于,在所述当前报文不是单播报文的情况下,
所述目的输出端口确定模块还用于根据所述输出端口标识确定出对应于所述当前报文的多个目的输出端口;以及
所述转发模块还用于将所述报文描述信息分别转发至所述多个目的输出端口的每一个目的输出端口。
9.根据权利要求8所述的装置,其特征在于,所述目的输出端口确定模块包括:
分组单元,用于将所述输出端口标识中的所有元素分成多个元素组;
判断单元,用于判断每一元素组中是否有特征元素,该特征元素标识将报文转发至该特征元素所对应的输出端口;以及
目的端口确定单元,用于确定具有特征元素的每一元素组中的特征元素所对应的目的输出端口。
10.根据权利要求7至9中任意一项权利要求所述的装置,其特征在于,
每一输入端口均被维护有入口镜像配置,该入口镜像配置包括对是否进行入口镜像的标识以及对入口镜像端口的标识,
所述装置还包括:
第二判断模块,用于根据所述入口镜像配置中的是否进行入口镜像的标识判断是否需要进行入口镜像;以及
第一复制模块,用于在需要进行入口镜像的情况下,对所述报文描述信息进行复制;
所述转发模块,还用于根据所述入口镜像配置中所述对入口镜像端口的标识将所复制的报文描述信息转发至相应的入口镜像端口。
11.根据权利要求7所述的装置,其特征在于,每一输出端口均被维护有出口镜像配置,该出口镜像配置包括对是否进行出口镜像的标识以及对出口镜像端口的标识,
所述装置还包括:
第三判断模块,用于根据对应于所述目的输出端口的出口镜像配置判断是否需要进行出口镜像;以及
第二复制模块,用于在需要进行出口镜像的情况下,对所述报文描述信息进行复制;
所述转发模块还用于根据对应于所述目的输出端口的出口镜像配置中的对出口镜像端口的标识将所复制的报文描述信息转发至相应的出口镜像端口。
12.根据权利要求7所述的装置,其特征在于,
当对所述报文描述信息进行转发时,所述装置还包括:修改模块,用于从所述报文描述信息中删除所述输出端口标识,并将所述报文描述信息将要转发至的相应端口号添加至所述报文描述信息中;以及
所述转发模块用于对修改后的报文描述信息进行转发。
13.一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行根据权利要求1至6中任意一项权利要求所述的用于转发报文的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710986040.1A CN107888518A (zh) | 2017-10-20 | 2017-10-20 | 用于转发报文的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710986040.1A CN107888518A (zh) | 2017-10-20 | 2017-10-20 | 用于转发报文的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107888518A true CN107888518A (zh) | 2018-04-06 |
Family
ID=61781842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710986040.1A Pending CN107888518A (zh) | 2017-10-20 | 2017-10-20 | 用于转发报文的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107888518A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111181825A (zh) * | 2019-12-31 | 2020-05-19 | 智车优行科技(北京)有限公司 | 信息处理方法和装置、电子设备和存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101123529A (zh) * | 2007-09-21 | 2008-02-13 | 杭州华三通信技术有限公司 | 基于pcie交换网的组播实现方法、系统及设备 |
WO2008032403A1 (fr) * | 2006-09-15 | 2008-03-20 | Fujitsu Limited | ProcÉDÉ et dispositif de confirmation de trajet |
CN101378354A (zh) * | 2007-08-28 | 2009-03-04 | 华为技术有限公司 | 组播报文转发方法及装置 |
CN101577677A (zh) * | 2009-06-18 | 2009-11-11 | 杭州华三通信技术有限公司 | 一种自举路由器报文的处理方法和upe设备 |
CN101594304A (zh) * | 2009-07-02 | 2009-12-02 | 杭州华三通信技术有限公司 | 防止堆叠系统产生环路的方法和堆叠系统中的成员设备 |
CN101621477A (zh) * | 2009-08-13 | 2010-01-06 | 华为技术有限公司 | 一种一对多端口镜像的方法和装置 |
CN102195883A (zh) * | 2011-05-23 | 2011-09-21 | 北京星网锐捷网络技术有限公司 | 组播路由确定方法、组播报文转发方法及装置 |
CN104092604A (zh) * | 2014-07-02 | 2014-10-08 | 杭州华三通信技术有限公司 | 报文传输控制方法及装置 |
CN104283811A (zh) * | 2013-07-09 | 2015-01-14 | 杭州华三通信技术有限公司 | 报文转发方法和装置 |
CN104660511A (zh) * | 2015-01-16 | 2015-05-27 | 杭州华三通信技术有限公司 | 一种sdn网络中多播报文的传输方法和设备 |
CN106603413A (zh) * | 2015-10-14 | 2017-04-26 | 中兴通讯股份有限公司 | 通过指定路径传输流量的方法和装置 |
CN106992918A (zh) * | 2017-03-30 | 2017-07-28 | 杭州迪普科技股份有限公司 | 报文转发方法和装置 |
-
2017
- 2017-10-20 CN CN201710986040.1A patent/CN107888518A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008032403A1 (fr) * | 2006-09-15 | 2008-03-20 | Fujitsu Limited | ProcÉDÉ et dispositif de confirmation de trajet |
CN101378354A (zh) * | 2007-08-28 | 2009-03-04 | 华为技术有限公司 | 组播报文转发方法及装置 |
CN101123529A (zh) * | 2007-09-21 | 2008-02-13 | 杭州华三通信技术有限公司 | 基于pcie交换网的组播实现方法、系统及设备 |
CN101577677A (zh) * | 2009-06-18 | 2009-11-11 | 杭州华三通信技术有限公司 | 一种自举路由器报文的处理方法和upe设备 |
CN101594304A (zh) * | 2009-07-02 | 2009-12-02 | 杭州华三通信技术有限公司 | 防止堆叠系统产生环路的方法和堆叠系统中的成员设备 |
CN101621477A (zh) * | 2009-08-13 | 2010-01-06 | 华为技术有限公司 | 一种一对多端口镜像的方法和装置 |
CN102195883A (zh) * | 2011-05-23 | 2011-09-21 | 北京星网锐捷网络技术有限公司 | 组播路由确定方法、组播报文转发方法及装置 |
CN104283811A (zh) * | 2013-07-09 | 2015-01-14 | 杭州华三通信技术有限公司 | 报文转发方法和装置 |
CN104092604A (zh) * | 2014-07-02 | 2014-10-08 | 杭州华三通信技术有限公司 | 报文传输控制方法及装置 |
CN104660511A (zh) * | 2015-01-16 | 2015-05-27 | 杭州华三通信技术有限公司 | 一种sdn网络中多播报文的传输方法和设备 |
CN106603413A (zh) * | 2015-10-14 | 2017-04-26 | 中兴通讯股份有限公司 | 通过指定路径传输流量的方法和装置 |
CN106992918A (zh) * | 2017-03-30 | 2017-07-28 | 杭州迪普科技股份有限公司 | 报文转发方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111181825A (zh) * | 2019-12-31 | 2020-05-19 | 智车优行科技(北京)有限公司 | 信息处理方法和装置、电子设备和存储介质 |
CN111181825B (zh) * | 2019-12-31 | 2021-12-21 | 智车优行科技(北京)有限公司 | 信息处理方法和装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105659222B (zh) | 用于计算消息摘要的系统和方法 | |
US8032529B2 (en) | Enhanced bloom filters | |
US7860967B2 (en) | Network processor system including a central processor and at least one peripheral processor | |
CN102272716B (zh) | 网络分组的simd处理 | |
Baier et al. | Efficient computation of time-bounded reachability probabilities in uniform continuous-time Markov decision processes | |
US9983876B2 (en) | Non-deterministic finite state machine module for use in a regular expression matching system | |
US8194672B2 (en) | Network switch with mutually coupled look-up engine and network processor | |
US10097378B2 (en) | Efficient TCAM resource sharing | |
CN109558400A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN109639579B (zh) | 组播报文的处理方法及装置、存储介质、处理器 | |
EP3066783A1 (en) | Increasing multicast scale via localization of indicies | |
US20180375773A1 (en) | Technologies for efficient network flow classification with vector bloom filters | |
WO2015164639A1 (en) | Method and apparatus for accelerated data translation | |
US20210399997A1 (en) | Forwarding element data plane performing floating point computations | |
JP2013508880A (ja) | 効率的な複数のフィルタパケット統計生成 | |
CN108255467A (zh) | 按照工作流顺序执行服务的方法、装置及系统 | |
CN107888518A (zh) | 用于转发报文的方法及装置 | |
CN107786447A (zh) | 一种基于fpga的报文转发方法及设备 | |
Assiri et al. | Real-time sentiment analysis of Saudi dialect tweets using SPARK | |
CN106559339A (zh) | 一种报文处理方法及装置 | |
CN112953841B (zh) | 报文分流方法及系统 | |
Pradhan et al. | Stationary distribution of an infinite-buffer batch-arrival and batch-service queue with random serving capacity and batch-size-dependent service | |
EP3128437A1 (en) | Data processing method, processor, and data processing device | |
CN106487702B (zh) | 一种组播报文两级复制方法及装置 | |
Gupta et al. | Lagrangian-based online stochastic bin packing |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180406 |
|
RJ01 | Rejection of invention patent application after publication |