CN103731377A - 处理报文的方法与设备 - Google Patents
处理报文的方法与设备 Download PDFInfo
- Publication number
- CN103731377A CN103731377A CN201310754645.XA CN201310754645A CN103731377A CN 103731377 A CN103731377 A CN 103731377A CN 201310754645 A CN201310754645 A CN 201310754645A CN 103731377 A CN103731377 A CN 103731377A
- Authority
- CN
- China
- Prior art keywords
- message
- processing
- descriptor
- sign
- handling procedure
- 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.)
- Granted
Links
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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- 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/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供处理报文的方法和设备,包括:获取第一报文;确定第一表的标识;确定对应于该第一表的标识的该第一表的描述信息;根据该第一表的描述信息和该第一表,对该第一报文进行第一处理,其中该第一表为约定表;根据该第一表的描述信息,确定下一表的标识,其中该下一表的标识对应于下一表的描述信息;根据该下一表的描述信息和下一表,对进行该第一处理后的该第一报文进行处理,其中该下一表为约定表或流表。本发明结合了约定表的高性能和流表的灵活性,有助于兼顾转发设备的报文处理性能以及转发设备的可编程性。
Description
技术领域
本发明实施例涉及信息技术领域。更具体地,涉及处理报文的方法与设备。
背景技术
传统的报文的转发过程完全是由交换机/路由器控制的。交换机/路由器通过传统转发动作表对获取到的报文进行控制。该传统的转发动作表的内容都是根据转发面微码和控制面约定好的格式确定的。也就是说,传统的转发动作表的每一个域中的内容都是转发面微码和控制面驱动约定好的。传统的转发动作表可以是桥动作表(英文:bridge table)或者路由动作表(英文:route table)。完全由交换机/路由器控制实现的对报文的控制过程具有性能高、技术成熟的优点。但是,完全由交换机/路由器控制实现的对报文的控制过程不够灵活,不能较好地适应业务需求的变化。
随着技术的发展,出现了开放流(OpenFlow)技术。开放流技术将原来完全由交换机/路由器控制的转发过程转化为由OpenFlow交换机(OpenFlowSwitch)和控制器(Controller)共同控制。OpenFlow技术实现了数据转发和路由控制的分离。OpenFlow技术采用多级流表的流水线完成报文从输入到输出的转发处理过程。具体来说,流表由多个流表项组成,每个流表项对应一个转发规则。报文的目的端口是通过查询流表来获得的。流表包括匹配域(Match Field)、指令(Instruction)域以及计数器(Counter)域。匹配域用于匹配报文。指令域用于对报文进行处理。其中处理可以是修改报文、封装报文、解封装报文或者转发报文。通过OpenFlow技术实现的对报文的控制过程能够灵活地适应业务需求的变化。但是OpenFlow技术性能低,技术不成熟。
发明内容
本发明实施例提供处理报文的方法和设备,有助于使得对报文的处理兼顾业务性能的需求和业务灵活性的需求。
第一方面,本发明实施例提供一种处理报文的方法,该方法包括:获取第一报文;确定第一表的标识;确定对应于该第一表的标识的该第一表的描述信息;根据该第一表的描述信息和该第一表,对该第一报文进行第一处理,其中该第一表为约定表;根据该第一表的描述信息,确定下一表的标识,其中该下一表的标识对应于下一表的描述信息;根据该下一表的描述信息和下一表,对进行该第一处理后的该第一报文进行处理,其中该下一表为约定表或流表。
结合第一方面,在第一种可能的实现方式中,该根据该第一表的描述信息和第一表,对该第一报文进行第一处理,包括:根据该第一表的描述信息,确定第一处理程序和该第一表;根据该第一处理程序以及该第一表,对该第一报文进行第一处理。
结合第一种可能的实现方式,在第二种可能的实现方式中,该根据该第一处理程序以及该第一表,对该第一报文进行第一处理,包括:确定该第一表的表项;根据该第一表的表项,使用该第一处理程序对该第一报文进行该第一处理。
结合第一种可能的实现方式或第二种可能的实现方式,在第三种可能的实现方式中,该第一表的描述信息包括:该第一处理程序的标识符、该第一表的类型、该第一表的基址、该第一表的查找关键字的表述信息和该第一表的动作表项长度。
结合第一方面或上述任一种可能的实现方式,在第四种可能的实现方式中,该根据该第一表的描述信息,确定下一表的标识,包括:根据该第一表的表项,确定该下一表的标识。
第二方面,本发明实施例提供一种设备,该设备包括:获取单元,用于获取第一报文;第一确定单元,用于确定第一表的标识;第二确定单元,用于确定对应于该第一表的标识的该第一表的描述信息;第一处理单元,用于根据该第二确定单元确定的该第一表的描述信息和该第一表,对该第一报文进行第一处理,其中该第一表为约定表;第三确定单元,用于根据该第一表的描述信息,确定下一表的标识,其中该下一表的标识对应于该下一表的描述信息;第二处理单元,用于根据该第三确定单元确定的该下一表和该下一表的描述信息,对进行该第一处理后的该第一报文进行处理,其中该下一表为约定表或流表。
结合第二方面,在第一种可能的实现方式中,该第一处理单元,具体用于根据该第一表的描述信息,确定第一处理程序和该第一表,根据该第一处理程序以及该第一表,对该第一报文进行第一处理。
结合第一种可能的实现方式,在第二种可能的实现方式中,该第一处理单元,具体用于确定该第一表的表项,根据该第一表的表项,使用该第一处理程序对该第一报文进行该第一处理。
结合第二方面或上述任一种可能的实现方式,在第三种可能的实现方式中,该第三确定单元,具体用于该第一表的表项,确定该下一表的标识。
根据本发明实施例,报文的处理程序可以在约定表和约定表之间、约定表和流表之间或者流表和流表之间进行跳转。这样,可以兼顾约定表转发性能高的优点和流表可以灵活地适应业务变化的需求的优点。本发明结合了约定表的高性能和流表的灵活性,有助于兼顾转发设备的报文处理性能以及转发设备的可编程性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例提供的处理报文的方法的示意性流程图。
图2是根据本发明实施例提供的处理报文的方法的示意性流程图。
图3是根据本发明实施例提供的处理报文的方法的示意图。
图4是根据本发明实施例提供的设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明实施例提供的技术方案中涉及到约定表。约定表的表项中包括为处理程序提供的参数。处理程序根据约定表的表项对报文进行处理。举例来说,约定表可以是传统的完全由交换机/路由器控制的报文的转发过程中所使用的表。例如,约定表可以是BE或者RE。为了方便描述,本发明将根据约定表对报文的处理进行控制的过程简称为“约定表处理流水线”。约定表处理流水线中每一级(英文:stage)对报文的处理简称为“约定表处理进程”。
本实施例提供的技术方案中涉及到OpenFlow技术。关于OpenFlow技术涉及的术语(包括但不限于流表、流表项、指令和动作),可以参考开放流交换机说明书第1.4.0版(英文:OpenFlow Switch Specification version1.4.0)。为便于阅读,此处对流表进行说明。流表(英文:flow table)是OpenFlow技术涉及的一种表。具体来说,流表包括匹配域、指令域以及计数器域。匹配域用于匹配报文。指令域用于对报文进行处理。所述处理可以是修改报文、封装报文、解封装报文、丢弃报文、转发报文或者对报文进行计数操作。换句话说,流表中不仅可以包括为处理程序提供的参数,也可以包括处理程序本身(处理程序可以是指令或者动作)。为了方便描述,本发明将根据流表对报文的处理进行控制过程称为“流表处理流水线”。流表处理流水线中每一级对报文的处理简称为“流表处理进程”。如果报文需要通过约定表处理进程和流表处理进程进行处理,则将这样的处理流程统称为“混合处理流水线”。
图1是根据本发明实施例提供的处理报文的方法的示意性流程图。该方法的执行主体可以网络装置。具体来说,执行主体可以是网络装置中的网络处理器(英文:network processer,简称:NP)。具体来说,可以是NP中的查找引擎。该网络设备可以是路由器、网络交换机、防火墙、负载均衡器或者数据中心。该网络交换机可以是OpenFlow交换机。
101,获取第一报文。
举例来说,101具体实现时可以接收所述第一报文,或者生成所述第一报文。
102,确定第一表的标识。
举例来说,102具体实现时可以通过表获得所述第一表的标识。所述表中携带所述第一表的标识。102具体实现时也可以是默认的代码指示所述执行主体根据所述第一表的描述信息以及所述第一表对所述第一报文进行处理。所述执行主体中存储了所述默认的代码。
103,确定对应于该第一表的标识的该第一表的描述信息。
举例来说,所述第一表的描述信息可以存储在一个数组中。103具体实现时可以以所述第一表的标识为索引,通过访问所述数组获得所述第一表的描述信息。
举例来说,所述执行主体的存储器包括用于存储计算机程序的存储区域以及用于存储数据的存储区域。所述第一表的描述信息存储在用于存储数据的存储区域。举例来说,所述第一表的描述信息是控制器生成的。所述控制器通过控制通道将所述第一表的描述信息发送至所述执行主体。
104,根据该第一表的描述信息和该第一表,对该第一报文进行第一处理。
举例来说,该第一表为约定表。
可替换地,该第一表为流表。
105,根据该第一表的描述信息,确定下一表的标识,其中该下一表的标识对应于该下一表的描述信息。
106,根据该下一表的描述信息和下一表,对进行该第一处理后的该第一报文进行处理,其中该下一表为约定表或流表。
根据图1所示的方法,执行约定表对应的第一处理后,处理程序可以根据相应的下一表的标识跳转到约定表处理进程或流表处理进程以实现对报文的后续处理。也就是说,处理程序可以在约定表和流表之间进行跳转。这样,可以兼顾约定表处理性能高的特点和流表处理灵活的特点,提高对报文的处理效率。此外,用于处理报文的下一表对应的下一表的标识是根据第一表的描述信息确定的。第一表的描述信息可以而不是微码进行控制的。这样,当需要改变处理报文的下一表时,可以通过修改下一表的标识实现,而不需要通过修改微码实现。例如,处理报文的表为约定表A。在约定表A完成对报文的处理后,需要使用约定表B对该报文进行处理。如果希望在约定表A完成对该报文的处理后改为由约定表C对该报文进行处理,则可以将下一表的标识从对应于约定表B的表的标识修改为对应于约定表C的表的标识即可。这样,当需要改变下一表时,可以快速确定需要修改的位置并通过修改下一表的标识方便地改变下一表。此外,修改下一表的标识的工作量要远小于修改微码的工作量。
图2是根据本发明实施例提供的处理报文的方法的示意性流程图。图2所示的方法是图1所示的方法的一个具体实施例。
201,获取第一报文。
本说明书中第一报文中的“第一”中的“第一”仅是为了区分报文,并不是对报文的限制。因此,可以理解,这个第一报文可以是混合处理流水线中的任一个报文。也就是说,第一报文可以是完成了一次或者多次处理的报文,也可以是从其他设备接收到的报文。
202,确定第一表的标识。
203,确定对应于该第一表的标识的该第一表的描述信息。
通过执行步骤204至步骤206,可以实现根据该第一表的描述信息和第一表,对第一报文进行第一处理。
204,根据该第一表的描述信息,确定第一处理程序和该第一表。
举例来说,该第一表为约定表。
可替换地,该第一表为流表。
该第一表的描述信息可以包括:第一处理程序的标识符、该第一表的类型、该第一表的基址、该第一表的查找关键字(英文:search key)的描述信息和第一表的动作表项长度。该第一表的查找关键字的描述信息用于描述第一匹配表的查找关键字。举例来说,该第一表的类型包含两部分信息:第一部分表示该表为约定表,第二部分表示表的匹配类型,可以是任意掩码匹配(英文:access control list,简称:ACL)表、最长前缀匹配(英文:longestprefix match,简称:LPM)表、精确匹配(英文:exact match,简称:EM)表、直接访问(英文:direct)表等。
具体地,通过第一表的描述信息中的第一处理程序的标识符,确定第一处理程序。第一表为约定表。第一表与该第一处理程序对应。举例来说,不同的约定表对应不同的处理程序。第一处理程序根据第一表的描述信息中的第一表的基址、第一表的类型、第一表的查找关键字的表述信息访问第一表。
通过执行步骤205和步骤,可以实现在确定了第一表后,根据该第一处理程序以及该第一表,对该第一报文进行第一处理。
205,使用该第一处理程序确定该第一表的表项。
举例来说,所述第一处理程序可以根据所述第一表的查找关键字的表述信息确定所述查找关键字。所述第一表的查找关键字的表述信息用于描述所述查找关键字的获取方式。所述查找关键字可以包括所述第一报文的报文头中的字段。所述查找关键字可以包括用于接收所述第一报文的端口。
具体地,在确定了该第一表后,该第一处理程序向该第一表下发所述查找关键字以查找所述第一表的表项。
206,根据该第一表的表项,使用该第一处理程序对该第一报文进行第一处理。
具体地,第一处理程序在对第一报文进行第一处理时,使用第一表的表项内容作为报文处理的输入参数。也就是说,第一处理程序是根据第一表的表项对该第一报文进行处理的。其中该第一处理程序可以用于计算传输控制协议(英文:Transmission Control Protocol,简称:TCP)头的校验和(英文:checksum)。该第一处理程序也可以用于执行网络地址翻译(英文:networkaddress translation,简称:NAT)。具体来说,该第一报文可以是来自私网的网际协议(英文:internet protocol,简称:IP)报文。该第一处理程序可以用于将所述IP报文的IP头中的源IP地址和源端口进行修改以生成一个新的IP报文。该新的IP报文将被在公网中传输。
下面提供第一实施例作为一个具体的例子对205和206进行描述。
该第一报文是IP报文。该执行主体是NAT装置。该第一表是NAT流表。
位于私网的主机向公网的服务器发送该IP报文。该主机的IP地址为10.1.1.1。该服务器的IP地址为100.1.1.1。所述IP报文携带如下特征信息(参见表1)。
表1特征信息
该NAT装置接收到该IP报文后,根据该第一表的查找关键字的表述信息获取表1所示的特征信息。该NAT装置以该特征信息为查找关键字,在该NAT流表中查找与该特征信息匹配的该第一表的表项。该第一表的表项请参见表2中的NAT流表的表项。其中,50.1.1.1是该NAT装置分配的公网IP地址,100是该NAT装置分配的端口号。
表2NAT表的流表项
该NAT装置根据该第一处理程序对该IP报文进行处理。具体来说,该NAT装置以该NAT流表的表项中的50.1.1.1为该第一处理程序的输入参数,将该IP报文中的源IP地址修改为50.1.1.1。该NAT装置以该NAT流表的表项中的100为该第一处理程序的输入参数,将该IP报文中的源端口修改为100。
207,根据该第一表的描述信息,确定下一表的标识。
207具体实现时可以是根据该第一表的描述信息确定该第一表。访问该第一表以获得该下一表的标识。该第一表中包含该下一表的标识。
具体地,根据该第一表,确定该下一表的标识。举例来说,该第一表中包含该下一表的标识。举例来说,每一个第一表表项都包括一个下一表的标识。下一表的标识用于索引下一表的描述信息。该下一表的描述信息可以是约定表的描述信息,还可以流表的描述信息。对应于第一表的下一表的标识,可以是作为第一表的表项的一个表项域,也可以是在一个独立的下一表的标识表中。
下面提供第二实施例作为一个具体实施例对207进行描述。
第一实施例中表2的表项中还可以包括该下一表的标识。例如,下一表的标识为5。此时NAT流表的表项如表3所示。这样,该NAT装置通过访问该NAT流表的表项获得该下一表的标识。
表3NAT表的流表项
208,根据该下一表的描述信息和该下一表,对进行第一处理后的第一报文进行处理,其中该下一表为约定表或流表。
关于进行第一处理后的第一报文,可以是该第一报文,也可以是其他报文。如果该第一处理对第一报文进行了修改,则进行第一处理后的第一报文是其他报文。如果该第一处理没有对第一报文进行修改,则进行第一处理后的第一报文是该第一报文。
可选的,作为一个实施例,在该下一表为流表的情况下,该流表可以是协议无感知转发(英文:Protocol Oblivious Forwarding,简称:POF)表。也就是说,在第一处理程序对第一报文进行处理时,发现第一报文的协议类型是未知的。此时,可以将第一报文转发到POF表,利用POF技术对完成第一处理的第一报文进行处理。在利用POF表对完成第一处理的第一报文进行处理时,不需要感知报文的类型,对报文的处理通过指定的数据的偏移和长度来进行。
根据图2所示的方法,对报文执行第一表对应的第一处理后,可以根据相应的下一表的标识跳转到约定表处理进程或流表处理进程进行后续处理。也就是说,报文可以在约定表和流表之间进行跳转。这样,可以兼顾约定表处理性能高的特点和流表处理灵活的特点,提高对报文的处理效率。例如,可以在多个约定表处理进程中插入一个流表处理进程,该流表处理进程的匹配项和任何约定表都不同,该流表处理进程完全用于灵活策略控制。插入一个流表处理进程对报文的整体处理性能影响不大,这样即可以保证了性能不会显著降低,也能够提高报文处理的灵活性。特别地,当在约定表处理进程中插入POF表时,可以利用该POF表对未知协议类型的报文进行处理。
可以理解的是,在采用本发明实施例所提供的处理报文的方法时,对于混合处理流水线的第一个表应当是确定的。换句话说,所有报文都从第一个表开始处理。第一个表可以是约定表也可以是流表。在完成了第一个表对应的第一处理后,报文可以根据需要跳转到不同类型的处理进程。
为了帮助更好的理解本发明,将结合图3的具体实施例对本发明进行进一步阐述。需要说明的是,图3所示的实施例仅是为了帮助更好的理解本发明,而不是对本发明的限制。
图3是根据本发明实施例提供的处理报文的方法的示意图。
如图3所示,报文A为接收到的一个报文。标识1是混合处理流水线的第一个表的标识,因此报文A首先需要经过标识1所对应的表的处理。具体地,标识1对应于第一表的描述信息。根据第一表描述信息,确定了第一表和第一处理程序,其中第一表为约定表。第一处理程序利用第一表的表项对报文A的进行处理。第一表的表项N+1中包含的内容是下一表的标识。在本实施例中,下一表是标识3所对应的表。因此,在完成了对报文A的处理后,根据表项N+1的内容,跳转到标识3。然后,根据标识3所对应的第三表描述信息,确定第三处理程序和第三表,其中第三处理程序是包含在第三表中的。也就是说,第三表是即包含处理程序也包含该处理程序所要使用的参数的流表。第三处理程序可以根据第三表中的表项对完成第一处理程序处理的报文A进行处理。在此之后,可以继续根据需要跳转到下一个表中对完成第三处理程序处理的报文A继续进行处理。
图4是根据本发明实施例提供的设备的结构框图。图4所示的设备可以执行图1或图2所示的方法。图4所示的设备400包括获取单元401、第一确定单元402、第二确定单元403、第一处理单元404、第三确定单元405和第二处理单元406。
获取单元401,用于获取第一报文;
第一确定单元402,用于确定第一表的标识。
第二确定单元403,用于确定对应于该第一表的标识的该第一表的描述信息。
第一处理单元404,用于根据第二确定单元403确定的该第一表的描述信息和该第一表,对该第一报文进行第一处理。
举例来说,该第一表为约定表。
可替换地,该第一表为流表。
第三确定单元405,用于根据该第一表的描述信息,确定下一表的标识,其中该下一表的标识对应于该下一表的描述信息。
第二处理单元406,用于根据第三确定单元405确定的该下一表和该下一表的描述信息,对进行该第一处理后的该第一报文进行处理,其中该下一表为约定表或流表。
根据图4所示的设备,报文在执行第一表对应的第一处理后,设备400可以根据相应的下一表的标识控制该报文跳转到约定表处理进程或流表处理进程进行后续处理。也就是说,设备400可以控制报文可以在约定表和流表之间进行跳转。这样,可以兼顾约定表处理性能高的特点和流表处理灵活的特点,提高对报文的处理效率。此外,用于处理报文的下一表是由下一表的标识确定的,而不是微码进行控制的。这样,当需要改变处理报文的下一表时,可以通过修改下一表的标识实现,而不需要通过修改微码实现。当需要改变下一表时,可以快速确定需要修改的位置并通过修改下一表的标识方便地改变下一表。此外,修改下一表的标识的工作量要远小于修改微码的工作量。
进一步,第一处理单元404,具体用于根据该第一表的描述信息,确定第一处理程序和该第一表,根据该第一处理程序以及该第一表,对该第一报文进行第一处理。
进一步,第一处理单元404,具体用于确定该第一表的表项,根据该第一表的表项,使用该第一处理程序对该第一报文进行该第一处理。
进一步,第三确定单元405,具体用于该第一表的表项,确定该下一表的标识。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(简称:ROM,英文:Read-Only Memory)、随机存取存储器(简称:RAM,英文:Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内,因此本发明的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种处理报文的方法,其特征在于,所述方法包括:
获取第一报文;
确定第一表的标识;
确定对应于所述第一表的标识的所述第一表的描述信息;
根据所述第一表的描述信息和所述第一表,对所述第一报文进行第一处理,其中所述第一表为约定表;
根据所述第一表的描述信息,确定下一表的标识,其中所述下一表的标识对应于所述下一表的描述信息;
根据所述下一表的描述信息和所述下一表,对进行所述第一处理后的所述第一报文进行处理,其中所述下一表为约定表或流表。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一表的描述信息和第一表,对所述第一报文进行第一处理,包括:
根据所述第一表的描述信息,确定第一处理程序和所述第一表;
根据所述第一处理程序以及所述第一表,对所述第一报文进行第一处理。
3.如权利要求2所述的方法,其特征在于,所述根据所述第一处理程序以及所述第一表,对所述第一报文进行第一处理,包括:
确定所述第一表的表项;
根据所述第一表的表项,使用所述第一处理程序对所述第一报文进行所述第一处理。
4.如权利要求2或3所述的方法,其特征在于,所述第一表的描述信息包括:所述第一处理程序的标识符、所述第一表的类型、所述第一表的基址、所述第一表的查找关键字的表述信息和所述第一表的动作表项长度。
5.如权利要求1-4中任一项所述的方法,其特征在于,所述根据所述第一表的描述信息,确定下一表的标识,包括:
根据所述第一表的表项,确定所述下一表的标识。
6.一种设备,其特征在于,所述设备包括:
获取单元,用于获取第一报文;
第一确定单元,用于确定第一表的标识;
第二确定单元,用于确定对应于所述第一表的标识的所述第一表的描述信息;
第一处理单元,用于根据所述第二确定单元确定的所述第一表的描述信息和所述第一表,对所述第一报文进行第一处理,其中所述第一表为约定表;
第三确定单元,用于根据所述第一表的描述信息,确定下一表的标识,其中所述下一表的标识对应于所述下一表的描述信息;
第二处理单元,用于根据所述第三确定单元确定的所述下一表和所述下一表的描述信息,对进行所述第一处理后的所述第一报文进行处理,其中所述下一表为约定表或流表。
7.如权利要求6所述的设备,其特征在于,
所述第一处理单元,具体用于根据所述第一表的描述信息,确定第一处理程序和所述第一表,根据所述第一处理程序以及所述第一表,对所述第一报文进行第一处理。
8.如权利要求7所述的设备,其特征在于,
所述第一处理单元,具体用于确定所述第一表的表项,根据所述第一表的表项,使用所述第一处理程序对所述第一报文进行所述第一处理。
9.如权利要求7或8所述的设备,其特征在于,
所述第三确定单元,具体用于所述第一表的表项,确定所述下一表的标识。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310754645.XA CN103731377B (zh) | 2013-12-31 | 2013-12-31 | 处理报文的方法与设备 |
PCT/CN2014/091072 WO2015101113A1 (zh) | 2013-12-31 | 2014-11-14 | 处理报文的方法与设备 |
EP14877145.4A EP3079318B1 (en) | 2013-12-31 | 2014-11-14 | Packet processing method and device |
JP2016543640A JP6308601B2 (ja) | 2013-12-31 | 2014-11-14 | パケット処理方法およびデバイス |
US15/198,010 US10200284B2 (en) | 2013-12-31 | 2016-06-30 | Packet processing method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310754645.XA CN103731377B (zh) | 2013-12-31 | 2013-12-31 | 处理报文的方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103731377A true CN103731377A (zh) | 2014-04-16 |
CN103731377B CN103731377B (zh) | 2017-04-26 |
Family
ID=50455309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310754645.XA Active CN103731377B (zh) | 2013-12-31 | 2013-12-31 | 处理报文的方法与设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10200284B2 (zh) |
EP (1) | EP3079318B1 (zh) |
JP (1) | JP6308601B2 (zh) |
CN (1) | CN103731377B (zh) |
WO (1) | WO2015101113A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015101113A1 (zh) * | 2013-12-31 | 2015-07-09 | 华为技术有限公司 | 处理报文的方法与设备 |
CN105099960A (zh) * | 2014-04-30 | 2015-11-25 | 国际商业机器公司 | 用于实现服务链的方法和装置 |
WO2015184979A1 (zh) * | 2014-06-05 | 2015-12-10 | 华为技术有限公司 | 处理报文、发送信息、接收信息的方法及装置 |
CN106484375A (zh) * | 2015-08-26 | 2017-03-08 | 华为技术有限公司 | 一种指令块加载方法、软交换设备及系统 |
CN108875064A (zh) * | 2018-07-03 | 2018-11-23 | 湖南新实网络科技有限公司 | 基于FPGA的OpenFlow多维数据匹配查找方法 |
CN111901255A (zh) * | 2020-06-10 | 2020-11-06 | 中国电信股份有限公司重庆分公司 | 一种用于网络设备快速包镜像转发的方法和装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559339B (zh) | 2015-09-30 | 2019-02-19 | 华为技术有限公司 | 一种报文处理方法及装置 |
CN107645450B (zh) * | 2017-10-11 | 2019-10-25 | 中国科学技术大学 | 基于协议无感知转发技术的流表虚拟化装置及方法 |
CN110035010A (zh) * | 2019-04-24 | 2019-07-19 | 广州西麦科技股份有限公司 | 匹配域的匹配方法及相关装置 |
US11240154B2 (en) * | 2020-01-14 | 2022-02-01 | Cisco Technology, Inc. | Dynamic hardware forwarding pipeline compression |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020136207A1 (en) * | 2001-03-21 | 2002-09-26 | Nec Corporation | Packet switch and packet memory access method therefor |
CN102843299A (zh) * | 2012-09-12 | 2012-12-26 | 盛科网络(苏州)有限公司 | 基于TCAM实现Openflow多级流表的方法及系统 |
CN103179044A (zh) * | 2011-12-23 | 2013-06-26 | 北京网康科技有限公司 | 流量管理的实现方法、设备和系统 |
CN103401783A (zh) * | 2013-07-26 | 2013-11-20 | 盛科网络(苏州)有限公司 | 实现Openflow多级流表的方法及装置 |
CN103428094A (zh) * | 2013-08-12 | 2013-12-04 | 杭州华三通信技术有限公司 | 开放流OpenFlow系统中的报文转发方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8165146B1 (en) * | 1999-10-28 | 2012-04-24 | Lightwaves Systems Inc. | System and method for storing/caching, searching for, and accessing data |
JP3879594B2 (ja) * | 2001-11-02 | 2007-02-14 | 日本電気株式会社 | スイッチ方法、装置およびプログラム |
US7548928B1 (en) * | 2005-08-05 | 2009-06-16 | Google Inc. | Data compression of large scale data stored in sparse tables |
JP2013141140A (ja) * | 2012-01-05 | 2013-07-18 | Fujitsu Ltd | 通信装置及び通信装置のためのプログラム |
US8891527B2 (en) * | 2012-02-03 | 2014-11-18 | Gigamon Inc. | Systems and methods for packet filtering and switching |
EP2824875B1 (en) * | 2012-04-12 | 2017-08-02 | Huawei Technologies Co., Ltd. | Information receiving and sending methods and apparatuses |
CN103731377B (zh) * | 2013-12-31 | 2017-04-26 | 华为技术有限公司 | 处理报文的方法与设备 |
-
2013
- 2013-12-31 CN CN201310754645.XA patent/CN103731377B/zh active Active
-
2014
- 2014-11-14 JP JP2016543640A patent/JP6308601B2/ja active Active
- 2014-11-14 EP EP14877145.4A patent/EP3079318B1/en not_active Not-in-force
- 2014-11-14 WO PCT/CN2014/091072 patent/WO2015101113A1/zh active Application Filing
-
2016
- 2016-06-30 US US15/198,010 patent/US10200284B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020136207A1 (en) * | 2001-03-21 | 2002-09-26 | Nec Corporation | Packet switch and packet memory access method therefor |
CN103179044A (zh) * | 2011-12-23 | 2013-06-26 | 北京网康科技有限公司 | 流量管理的实现方法、设备和系统 |
CN102843299A (zh) * | 2012-09-12 | 2012-12-26 | 盛科网络(苏州)有限公司 | 基于TCAM实现Openflow多级流表的方法及系统 |
CN103401783A (zh) * | 2013-07-26 | 2013-11-20 | 盛科网络(苏州)有限公司 | 实现Openflow多级流表的方法及装置 |
CN103428094A (zh) * | 2013-08-12 | 2013-12-04 | 杭州华三通信技术有限公司 | 开放流OpenFlow系统中的报文转发方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015101113A1 (zh) * | 2013-12-31 | 2015-07-09 | 华为技术有限公司 | 处理报文的方法与设备 |
US10200284B2 (en) | 2013-12-31 | 2019-02-05 | Huawei Technologies Co., Ltd | Packet processing method and device |
CN105099960A (zh) * | 2014-04-30 | 2015-11-25 | 国际商业机器公司 | 用于实现服务链的方法和装置 |
CN105099960B (zh) * | 2014-04-30 | 2018-03-16 | 国际商业机器公司 | 用于实现服务链的方法和装置 |
WO2015184979A1 (zh) * | 2014-06-05 | 2015-12-10 | 华为技术有限公司 | 处理报文、发送信息、接收信息的方法及装置 |
CN106484375A (zh) * | 2015-08-26 | 2017-03-08 | 华为技术有限公司 | 一种指令块加载方法、软交换设备及系统 |
CN106484375B (zh) * | 2015-08-26 | 2020-02-14 | 华为技术有限公司 | 一种指令块加载方法、软交换设备及系统 |
CN108875064A (zh) * | 2018-07-03 | 2018-11-23 | 湖南新实网络科技有限公司 | 基于FPGA的OpenFlow多维数据匹配查找方法 |
CN108875064B (zh) * | 2018-07-03 | 2021-07-06 | 湖南新实网络科技有限公司 | 基于FPGA的OpenFlow多维数据匹配查找方法 |
CN111901255A (zh) * | 2020-06-10 | 2020-11-06 | 中国电信股份有限公司重庆分公司 | 一种用于网络设备快速包镜像转发的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2017501639A (ja) | 2017-01-12 |
CN103731377B (zh) | 2017-04-26 |
JP6308601B2 (ja) | 2018-04-11 |
US20170201454A1 (en) | 2017-07-13 |
EP3079318A1 (en) | 2016-10-12 |
US20180324095A9 (en) | 2018-11-08 |
US10200284B2 (en) | 2019-02-05 |
EP3079318A4 (en) | 2016-10-12 |
EP3079318B1 (en) | 2018-09-26 |
WO2015101113A1 (zh) | 2015-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103731377A (zh) | 处理报文的方法与设备 | |
US9934270B2 (en) | Source code search engine | |
US9742589B2 (en) | Techniques for realizing service chaining | |
US10037435B2 (en) | Providing secure indexes for searching encrypted data | |
US10516626B1 (en) | Generating configuration data and API for programming a forwarding element | |
US9110884B2 (en) | Message publishing and subscribing method and apparatus | |
CN106878482B (zh) | 网络地址转换方法及装置 | |
US10210193B2 (en) | Ingestion plan based on table uniqueness | |
WO2018000695A1 (zh) | 流量引导的方法和装置 | |
CN106251122A (zh) | 一种工作流处理方法和装置 | |
CN104205745A (zh) | 报文处理的方法与设备 | |
KR101624421B1 (ko) | 이모티콘 추천 방법 및 이모티콘을 추천하는 사용자 단말 | |
US10248437B2 (en) | Enhanced computer performance based on selectable device capabilities | |
US20230198950A1 (en) | Hierarchical data traffic control in network environments | |
CN111782633A (zh) | 数据处理方法、装置及电子设备 | |
CN103166973B (zh) | 协议识别的方法和装置 | |
CN106484375A (zh) | 一种指令块加载方法、软交换设备及系统 | |
JP2016225877A (ja) | サービス提供システム、サービス提供方法、およびサービス提供プログラム | |
US20210141819A1 (en) | Server and method for classifying entities of a query | |
CN113568561B (zh) | 用于信息处理的方法、电子设备和计算机存储介质 | |
US11909641B2 (en) | Forwarding table validation | |
US10540317B2 (en) | Efficient means of combining network traffic for 64Bit and 31 bit workloads | |
US20210019825A1 (en) | Time-Based Watch List Management | |
KR20220124889A (ko) | 스타트업을 위한 투자단계별 투자기관 매칭 방법 및 장치 | |
US9772872B2 (en) | Virtual machine collaborative scheduling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |