CN113347090B - 报文处理方法、转发设备以及报文处理系统 - Google Patents
报文处理方法、转发设备以及报文处理系统 Download PDFInfo
- Publication number
- CN113347090B CN113347090B CN202010100254.6A CN202010100254A CN113347090B CN 113347090 B CN113347090 B CN 113347090B CN 202010100254 A CN202010100254 A CN 202010100254A CN 113347090 B CN113347090 B CN 113347090B
- Authority
- CN
- China
- Prior art keywords
- data structure
- forwarding
- type
- message
- forwarding table
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 96
- 230000008569 process Effects 0.000 claims abstract description 66
- 230000015654 memory Effects 0.000 claims description 49
- 238000010586 diagram Methods 0.000 description 13
- 230000009286 beneficial effect Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 7
- 238000005538 encapsulation Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/14—Routing performance; Theoretical aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/06—Deflection routing, e.g. hot-potato routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种报文处理方法、转发设备以及报文处理系统,应用于交换机、路由器或其他控制面与转发面相分离的设备或系统中。在该报文处理方法中,该转发设备获取由控制设备配置的与该第一报文对应的第一转发表,其中,该第一转发表包括至少一个数据结构,该至少一个数据结构中的每个数据结构包括域值类型和该域值类型对应的内容。然后,该转发设备分别基于该至少一个数据结构的域值类型和该域值类型对应的内容处理该第一报文,得到每个该域值类型的域值,因此,可以提高报文的处理效率。
Description
技术领域
本申请实施例涉及数据处理领域,尤其涉及报文处理方法、设备以及系统。
背景技术
协议无感知转发(protocol oblivious forwarding,POF)是一种基于软件定义网络(software defined network,SDN)的南向协议。在POF定义的架构中包括控制平面的POF控制设备和数据平面的POF转发设备。其中,POF转发设备不感知协议,仅在POF控制设备的指导下通过{偏移,长度}(即{offset,length})来定位数据、匹配并执行对应的操作,从而完成对报文的处理。因此,基于POF协议的转发设备可以在不关心协议的情况下完成对报文的处理,使得在支持新协议时无需对转发设备进行升级,仅需通过POF控制设备下发对应转发表项即可。
在前述POF方案中,转发设备需依次解析该转发表中的每一组偏移和长度,并执行该每一组偏移和长度对应的字段的处理,因此,导致内存访问次数增加,处理效率较低。
发明内容
本申请实施例提供了一种报文处理方法、转发设备以及报文处理系统,用于提高报文处理效率。
第一方面,本申请实施例提供了一种报文处理方法,该报文处理方法涉及转发设备,包括如下步骤:转发设备接收第一报文,并获取由控制设备配置的与该第一报文对应的第一转发表。其中,该第一转发表包括至少一个数据结构,该至少一个数据结构中的每个数据结构包括域值类型和该域值类型对应的内容。然后,该转发设备分别基于该至少一个数据结构的域值类型和该域值类型对应的内容处理该第一报文,得到每个该域值类型的域值。
本实施例中,转发表由控制设备配置为多个可以并行处理的数据结构。当转发设备获取了第一转发表之后,该转发设备可以分别基于至少一个数据结构中的域值类型和该域值类型对应的内容处理该第一转发表对应的第一报文,即该转发设备可以对同一张转发表中的多个数据结构进行并行处理。因此,相比于现有技术中对同一张转发表中的数据依次进行解析处理的方式更加快捷高效,因此可以提高报文的处理效率。
根据第一方面,本申请实施例第一方面的第一种实施方式中,该至少一个数据结构包括第一数据结构,该第一数据结构包括至少一个第一标识信息,该第一标识信息用于指示与该第一转发表相连的第二转发表中的第一数据结构,该第二转发表与该第一报文对应。
本实施方式中,提出前述至少一个数据结构中包括第一数据结构,并且,该第一数据结构中包括指示第二转发表中的第二数据结构的标识(即第一标识信息)。也可以理解为,该第一数据结构与转发路径相关,该转发设备可以基于前述第一标识信息获知第二转发表的存储地址,当然也可以获知该第二转发表中的第一数据结构的存储地址。本实施方式中,有利于该转发设备读取第一转发表中的第一数据结构时便开始为读取第二转发表中的第二数据结构做准备,有利于提高转发设备读取转发表以及转发表中的各个数据结构的效率。
根据第一方面的第一种实施方式,本申请实施例第一方面的第二种实施方式中,该至少一个数据结构还包括一个或多个第二数据结构,该第一数据结构还包括一个第二标识信息,该第二标识信息用于指示该第一转发表中与该第一数据结构相连的该第二数据结构。
基于前述第一数据结构和第二数据结构,前述转发设备分别基于该至少一个数据结构的域值类型和该域值类型对应的内容处理该第一报文的过程可以包括如下步骤:转发设备从该第一数据结构中获取该第二标识信息,并基于该第二标识信息读取该第一转发表中与该第一数据结构相连的该第二数据结构;该转发设备分别基于该第一数据结构的第一域值类型和该第一域值类型对应的内容,和该第二数据结构的第二域值类型和该第二域值类型对应的内容处理该第一报文。
本实施方式中,该转发设备在解析同一张转发表时,当该转发设备读取该转发表中的第一数据结构时,该转发设备便可以通过该第一数据结构中的第二标识信息确定与该第一数据结构相连的第二数据结构的存储地址,并读取该第二数据结构。于是,该转发设备便可以分别基于前述第一数据结构和第二数据结构对该第一报文进行处理。因此,可以提高报文的处理效率。
根据第一方面的第二种实施方式,本申请实施例第一方面的第三种实施方式中,该第二数据结构还包括一个第三标识信息,该第三标识信息用于指示该第一转发表中与该第二数据结构相连的另一个第二数据结构。
本实施方式中,提出同一张转发表中可以包含多个数据结构,与该第一数据结构相连的第二数据结构也可以与另一个第二数据结构相连。此外,该第二数据结构中包含指示该另一个第二数据结构的标识信息(即第三标识信息)。因此,该转发设备在读取第二数据结构时可以同时读取另第二数据结构。此时,该转发设备可以基于前述第一数据结构和多个第二数据结构同时对该第一报文进行处理。因此,有利于提高报文的处理效率。
根据第一方面的第一种实施方式至第一方面的第三种实施方式中的任意一种实施方式,本申请实施例第一方面的第四种实施方式中,该转发设备分别基于该至少一个域值类型和该域值类型对应的内容处理该第一报文之后,该方法还包括:该转发设备基于该第一标识信息获取由控制设备配置的该第二转发表,并基于该第二转发表处理该第一报文,得到该第二转发表中的域值类型对应的域值。
根据第一方面、第一方面的第一种实施方式至第一方面的第四种实施方式中的任意一种实施方式,本申请实施例第一方面的第五种实施方式中,该域值类型对应的内容包括协议指示信息,该协议指示信息用于指示该第一报文使用的协议类型。
本实施方式中,提出前述域值类型对应的内容可以包括协议指示信息,该协议指示信息不是某一个或某一个协议的类型名称,而是一个或多个可以反映协议类型的字段或标识。在这种实施方式中,转发设备基于前述协议指示信息可以获知该第一报文使用的协议类型,有利于转发设备直接从该第一报文中的相应字段中获取相应的信息。
根据第一方面的第五种实施方式,本申请实施例第一方面的第六种实施方式中,该协议指示信息包括如下至少一项:虚拟局域网VLAN标识符,媒体接入控制MAC地址,网际互连协议IP地址,多协议标记交换MPLS标签,端口号以及自动保护倒换APS字段。
根据第一方面、第一方面的第一种实施方式至第一方面的第六种实施方式中的任意一种实施方式,本申请实施例第一方面的第七种实施方式中,该域值类型对应的内容包括偏移和长度,该偏移和长度用于指示该转发设备读取的字段在该第一报文中的位置。
本实施方式中,提出前述域值类型对应的内容可以为偏移和长度,即由控制设备确定转发设备到该第一报文中的哪个字段中获取相应的信息。在这样的方案中,即使该转发设备不支持该第一报文使用的协议,该转发设备依然可以基于前述偏移和长度获知相应的信息。有利于提高转发设备的使用灵活性。
根据第一方面、第一方面的第一种实施方式至第一方面的第七种实施方式中的任意一种实施方式,本申请实施例第一方面的第八种实施方式中,该转发设备分别基于该至少一个数据结构的域值类型和该域值类型对应的内容处理该第一报文,得到每个该域值类型的域值,包括:该转发设备解析各个数据结构中的域值类型对应的内容;当该域值类型对应的内容为协议指示信息时,该转发设备基于该协议指示信息确定该第一报文使用的协议类型,并基于该第一报文使用的协议类型确定该域值类型对应的域值;和/或,当该域值类型对应的内容为偏移和长度时,该转发设备读取该偏移和长度指示的位于该第一报文中的字段,并基于该第一报文中的字段确定该域值类型对应的域值。
本实施方式中,提出该第一转发表中的不同数据结构中的域值类型对应的内容可以不同,当该转发设备解析的多个域值类型对应的内容中主要为协议指示信息时,该转发设备可以利用已支持的协议更加快速地对该第一报文进行处理;当该转发设备解析的多个域值类型对应的内容中主要为偏移和长度时,该转发设备可以支持的用户自定义的协议,有利于提高该转发设备处理该第一报文的灵活性。
第二方面,本申请实施例提供了一种转发设备,该转发设备包括:处理器和存储器。其中,前述存储器,用于存储多个转发表,该多个转发表包括与第一报文对应的第一转发表,该第一转发表包括至少一个数据结构,该至少一个数据结构中的每个数据结构包括域值类型和该域值类型对应的内容。前述处理器,用于接收该第一报文,从该存储器获取由控制设备配置的与该第一报文对应的该第一转发表,并且,分别基于该至少一个数据结构的域值类型和该域值类型对应的内容处理该第一报文,得到每个该域值类型的域值。
本实施例中,转发设备结合前述第一方面所介绍的方法,有利于提高报文的处理效率。
根据第二方面,本申请实施例第二方面的第一种实施方式中,该至少一个数据结构包括第一数据结构,该第一数据结构包括至少一个第一标识信息,该第一标识信息用于指示与该第一转发表相连的第二转发表中的第一主数据结构,该第二转发表与该第一报文对应。
根据第二方面的第一种实施方式,本申请实施例第二方面的第二种实施方式中,该处理器包括第一数据结构处理器。该第一数据结构处理器,用于基于该第一数据结构的第一域值类型和该第一域值类型对应的内容处理该第一报文,得到该第一数据结构的第一域值类型的第一域值。
本实施方式中,该转发设备中的处理器中有专用于处理第一数据结构的第一数据结构处理器,即转发设备中存储的各个转发表中的第一数据结构均可以由前述第一数据结构处理器进行处理。在这样的实施方式中,有利于转发设备将对数据结构的处理任务和对其他数据的处理任务分开,可以避免其他数据占用处理资源,有利于提高处理器基于前述数据结构处理第一报文的效率。
根据第二方面的第一种实施方式至第二种实施方式中的任意一种实施方式,本申请实施例第二方面的第三种实施方式中,该处理器还包括第二数据结构处理器。其中,该第二数据结构处理器,用于从该第一数据结构中获取该第二标识信息,并基于该第二标识信息读取该第二标识信息对应的第二数据结构的第二域值类型和该第二域值类型对应的内容;该第二数据结构处理器,还用于基于该第二数据结构的第二域值类型和该第二域值类型对应的内容处理该第一报文,得到该第二数据结构的第二域值类型的第二域值。
本实施方式中,提出该处理器除了包括第一数据结构处理器之外还包括第二数据结构处理器,其中,第一数据结构处理器用于对第一数据结构进行处理,第二数据结构处理器用于对第二数据结构进行处理。在这样的方案中,相当于两个处理器同时基于前述转发表对第一报文进行处理,因此缩短了处理器的处理时长,提高了处理器执行转发表的效率。
需要说明的是,本申请实施例还有多种具体其他实施方式,具体可参见第一方面的具体实施方式和其有益效果,在此不再赘述。
第三方面,本申请提供了一种数据结构,该数据结构包括域值类型和该域值类型对应的内容,至少一个前述数据结构组成一个转发表。
需要说明的是,本申请实施例还有多种具体其他实施方式,具体可参见第一方面或第二方面中关于数据结构的具体实施方式和其有益效果,在此不再赘述。
第四方面,本申请提供了一种转发表,该转发表由控制设备配置。该转发表包括一个或多个如前述第三方面以及第三方面任意一种实施方式中的数据结构。
第五方面,本申请提供了一种控制设备。该控制设备用于为转发设备配置如前述第四方面所介绍的转发表,并将前述转发表传输至转发设备。
第六方面,本申请提供了一种报文处理系统。该报文处理系统包括控制设备和转发设备。其中,该控制设备,用于配置与第一报文对应的一个或多个转发表。该转发设备,用于获取该一个或多个转发表,并基于该一个或多个转发表对该第一报文进行处理,以实现如第一方面或第一方面的任一种实施方式中的方法。
第七方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得该计算机执行如前述第一方面或第一方面的任一种实施方式所介绍的方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,包括指令,该指令包括如第一方面或第一方面的任一种实施方式所介绍的转发表,当该指令在计算机上运行时,以使得计算机执行如前述第一方面或第一方面的任一种实施方式所介绍的方法。
附图说明
图1为本申请实施例中报文处理方法的一个应用场景图;
图2A为本申请实施例中控制设备配置的转发表的一个实施例示意图;
图2B为本申请实施例中控制设备配置的转发表的另一个实施例示意图;
图3为本申请实施例中报文处理方法的一个流程图;
图4为本申请实施例中报文处理方法的另一个流程图;
图5A为本申请实施例中报文处理方法的一个实施例示意图;
图5B为本申请实施例中报文处理方法的另一个实施例示意图;
图6为本申请实施例中报文处理方法的另一个流程图;
图7为本申请实施例中报文处理方法的另一个实施例示意图;
图8为本申请实施例中转发设备的一个实施例示意图;
图9为本申请实施例中控制设备的一个实施例示意图;
图10为本申请实施例中报文处理系统的一个实施例示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应理解,这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请实施例提供了一种报文处理方法、转发设备以及报文处理系统,用于提高报文处理效率。
本申请实施例所提出的报文处理方法主要应用于控制与转发分离的报文处理场景中。以图1为例,控制设备101可以通过南向接口将转发表发送至各个转发设备102,然后,前述各个转发设备102可以采用本申请实施例提出的报文处理方法基于该转发表对接收到的报文进行处理,以提高报文处理效率。
其中,转发设备102可以为交换机(switch)。例如,协议无感知转发(protocoloblivious forwarding,POF)交换机,或者,openflow交换机等;该转发设备102也可以为路由设备(router)。例如,路由器。该转发设备102还可以为基于转发表执行一系列操作的网关设备等,具体此处不做限定。此外,该控制设备101可以为控制器。例如,软件定义的网络(software defined network,SDN)控制器等。当该转发设备102为交换机时,该控制设备101为生成各种转发表的控制器,以通过前述各种转发表控制各个交换机对报文的处理。当该转发设备102为路由器时,该控制器101为生成各种路由表的控制器,以通过前述各种路由表控制各个路由器对报文的处理。具体此处不做限定。
应当理解的是,该转发设备102可以是上述任意一种设备或该设备中的芯片,具体此处不做限定。无论作为设备还是作为芯片,该转发设备102都可以作为独立的产品进行制造、销售或者使用。在本实施例以及后续实施例中,仅以转发设备为例进行介绍。
在介绍本申请实施例提出的报文处理方法之前,先对本申请实施例提出的转发表进行介绍。
转发表也被称为流表,是由控制设备配置(或生成)的。具体地,控制设备可以基于系统转发数据库驱动各种业务的转发流程配置前述转发表。该转发表包括至少一个数据结构。该数据结构可以理解为是可以由转发设备单独执行的处理命令。当该转发表包括多个数据结构时,该多个数据结构中至少存在两个数据结构可以同时被转发设备执行。也可以理解为,当转发设备中存在多个数据结构时,该转发设备可以同时执行前述多个数据结构中的至少两个数据结构。
前述各个数据结构包含域值类型和该域值类型对应的内容。其中,域值类型,也可以被称为域类型,指该数据结构指示的动作的种类。也可以理解为,转发设备执行该数据结构时,该转发设备对报文处理的动作的种类。该域值类型对应的内容指执行该数据结构的域值类型对应的动作时转发设备需要的信息。也可以理解为,该实现该域值类型对应的动作所需要的数据。
当该转发表中仅包含一个数据结构时,该数据结构为第一数据结构。当该转发表包括多个数据结构时,该多个数据结构包括一个第一数据结构以及一个或多个第二数据结构。其中,第一数据结构也可以被称为主数据结构,第二数据结构也可以被称为转发数据结构。本申请实施例不对前述数据结构在实际应用中的称谓进行限定。其中,第一数据结构的域值类型包括接口、查找、单播、多播、选路、封装、丢弃或异常等。第二数据结构的域值类型包括解析、编辑、镜像、分片/重组、压缩、加密、排序、统计、重传、逻辑运算或赋值等。在实际应用中,不同应用场景下可以使用不同域值类型的数据结构,具体组合方式在此不做限定。
第一数据结构与多个第二数据结构中的一个第二数据结构相连,前述多个第二数据结构之间也可以存在连接关系。为便于理解,以图2A中的转发表21为例进行介绍。该转发表21包括多个数据结构。具体地,该转发表21包括一个第一数据结构(例如第一数据结构211)和多个第二数据结构(例如,第二数据结构212和第二数据结构213)。其中,第一数据结构211与第二数据结构212相连,第二数据结构212与第二数据结构213相连。
两个数据结构相连指的是两个数据结构在被转发设备执行时存在关联。可以理解为,该转发设备执行两个数据结构中的其中一个时,可以获知另一个数据结构的存在,并触发执行另一个数据结构。具体地,若两个数据结构相连,则两个数据结构中的其中一个包含一个标识信息,用于指示与该数据结构相连的另一个数据结构。例如,该标识信息可以为另一个数据结构的存储地址。依然以前述图2A中的转发表21为例,该转发表21中的第一数据结构211中存在一个标识信息,用于指示与第一数据结构211相连的第二数据结构212。类似地,该第二数据结构212中存在一个标识信息,用于指示与该第二数据结构212相连的第二数据结构213。以此类推,不再赘述。
可选地,多个转发表之间也存在连接关系。具体地,一个转发表与另一个转发表之间的连接可以通过其中一个转发表中的第一数据结构和另一个转发表中的第一数据结构之间的连接实现。以图2A中的转发表21为例,第一转发表21包括第一数据结构211、第二数据结构212和第二数据结构213;第一转发表22包括第一数据结构221和第二数据结构222。其中,第一数据结构211中包含一个标识信息,用于指示第一数据结构221。因此,第一转发表21与第二转发表22之间通过第一数据结构211和第一数据结构221之间的标识信息实现连接,即转发设备在执行第一转发表21中的第一数据结构211时可以获知第二转发表22中的第一数据结构221的存在。
前述多个转发表通过各个第一数据结构之间的连接可以形成链状分布或树状分布。以图2B为例,转发表A、转发表B、转发表C以及转发表D称树状分布。其中,转发表A中的第一数据结构(a0)的域值类型为“接口”,该转发表A中的第二数据结构分别为的域值类型为“运算”、“赋值”和“统计”。该转发表A中的第一数据结构(a0)同时与转发表B中的第一数据结构(b0)和转发表C中的第一数据结构(c0)相连,该转发表B中的第一数据结构(b0)的域值类型为“异常”,该转发表C中的第一数据结构(c0)的域值类型为“查找”。此外,该转发表B中与该第一数据结构(b0)相连的第二数据结构的域值类型为“统计”。该转发表C中该第一数据结构(c0)下依次连接的第二数据结构的域值类型分别为“运算”、“赋值”和“算法”。此外,该转发表C中的第一数据结构(c0)还与转发表D中的第一数据结构(d0)相连,该第一数据结构(d0)的域值类型为“单播”。由此可见,不同的域值类型的数据结构在组成转发表时存在差异,进而造成各个转发表之间的连接关系存在差异。应当理解的是,图2B为便于介绍仅示出了域值类型、省略了各个域值类型对应的内容,但并不代表各个数据结构中不存在域值类型对应的内容。
下面将基于前述各种数据结构组成的转发表对本实施例中报文处理方法进行介绍,如图3所示,该报文处理方法中的转发设备执行的步骤包括如下:
301、转发设备接收第一报文。
其中,该第一报文可以来自与该转发设备相连的其他转发设备,例如,路由转发设备、交换机转发设备;也可以来自其他非转发设备,例如,业务网关、信令网关、安全网关、服务器以及终端设备等,具体此处不做限定。
302、该转发设备获取由控制设备配置的与该第一报文对应的第一转发表。
由于该转发设备对第一报文的处理是基于转发表中的各个数据结构而进行的,因此,该转发设备需要获取与该第一报文对应的第一转发表,该第一转发表是由控制设备配置的。该转发设备可以直接从控制设备获取该第一报文对应的第一转发表。也可以由该控制设备直接向该转发设备发送该第一报文对应的第一转发表。还可以由该控制设备将该第一报文对应的第一转发表存储于网络管理设备或者其他外部存储设备中,由该转发设备从前述网络管理设备或者其他外部存储设备中获取该第一报文对应的第一转发表。具体此处不做限定。可选的,该转发设备可以将该第一转发表存储于该转发设备中的存储器中,因此,该转发设备中的存储器也可以被称为表存储器。
其中,该第一转发表包括至少一个数据结构,该至少一个数据结构中的每个数据结构包括域值类型和该域值类型对应的内容。该第一转发表的具体结构可以参阅前述图2A对应的相关介绍,该域值类型和该域值类型对应的内容的定义可以参阅前述实施例中的相关介绍,具体此处不再赘述。
303、该转发设备分别基于该至少一个数据结构的域值类型和该域值类型对应的内容处理该第一报文,得到每个域值类型的域值。
其中,域值指数据结构指示的动作的处理结果。该域值可以转发设备计算出的一个或多个数值,也可以为转发设备从第一报文中获取的某个字符或字段,还可以是转发设备基于前述域值类型对应的内容配置的一个或多个字符。本申请实施例中,不对前述域值的具体取值进行限定。
获取前述第一转发表之后,该转发设备解析前述第一转发表,从而确定该第一转发表中的数据结构组成,即确定各个数据结构中的域值类型和该域值类型对应的内容。然后,该转发设备将分别基于该至少一个数据结构的域值类型和该域值类型对应的内容处理该第一报文,得到每个该域值类型的域值。例如,若该第一转发表中包含第一数据结构和第二数据结构,并且,第一数据结构中包含第一域值类型和该第一域值类型对应的内容。该第二数据结构中包含第二域值类型和该第二域值类型对应的内容。此时,该转发设备将基于前述第一域值类型和该第一域值类型对应的内容对该第一报文进行处理得到第一域值,并且,转发设备将基于前述第二域值类型和该第二域值类型对应的内容对该第一报文进行处理得到第二域值。类似地,若该第一转发表中包含多个数据结构,该转发设备也可以分别基于多个数据结构对该第一报文进行处理得到多个域值。
本实施例中,转发表由控制设备配置为多个可以并行处理的数据结构,当转发设备获取了第一转发表之后,该转发设备可以分别基于至少一个数据结构中的域值类型和该域值类型对应的内容处理该第一转发表对应的第一报文,即该转发设备可以对同一张转发表中的多个数据结构进行并行处理,因此,相比于现有技术中对同一张转发表中的数据依次进行解析处理的方式更加快捷高效,因此可以提高报文的处理效率。
基于前述图3对应的报文处理方法,若对前述第一转发表中的各个数据结构进行进一步定义可以使各个数据结构之间形成有序的关联。因此,可以使转发设备在读取一个数据结构时触发对另一数据结构的处理。下面将对这种方案进行介绍,如图4所示,该报文处理方法中的转发设备执行的步骤包括如下:
401、转发设备接收第一报文。
步骤401与前述步骤301类似,请参阅前述步骤301中的相关介绍,此处不再赘述。
402、该转发设备获取由控制设备配置的与该第一报文对应的第一转发表。
该转发设备可以从控制设备中直接获取该第一报文对应的第一转发表;也可以从网络管理设备或者其他外部存储设备中间接获取该第一报文对应的第一转发表,其中,该网络管理设备或者其他外部存储设备中的第一转发表是由该控制设备配置的。具体地,可以参阅前述步骤302中的相关介绍,此处不再赘述。还应理解的是,前述第一转发表存储于该转发设备中的表存储器中。
其中,该第一转发表包括至少一个数据结构,该至少一个数据结构中的每个数据结构包括域值类型和该域值类型对应的内容。
在一种可选的实施方式中,该至少一个数据结构包括第一数据结构。此时,该第一数据结构除了第一域值类型、该第一域值类型对应的内容之外,该第一数据结构还包括至少一个第一标识信息。该第一标识信息用于指示与该第一转发表相连的第二转发表中的第一主数据结构,该第二转发表与该第一报文对应。以前述图2A为例,该第一转发表21中的第一数据结构211中包括一个第一标识信息,该第一标识信息用于指示与该第一转发表21相连的第二转发表22中的第一数据结构221。
在另一种可选的实施方式中,该至少一个数据结构包括一个第一数据结构和一个或多个第二数据结构。其中,该第一数据结构除了第一域值类型、该第一域值类型对应的内容、以及前述第一标识信息之外,该第一数据结构还包括一个第二标识信息。该第二标识信息用于指示该第一转发表中与该第一数据结构相连的该第二数据结构。可选的,该第二数据结构还包括一个第三标识信息,该第三标识信息用于指示该第一转发表中与该第二数据结构相连的另一个第二数据结构。依然以前述图2A为例,该第一转发表21中的第一数据结构211中包括一个第二标识信息,该第二标识信息用于指示该第一转发表21中与该第一数据结构211相连的第二数据结构212。
应当注意的是,在后续步骤403和步骤404中,仅以该第一转发表中包含一个第一数据结构和一个第二数据结构为例进行介绍。但是,在实际应用中,该第一转发表中除了包含一个第一数据结构之外,可以包含多个第二数据结构,具体此处不做限定。
403、该转发设备分别基于前述第一转发表中的第一数据结构和第二数据结构对该第一报文进行处理,分别获得第一域值和第二域值。
具体地,该转发设备读取该第一转发表中的第一数据结构,并从该第一数据结构中获取该第二标识信息,并基于该第二标识信息读取该第一转发表中与该第一数据结构相连的该第二数据结构。可选的,该转发设备从该第一数据结构中的第一域值类型对应的内容中获取该第二标识信息。然后,该转发设备分别基于该第一数据结构的第一域值类型和该第一域值类型对应的内容,和该第二数据结构的第二域值类型和该第二域值类型对应的内容处理该第一报文,分别获得第一域值和第二域值。
下面结合该转发设备的内部结构对前述步骤进行介绍。图5A为该转发设备的内部结构示意图。如图5A所示,该转发设备包括处理器、表存储器和报文描述符存储器。其中,处理器包括第一处理器和第二处理器。第一处理器用于处理各个转发表的第一数据结构。第二处理器用于处理各个转发表的第二数据结构。表存储器用于存储各个转发表。报文描述符存储器用于存储报文处理过程中产生的中间数据。例如,该处理器输出的各个域值。当该转发设备分别基于前述第一数据结构和第二数据结构对该第一报文进行处理的过程中,该转发设备中的第一处理器将读取该第一数据结构中的第一域值类型和该第一域值类型对应的第一内容(后文简称第一内容),并基于该第一域值类型对应的第一内容中的第二标识信息确定第二数据结构的存储地址(即该第二数据结构在该表存储器中的存储地址),并将该第二数据结构的存储地址发送至该第二处理器。与此同时,该第一处理器将基于前述第一域值类型和该第一域值类型对应的第一内容处理该第一报文,并将确定的第一域值存储至报文描述符存储器中。当该第二处理器收到该第二数据结构的存储地址之后,该第二处理器将从该表存储器中的对应地址读取该第二数据结构的第二域值类型以及该第二域值类型对应的第二内容(后文简称第二内容)。然后,该第二处理器基于该第二数据结构的第二域值类型以及该第二域值类型对应的第二内容对该第一报文进行处理,并将确定的第一域值存储至报文描述符存储器中。
由于,该第一处理器基于第二标识信息确定第二数据结构的存储地址耗费的时间以及将该第二数据结构发送至第二处理器耗费的时间极短,并且远小于该第一处理器基于第一域值类型和第一内容处理第一报文的时间和基于第二域值类型和第二内容处理第一报文的时间。因此,前述第一处理器基于第一域值类型和第一内容处理第一报文的过程与前述第二处理器基于第二域值类型和第二内容处理第一报文的过程是并行进行的。因此,可以提高该转发设备处理该第一报文的效率。
404、该转发设备基于该第一标识信息获取由控制设备配置的该第二转发表,并基于该第二转发表处理该第一报文,得到该第二转发表中的域值类型对应的域值。
该第二转发表与该第一报文相关,即该第二转发表用于为该转发设备提供处理该第一报文的数据。该转发设备可以基于该第二转发表中的各个数据结构中的域值类型和该域值类型对应的内容处理该第一报文,得到该第二转发表中的域值类型对应的域值。
需要说明的是,步骤404是可选。当该转发设备执行步骤404时,该转发设备可以同时执行前述步骤403和步骤404。
下面结合图5B对前述过程进行介绍。该转发设备中的第一处理器在读取第一转发表中的第一域值类型1和该第一域值类型1对应的第一内容1(后文简称第一内容1)的同时,该第一处理器基于该第一内容1中的第二标识信息可以确定该第一转发表中的第二数据结构的存储地址,并且,该第一处理器还将基于该第一内容1中的第一标识信息确定该第二转发表中的第一数据结构的存储地址。当该第一处理器基于前述第一域值类型1和该第一内容1对该第一报文进行处理的同时,该第一处理器可以从该第二转发表中的第一数据结构的存储地址读取该第二转发表中的第一域值类型2和该第一域值类型2对应的第一内容2(后文简称第一内容2)。以使得该第一处理器在处理完前述第一内容1之后可以立即处理第一内容2,而无需再耗费时间执行解析地址、读取第一域值类型2以及第一内容2等操作。因此,有利于该前述第一处理器快速地输出第一域值类型1对应的第一域值1和第一域值类型2对应的第一域值2,并将前述第一域值1和第二域值2存储于报文描述符存储器中。进而可以提高第一处理器的处理效率,即提高转发设备的处理效率。
类似的,在该转发设备的第二处理器中,该第二处理器在基于第一转发表中的第二域值类型1和第二域值类型1对应的第二内容1(后文简称第二内容1)对该第一报文进行处理的同时,该第二处理器也将从第一处理器接收该第二转发表中的第二数据结构的存储地址。以使得该第二处理器在基于前述第二域值类型1和第二内容1处理完该第一报文之后,该第二处理器可以基于该第二转发表中的第二域值类型2和该第二域值类型2对应的第二内容2(后文简称第二内容2)对该第一报文进行处理。进而促使提高该第二处理器输出第二域值类型1对应的第二域值1和第二域值类型2对应的第二域值2的速率,进而提高该第二处理器处理该第一报文的效率。
本实施例中,该第一报文可以对应多个转发表,该转发设备在基于第一转发表中的各个数据结构处理该第一报文的同时,该转发设备也将解析第二转发表的地址,以使得该转发设备中的第一处理器基于第一转发表中的第一数据结构处理完该第一报文后,可以立即基于第二转发表中的第一数据结构对该第一报文进行处理。因此,可以提高该转发设备处理该第一报文的效率。
基于前述实施方式,在一种可选的实施方式中,前述各个数据结构中的域值类型对应的内容也将影响该转发设备处理该第一报文的效率。下面将对这种方案进行介绍,如图6所示,该报文处理方法中的转发设备执行的步骤包括如下:
601、转发设备接收第一报文。
步骤601与前述步骤401类似,请参阅前述步骤401中的相关介绍,此处不再赘述。
602、该转发设备获取由控制设备配置的与该第一报文对应的第一转发表,该第一转发表包括多个数据结构。
步骤602与前述步骤402类似,请参阅前述步骤402中的相关介绍,此处不再赘述。
603、该转发设备解析各个数据结构中的域值类型对应的内容。
在一种可选的实施方式中,该域值类型对应的内容包括协议指示信息,该协议指示信息用于指示该第一报文使用的协议类型。应理解,该协议指示信息并非协议名称,而是可以反映协议类型的字段。其中,该协议指示信息包括如下至少一项:虚拟局域网(virtuallocal area network,VLAN)标识符,媒体接入控制(media access control,MAC)地址,网际互连协议(internet protocol,IP)地址,多协议标记交换(multi-protocol labelswitching,MPLS)标签,端口号以及自动保护倒换(automatic protection switching,APS)字段。为便于理解,以IP地址为例进行介绍。IP地址可以为基于IPv4协议或IPv6的IP地址。若某数据结构的第一数据结构的域值类型为接口,当该域值类型对应的内容包括IP地址时,该IP地址可以为指示传输控制协议(transmission control protocol,TCP)的IP地址、指示用户数据报协议(user datagram protocol,UDP)的IP地址,指示因特网控制报文协议(internet control message protocol,ICMP)的IP地址,指示因特网组管理协议(internet group management protocol,IGMP)的IP地址,或者指示流控制传输协议(stream control transmission protocol,SCTP)的IP地址中的任意一种或多种。在实际应用中,前述IP地址可以按照实际需求组合,具体此处不做限定。类似地,也可以通过前述VLAN标识符、MAC地址、MPLS标签以及端口号等确定报文使用的协议类型,此处不再赘述。
在另一种可选的实施方式中,该域值类型对应的内容包括偏移和长度,该偏移和长度用于指示该转发设备读取的字段在该第一报文中的位置。例如,某数据结构的域值类型对应的内容可以为{偏移=16bit,长度=8bit}。其中,“偏移=16bit”指指针从该第一报文头的起始位指偏移16bit处开始读取数据,“长度=8bit”指该转发设备在读取该第一报文中的数据时,读取8bit的数据。
604a、当该域值类型对应的内容为协议指示信息时,该转发设备基于该协议指示信息确定该第一报文使用的协议类型,并基于该第一报文使用的协议类型确定该域值类型对应的域值。
604b、当该域值类型对应的内容为偏移和长度时,该转发设备读取该偏移和长度指示的位于该第一报文中的字段,并基于该第一报文中的字段确定该域值类型对应的域值。
本实施例中,由于转发表包括多个数据结构,并且各个数据结构中的域值类型对应的内容可以不同,因此,存在同一转发表中的第一数据结构中的第一域值类型对应的第一内容为协议指示信息,第二数据结构中的第二域值类型对应的第二内容为偏移和长度的情况,因此,在该转发设备对该第一报文进行处理的过程中,前述步骤604a和步骤604b可以同时存在。也就是说,在一个仅由第一数据结构和第二数据结构组成的转发表中,可能存在如下四种情况:
(1)第一数据结构中的第一域值类型对应的第一内容为协议指示信息;第二数据结构中的第二域值类型对应的第二内容为偏移和长度。
(2)第一数据结构中的第一域值类型对应的第一内容为偏移和长度;第二数据结构中的第二域值类型对应的第二内容为协议指示信息。
(3)第一数据结构中的第一域值类型对应的第一内容和第二数据结构中的第二域值类型对应的第二内容均为协议指示信息,并且,该协议指示信息指示的该第一报文使用的协议可以相同,也可以不同。
(4)第一数据结构中的第一域值类型对应的第一内容和第二数据结构中的第二域值类型对应的第二内容均为偏移和长度。
应当理解的是,当前述转发表中包含一个第一数据结构和多个第二数据结构时,同一个转发表中各个数据结构中的域值类型对应的内容的情况将更加复杂化。具体此处不再展开介绍。但是,应当理解的是,当该转发设备解析的多个域值类型对应的内容中主要为协议指示信息时,该转发设备可以利用已支持的协议更加快速地对该第一报文进行处理。当该转发设备解析的多个域值类型对应的内容中主要为偏移和长度时,该转发设备可以支持的用户自定义的协议,有利于提高该转发设备处理该第一报文的灵活性。
应当注意的是,前述步骤604a和前述步骤604b执行的先后顺序是依据前述步骤403和步骤404中转发设备对各个数据结构的处理的先后而决定的。具体可以参阅前述步骤403和前述步骤404中的相关描述,此处不再赘述。
本实施例中,转发表由控制设备配置为多个可以并行处理的数据结构,当转发设备获取了第一转发表之后,该转发设备可以分别基于至少一个数据结构中的域值类型和该域值类型对应的内容处理该第一转发表对应的第一报文。因此,可以提高报文的处理效率。此外,当该转发设备解析的多个域值类型对应的内容中主要为协议指示信息时,该转发设备可以利用已支持的协议更加快速地对该第一报文进行处理。当该转发设备解析的多个域值类型对应的内容中主要为偏移和长度时,该转发设备可以支持的用户自定义的协议,有利于提高该转发设备处理该第一报文的灵活性。
下面将结合虚拟专用局域网业务(virtual privatelan service,VPLS)场景对前述报文处理方法进行介绍。图7为转发设备完成前述VPLS业务所需的多个转发表。如图7所示,可以将VPLS业务的处理流程所需的多个转发表按域划分,包括接口域、路由域、转发域及封装域。其中,每个域中包含一个或多个转发表。例如,接口域包含转发表1和转发表2;路由域包含转发表4和转发表5;转发域包含转发表6;封装域包含转发表7。每个转发表中包含一个或多个数据结构,并且,同一张转发表中可以有协议相关的数据结构(即该数据结构的域值类型对应的内容为协议指示信息)和协议无关的数据结构(即该数据结构的域值类型对应的内容包括偏移和长度)。例如,转发表1的第一数据结构(即主数据结构)为协议无关的数据结构。其中,该转发表1的第一数据结构的域值类型为“接口”,该域值类型对应的内容为“直接查找,{6bit,8bit}”。又例如,转发表4的第一数据结构(即主数据结构)为协议相关的数据结构。其中,该转发表4的第一数据结构的域值类型为“桥接”,该域值类型对应的内容为“桥标识、VLANID及目的MAC地址”。又例如,转发表5的第二数据结构(即转发数据结构)为协议无关的数据结构。其中,该转发表5的第二数据结构的域值类型为“路由”,该域值类型对应的内容为“设置出接口,{2bit,6bit}”。其余数据结构与前述实例类似,具体此处不再赘述。
具体地,在接口域中,该转发设备在读取转发表1中的各个数据结构时,可以在该转发表1对应的报文1中的偏移为6bit长度为8bit处直接查找。与此同时,该转发设备还将设置物理接口,并将该物理接口写入该报文1中偏移为2bit长度为8bit的位置。然后,该转发设备分别解析协议指示信息VLAN ID和MAC地址以确定该报文1使用的协议类型。然后,该转发设备将读取转发表2中的数据结构,可以在该转发表2对应的报文1中的偏移为2bit长度为18bit处查找获取逻辑接口。然后,该转发设备将读取转发表3中的数据结构,可以在该转发表3对应的报文1中的偏移为2bit长度为8bit处设置桥标识,以完成桥标识的查找。
在路由域中,该转发设备将读取转发表4中的数据结构,将桥标识、VLANID及目的MAC地址作为关键字,查找桥转发表。该转发设备读取转发表5中的数据结构时,可以在该转发表5对应的报文1中的偏移为0bit长度为10bit处查找。与此同时,该转发设备还将设置出接口,并将该出接口写入该报文1中偏移为2bit长度为6bit的位置。
在转发域中,该转发设备将读取转发表6中的各个数据结构,在转发表6对应的报文1中的偏移为2bit长度为6bit处查找。然后,完成交换网信息的处理,包括目的单板、目标端口及封装表索引等信息。
在封装域中,该转发设备将读取转发表7中的各个数据结构,在转发表7对应的报文1中的偏移为2bit长度为6bit处查找。然后,完成以太网首部封装,包括目的MAC地址、源MAC地址及以太网类型等信息。
应当理解的是,前述实施例中,偏移的比特数值以及长度的比特数据仅仅用于举例。在实际应用中,偏移的比特数值和长度的比特数值可能与前述示例存在差异,具体本实施例不对前述偏移的比特数值和长度的比特数值进行限定。
上面对本申请实施例所提出的报文处理方法进行了介绍,下面将对执行该报文处理方法涉及的转发设备的具体结构进行介绍。
如图8所示,本实施例提供了一种转发设备80的结构示意图。前述图3、图4和图6所对应的方法实施例中的转发设备可以基于本实施例中图8所示的转发设备80的结构。此外,前述图5A以及图5B对应的示例中的转发设备可以与本实施例中图8所示的转发设备80结合。
转发设备80包括至少一个处理器801和至少一个存储器802。其中,该处理器801,也可以被称为报文处理器或包处理器,可以用于对转发表中的数据结构(例如,前述第一数据结构和前述第二数据结构;或者,前述主数据结构和前述转发数据结构)以及报文(例如,前述第一报文)进行处理,以及对整个转发设备进行控制,执行软件程序,处理软件程序的数据,例如用于支持该转发设备80执行前述实施例中所描述的动作。转发设备80中的处理器801可以包括第一处理器8011和第二处理器8012。其中,该第一处理器8011用于对各个转发表中的第一数据结构(或主数据结构)进行处理,该第二处理器8012用于对各个转发表中的第二数据结构(或转发数据结构)进行处理。应当理解的是,该第一处理器8011和该第二处理器8012可以为两个独立的处理器,也可以为前述处理器801中的两个独立的不同功能的模块,具体此处不做限定。该第一处理器8011和该第二处理器8012之间可以进行数据交互。例如,第一处理器8011可以将基于第一数据结构中的第二标识信息指示的第二数据结构的存储地址发送给第二处理器8012。
存储器802主要用于存储控制设备配置的各个转发表、报文以及前述处理器801输出的域值等数据。例如,第一转发表、第二转发表、第一报文、第一域值以及第二域值等。存储器802可以是独立存在,与处理器801相连。或者,该存储器802也可以和该处理器801集成于一体,例如集成于一个或多个芯片之内。存储器802还用于存储执行本申请实施例的技术方案的程序代码。前述程序代码可以由处理器801来控制执行,被执行的各类计算机程序代码也可被视为是处理器801的驱动程序。可选的,该存储器802包括表存储器8021和报文描述符存储器8022。其中,表存储器8021用于存储于报文相关的各个转发表(例如,第一转发表和第二转发表等)。该报文描述符存储器8022用于存储处理器801在报文处理过程中产生的数据。该数据可以为该处理器801输出的域值类型对应的域值(例如,第一域值和第二域值等)。
应当理解的是,图8仅给出了一个表存储器和一个报文描述符存储器的转发设备示例。在实际应用中,转发设备80可包括多个表存储器或多个文描述符存储器,此处不做限定。
具体地,处理器801用于获取由控制设备配置的与第一报文对应的第一转发表,并将该转发表存储于前述表存储器8021中。其中,该第一转发表包括至少一个数据结构,该至少一个数据结构中的每个数据结构包括域值类型和该域值类型对应的内容。此外,该处理器801还用于分别基于该至少一个数据结构的域值类型和该域值类型对应的内容处理该第一报文,得到每个域值类型的域值,并将前述各个域值存储于前述报文描述符存储器8022中。其余可以参考前述图3、图4以及图6对应的实施例中转发设备所执行的步骤,此处不再赘述。
图9为本申请实施例提供了一种控制设备90的结构示意图。前述图3、图4和图6所对应的方法实施例中的控制设备可以基于本实施例中图9所示的控制设备90的结构。
控制设备90包括至少一个处理器901和至少一个存储器902。其中,该处理器901用于配置与报文对应的各个转发表(例如,前述第一转发表和第二转发表)以及对整个控制设备进行控制,执行软件程序,处理软件程序的数据,例如用于支持该控制设备90执行前述实施例中所描述的动作。
存储器902主要用于存储控制设备配置的各个转发表。例如,第一转发表、第二转发表等。该存储器902可以是独立存在,与处理器901相连。可选的,该存储器902也可以和该处理器901集成于一体。例如集成于一个或多个芯片之内。其中,该存储器902还用于存储执行本申请实施例的技术方案的程序代码。前述程序代码可以由处理器901来控制执行,被执行的各类计算机程序代码也可被视为是处理器901的驱动程序。
可选地,该控制设备90还包括接口装置903,用于与转发设备或外部存储器相连,并通过该接口装置903输出前述各个转发表。可选地,该接口装置903可以为南向接口。
应当理解的是,图9仅示出了一个处理器和一个存储器。在实际应用中,该控制设备90可以存在多个处理器或多个存储器,具体此处不做限定。其余可参考前述实施例中控制设备所执行的步骤,此处不再赘述。
图10为本申请实施例提供了一种报文处理系统100的结构示意图。如图10所示,该报文处理系统100包括控制设备1001和转发设备1002。控制设备1001和转发设备1002通过南向接口相连。具体地,转发设备1002的具体结构可以参阅图8对应的实施例,控制设备1001的具体结构可以参阅图9对应的实施例,此处不再赘述。
可选地,报文处理系统100还包括外部存储设备1003,用于存储该控制设备1001配置的转发表,以供转发设备1002从外部存储设备1003处获取该转发表。可选地,外部存储设备1003还可以存储报文,转发设备1002可以从外部存储设备1003处接收该报文。
应当理解的是,前述转发设备可以存在与转发设备的方法或者流程的步骤对应的功能单元(means)。以上模块或单元的一个或多个可以软件、硬件或二者结合来实现。当以上任一模块或单元以软件实现的时候,所述软件以计算机程序指令的方式存在,并被存储在存储器中,处理器可以用于执行所述程序指令以实现以上方法流程。
本申请实施例中的处理器可以包括但不限于以下至少一种:中央处理单元CPU、微处理器、数字信号处理器(digital signal processor,DSP)、微控制器(microcontrollerunit,MCU)、网络处理器(network processor,NP)或人工智能处理器等各类运行软件的计算设备,每种计算设备可包括一个或多个用于执行软件指令以进行运算或处理的核。该处理器可以是个单独的半导体芯片,也可以跟其他电路一起集成为一个半导体芯片,例如,可以跟其他电路(如编解码电路、硬件加速电路或各种总线和接口电路)构成一个片上系统(system-on-a-chip,SoC),或者也可以作为一个特殊应用集成电路(applicationspecific integrated circuit,ASIC)的内置处理器集成在所述ASIC当中,该集成了处理器的ASIC可以单独封装或者也可以跟其他电路封装在一起。该处理器除了包括用于执行软件指令以进行运算或处理的核外,还可进一步包括必要的硬件加速器,如现场可编程门阵列(fieldprogrammable gate array,FPGA)、可编程逻辑器件(programmable logicdevice,PLD)、或者实现专用逻辑运算的逻辑电路。
本申请实施例中的存储器,可以包括如下至少一种类型:只读存储器ROM或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasableprogrammableread-only memory,EEPROM)。具体此处不做限定。
应当理解的是,本申请实施例中,不同的附图中相同的附图标记可视为同一对象。除在有特别说明,前述各个附图之间相同的附图标记的解释可以相互引用。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种报文处理方法,其特征在于,包括:
转发设备接收第一报文;
所述转发设备获取由控制设备配置的与所述第一报文对应的第一转发表,所述第一转发表包括至少一个数据结构,所述至少一个数据结构中的每个数据结构包括域值类型和所述域值类型对应的内容,所述第一转发表中的至少一个数据结构用于并行处理所述第一报文,所述至少一个数据结构包括一个第一数据结构和至少一个第二数据结构,所述第一数据结构包括一个第二标识信息,所述第二标识信息用于指示所述第一转发表中与所述第一数据结构相连的所述第二数据结构;
所述转发设备分别基于所述至少一个数据结构的域值类型和所述域值类型对应的内容并行处理所述第一报文,得到每个所述域值类型的域值;
所述转发设备分别基于所述至少一个数据结构的域值类型和所述域值类型对应的内容并行处理所述第一报文,包括:
所述转发设备从所述第一数据结构中获取所述第二标识信息,并基于所述第二标识信息读取所述第一转发表中与所述第一数据结构相连的所述第二数据结构;
所述转发设备分别基于所述第一数据结构的第一域值类型和所述第一域值类型对应的内容,和所述第二数据结构的第二域值类型和所述第二域值类型对应的内容处理所述第一报文。
2.根据权利要求1所述的方法,其特征在于,所述第一数据结构包括至少一个第一标识信息,所述第一标识信息用于指示与所述第一转发表相连的第二转发表中的第一主数据结构,所述第二转发表与所述第一报文对应。
3.根据权利要求2所述的方法,其特征在于,所述第二数据结构还包括一个第三标识信息,所述第三标识信息用于指示所述第一转发表中与所述第二数据结构相连的另一个第二数据结构。
4.根据权利要求2或3所述的方法,其特征在于,所述转发设备分别基于所述至少一个数据结构的域值类型和所述域值类型对应的内容并行处理所述第一报文之后,所述方法还包括:所述转发设备基于所述第一标识信息获取由控制设备配置的所述第二转发表,并基于所述第二转发表处理所述第一报文,得到所述第二转发表中的域值类型对应的域值。
5.根据权利要求1至3中任意一项所述的方法,其特征在于,所述域值类型对应的内容包括协议指示信息,所述协议指示信息用于指示所述第一报文使用的协议类型。
6.根据权利要求5所述的方法,其特征在于,所述协议指示信息包括如下至少一项:
虚拟局域网VLAN标识符,媒体接入控制MAC地址,网际互连协议IP地址,多协议标记交换MPLS标签,端口号以及自动保护倒换APS字段。
7.根据权利要求1至3中任意一项所述的方法,其特征在于,所述域值类型对应的内容包括偏移和长度,所述偏移和长度用于指示所述转发设备读取的字段在所述第一报文中的位置。
8.根据权利要求5所述的方法,其特征在于,所述转发设备分别基于所述至少一个数据结构的域值类型和所述域值类型对应的内容并行处理所述第一报文,得到每个所述域值类型的域值,包括:
所述转发设备解析各个数据结构中的域值类型对应的内容;
当所述域值类型对应的内容为协议指示信息时,所述转发设备基于所述协议指示信息确定所述第一报文使用的协议类型,并基于所述第一报文使用的协议类型确定所述域值类型对应的域值;和/或,当所述域值类型对应的内容为偏移和长度时,所述转发设备读取所述偏移和长度指示的位于所述第一报文中的字段,并基于所述第一报文中的字段确定所述域值类型对应的域值。
9.一种转发设备,其特征在于,包括:处理器和存储器;其中,
所述存储器,用于存储多个转发表,所述多个转发表包括与第一报文对应的第一转发表,所述第一转发表包括至少一个数据结构,所述至少一个数据结构中的每个数据结构包括域值类型和所述域值类型对应的内容,所述第一转发表中的至少一个数据结构用于并行处理所述第一报文,所述至少一个数据结构包括一个第一数据结构和至少一个第二数据结构,所述第一数据结构包括一个第二标识信息,所述第二标识信息用于指示所述第一转发表中与所述第一数据结构相连的所述第二数据结构;
所述处理器包括第一数据结构处理器和第二数据结构处理器,其中,
所述第一数据结构处理器,用于基于第一数据结构的第一域值类型和所述第一域值类型对应的内容处理所述第一报文,得到所述第一数据结构的第一域值类型的第一域值;
所述第二数据结构处理器,用于:
从所述第一数据结构中获取第二标识信息,并基于所述第二标识信息读取所述第二标识信息对应的第二数据结构的第二域值类型和所述第二域值类型对应的内容;和,基于所述第二数据结构的第二域值类型和所述第二域值类型对应的内容处理所述第一报文,得到所述第二数据结构的第二域值类型的第二域值。
10.一种报文处理系统,其特征在于,包括:控制设备和如权利要求9所述的转发设备,所述控制设备用于配置如权利要求1至8中任意一项所涉及的转发表。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010100254.6A CN113347090B (zh) | 2020-02-18 | 2020-02-18 | 报文处理方法、转发设备以及报文处理系统 |
PCT/CN2021/074967 WO2021164546A1 (zh) | 2020-02-18 | 2021-02-03 | 报文处理方法、转发设备以及报文处理系统 |
US17/889,701 US20220393978A1 (en) | 2020-02-18 | 2022-08-17 | Packet processing method, forwarding device, and packet processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010100254.6A CN113347090B (zh) | 2020-02-18 | 2020-02-18 | 报文处理方法、转发设备以及报文处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113347090A CN113347090A (zh) | 2021-09-03 |
CN113347090B true CN113347090B (zh) | 2023-06-20 |
Family
ID=77390417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010100254.6A Active CN113347090B (zh) | 2020-02-18 | 2020-02-18 | 报文处理方法、转发设备以及报文处理系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220393978A1 (zh) |
CN (1) | CN113347090B (zh) |
WO (1) | WO2021164546A1 (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013059991A1 (zh) * | 2011-10-25 | 2013-05-02 | 华为技术有限公司 | 数据报文处理方法和系统、报文转发设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266120B2 (en) * | 2002-11-18 | 2007-09-04 | Fortinet, Inc. | System and method for hardware accelerated packet multicast in a virtual routing system |
CN100459574C (zh) * | 2005-09-19 | 2009-02-04 | 北京大学 | 对网络流进行分类、状态跟踪和报文处理的装置和方法 |
CN104158745B (zh) * | 2013-05-13 | 2018-11-06 | 南京中兴新软件有限责任公司 | 一种实现数据包转发的方法及系统 |
CN103560957A (zh) * | 2013-10-15 | 2014-02-05 | 华为技术有限公司 | 查表键值构造方法、微码下发方法、装置及系统 |
WO2015176277A1 (zh) * | 2014-05-22 | 2015-11-26 | 华为技术有限公司 | 一种报文处理方法及装置 |
CN105591914B (zh) * | 2014-10-21 | 2020-07-03 | 中兴通讯股份有限公司 | 一种openflow流表的查表方法和装置 |
CN105515975B (zh) * | 2015-11-24 | 2019-01-04 | 武汉烽火网络有限责任公司 | 面向软件定义网络基于应用层转发的实现方法及系统 |
CN105812179B (zh) * | 2016-03-09 | 2019-02-15 | 中国科学院信息工程研究所 | 一种协议无关转发网络事件处理方法 |
CN107404440B (zh) * | 2016-05-19 | 2021-01-29 | 华为技术有限公司 | 一种转发表项发送方法、报文转发方法及装置 |
CN111865809B (zh) * | 2019-04-30 | 2022-05-03 | 中国科学院声学研究所 | 基于协议无感知转发的设备状态感知方法、系统及交换机 |
CN110601983A (zh) * | 2019-10-15 | 2019-12-20 | 南京信息职业技术学院 | 一种协议无感知源路由转发方法及系统 |
-
2020
- 2020-02-18 CN CN202010100254.6A patent/CN113347090B/zh active Active
-
2021
- 2021-02-03 WO PCT/CN2021/074967 patent/WO2021164546A1/zh active Application Filing
-
2022
- 2022-08-17 US US17/889,701 patent/US20220393978A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013059991A1 (zh) * | 2011-10-25 | 2013-05-02 | 华为技术有限公司 | 数据报文处理方法和系统、报文转发设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2021164546A1 (zh) | 2021-08-26 |
US20220393978A1 (en) | 2022-12-08 |
CN113347090A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105024985B (zh) | 一种报文处理方法及装置 | |
US8638793B1 (en) | Enhanced parsing and classification in a packet processor | |
US11729300B2 (en) | Generating programmatically defined fields of metadata for network packets | |
US11652735B2 (en) | Multicast data packet processing method, and apparatus | |
CN108768866B (zh) | 组播报文跨卡转发方法、装置、网络设备及可读存储介质 | |
Li et al. | Improving SDN scalability with protocol-oblivious source routing: A system-level study | |
WO2019185051A1 (zh) | 一种基于集成流表转发报文的方法及装置 | |
CN106878194B (zh) | 一种报文处理方法和装置 | |
TW201501556A (zh) | 用於唯一枚舉解析樹中的路徑的裝置和方法 | |
JP7397178B2 (ja) | リバースパス転送rpfチェック方法及び装置 | |
CN112953949B (zh) | 一种网络报文的报文头处理方法、装置、设备及存储介质 | |
JP2013511223A (ja) | 反復解析及び分類 | |
CN112929281B (zh) | 基于fpga的网络设备的报文处理方法、装置及设备 | |
CN115088239A (zh) | 用于网络设备的混合固定/可编程报头解析器 | |
WO2012075818A1 (zh) | 报文包头的解析方法、包头解析预处理装置和网络处理器 | |
US9189218B2 (en) | Processing packets by generating machine code from pre-compiled code fragments | |
US10887234B1 (en) | Programmatic selection of load balancing output amongst forwarding paths | |
CN102263700B (zh) | 一种报文收发方法、装置和系统 | |
CN112702254B (zh) | 报文处理方法、装置及电子设备 | |
CN113347090B (zh) | 报文处理方法、转发设备以及报文处理系统 | |
WO2014146571A1 (zh) | 基于网络处理器的报文预处理方法、装置及网络处理器 | |
CN108777654B (zh) | 报文转发方法及路由设备 | |
WO2022100511A1 (zh) | 转发表项的处理方法和装置 | |
US12010015B2 (en) | Egress pipeline with tag manipulation and ESI label push capability | |
US8040882B2 (en) | Efficient key sequencer |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |