CN108616414B - 一种处理报文的方法和服务器 - Google Patents

一种处理报文的方法和服务器 Download PDF

Info

Publication number
CN108616414B
CN108616414B CN201710057690.8A CN201710057690A CN108616414B CN 108616414 B CN108616414 B CN 108616414B CN 201710057690 A CN201710057690 A CN 201710057690A CN 108616414 B CN108616414 B CN 108616414B
Authority
CN
China
Prior art keywords
packet
hardware accelerator
message
unit
processing unit
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
Application number
CN201710057690.8A
Other languages
English (en)
Other versions
CN108616414A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710057690.8A priority Critical patent/CN108616414B/zh
Publication of CN108616414A publication Critical patent/CN108616414A/zh
Application granted granted Critical
Publication of CN108616414B publication Critical patent/CN108616414B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions

Abstract

本申请实施例公开了一种处理报文的方法和服务器,其中,所述处理报文的方法,包括:服务器中的第一硬件加速器获取来自中央处理单元的用于处理第一类型的报文的二进制代码,二进制代码包含的指令序列中的指令为第一硬件加速器的指令集中的指令;第一硬件加速器接收第一报文,并确定第一报文为第一类型的报文;当第一硬件加速器确定第一报文为第一类型的报文时,第一硬件加速器通过执行所述二进制代码对第一报文进行处理。实施本申请实施例,第一报文由第一硬件加速器接收,并对第一报文的类型进行识别后,第一硬件加速器可以根据从中央处理单元获取的处理第一类型的报文的二进制代码对第一报文进行处理,提高了服务器对报文的处理效率。

Description

一种处理报文的方法和服务器
技术领域
本申请涉及数据处理领域,尤其涉及一种处理报文方法和服务器。
背景技术
服务器是一种电子设备,可以为客户用于提供云计算服务,视频服务或者存储服务。图1为服务器的一种结构示意图。如图1所示的服务器100包括:网卡101、兼容x86指令集的中央处理单元102和硬件加速器103。当中央处理单元102通过网卡101获取报文时,中央处理单元102先识别出报文的类型。然后,中央处理单元102可以根据报文的类型,对报文进行处理。例如,中央处理单元102可能将报文识别为第二层(数据链路层,简称L2)的数据报文,第二层的协议报文、第三层(数据链路层,简称L3)的数据报文、第三层的协议报文、第四层(传输层,简称L4)的报文、第五层(会话层,简称,L5)的报文、第六层(表示层,简称L6)的报文或者第七层(应用层,简称L7)的报文。
另外,中央处理单元102识别出报文的类型后,可以将硬件加速器103能够处理的报文发送至硬件加速器103。由硬件加速器103对报文进行处理。上述技术方案中,报文的处理效率不高。
发明内容
本申请实施例提供了一种处理报文的方法和服务器,用于提高报文的处理效率。
第一方面,本申请实施例提供了一种处理报文的方法。所述方法包括:
服务器中的第一硬件加速器获取来自中央处理单元的用于处理第一类型的报文的二进制代码,所述二进制代码包含的指令序列中的指令为所述第一硬件加速器的指令集中的指令,所述服务器包括所述中央处理单元以及所述第一硬件加速器。
所述第一硬件加速器接收第一报文。
所述第一硬件加速器确定所述第一报文为所述第一类型的报文。
当所述第一硬件加速器确定所述第一报文为所述第一类型的报文时,所述第一硬件加速器通过执行所述二进制代码对所述第一报文进行处理。
本申请实施例,第一报文由第一硬件加速器接收,并对第一报文的类型进行识别后,第一硬件加速器可以根据从中央处理单元获取的用于处理第一类型的报文的二进制代码对第一报文进行处理。相对于现有技术中服务器收到的报文需要被中央处理单元识别和处理的技术方案,本申请实施例提高了对报文的处理效率。另外,相对于现有技术中服务器收到的报文需要先被中央处理单元识别,再被中央处理单元发送至硬件加速器进行处理的技术方案来说,本申请实施例提高了对报文的处理效率。
在第一方面可能的实现方式中,在所述服务器中的第一硬件加速器获取来自中央处理单元的用于处理第一类型的报文的二进制代码之前,所述方法还包括:
所述中央处理单元检测所述第一硬件加速器连接到所述服务器。
响应于所述检测,通过第一编译器对第一代码进行编译生成所述二进制代码。
所述中央处理单元向所述第一硬件加速器发送所述二进制代码。
在第一方面可能的实现方式中,在所述中央处理单元检测所述第一硬件加速器连接到所述服务器之前,所述方法还包括:
通过第二编译器对第二代码进行编译生成所述第一代码,所述第二代码是用高级编程语言描述的代码。
在第一方面可能的实现方式中,所述方法还包括:
所述第一硬件加速器接收第二报文。
所述第一硬件加速器确定所述第二报文为第二类型的报文。
当所述第一硬件加速器确定所述第二报文为第二类型的报文时,所述第一硬件加速器将所述第二报文转发至所述中央处理单元。
本申请实施例第一硬件加速器将第二报文发送给中央处理单元,可以降低第一硬件加速器的成本,提高处理第二报文的灵活性。具体来说,第二类型的报文可能是用于计算转发路径的报文。由于技术方面的限制,目前的硬件加速器可能无法对用于计算转发路径的报文进行处理。或者,开发具有处理用于计算转发路径的报文的能力的硬件加速器的成本非常高。中央处理单元则能够以较低的成本对用于计算转发路径的报文进行处理。
在第一方面可能的实现方式中,在所述第一硬件加速器将所述第二报文发转发至所述中央处理单元之后,所述方法还包括:
第二硬件加速器接收来自所述中央处理单元中的第三报文,所述第二报文的净荷中包括所述第三报文,所述第三报文是第三类型的报文,所述服务器包括所述第二硬件加速器;
所述第二硬件加速器对所述第三报文进行处理。
本申请实施例中央处理单元将第三报文发送给第二硬件加速器进行处理可以减轻中央处理单元的负担。另外,通过第二硬件加速器对第三报文进行处理有助于提高第三报文的处理效率。具体来说,第三报文可能是需要进行IPsec处理的报文。中央处理单元和硬件加速器都可以对需要进行IPsec处理的报文进行处理。但是,硬件加速器的处理效率可能高于中央处理单元的处理效率。
第二方面,本申请实施例提供了一种服务器,包括中央处理单元和第一硬件加速器,所述第一硬件加速器包括获取单元,第一接收单元、确定单元以及执行单元;
所述获取单元,用于获取来自所述中央处理单元的用于处理第一类型的报文的二进制代码,所述二进制代码包含的指令序列中的指令为所述第一硬件加速器的指令集中的指令;
所述第一接收单元,用于接收第一报文;
所述确定单元,用于确定所述第一接收单元接收的所述第一报文为所述第一类型的报文;
所述执行单元,用于当所述确定单元确定所述第一报文为所述第一类型的报文时,通过执行所述二进制代码对所述第一报文进行处理。
在第二方面可能的实现方式中,所述中央处理单元包括检测单元、生成单元、第一编译器以及发送单元;
所述检测单元,用于检测所述第一硬件加速器连接到所述服务器;
所述生成单元,用于响应于所述检测单元的所述检测,通过所述第一编译器对第一代码进行编译生成所述二进制代码;
所述发送单元,用于向所述第一硬件加速器发送所述生成单元生成的所述二进制代码。
在第二方面可能的实现方式中,所述中央处理单元还包括第二编译器;
所述第二编译器,用于将第二代码编译为所述第一代码,所述第二代码是用高级语言描述的代码。
在第二方面可能的实现方式中,所述第一硬件加速器还包括转发单元;
所述第一接收单元还用于接收第二报文;
所述确定单元还用于确定所述第一接收单元接收的所述第二报文为第二类型的报文;
所述转发单元,用于当所述确定单元确定所述第二报文为所述第二类型的报文时,将所述第二报文转发至所述中央处理单元。
在第二方面可能的实现方式中,所述服务器还包括第二硬件加速器,所述第二硬件加速器包括第二接收单元和处理单元;
所述第二接收单元,用于在所述转发单元将所述第二报文转发至所述中央处理单元后,接收来自所述中央处理单元中的第三报文,所述第二报文的净荷中包括所述第三报文,所述第三报文是第三类型的报文;
所述处理单元,用于对所述第三报文进行处理。
第三方面,本申请实施例提供了一种处理报文的设备,包括存储器和处理器,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,并且该存储器中存储的指令的执行使得该处理器执行第一方面或第一方面任意的可能的实现方式中的方法。
第四方面,本申请实施例提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
基于以上技术方案,本申请实施例提供的处理报文的方法、服务器和设备中,第一报文由第一硬件加速器接收,并对第一报文的类型进行识别后,第一硬件加速器可以根据从中央处理单元获取的用于处理第一类型的报文的二进制代码对第一报文进行处理。相对于现有技术中服务器收到的报文需要被中央处理单元识别和处理的技术方案,本发明实施例提高了对报文的处理效率。另外,相对于现有技术中服务器收到的报文需要先被中央处理单元识别,再被中央处理单元发送至硬件加速器进行处理的技术方案来说,本发明实施例提高了对报文的处理效率。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是现有技术中一种服务器的结构示意图;
图2是本申请实施例提供的一种服务器的应用场景示意图;
图3是本申请的一个实施例提供的一种处理报文的方法的交互流程示意图;
图4是本申请的另一实施例提供的一种处理报文的方法的交互流程示意图;
图5-a是本申请的一个实施例提供的一种服务器的结构示意图;
图5-b是本申请的另一实施例提供的一种服务器的结构示意图;
图5-c是本申请的另一实施例提供的一种服务器的结构示意图;
图6是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
请参见图2,图2是本申请实施例提供的一种服务器的应用场景示意图。在该实施例中服务器200包括第一硬件加速器210与中央处理单元220。具体实施时,第一硬件加速器210与中央处理单元220相连时,比如,在服务器200可以包括一个主板,中央处理单元220位于主板上,第一硬件加速器210可以位于服务器200中的网卡上,网卡可以插在与主板相连的插槽中。第一硬件加速器210可以从中央处理单元220获取用于处理第一类型的报文的二进制代码,所述二进制代码包含的指令序列中的指令为第一硬件加速器210的指令集中的指令。第一硬件加速器210接收第一报文,并确定第一报文为第一类型的报文;当第一硬件加速器210确定第一报文为第一类型的报文时,第一硬件加速器通过执行二进制代码对第一报文进行处理。
本申请实施例,第一报文由第一硬件加速器接收,并对第一报文的类型进行识别后,第一硬件加速器可以根据从中央处理单元获取的用于处理第一类型的报文的二进制代码对第一报文进行处理。相对于现有技术中服务器收到的报文需要被中央处理单元识别和处理的技术方案,本申请实施例提高了对报文的处理效率。另外,相对于现有技术中服务器收到的报文需要先被中央处理单元识别,再被中央处理单元发送至硬件加速器进行处理的技术方案来说,本申请实施例提高了对报文的处理效率。
图3是本申请实施例公开的一种处理报文的方法的交互流程示意图。图3所示的技术方案是在图2所示的技术方案的基础上进行扩展得到的。具体来说,图3所示的服务器可以用于具体实现图2所示的服务器。图3所示的交换机可以用于具体实现图2所示的交换机。如图3所示,该处理报文的方法可以包括以下步骤。
S301、中央处理单元通过第二编译器对第二代码进行编译生成所述第一代码,第二代码是用高级编程语言描述的代码。
其中,高级编程语言可以是C语言或者JAVA语言。若高级语言采用的是C语言,则第二编译器为C语言编译器。若高级语言采用的是JAVA语言,则第二编译器为JAVA编译器。
举例来说,服务器中的中央处理单元可以是兼容X86指令集的处理器。服务器中可以运行Windows操作系统或者Linux操作系统。可以在操作系统的基础上运行集成开发环境(Integrated Development Environment,IDE)。IDE是用于提供程序开发环境的应用程序。IDE可以包括代码编辑器、编译器、调试器和图形用户界面。例如,IDE中的编译器可以是C语言编译器或者JAVA编译器。
S302、第一硬件加速器与服务器连接。
举例来说,服务器中可以包括主板。主板可以包括多个插槽。主板中的插槽可以是兼容外围部件互连(Peripheral Component Interconnect,PCI)协议的接口,或者兼容工业标准架构(Industry Standard Architecture,ISA)协议的接口。其中,第一硬件加速器可以设置在外置插卡上,比如可以设置在网卡上。中央处理单元可以设置在主板上,网卡可以通过插入插槽与中央处理单元相连。硬件工程师可以将网卡的金手指插入主板的一个插槽。当网卡插入与主板相连的插槽时,第一硬件加速器与服务器相连。
S303、中央处理单元检测到第一硬件加速器连接到服务器。
举例来说,第一硬件加速器通过网卡连接到主板后,中央处理单元可以读取第一硬件加速器的设备标识,确定第一硬件加速器的输入输出地址以及中断请求(InterruptRequest,IRQ)。例如,中央处理单元可以采用即插即用(Plug and Play,PnP)技术对第一硬件加速器进行检测,并为第一硬件加速器分配资源。
S304、响应于所述检测,通过第一编译器对第一代码进行编译生成二进制代码,所述二进制代码包含的指令序列中的指令为所述第一硬件加速器的指令集中的指令。
举例来说,当第一硬件加速器与服务器相连时,中央处理单元可以获取第一硬件加速器的设备标识,当获取第一硬件加速器的设备标识时,中央处理单元还可以确定第一硬件加速器与服务器相连,并且中央处理单元可以根据获取的第一硬件加速器的设备标识确定第一硬件加速器的类型。第一硬件加速器可以是网络处理器(Network Process,NP)、专用集成电路(Application Specific Integrated Circuits,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)和片上系统(System On a Chip,SOC)等。例如,与中央处理单元耦合的存储器中可以预先保存了设备标识与硬件加速器的类型的映射关系。中央处理单元可以通过读取连接到服务器的硬件加速器的设备标识,并访问存储器中保存的设备标识与硬件加速器的类型的映射关系,从而确定连接到服务器的硬件加速器的类型。中央处理单元可以根据第一硬件加速器的类型确定与第一硬件加速器类型对应的第一编译器。具体来说,不同类型的硬件加速器对应不同类型编译器。例如,有的硬件加速器是兼容每秒百万条指令(Million Instructions Per Second,MIPS)指令集的处理器,与该硬件加速器对应的编译器能够将代码编译为兼容MIPS指令集的代码。也就是说,编译后的代码中的指令序列中的指令为MIPS指令集中的指令。再例如,有的硬件加速器是兼容高级精简指令集计算机(Reduced Instruction Set Computing,RISC)微处理器(AdvancedRISC Machines,ARM)指令集的处理器,与该硬件加速器对应的编译器能够将代码编译为兼容ARM指令集的代码。也就是说,编译后的代码中的指令序列中的指令为ARM指令集中的指令。进一步地,与中央处理单元耦合的存储器中可以预先保存了硬件加速器的类型与编译器的映射关系。中央处理单元可以通过确定出的连接到服务器的硬件加速器的类型,并访问存储器中的硬件加速器的类型与编译器的映射关系,从而确定连接到服务器的硬件加速器对应的编译器。
S305、第一硬件加速器接收第一报文。
举例来说,所述第一硬件加速器可以包括网络接口。所述网络接口可以是以太网接口。所述以太网接口可以是光口或者电口。所述第一硬件加速器可以通过网络接口接收所述第一报文。在本申请一些可能的实施方式中,如图3所示,第一硬件加速器可以从交换机获取第一报文。在本申请一些可能的实施方式中,第一报文可以是L2报文或者L3报文等。例如,第一报文可以是以太网帧或者英特网协议(Internet Protocol,IP)报文。
S306、第一硬件加速器确定第一报文为第一类型的报文。
举例来说,所述第一硬件加速器可以根据用于接收所述第一报文的网络接口的类型,确定第一报文的格式。进一步的,所述第一硬件加速器可以根据第一报文的格式,对第一报文进行解析。所述第一硬件加速器可以根据解析的结果,确定所述第一报文的类型。例如,用于接收所述第一报文的网络接口可以是以太网接口。所述第一硬件加速器可以根据以太网接口,确定所述第一报文的格式为以太网协议定义的格式。
具体地,以第一类型的报文为需要执行二层转发的报文为例,若第一报文为以太网帧,且以太网帧中的EtherType的值等于0x0800,则第一硬件加速器可以确定所述第一报文为所述第一类型的报文。
类似的,以第一类型的报文为需要执行三层转发的报文为例,若第一报文为IP报文,且该IP报文中的IP header中的Protocol字段的值等于0x06时,则第一硬件加速器可以确定所述第一报文为所述第一类型的报文。
S307、当第一硬件加速器确定第一报文为第一类型的报文时,所述第一硬件加速器通过执行所述二进制代码对所述第一报文进行处理。
例如,所述第一报文为需要执行三层转发的报文。具体地,所述第一报文为IP报文。所述二进制代码为用于指导三层转发的代码。具体来说,所述二进制代码中可以保存了用于描述目的IP地址字段在IP报文中的位置的信息。另外,所述二进制代码中可以保存了用于描述路由表在所述硬件加速器能够访问的存储器中存储位置的信息。所述第一硬件加速器通过执行所述二进制代码,能够获得用于描述目的IP地址字段在IP报文中的位置的信息。所述第一硬件加速器可以根据上述信息获得所述第一报文中的目的IP地址的值。进一步的,所述第一硬件加速器通过执行所述二进制代码,能够获得用于描述路由表在所述硬件加速器能够访问的存储器中存储位置的信息。所述第一硬件加速器可以根据上述信息获得所述路由器的存储位置。所述第一硬件加速器将所述第一报文中的目的IP地址的值作为查找关键字,在所述路由表中查找能够与所述查找关键字匹配的表项。所述第一硬件加速器根据所述表项,确定用于转发所述第一报文的出接口,并通过所述出接口转发所述第一报文。上述技术方案中,所述第一硬件加速器实现了通过执行所述二进制代码对所述第一报文进行处理。当然,上述的处理方式为一个例子。所述第一硬件加速器也可以执行其他处理。例如,所述第一硬件加速器可以对第一报文进行丢弃、对第一报文进行修改、计算第一报文的校验和,或者,对第一报文进行计数。
本发明实施例,第一报文由第一硬件加速器接收,并对第一报文的类型进行识别后,第一硬件加速器可以根据从中央处理单元获取的用于处理第一类型的报文的二进制代码对第一报文进行处理。相对于现有技术中服务器收到的报文需要被中央处理单元识别和处理的技术方案,本发明实施例提高了对报文的处理效率。另外,相对于现有技术中服务器收到的报文需要先被中央处理单元识别,再被中央处理单元发送至硬件加速器进行处理的技术方案来说,本发明实施例提高了对报文的处理效率。
如图4所示,是本申请实施例公开的另一种处理报文的方法的流程示意图。图4所示的技术方案是在图3所示的技术方案的基础上进行扩展得到的。在该实施例中服务器可以包括:第一硬件加速器、第二硬件加速器和中央处理单元。
需要说明的是,图4中S401至S407与图3中S301至S307相同,参照前面的描述,这里不再赘述,图4所示处理报文的方法与图3所示处理报文的方法的区别在于,还包括如下步骤:
S408、第一硬件加速器接收第二报文。
S408具体实现时,可以参考实施例对S305的描述,此处不再赘述。
S409、第一硬件加速器确定第二报文为第二类型的报文。
其中,第二类型的报文可以是L4、L5、L6或者L7报文,可以根据需要由中央处理单元进行设定。比如,第二报文可以是以太网帧或者IP报文。第二类型的报文可以是用于转发路径计算的报文、用于性能测量的报文、或者用于时钟同步的报文。
举例来说,当所述第二报文是以太网帧时,第二类型的报文可以是地址解析协议(Address Resolution Protocol,ARP)报文。当第二报文中的EtherType的值等于0x0806时,第一硬件加速器可以确定第二报文是ARP报文。当所述第二报文是以太网帧时,所述第二类型的报文还可以是操作、管理和维护(Operation,Administration and Maintenance,OAM)报文。当所述第二报文中的EtherType的值等于0x8902时,所述第一硬件加速器可以确定所述第二报文是OAM报文。当所述第二报文是以太网帧时,所述第二类型的报文可以是电气和电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)1588报文。当所述第二报文中的EtherType的值等于0x88F7时,所述第一硬件加速器可以确定所述第二报文是IEEE1588报文。当所述第二报文是IP报文时,所述第二类型的报文可以是外部网关协议(Exterior Gateway Protocol,EGP)消息。当所述第二报文中的IP header中的Protocol字段的值等于0x08时,所述第一硬件加速器可以确定所述第二报文是EGP消息。
S409具体实现时,可以参考实施例对S305的描述,此处不再赘述。
S410、当第一硬件加速器确定第二报文为第二类型的报文时,第一硬件加速器将第二报文转发至中央处理单元。
可选的,在本申请一些可能的实施方式中,服务器还可以包括第二硬件加速器,如图4所示,处理报文的方法还可以包括如下步骤:
S411、中央处理单元向第二硬件加速器发送第三报文,第二报文的净荷中包括所述第三报文,第三报文是第三类型的报文。
其中,第三报文可以携带在第二报文中,例如,第三报文携带在第二报文的净荷中。第三类型的报文可以是需要进行四层处理、五层处理、六层处理或者七层处理的报文,例如第三类型报文可以是需要进行因特网协议安全协议(IP Security,IPsec)处理、需要进行深度报文检测(Deep Packet Inspection,DPI)处理或者需要进行网络地址转换(Network Address Translation,NAT)处理的报文。
S412、第二硬件加速器对第三报文进行处理。
可以理解的是,第二硬件加速器也可以从中央处理单元获取处理第三报文的二进制代码,所述二进制代码包含的指令序列中的指令为所述第二件加速器的指令集中的指令。
本发明实施例中央处理单元将第三报文发送给第二硬件加速器进行处理可以减轻中央处理单元的负担。另外,通过第二硬件加速器对第三报文进行处理有助于提高第三报文的处理效率。具体来说,第三报文可能是需要进行IPsec处理的报文。中央处理单元和硬件加速器都可以对需要进行IPsec处理的报文进行处理。但是,硬件加速器的处理效率可能高于中央处理单元的处理效率。
请参阅图5-a,图5-a是本申请实施例公开的一种服务器500,服务器500可以用于实现图2、图3或者图4所示的服务器。关于服务器500的具体实现方式,可以参考图2、图3或者图4对应的实施例中的描述。具体地,图5-a中所示的服务器500包括第一硬件加速器510和中央处理单元520。其中,第一硬件加速器510包括:获取单元、第一接收单元、确定单元和执行单元。获取单元,用于获取来自中央处理单元的用于处理第一类型的报文的二进制代码,所述二进制代码包含的指令序列中的指令为第一硬件加速器的指令集中的指令;第一接收单元,用于接收第一报文;确定单元,用于确定第一接收单元接收的所述第一报文为所述第一类型的报文;执行单元,用于当确定单元确定第一报文为第一类型的报文时,通过执行所述二进制代码对第一报文进行处理。
其中,获取单元可以是光模块,在本申请一些可能的实施方式中,第一硬件加速器510与中央处理单元520可以通过外设部件快速互连(Peripheral ComponentInterconnect Express,PCIE)接口相连。
可选的,在本申请一些可能的实施方式中,第一硬件加速器510可以是:NP、ASIC、FPGA和SOC中的至少一种。
可选的,在本申请一些可能的实施方式中,第一类型的报文可以根据需要进行设定,只要是第一硬件加速器510能够处理的报文都可以作为第一类型的报文。
可选的,在本申请一些可能的实施方式中,第一硬件加速器510还可以用于,在检测出非法报文时,丢弃非法报文。
可选的,在本申请一些可能的实施方式中,如图5-b所示,中央处理单元可以包括检测单元、生成单元、第一编译器以及发送单元;检测单元,用于检测第一硬件加速器连接到所述服务器;生成单元,用于响应于检测单元的所述检测,通过第一编译器对第一代码进行编译生成二进制代码;发送单元,用于向第一硬件加速器发送生成单元生成的所述二进制代码。
可选的,在本申请一些可能的实施方式中,如图5-c所示,中央处理单元还可以包括第二编译器;第二编译器,用于将第二代码编译为第一代码,第二代码是用高级语言描述的代码。
可选的,在本申请一些可能的实施方式中,第一硬件加速器还可以包括转发单元;第一接收单元还用于接收第二报文;确定单元还用于确定所述第一接收单元接收的所述第二报文为第二类型的报文;转发单元,用于当所述确定单元确定所述第二报文为所述第二类型的报文时,将所述第二报文转发至所述中央处理单元。
可选的,在本申请一些可能的实施方式中,服务器还可以包括第二硬件加速器,第二硬件加速器包括第二接收单元和处理单元;第二接收单元,用于在转发单元将第二报文转发至所述中央处理单元后,接收来自所述中央处理单元中的第三报文,第二报文的净荷中包括第三报文,第三报文是第三类型的报文;处理单元,用于对第三报文进行处理。
本发明实施例,第一报文由第一硬件加速器接收,并对第一报文的类型进行识别后,第一硬件加速器可以根据从中央处理单元获取的用于处理第一类型的报文的二进制代码对第一报文进行处理。相对于现有技术中服务器收到的报文需要被中央处理单元识别和处理的技术方案,本发明实施例提高了对报文的处理效率。另外,相对于现有技术中服务器收到的报文需要先被中央处理单元识别,再被中央处理单元发送至硬件加速器进行处理的技术方案来说,本发明实施例提高了对报文的处理效率。另外,第一硬件加速器将第二报文发送给中央处理单元,可以降低第一硬件加速器的成本,提高处理第二报文的灵活性。另外,通过第二硬件加速器对第三报文进行处理有助于提高第三报文的处理效率。
请参阅图6,为本申请实施例提供的一种电子设备600,包括:处理器601、存储器602、通信接口603、第一硬件加速器604和总线605。
其中,通信接口603用于与交换机等终端进行通信,比如从交换机获取报文等操作。
处理器601、存储器602、通信接口603和第一硬件加速器604通过总线605耦合连接。其中,所述存储器602用于存储计算机可执行程序代码,所述可执行程序代码包括指令;当所述处理器601执行所述指令时,所述指令执行本申请方法实施例的方法,可以参考图3中301至307的方法。在本申请一些可能的实施方式中,电子设备还可以包括第二硬件加速器,工作流程可以参考图4中S401至S412以及上述方法实施例中各步骤执行过程对应的描述,在此不再赘述。
基于同一构思,本申请实施例中提供的电子设备解决问题的原理与本申请方法实施例中的处理报文的方法相似,因此该电子设备的实施可以参见上述方法的实施,为简洁描述,在这里不再赘述。
本申请实施例中,第一报文由第一硬件加速器接收和确认后,由第一硬件加速器根据从中央处理单元获取的用于处理第一报文的二进制代码直接进行处理,相对于现有技术中第一报文需要经中央处理单元中转后才由第一硬件加速器的技术方案来说,本申请实施例提高了对报文的处理效率。
本申请实施例还提供了一种计算机存储介质,其中,该计算机存储介质可存储有程序,所述程序执行时包括上述方法实施例中记载的任意一种处理报文的方法的部分或全部步骤。
本申请实施例还提供了一种应用程序,其中,该应用程序用于在运行时执行本申请实施例所述的一种处理报文的方法。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的介质。

Claims (6)

1.一种处理报文的方法,其特征在于,所述方法包括:
中央处理单元通过第二编译器对第二代码进行编译生成第一代码,所述第二代码是用高级编程语言描述的代码;
所述中央处理单元检测第一硬件加速器连接到服务器;
响应于所述检测,通过第一编译器对第一代码进行编译生成二进制代码;
所述中央处理单元向所述第一硬件加速器发送所述二进制代码;
所述服务器中的所述第一硬件加速器获取来自所述中央处理单元的用于处理第一类型的报文的二进制代码,所述二进制代码包含的指令序列中的指令为所述第一硬件加速器的指令集中的指令,所述服务器包括所述中央处理单元以及所述第一硬件加速器;
所述第一硬件加速器接收第一报文;
所述第一硬件加速器确定所述第一报文为所述第一类型的报文;
当所述第一硬件加速器确定所述第一报文为所述第一类型的报文时,所述第一硬件加速器通过执行所述二进制代码对所述第一报文进行处理。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一硬件加速器接收第二报文;
所述第一硬件加速器确定所述第二报文为第二类型的报文;
当所述第一硬件加速器确定所述第二报文为第二类型的报文时,所述第一硬件加速器将所述第二报文转发至所述中央处理单元。
3.如权利要求2所述的方法,其特征在于,在所述第一硬件加速器将所述第二报文发转发至所述中央处理单元之后,所述方法还包括:
第二硬件加速器接收来自所述中央处理单元中的第三报文,所述第二报文的净荷中包括所述第三报文,所述第三报文是第三类型的报文,所述服务器包括所述第二硬件加速器;
所述第二硬件加速器对所述第三报文进行处理。
4.一种服务器,其特征在于,包括中央处理单元和第一硬件加速器,所述第一硬件加速器包括获取单元,第一接收单元、确定单元以及执行单元;所述中央处理单元包括检测单元、生成单元、第一编译器、发送单元以及第二编译器;
所述获取单元,用于获取来自所述中央处理单元的用于处理第一类型的报文的二进制代码,所述二进制代码包含的指令序列中的指令为所述第一硬件加速器的指令集中的指令;
所述第一接收单元,用于接收第一报文;
所述确定单元,用于确定所述第一接收单元接收的所述第一报文为所述第一类型的报文;
所述执行单元,用于当所述确定单元确定所述第一报文为所述第一类型的报文时,通过执行所述二进制代码对所述第一报文进行处理;
所述检测单元,用于检测所述第一硬件加速器连接到所述服务器;
所述生成单元,用于响应于所述检测单元的所述检测,通过所述第一编译器对第一代码进行编译生成所述二进制代码;
所述发送单元,用于向所述第一硬件加速器发送所述生成单元生成的所述二进制代码;
所述第二编译器,用于将第二代码编译为所述第一代码,所述第二代码是用高级语言描述的代码。
5.如权利要求4所述的服务器,其特征在于,所述第一硬件加速器还包括转发单元;
所述第一接收单元还用于接收第二报文;
所述确定单元还用于确定所述第一接收单元接收的所述第二报文为第二类型的报文;
所述转发单元,用于当所述确定单元确定所述第二报文为所述第二类型的报文时,将所述第二报文转发至所述中央处理单元。
6.如权利要求5所述的服务器,其特征在于,所述服务器还包括第二硬件加速器,所述第二硬件加速器包括第二接收单元和处理单元;
所述第二接收单元,用于在所述转发单元将所述第二报文转发至所述中央处理单元后,接收来自所述中央处理单元中的第三报文,所述第二报文的净荷中包括所述第三报文,所述第三报文是第三类型的报文;
所述处理单元,用于对所述第三报文进行处理。
CN201710057690.8A 2017-01-26 2017-01-26 一种处理报文的方法和服务器 Active CN108616414B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710057690.8A CN108616414B (zh) 2017-01-26 2017-01-26 一种处理报文的方法和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710057690.8A CN108616414B (zh) 2017-01-26 2017-01-26 一种处理报文的方法和服务器

Publications (2)

Publication Number Publication Date
CN108616414A CN108616414A (zh) 2018-10-02
CN108616414B true CN108616414B (zh) 2021-12-03

Family

ID=63658140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710057690.8A Active CN108616414B (zh) 2017-01-26 2017-01-26 一种处理报文的方法和服务器

Country Status (1)

Country Link
CN (1) CN108616414B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111371736B (zh) * 2018-12-26 2022-12-06 中兴通讯股份有限公司 iOAM信息处理方法、装置及计算机可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732175B1 (en) * 2000-04-13 2004-05-04 Intel Corporation Network apparatus for switching based on content of application data
CN103986585B (zh) * 2014-05-13 2018-03-16 新华三技术有限公司 报文预处理方法及其装置
US9769065B2 (en) * 2015-05-06 2017-09-19 Telefonaktiebolaget Lm Ericsson (Publ) Packet marking for L4-7 advanced counting and monitoring
CN105245398A (zh) * 2015-09-07 2016-01-13 上海交通大学 面向海量loc信号处理的多通道并行检测系统
CN105786618B (zh) * 2016-02-24 2019-06-18 华为技术有限公司 加速器网络中路由报文的方法和装置

Also Published As

Publication number Publication date
CN108616414A (zh) 2018-10-02

Similar Documents

Publication Publication Date Title
US11411828B2 (en) Host network analyzer
CN110351156B (zh) 一种测试方法和装置
CN111131037B (zh) 基于虚拟网关的数据传输方法、装置、介质与电子设备
US20120300642A1 (en) Accelerating Data Packet Parsing
CN111831538B (zh) 调试方法、装置以及存储介质
US9110694B2 (en) Data flow affinity for heterogenous virtual machines
WO2017000593A1 (zh) 报文处理方法及装置
KR101649819B1 (ko) 네트워크 가상화를 가속화하는 기술
JP2018519604A (ja) マルウェアの検出
CN113691460B (zh) 基于负载均衡的数据传输方法、装置、设备及存储介质
US20230208721A1 (en) Determining network topology based on packet traffic
US20220393908A1 (en) Message Encapsulation Method and Apparatus, and Message Decapsulation Method and Apparatus
US20130223445A1 (en) Stateful NAT64 Function in a Distributed Architecture
CN114629816B (zh) 公网ip网络状态探测方法及系统
CN108616414B (zh) 一种处理报文的方法和服务器
CN108737239B (zh) 一种报文转发方法及装置
CN112202798B (zh) 数据的协议转化方法、系统、电子设备及存储介质
US20150212914A1 (en) Methods, systems, and computer readable media for testing network devices using simulated application traffic
CN114363432A (zh) 获取报文头信息、生成报文的方法、设备及存储介质
US11729254B2 (en) Patternless prompt detection of command completion
Kawashima et al. A generic and efficient local service function chaining framework for user VM-dedicated micro-VNFs
CN115296956B (zh) 一种内核的隧道转发方法、装置、电子设备及存储介质
CN114827655B (zh) 内容存储转发方法及装置、电子设备、存储介质
US20230060132A1 (en) Coordinating data packet processing between kernel space and user space
WO2024021588A1 (zh) 一种基于udf的流量卸载方法及系统

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