首页 / 专利分类库 / 电通信技术 / 报文的处理方法、装置、设备及存储介质

报文的处理方法、装置、设备及存储介质

申请号 CN202211404999.7 申请日 2022-11-10 公开(公告)号 CN118018483A 公开(公告)日 2024-05-10
申请人 中兴通讯股份有限公司; 发明人 焦赵云;
摘要 本 申请 提供一种报文的处理方法、装置、设备及存储介质,涉及通信技术领域,用于实现多核CPU的负载均衡。该方法包括:接收第一报文;解析第一报文,得到第一报文的多个特征参数;基于多个特征参数中的至少一个目标特征参数,生成第一报文的队列信息;根据第一报文的队列信息,从至少两个 硬件 接收队列中确定与第一报文的队列信息相匹配的目标硬件接收队列;通过目标硬件接收队列,将第一报文输出至与目标硬件接收队列耦接的 内核 。
权利要求

1.一种报文的处理方法,其特征在于,包括:
接收第一报文;
解析所述第一报文,得到所述第一报文的多个特征参数;
基于所述多个特征参数中的至少一个目标特征参数,生成所述第一报文的队列信息;
根据所述第一报文的队列信息,从至少两个硬件接收队列中确定与所述第一报文的队列信息相匹配的目标硬件接收队列;
通过所述目标硬件接收队列,将所述第一报文输出至与所述目标硬件接收队列耦接的内核
2.根据权利于要求1所述的方法,其特征在于,所述队列信息为哈希值;所述基于所述多个特征参数中的至少一个目标特征参数,生成所述第一报文的队列信息,包括:
对所述至少一个目标特征参数进行哈希计算,得到所述哈希值。
3.根据权利要求1所述的方法,其特征在于,所述队列信息为第一报文头;所述基于所述多个特征参数中的至少一个目标特征参数,生成所述第一报文的队列信息,包括:
对所述至少一个目标特征参数进行哈希计算,得到哈希值;
根据所述哈希值,为所述第一报文添加所述第一报文头。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述至少一个目标特征参数包括第一报文的源MAC地址、目的MAC地址、虚拟局域网标识VLANID、优先级、以太网类型、源互联网协议IP地址、目标IP地址、源端口号和目的端口号中的至少一项。
5.一种报文的处理装置,其特征在于,包括:
具有多个内核的中央处理器CPU;
至少一个网口,所述网口包括收发器、第一流分类模以及至少两个硬件接收队列;其中,所述第一流分类模块的第一端与所述收发器耦接,所述第一流分类模块的第二端通过所述至少两个硬件接收队列分别与至少两个内核耦接;
所述第一流分类模块被配置为:通过所述收发器接收第一报文;解析所述第一报文,得到所述第一报文的多个特征参数;基于所述多个特征参数中的至少一个目标特征参数,生成所述第一报文的队列信息;基于所述第一报文的队列信息,从所述至少两个硬件接收队列中确定与所述第一报文的队列信息相匹配的目标硬件接收队列;通过所述目标硬件接收队列,将所述第一报文输出至与所述目标硬件接收队列对应的内核。
6.根据权利要求5所述的报文的处理装置,其特征在于,所述队列信息为哈希值;
所述第一流分类模块被配置为基于所述多个特征参数中的至少一个目标特征参数,生成所述第一报文的队列信息,包括:
对所述至少一个目标特征参数进行哈希计算,得到所述哈希值。
7.根据权利要求6所述的报文的处理装置,其特征在于,所述至少一个目标特征参数包括第一报文的源MAC地址、目的MAC地址、虚拟局域网标识VLANID、优先级、以太网类型、源互联网协议IP地址、目标IP地址、源端口号和目的端口号中的至少一项。
8.一种报文的处理装置,其特征在于,包括:
具有多个内核的中央处理器CPU;
至少一个网口,所述网口包括至少两个硬件接收队列,所述至少两个硬件接收队列分别与至少两个内核耦接;
所述报文的处理装置与第一交换芯片耦接,所述第一交换芯片包括至少一个第一端口和至少一个第二端口,所述至少一个第一端口与所述至少一个网口耦接;
所述第一交换芯片被配置为:通过所述第二端口接收第一报文;解析所述第一报文,得到所述第一报文的多个特征参数;对所述至少一个目标特征参数进行哈希计算,得到所述哈希值;根据所述哈希值,为所述第一报文添加所述第一报文头;通过与所述第一报文头相匹配的第一端口,将添加所述第一报文头后的第一报文输出至与所述第一报文头相匹配的第一端口所耦接的网口;
所述网口被配置为根据所述第一报文的第一报文头,从至少两个硬件接收队列中确定与所述第一报文头相匹配的目标硬件接收队列;通过所述目标硬件接收队列,将所述第一报文输出至与所述目标硬件接收队列耦接的内核。
9.根据权利要求8所述的报文的处理装置,其特征在于,所述第一交换芯片还包括至少一个第二流分类模块,所述第二流分类模块与所述第一端口或者所述第二端口耦接;
所述第二流分类模块被配置为:解析输入所述第二流分类模块的第一报文,得到所述第一报文的多个特征参数;对所述至少一个目标特征参数进行哈希计算,得到所述哈希值;
根据所述哈希值,为所述第一报文添加所述第一报文头;输出添加所述第一报文头后的第一报文。
10.根据权利要求9所述的报文的处理装置,其特征在于,所述第一交换芯片集成在所述报文的处理装置内;或者,所述第一交换芯片设置在所述报文的处理装置之外。
11.根据权利要求10所述的报文的处理装置,其特征在于,所述第一交换芯片与第二交换芯片耦接;所述第二交换芯片包括至少一个第三端口和至少一个第四端口,所述至少一个第三端口与所述第一交换芯片至少一个第二端口耦接;
所述第二交换芯片被配置为:通过所述第四端口接收第一报文;为所述第一报文添加第二报文头;将添加所述第二报文头后的第一报文输出至与所述第二报文头相匹配的第三端口所耦接的第二端口。
12.根据权利要求11所述的报文的处理装置,其特征在于,所述第二交换芯片还包括至少一个第三流分类模块,所述第三流分模块与所述第三端口或者所述第四端口耦接;
所述第三流分类模块被配置为解析输入所述第三流分类模块的第一报文,得到所述第一报文的多个特征参数;基于所述第一报文的多个特征参数,为所述第一报文添加第二报文头;输出添加所述第二报文头后的第一报文。
13.根据权利要求8至12任一项所述的报文的处理装置,其特征在于,所述至少一个目标特征参数包括第一报文的源MAC地址、目的MAC地址、虚拟局域网标识VLANID、优先级、以太网类型、源互联网协议IP地址、目标IP地址、源端口号和目的端口号中的至少一项。
14.一种电子设备,其特征在于,包括:处理器和用于存储所述处理器可执行指令的存储器
其中,所述处理器被配置为执行所述指令,使得所述电子设备执行如权利要求1至4中任一项所述的报文的处理方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至4中任一项所述的报文的处理方法。

说明书全文

报文的处理方法、装置、设备及存储介质

技术领域

[0001] 本申请涉及通信技术领域,尤其涉及一种报文的处理方法、装置、设备及存储介质。

背景技术

[0002] 随着通信技术的发展,单核中央处理器(central process unit,CPU)的局限性日益明显,已经不能满足用户对于高性能、大容量的要求。基于此,多核技术应运而生,多核技术是指在一个CPU中集成两个或多个完整的内核,常见的集成有8核至64核。目前多核CPU在使用过程中存在内核的负载不均衡的问题,不能较好地发挥多核CPU的数据处理发明内容
[0003] 本申请提供一种报文的处理方法、装置、设备及存储介质,用于实现多核CPU的负载均衡。
[0004] 为了达到上述目的,本申请采用如下技术方案:
[0005] 第一方面,提供一种报文的处理方法,该方法包括:
[0006] 接收第一报文;
[0007] 解析第一报文,得到第一报文的多个特征参数;
[0008] 基于多个特征参数中的至少一个目标特征参数,生成第一报文的队列信息;
[0009] 根据第一报文的队列信息,从至少两个硬件接收队列中确定与第一报文的队列信息相匹配的目标硬件接收队列;
[0010] 通过目标硬件接收队列,将第一报文输出至与目标硬件接收队列耦接的内核。
[0011] 本申请实施例提供的技术方案中,多核CPU中的内核与硬件接收队列耦接,这样不同硬件接收队列可以将队列信息不同的第一报文分别输出至不同的内核,从而使得多核CPU中每个内核均能够承担对应的的报文的处理任务,而不是由多核CPU中的部分内核承担报文的处理任务,从而实现多核CPU的负载均衡,提高多核CPU的数据处理能力。
[0012] 第二方面,提供一种报文的处理装置,该报文的处理装置包括:具有多个内核的CPU;至少一个网口,网口包括收发器、第一流分类模以及至少两个硬件接收队列;其中,第一流分类模块的第一端与收发器耦接,第一流分类模块的第二端通过至少两个硬件接收队列分别与至少两个内核耦接;第一流分类模块被配置为:通过收发器接收第一报文;解析第一报文,得到第一报文的多个特征参数;基于多个特征参数中的至少一个目标特征参数,生成第一报文的队列信息;基于第一报文的队列信息,从至少两个硬件接收队列中确定与第一报文的队列信息相匹配的目标硬件接收队列;通过目标硬件接收队列,将第一报文输出至与目标硬件接收队列对应的内核。
[0013] 本申请实施例提供的技术方案中,网口包括多个硬件接收队列,每个硬件接收队列与一个内核耦接,从而该网口可以在同一时间将不同报文分别传输至不同的内核,以使得多个内核可以同时处理报文,以提高多核CPU的数据处理能力。另一方面,网口还包括第一流分类模块,第一流分类模块会计算第一报文的队列信息,并基于第一报文的队列信息,通过与该队列信息相匹配的目标硬件接收队列将第一报文传输至对应的内核。这样不同硬件接收队列可以将队列信息不同的第一报文分别输出至不同的内核,从而使得多核CPU中每个内核均能够承担对应的的报文的处理任务,而不是由多核CPU中的部分内核承担报文的处理任务,从而实现多核CPU的负载均衡,提高多核CPU的数据处理能力。
[0014] 第三方面,提供一种报文的处理装置,该报文的处理装置包括:具有多个内核的CPU;至少一个网口,网口包括至少两个硬件接收队列,至少两个硬件接收队列分别与至少两个内核耦接;报文的处理装置与第一交换芯片耦接,第一交换芯片包括至少一个第一端口和至少一个第二端口,至少一个第一端口与至少一个网口耦接;第一交换芯片被配置为:通过第二端口接收第一报文;解析第一报文,得到第一报文的多个特征参数;对至少一个目标特征参数进行哈希计算,得到哈希值;根据哈希值,为第一报文添加第一报文头;通过与第一报文头相匹配的第一端口,将添加第一报文头后的第一报文输出至与第一报文头相匹配的第一端口所耦接的网口;网口被配置为根据第一报文的第一报文头,从至少两个硬件接收队列中确定与第一报文头相匹配的目标硬件接收队列;通过目标硬件接收队列,将第一报文输出至与目标硬件接收队列耦接的内核。
[0015] 本申请实施例提供的技术方案中,在报文的处理装置同时接收到多个报文的情况下,第一交换芯片可以对每个报文上述处理,为每个报文添加每个报文对应的报文头,进而将每个报文输出至与每个报文头相匹配的第一端口所耦接的网口。该网口在接收到多个添加报文头的报文后,根据每个报文的报文头,确定每个报文的报文头相匹配的目标硬件接收队列,进而通过每个报文头相匹配的目标硬件接收队列将每个报文输出至每个报文的报文头相匹配的目标硬件接收队列所耦接的内核,由每个内核处理相应的报文,以使得多核CPU的每个内核可以同时工作,实现了多核CPU的负载均衡,提升了多核CPU对于报文的处理能力。
[0016] 第四方面,提供一种报文的处理装置,包括:
[0017] 接收模块,用于接收第一报文;
[0018] 处理模块,用于解析第一报文,得到第一报文的多个特征参数;基于多个特征参数中的至少一个目标特征参数,生成第一报文的队列信息;根据第一报文的队列信息,从至少两个硬件接收队列中确定与第一报文的队列信息相匹配的目标硬件接收队列;
[0019] 发送模块,用于通过目标硬件接收队列,将第一报文输出至与目标硬件接收队列耦接的内核。
[0020] 第五方面,提供一种电子设备,该电子设备包括存储器和处理器;存储器和处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令。其中,当处理器执行计算机指令时,使得该电子设备执行如上述第一方面所提供的方法。
[0021] 第六方面,提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,当该计算机指令在计算机上运行时,使得计算机执行如上述第一方面所提供的方法。
[0022] 第七方面,提供了一种包含计算机指令的计算机程序产品,当该计算机指令在计算机上运行时,使得计算机执行上述第一方面所提供的方法。
[0023] 上述第四方面至第七方面中任一种可能的实现方式所带来的技术效果可参加第一方面对应实现方式所带来的技术效果,在此不再赘述。附图说明
[0024] 附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0025] 图1为本申请实施例提供的一种报文的处理装置的结构示意图;
[0026] 图2为本申请实施例提供的另一种报文的处理装置的结构示意图;
[0027] 图3为本申请实施例提供的另一种报文的处理装置的结构示意图;
[0028] 图4为本申请实施例提供的另一种报文的处理装置的结构示意图;
[0029] 图5为本申请实施例提供的另一种报文的处理装置的结构示意图;
[0030] 图6为本申请实施例提供的另一种报文的处理装置的结构示意图;
[0031] 图7为本申请实施例提供的另一种报文的处理装置的结构示意图;
[0032] 图8为本申请实施例提供的另一种报文的处理装置的结构示意图;
[0033] 图9为本申请实施例提供的一种报文的处理方法的流程示意图;
[0034] 图10为本申请实施例提供的另一种报文的处理方法的流程示意图;
[0035] 图11为本申请实施例提供的另一种报文的处理方法的流程示意图;
[0036] 图12为本申请实施例提供的一种报文的处理装置的组成示意图;
[0037] 图13为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

[0038] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0039] 需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
[0040] 术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0041] 在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。另外,在对管线进行描述时,本申请中所用“相连”、“连接”则具有进行导通的意义。具体意义需结合上下文进行理解。
[0042] 在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
[0043] 目前CPU核心数目越来越多,从8核到64核都较为常见。CPU也可以集成多个网口,每个网口耦接多个内核。但目前CPU的一个网口是对应一个队列,一个网口对应一个队列意味着同一时间内与该网口耦接的多个内核中只有一个内核进行收发报文处理,无法充分利用多核CPU的性能。
[0044] 虽然近期也出现了支持多个队列的外部组件互联标准(peripheral component interconnect,PCI)智能网卡,可以通过五元组(也即源IP、目的IP、协议类型、源L4端口号、目的L4端口号)进行哈希(Hash)计算得到队列号进行队列分组,以此支持多核CPU进行收发包处理,但存在以下缺陷:一是智能网卡Hash计算的键(key)是固定的,无法按照用户的需求修改key;二是二层报文,如地址解析协议(address resolution protocol,ARP)报文、以太网上的点对点协议(point‑to‑Point protocol over ethernet,PPPOE)报文等,无法进行Hash运算,此外不具有Hash功能的网口的CPU也无法充分发挥多核的优势。如何实现多核CPU的负载均衡是亟待解决的问题。
[0045] 基于此,本申请实施例提供一种报文的处理装置,图1‑图8分别示意出该报文的处理装置的一种结构。本申请实施例中的报文的处理装置可以应用于数据中心服务器、网络处理设备等需要处理大量报文的设备。本申请实施例中的报文的处理设备可以与交换机、无源光网络设备等通信连接,以处理来自于交换机、无源光网络设备等设备的报文。
[0046] 图1为本申请根据示例性实施例提供的一种报文的处理装置的结构示意图。如图1所示,该报文的处理装置1包括CPU10,该CPU10包括多个内核(例如内核11、内核12、内核13、内核14和内核15)和至少一个网口(例如网口21和网口22)。
[0047] 在一些实施例中,内核又称核心(Die),是CPU的重要组成部分,由单晶制成,用以完成所有的计算、接收/存储命令、处理数据等,是数字处理的核心。
[0048] 在一些实施例中,对于至少一个网口中的各个网口,一个网口包括收发器、第一流分类模块以及至少两个硬件接收队列。
[0049] 在一些实施例中,收发器可以是以太网收发器。
[0050] 在一些实施例中,每个硬件接收队列的一端耦接一个内核,另外一端耦接第一流分类模块。
[0051] 在一些实施例中,第一流分类模块的第一端与收发器耦接,第二端通过上述至少两个硬件接收队列分别与至少两个内核耦接。
[0052] 在一些实施例中,上述第一流分类模块被配置为:通过收发器接收第一报文;解析第一报文,得到第一报文的多个特征参数;基于多个特征参数中的至少一个目标特征参数,生成第一报文的队列信息;基于第一报文的队列信息,从至少两个硬件接收队列中确定与第一报文的队列信息相匹配的目标硬件接收队列;通过目标硬件接收队列,将第一报文输出至与目标硬件接收队列对应的内核。可选地,至少一个目标特征参数包括第一报文的源MAC地址、目的MAC地址、虚拟局域网标识VLAN ID、优先级、以太网类型、源互联网协议IP地址、目标IP地址、源端口号和目的端口号中的至少一项。
[0053] 在一些实施例中,在队列信息为哈希值的情况下,上述第一流分类模块被配置为基于多个特征参数中的至少一个目标特征参数,生成第一报文的队列信息,包括:对至少一个目标特征参数进行哈希计算,得到哈希值。
[0054] 应理解,区别于相关技术中仅能用五元组来计算哈希值,本申请实施例中可以根据用户配置以任意的特征参数组合来进行哈希值的计算,从而可以保证任意以太网报文(例如pppoe、arp等二层报文)可以负载均分到不同队列,并且二层报文和三层报文也可以被分配到同一个内核进行处理。
[0055] 在一些实施例中,第一流分类模块中均可以预先存储有第一对应关系,第一对应关系为哈希值与硬件接收队列的标识之间的对应关系,其中,一个硬件接收队列的标识用于唯一指示一个硬件接收队列,例如可以是硬件接收队列的名称。基于此,上述第一流分类模块被配置为基于第一报文的队列信息,从至少两个硬件接收队列中确定与第一报文的队列信息相匹配的目标硬件接收队列,可以具体实现为:基于第一报文的哈希值和第一对应关系,确定与该第一报文的哈希值对应的硬件接收队列的标识,进而将与该硬件接收队列的标识对应的硬件接收队列作为目标硬件接收队列。
[0056] 在一些实施例中,一个网口还可以包括至少两个硬件发送队列。其中,硬件发送队列一端耦接内核,另一端耦接第一流分类模块。硬件发送队列被配置为接收来自于内核的报文,并将该报文传输给第一流分类模块。
[0057] 这样,一个内核同时耦接一个硬件接收队列和一个硬件发送队列,从而一个内核可以处理同一个用户的上行报文和下行报文,以避免该用户的报文出现乱序或者丢包的问题。
[0058] 示例性的,如图1所示,网口21包括收发器211、第一流分类模块212、硬件接收队列213和硬件接收队列214。其中,第一流分类模块212的第一端与收发器211耦接,第一流分类模块212的第二端通过硬件接收队列213与内核11耦接,流分类模块212的第二端还可以通过硬件接收队列214与内核13耦接。
[0059] 继续如图1所示,网口22包括收发器221、第一流分类模块222、硬件接收队列223和硬件接收队列224。第一流分类模块222的第二端通过硬件接收队列223与内核14耦接,第一流分类模块222的第二端还可以通过硬件接收队列224与内核15耦接。
[0060] 结合图1所示的报文的处理装置1,以网口21接收到第一报文、队列信息为哈希值为例,第一流分类模块212通过收发器211接收到第一报文后,对第一报文进行解析,得到第一报文的多个特征参数;根据配置需要从多个特征参数中确定至少一个目标特征参数,进而基于至少一个目标特征参数,生成第一报文的哈希值。然后,第一流分类模块212基于第一报文的哈希值和第一对应关系,从硬件接收队列213和硬件接收队列214中确定出目标硬件接收队列。假设第一流分类模块212基于第一报文的哈希值和第一对应关系确定第一报文的哈希值对应的目标硬件接收队列为硬件接收队列213,则第一流分类模块212通过硬件接收队列213,将第一报文输出至与硬件接收队列213耦接的内核11,由内核11对第一报文进行处理。
[0061] 如此,报文的处理装置1完成了根据一个报文的哈希值对该报文进行分类以及入列。在接收到多个报文的情况下,可以对每个报文进行上述处理,以便于根据每个报文的哈希值将每个报文输出至与每个报文相匹配的内核,由每个内核处理相应的报文,以使得多核CPU的每个内核可以同时工作,实现了多核CPU的负载均衡,提升了多核CPU对于报文的处理能力。
[0062] 图2为本申请实施例提供的另一种报文的处理装置的结构示意图。如图2所示,报文的处理装置1包括CPU10,该CPU10包括多个内核(例如内核11、内核12、内核13、内核14和内核15)、和至少一个网口(例如网口21和网口22)。报文的处理装置1与第一交换芯片30耦接。具体的,第一交换芯片30包括至少一个第一端口与至少一个第二端口,至少一个第一端口与上述至少一个网口一一对应耦接。
[0063] 例如,如图2所示,第一交换芯片30包括第一端口311和第一端口312,以及第二端口321、第二端口322和第二端口323。第一端口311与网口21耦接,第一端口312与网口22耦接。
[0064] 在一些实施例中,在第一交换芯片30可以集成在所述报文的处理装置1内的情形下,第一交换芯片30可以被称为内置交换芯片;或者,在第一交换芯片30还可以设置在所述报文的处理装置1之外的情形下,第一交换芯片30可以被称为外置交换芯片。例如,图2‑图4为第一交换芯片30集成在报文的处理装置1之内的结构示意图。图5和图6为第一交换芯片30设置在报文的处理装置1之外的结构示意图。
[0065] 在一些实施例中,在第一交换芯片30集成在所述报文的处理装置1内的情形下,第一交换芯片30的第一端口可以称作内部网口,第一交换芯片30的第二端口可以称作外部网口。
[0066] 在一些实施例中,第一端口的速率可以大于或等于第二端口的速率,例如第一端口的速率可以是10吉比特(GBits,G)、50G或100G,第二端口的速率可以为1G或者10G。可选地,不同第一端口的速率可以不同,不同第二端口的速率可以不同。示例性的,可以配置第一端口311为速率为10G的网口,配置第一端口312为速率为50G的网口,配置第二端口321为速率为1G的网口,配置第二端口322为速率为10G的网口。
[0067] 在一些实施例中,第一交换芯片被配置为:通过第二端口接收第一报文;解析第一报文,得到第一报文的多个特征参数;对至少一个目标特征参数进行哈希计算,得到哈希值;根据哈希值,为第一报文添加第一报文头;通过与第一报文头相匹配的第一端口,将添加第一报文头后的第一报文输出至与第一报文头相匹配的第一端口所耦接的网口。
[0068] 在一些实施例中,第一交换芯片中预先存储有第二对应关系,第二对应关系为哈希值与报文头的标识两者之间的对应关系。其中,报文头的标识用于唯一指示一个报文头,例如,可以是报文头的名称。基于此,第一交换芯片被配置为根据哈希值,为第一报文添加第一报文头,可以具体实现为:根据哈希值和第二对应关系,确定该哈希值对应的报文头的标识,将该报文头的标识对应的报文头作为第一报文头,进而为第一报文添加该第一报文头。
[0069] 在一些实施例中,所述网口包括至少两个硬件接收队列,所述至少两个硬件接收队列分别与至少两个内核耦接。网口被配置为:根据第一报文的第一报文头,从至少两个硬件接收队列中确定与第一报文头相匹配的目标硬件接收队列;通过目标硬件接收队列,将第一报文输出至与目标硬件接收队列耦接的内核。
[0070] 在一些实施例中,每一个网口中预先存储有第三对应关系,第三对应关系包括报文头的标识与硬件接收队列的标识两者之间的对应关系。网口被配置为根据第一报文的第一报文头,从至少两个硬件接收队列中确定与第一报文头相匹配的目标硬件接收队列,可以具体实现为:网口根据第一报文的第一报文头和第三对应关系,确定与第一报文头的标识对应的硬件接收队列的标识,进而将该硬件接收队列的标识对应的硬件接收队列作为目标硬件接收队列。
[0071] 举例来说,以第一交换芯片30通过第二端口321接收第一报文为例。在第一交换芯片30通过第二端口321接收到第一报文之后,解析第一报文,得到第一报文的多个特征参数;对至少一个目标特征参数进行哈希计算,得到哈希值;根据哈希值,为第一报文添加第一报文头;假设与第一报文头相匹配的第一端口为第一端口311,则第一交换芯片30将添加第一报文头后的第一报文通过第一端口311输出至第一端口311所耦接的网口21。
[0072] 网口21在接收到添加第一报文头后的第一报文后,根据第一报文头的标识和第三对应关系从至少两个硬件接收队列中确定与第一报文头相匹配的目标硬件接收队列。假设与第一报文头相匹配的目标硬件接收队列为硬件接收队列213后,则将添加第一报文头后的第一报文输出至与硬件接收队列213耦接的内核11,由内核11对添加第一报文头后的第一报文进行处理。
[0073] 内核11在接收到添加第一报文头后的第一报文后,再对添加第一报文头后的第一报文去除掉第一报文头,就能还原第一报文,进而对第一报文进行处理。
[0074] 如此,报文的处理装置完成了根据一个报文的报文头对该报文的进行分类以及入列。在报文的处理装置同时接收到多个报文的情况下,第一交换芯片可以对每个报文上述处理,为每个报文添加每个报文对应的报文头,进而将每个报文输出至与每个报文头相匹配的第一端口所耦接的网口。该网口在接收到多个添加报文头的报文后,根据每个报文的报文头,确定每个报文的报文头相匹配的目标硬件接收队列,进而通过每个报文头相匹配的目标硬件接收队列将每个报文输出至每个报文的报文头相匹配的目标硬件接收队列所耦接的内核,由每个内核处理相应的报文,以使得多核CPU的每个内核可以同时工作,实现了多核CPU的负载均衡,提升了多核CPU对于报文的处理能力。
[0075] 在一些实施例中,第一交换芯片30还可以包括第一交换矩阵模块33和至少一个第二流分类模块。
[0076] 其中,第二流分类模块被配置为:解析输入第二流分类模块的第一报文,得到第一报文的多个特征参数;对至少一个目标特征参数进行哈希计算,得到哈希值;根据哈希值,为第一报文添加第一报文头;输出添加第一报文头后的第一报文。
[0077] 在一些实施例中,每一个第二流分类模块均预选存储有上述第二对应关系,基于此,一个第二流分类模块被配置为根据哈希值,为所述第一报文添加第一报文头,可以具体实现为:根据哈希值和第二对应关系,确定与该哈希值对应的报文头的标识,进而将该报文头的标识对应的报文头作为第一报文头。
[0078] 在一些实施例中,每个第二流分类模块与一个第一端口耦接,也即第二流分类模块位于第一交换矩阵模块33的出口处。示例性的,在上述图2所示的报文的处理装置的基础上,如图3所示为本申请实施例提供的另一种报文的处理装置的结构示意图,至少一个第二流分类模块包括第二流分类模块341和第二流分类模块342,第二流分类模块341与第一端口311耦接,第二流分类模块342与第一端口312耦接。
[0079] 结合图3所示的报文的处理装置,假设第二端口321接收到第一报文,第二端口321将第一报文输出至第一交换矩阵模块33。在第一交换矩阵模块33将第一报文输出至第二流分类模块341的情况下,第二流分类模块341解析第一报文,得到第一报文的多个特征参数;对至少一个目标特征参数进行哈希计算,得到哈希值。进而根据哈希值和第二对应关系,确定第一报文的第一报文头,为第一报文添加第一报文头。进而向第一端口311输出添加第一报文头后的第一报文。第一端口311接收到添加第一报文头后的第一报文后,向网口21输出添加第一报文头后的第一报文。
[0080] 关于网口21接收到添加第一报文头后的第一报文后的描述,可以参照上述图2中关于网口21接收到添加第一报文头后的第一报文的描述,在此不予赘述。
[0081] 在另一些实施例中,每个第二流分类模块可以与一个第二端口耦接,也即第二流分类模块位于第一交换矩阵模块33的入口处。示例性的,在上述图2所示的报文的处理装置的基础上,如图4所示为本申请实施例提供的另一种报文的处理装置的结构示意图,至少一个第二流分类模块包括第二流分类模块341、第二流分类模块342和第二流分类模块343,第二流分类模块341与第二端口321耦接,第二流分类模块342与第二端口322耦接,第二流分类模块343与第二端口323耦接。
[0082] 结合图4所示的报文的处理装置,假设第二端口321接收到第一报文,第二端口321将第一报文输出至第二流分类模块341后,第二分类模块341解析第一报文,得到第一报文的多个特征参数;对至少一个目标特征参数进行哈希计算,得到哈希值。进而根据哈希值和第二对应关系,确定第一报文的第一报文头,为第一报文添加第一报文头,进而将添加第一报文头后的第一报文输出至第一交换矩阵模块33。第一交换矩阵模块33可以向至少一个第一端口中的任一个第一端口输出添加第一报文头后的第一报文,假设第一交换矩阵33向第一端口311输出添加第一报文头后的第一报文,第一端口311在接收到添加第一报文头后的第一报文后,向与第一端口311耦接的网口21输出添加第一报文头后的第一报文。
[0083] 关于网口21接收到添加第一报文头后的第一报文后的描述,可以参照上述图2中关于网口21接收到添加第一报文头后的第一报文的描述,在此不予赘述。
[0084] 在一些实施例中,如图7或图8所示,第一交换芯片与第二交换芯片耦接,第二交换芯片包括至少一个第三端口和至少一个第四端口,至少一个第三端口与第一交换芯片的至少一个第二端口耦接。
[0085] 在一些实施例中,第二交换芯片被配置为:通过第四端口接收第一报文;为第一报文添加第二报文头;将添加第二报文头后的第一报文输出至与第二报文头相匹配的第三端口所耦接的第二端口。
[0086] 在一些实施例中,第二交换芯片还包括至少一个第三流分类模块。一个第三流分类模块与第三端口或者第四端口耦接。第三流分类模块被配置为解析输入第三流分类模块的第一报文,得到第一报文的多个特征参数;基于第一报文的多个特征参数,为第一报文添加第二报文头;输入添加第二报文头的第一报文。
[0087] 关于第三流分类模块如何为第一报文添加第二报文头的描述,可以参照上述第二流分类模块为第一报文添加第一报文头的描述,在此不予赘述。
[0088] 可选的,在图3所示的报文的处理装置的基础上,以一个第三流分类模块与一个第四端口耦接,也即至少一个第三流分类模块位于第二交换矩阵模块的入口处为例,如图7所示,为本申请实施例提供的另一种报文的处理装置的结构示意图,第二交换芯片40包括第三端口411、第三端口412和第三端口413、第二交换矩阵模块43以及第四端口421、第四端口422和第四端口423。第三端口411与第二端口321耦接,第三端口412与第二端口322耦接,第三端口413与第二端口323耦接。
[0089] 继续如图7所示,第二交换芯片40还包括第三流分类模块441、第三流分类模块442和第三流分类模块443。第三流分类模块441与第四端口421耦接,第三流分类模块442与第四端口422耦接,第三流分类模块443与第三端口423耦接。
[0090] 或者,如图8所示,在图3所示的报文的处理装置的基础上,以一个第三流分类模块与一个第三端口耦接,也即至少一个第三流分类模块位于第二交换矩阵模块的出口处为例,第二交换芯片40包括第三端口411、第三端口412和第三端口413、第二交换矩阵模块43以及第四端口421、第四端口422和第四端口423。第三端口411与第二端口321耦接,第三端口412与第二端口322耦接,第三端口413与第二端口323耦接。
[0091] 继续如图8所示,第二交换芯片40还包括第三流分类模块441、第三流分类模块442和第三流分类模块443。第三流分类模块441与第三端口411耦接,第三流分类模块442与第三端口412耦接,第三流分类模块443与第三端口413耦接。
[0092] 结合图8所示的报文的处理装置,以第四端口421接收到第一报文为例。在第四端口421接收到第一报文后,将第一报文输出至第二交换矩阵模块43。第二交换矩阵模块43将第一报文输出至至少一个第三流分类模块中的任一个第三流分类模块,假设第二交换矩阵模块43将第一报文输出至第三流分类模块441,第三流分类模块441解析第一报文,得到第一报文的多个特征参数,根据配置需要根据多个特征参数中的至少一个目标特征参数为进行哈希计算,得到哈希值。根据哈希值确定第二报文头,进而为第一报文添加第二报文头,得到添加第二报文头后的第一报文。第三流分类模块441将添加第二报文头后的第一报文输出至与第三流分类模块441耦接的第三端口411。
[0093] 第三端口411接收到添加第二报文头后的第一报文后,将添加第二报文头后的第一报文输出至与第三端口耦接的第二端口321。第二端口321在接收到添加第二报文头后的第一报文后,将添加第二报文头后的第一报文输出至第一交换矩阵模块33,第一交换矩阵模块33将添加第二报文头后第一报文的输出至任一第一端口,例如将添加第二报文头后的第一报文输出至第二流分类模块341,第二流分类模块341将添加第二报文头后的第一报文输出至第一端口311。
[0094] 进而第一端口311将添加第二报文头后的第一报文输出至网口21,网口21根据第一报文的第二报文头确定与第二报文头相匹配的目标硬件接收队列,假设与第二报文头相匹配的目标硬件接收队列为硬件接收队列213,则网口21将添加第二报文头后的第一报文通过硬件接收队列213传输至与硬件接收队列213相耦接的内核11。
[0095] 需要说明的是,结合上述图2至图8中任一项所示的报文的处理装置,对于至少一个内核中的每一个内核,在一个内核接收到添加报文头后的第一报文后,再对添加报文头后的第一报文去除掉报文头,就能还原第一报文,进而对第一报文进行处理。
[0096] 同样的,在上述对于第一报文的处理过程中,第一交换芯片30的至少一个第二端口以untag方式加入报文头,第一交换芯片30的至少一个第一端口以tag方式加入报文头。且在上述对于第一报文的处理过程中,第一交换芯片30具有以下两种配置:
[0097] 配置1、打开第一交换芯片30每个第二端口的MAC学习功能。
[0098] 第一交换芯片30学习的MAC地址为原始报文的源MAC地址和VLAN地址。配置1适用于MAC地址比较少的场景,因为第一交换芯片30的MAC地址表不会很大。
[0099] 配置2、关闭部分或者全部第一交换芯片30的至少一个第二端口的MAC学习功能。
[0100] 配置2不仅适用于MAC地址较多的场景,也适用于MAC地址比较少的场景。
[0101] 同样的,在上述对于第一报文的处理过程中,对于耦接有第二交换芯片40的报文的处理装置来说,第二交换芯片学习的第一报文的源MAC地址和VLAN地址。
[0102] 上述实施例着重介绍的是以报文的处理装置在接收到第一报文后对于第一报文的处理过程,在一些实施例中,本申请实施例提供的报文的处理装置还涉及对于报文的处理装置发送报文时的处理过程。如图1至图8中任一项所示的报文的处理装置,该报文的处理装置还包括至少一个硬件发送队列。
[0103] 示例性的,以图1所示的报文的处理装置为例,网口21还包括硬件发送队列215和硬件发送队列216,硬件发送队列215的一端与内核11耦接,另一端与第一流分类模块212耦接,硬件发送队列216的一端与内核13耦接,另一端与第一流分类模块212耦接。网口22还包括硬件发送队列225和硬件发送队列226,硬件发送队列225的一端与内核14耦接,另一端与第一流分类模块212耦接,硬件发送队列226的一端与内核14耦接,另一端与第一流分类模块212耦接。
[0104] 在图1所示的报文的处理装置中的一个内核需要发送报文时,该内核直接将报文输出至与该内核耦接的硬件发送队列即可。
[0105] 在图2至图8中任一项所示的报文的处理装置中的一个内核需要发送报文时,分为以下几种情形:
[0106] 情形1、基于上述配置1的情况下。
[0107] 在第一交换芯片基于上述配置1的情况下,该内核直接将单播的原始报文输出至与该内核耦接的硬件发送队列,对于组播和广播的原始报文,该内核为该原始报文添加第一交换芯片的任一个第二端口的报文头(例如外层VLAN)后,将添加了报文头后的原始报文输出至与该内核耦接的硬件发送队列,第一流分类模块在接收到添加了报文头后的原始报文后,根据原始报文的报文头,确定与报文头相匹配的第一端口,进而通过收发器将添加了报文头后的原始报文输出至与报文头相匹配的第一端口。第一端口进而将添加了报文头后的原始报文通过第二流分类模块和第一交换矩阵模块输出至第二端口。第二端口接收到添加了报文头后的原始报文后,把原始报文的报文头剥掉后得到原始报文,进而将原始报文向外部网络传输,如此,报文的处理装置完成了对于一个原始报文的发送。
[0108] 情形2、基于上述配置2的情况下。
[0109] 在第一交换芯片基于上述配置2的情况下,将要发送原始报文的内核将所有待发送的原始报文都添加上第一交换芯片的任一个第二端口的报文头(例如外层VLAN)后,将所有添加了报文头后的原始报文输出至与该内核耦接的硬件发送队列。第一流分类模块在接收到多个添加了报文头后的原始报文后,基于每个原始报文的报文头,确定每个报文头相匹配的第一端口。进而通过收发器将多个添加了报文头后的原始报文输出至与报文头相匹配的第一端口。第一端口进而将添加了报文头后的原始报文通过第二流分类模块和第一交换矩阵模块输出至第二端口。第二端口接收到添加了报文头后的原始报文后,把原始报文的报文头剥掉后得到原始报文,进而将原始报文向外部网络传输,如此,报文的处理装置完成了对于多个原始报文的发送。
[0110] 需要说明的是,由于报文的处理装置要发送的报文没有学习MAC地址,所以至少一个第二端口中任意两个第二端口所配置的报文头均不相同,如此,报文的处理装置发送的原始报文可以在第一交换芯片中通过洪泛或VLAN‑xconnect或重定向等方式发到第二端口。
[0111] 通过上述配置可以把第一交换芯片的第二端口的不同报文与CPU内核网口的硬件接收队列和硬件发送队列进行对应,从而达到网络流量负载均衡的目的。
[0112] 图9为本申请实施例提供的一种报文的处理方法的流程图。如图9所示,该方法包括以下步骤:
[0113] S101、接收第一报文。
[0114] 在一些实施例中,报文的处理装置接收网络设备发送的第一报文。其中,网络设备包括交换机和光线路终端(optical line terminal,OLT)等。
[0115] S102、解析第一报文,得到第一报文的多个特征参数。
[0116] 在一些实施例中,在报文的处理装置接收到第一报文后,报文的处理装置可以对第一报文进行解析,得到第一报文的多个特征参数。其中。第一报文的多个特征参数包括第一报文的源MAC地址、目的MAC地址、VLAN ID、优先级、以太网类型、源IP地址、目标IP地址、源端口号和目的端口号。
[0117] S103、基于多个特征参数中的至少一个目标特征参数,生成第一报文的队列信息。
[0118] 在一些实施例中,报文的处理装置在对第一报文进行解析得到第一报文的多个特征参数后,可以基于配置需要,从多个特征参数中确定出至少一个特征参数作为目标特征参数,进而根据至少一个目标特征参数生成第一报文的队列信息。其中,至少一个目标特征参数包括第一报文的源MAC地址、目的MAC地址、VLAN ID、优先级、以太网类型、源IP地址、目标IP地址、源端口号和目的端口号中的至少一项。
[0119] 可选的,第一报文的队列信息可以是第一报文的哈希值,也可以是第一报文的报文头。
[0120] 在第一报文的队列信息为第一报文的哈希值的情况下,如图10所示,步骤S103可以具体实现为以下步骤:
[0121] S1031、对至少一个目标特征参数进行哈希计算,得到哈希值。
[0122] 可选的,在至少一个目标特征参数包括一个目标特征参数时,报文的处理装置可以对该目标特征参数进行哈希计算,得到哈希值。
[0123] 示例性的,假设至少一个目标特征参数为第一报文的源MAC地址时,报文的处理装置可以对第一报文的源MAC地址进行哈希计算,得到第一报文的源MAC地址的哈希值,进而将第一报文的源MAC地址的哈希值作为第一报文的哈希值。
[0124] 可选的,在至少一个目标特征参数包括多个目标特征参数时,报文的处理装置可以对多个目标特征参数进行任意字段组合,进而对任意字段组合后的多个目标特征参数进行哈希计算,得到哈希值。
[0125] 示例性的,假设至少一个目标特征参数为第一报文的源MAC地址和目的MAC地址,则报文的处理装置对第一报文的源MAC地址和目的MAC地址进行字段组合,例如对第一报文的源MAC地址和目的MAC地址进行排列,使第一报文的源MAC地址排列在第一报文的目的MAC地址之前,得到排列后的第一报文的源MAC地址和目的MAC地址。进而对排列后的第一报文的源MAC地址和目的MAC地址进行哈希计算,得到排列后的第一报文的源MAC地址和目的MAC地址的哈希值,进而将排列后的第一报文的源MAC地址和目的MAC地址的哈希值作为第一报文的哈希值。
[0126] 其中,哈希运算将任意长度的二进制序列映射为固定长度的二进制序列,映射出来的二进制序列称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。
[0127] 在第一报文的队列信息为第一报文的报文头的情况下,如图11所示,步骤S103可以具体实现为以下步骤:
[0128] S1032、对至少一个目标特征参数进行哈希计算,得到哈希值。
[0129] 关于对于步骤S1032的描述,可以参照上述对于步骤S1031的描述,在此不予赘述。
[0130] S1033、根据哈希值,为第一报文添加第一报文头。
[0131] 在一些实施例中,报文的处理装置中预先存储有上述第二对应关系。在报文的处理装置得到哈希值之后,可以基于哈希值和第二对应关系,确定该哈希值对应的报文头的标识,将该报文头的标识对应的报文头作为第一报文头,进而为第一报文添加第一报文头,得到添加第一报文头后的第一报文。
[0132] S104、根据第一报文的队列信息,从至少两个硬件接收队列中确定与第一报文的队列信息相匹配的目标硬件接收队列。
[0133] 在一些实施例中,报文的处理装置中还预先存储有上述第一对应关系和第三对应关系。
[0134] 可选的,在第一报文的队列信息为哈希值的情况下,报文的处理装置可以根据第一报文的哈希值和第一对应关系,确定与该哈希值对应的硬件接收队列的标识,进而将该硬件接收队列的标识对应的硬件接收队列作为目标硬件接收队列。如此,完成了从至少两个硬件接收队列中确定与第一报文的哈希值相匹配的目标硬件接收队列。
[0135] 可选的,在第一报文的队列信息为第一报文头的情况下,报文的处理装置可以根据第一报文的报文头和第三对应关系,确定与该第一报文头对应的硬件接收队列的标识,进而将该硬件接收队列的标识对应的硬件接收队列作为目标硬件接收队列。如此,完成了从至少两个硬件接收队列中确定与第一报文的第一报文头相匹配的目标硬件接收队列。
[0136] S105、通过目标硬件接收队列,将第一报文输出至与目标硬件接收队列耦接的内核。
[0137] 在一些实施例中,在第一报文的队列信息为哈希值的情况下,报文的处理装置通过目标硬件接收队列,将第一报文输出至与目标硬件接收队列耦接的内核,进而由该内核对该第一报文进行处理。
[0138] 在一些实施例中,在第一报文的队列信息为第一报文头的情况下,报文的处理装置通过目标硬件接收队列,将添加第一报文头后的第一报文输出至与目标硬件接收队列耦接的内核。该内核在接收待添加第一报文头后的第一报文后,需要为第一报文头后的第一报文去除掉第一报文头,以还原第一报文,进而该内核对该第一报文进行处理。
[0139] 本申请实施例的技术方案中,在接收到一个报文后,通过对该报文进行解析,得到该报文的多个特征参数,进而根据该报文的多个特征参数中的至少目标特征参数确定出该报文的队列信息,以根据该报文的队列信息确定与第一报文的队列信息相匹配的目标硬件接收队列,进而通过目标硬件接收队列将该报文传输至与目标硬件接收队列耦接的内核,以便于与目标硬件接收队列耦接的内核对该报文进行处理。如此,实现了一个报文与内核之间的匹配,以便于在接收到多个报文的情况下,能够根据不同报文的队列信息将不同的报文输出至与不同报文相匹配的内核进行处理,实现了多核CPU的负载均衡,提升了多核CPU对于报文的处理能力。
[0140] 可以看出,上述主要从方法的度对本申请实施例提供的方案进行了介绍。为了实现上述功能,本申请实施例提供了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0141] 如图12所示,为本申请实施例提供一种报文的处理装置的组成示意图,该报文的处理装置用于执行上述所述的报文的处理方法,该报文的处理装置2000包括接收模块2001、处理模块2002和发送模块2003。在一些实施例中,上述报文的处理装置2000还可以包括存储模块2004。
[0142] 在一些实施例中,接收模块2001,用于接收第一报文。
[0143] 处理模块2002,用于解析第一报文,得到第一报文的多个特征参数;基于多个特征参数中的至少一个目标特征参数,生成第一报文的队列信息;根据第一报文的队列信息,从至少两个硬件接收队列中确定与第一报文的队列信息相匹配的目标硬件接收队列;
[0144] 发送模块2003,用于通过目标硬件接收队列,将第一报文输出至与目标硬件接收队列耦接的内核。
[0145] 在一些实施例中,队列信息为哈希值,处理模块2002,具体用于对至少一个目标特征参数进行哈希计算,得到哈希值。
[0146] 在一些实施例中,队列信息为第一报文头处理模块2002,具体用于:对至少一个目标特征参数进行哈希计算,得到哈希值;根据哈希值,为第一报文添加第一报文头。
[0147] 在一些实施例中,至少一个目标特征参数包括第一报文的源MAC地址、目的MAC地址、虚拟局域网标识VLAN ID、优先级、以太网类型、源互联网协议IP地址、目标IP地址、源端口号和目的端口号中的至少一项。
[0148] 在一些实施例中,存储模块2004,用于存储第一报文。
[0149] 图12中的模块也可以称为单元,例如,处理模块可以称为处理单元。
[0150] 图12中的各个单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。存储计算机软件产品的存储介质包括:U盘、移动硬盘只读存储器(read‑only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0151] 本申请实施例可以根据上述方法示例对报文的处理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可选的,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0152] 在采用硬件的形式实现上述集成的模块的功能的情况下,本申请实施例提供了一种电子设备的结构示意图,该电子设备可以是上述报文的处理装置。如图13所示,该电子设备3000包括处理器3001,可选的,还包括与处理器3001连接的存储器3002和通信接口3003。处理器3001、存储器3002和通信接口3003通过总线3004连接。
[0153] 处理器3001可以是中央处理器(central processing unit,CPU),通用处理器网络处理器(network processor,NP)、数字信号处理器(digital signal processing,DSP)、微处理器、微控制器可编程逻辑器件(programmable logic device,PLD)或它们的任意组合。处理器3001还可以是其它任意具有处理功能的装置,例如电路、器件或软件模块。处理器3001也可以包括多个CPU,并且处理器3001可以是一个单核(single‑CPU)处理器,也可以是多核(multi‑CPU)处理器。这里的处理器可以指一个或多个设备、电路或用于处理数据(例如计算机程序指令)的处理核。
[0154] 存储器3002可以是只读存储器(read‑only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read‑only memory,EEPROM)、只读光盘(compact disc read‑only memory,CD‑ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,本申请实施例对此不作任何限制。存储器3002可以是独立存在,也可以和处理器3001集成在一起。其中,存储器3002中可以包含计算机程序代码。处理器3001用于执行存储器3002中存储的计算机程序代码,从而实现本申请实施例提供的一种报文的处理方法。
[0155] 通信接口3003可以用于与其他设备或通信网络通信(如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等)。通信接口3003可以是模块、电路、收发器或者任何能够实现通信的装置。
[0156] 总线3004可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线3004可以分为地址总线数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0157] 本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行如上述实施例提供的一种报文的处理方法。
[0158] 本发明实施例还提供一种计算机程序产品,该计算机程序产品可直接加载到存储器中,并含有软件代码,该计算机程序产品经由计算机载入并执行后能够实现上述实施例提供的一种报文的处理方法。
[0159] 本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0160] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0161] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0162] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0163] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
QQ群二维码
意见反馈