掌桥专利:专业的专利平台
掌桥专利
首页

报文处理方法和服务器

文献发布时间:2024-04-18 19:59:31


报文处理方法和服务器

技术领域

本申请实施例涉及通信技术领域,尤其涉及报文处理方法和服务器。

背景技术

报文是网络中交换与传输的数据单元,目前常采用多核中央处理器处理及转发报文,然而多核中央处理器处理及转发报文容易产生报文乱序的现象。因此,在采用多核中央处理器处理及转发报文时需要进行保序处理以避免发生报文乱序的现象。

相关技术中,可以通过建立保序队列进行保序处理,然而保序队列是一种先进先出(first input first output,FIFO)队列,交换结构在每一个时隙中将输入队列队头的报文发送到其对应的中央处理器中,队列后部的报文就只能等待前面传输完后再排到队列前面,然后才可以传输。如果某一缓存头部的报文由于拥塞而不能交换到目的中央处理器,那么后面的报文就会被它阻塞,该缓存中余下的报文也会被队头的报文所阻塞而无法到达这些报文本身的目的中央处理器,从而打断这些目的中央处理器的流水线,造成多核中央处理器转发性能急剧下降。

发明内容

本申请实施例提供了报文处理方法和服务器,能够避免采用多核中央处理器处理及转发报文时,造成多核转发性能急剧下降。为达到上述目的,本申请实施例采用如下技术方案:

第一方面,本申请实施例提供了一种报文处理方法,应用于服务器,所述服务器运行有虚拟化装置,所述服务器包括智能网卡和至少一个中央处理器,所述智能网卡包括至少一个硬件队列,所述至少一个硬件队列与所述至少一个中央处理器一一对应,所述至少一个中央处理器与虚拟化装置绑定,该方法包括:首先所述智能网卡接收报文。然后所述智能网卡根据所述报文特征将所述报文分发至第一队列。之后第一中央处理器从所述第一队列获取所述报文,对所述报文进行处理。其中,所述至少一个硬件队列包括所述第一队列,所述至少一个中央处理器包括所述第一中央处理器。

相关技术中,可以通过建立保序队列进行保序处理,然而保序队列是一种FIFO队列,交换结构在每一个时隙中将输入队列队头的报文发送到其对应的中央处理器中,队列后部的报文就只能等待前面传输完后再排到队列前面,然后才可以传输。如果某一缓存头部的报文由于拥塞而不能交换到目的中央处理器,那么后面的报文就会被它阻塞,该缓存中余下的报文也会被队头的报文所阻塞而无法到达这些报文本身的目的中央处理器,从而打断这些目的中央处理器的流水线,造成多核中央处理器转发性能急剧下降。

而本申请实施例提供的报文处理方法中,一方面服务器的智能网卡在收到报文后会根据报文特征将报文分发至相应的硬件队列中,由于服务器的中央处理和智能网卡的硬件队列一一对应,因此服务器的每个中央处理器只能接收自身对应的硬件队列中的报文,服务器的多核中央处理器相互之间由此可以实现无锁化并行收包处理,送往不同中央处理器的报文也不会因队头的报文所阻塞而无法到达这些报文对应的中央处理器,由此避免采用多核中央处理器在处理及转发报文时,发生多核转发性能急剧下降情况。且多队列分流架构能够实现较好的可扩展性,转发性能与多核数量保持较好的线性度。

另一方面,相较于现有运行有虚拟化装置的服务器通过中央处理器进行报文分发,本申请实施例中运行有虚拟化装置的服务器,将中央处理器的报文分发业务卸载至智能网卡,由此减少服务器的多核中央处理器的损耗,释放了多核中央处理器的性能。

可选地,所述虚拟化装置可以包括至少一个软件队列,所述至少一个软件队列与所述至少一个中央处理器一一对应。

在一种可能的实现方式中,所述方法还可以包括:所述智能网卡将所述报文转发至第二队列。第二中央处理器从所述第二队列获取报文。所述第二中央处理器根据所述报文特征将所述报文分发至第三队列。所述第一中央处理器从所述第三队列获取所述报文,对所述报文进行处理。其中,所述至少一个硬件队列包括所述第二队列,所述至少一个中央处理器包括所述第二中央处理器,所述至少一个软件队列包括所述第三队列。

可以看出,本申请实施例提供的报文处理方法中,智能网卡也可以不对报文进行分发,而是将报文转发至自身的某个硬件队列中,然后由该硬件队列对应的中央处理器从该硬件队列读取报文并根据报文特征对报文进行分发。这样使智能网卡与多核中央处理转发协同处理,以优化提升服务器整体的业务转发性能,且后续的转发系统优化可以从智能网卡和多核中央处理器系统两个维度提升。

示例性地,所述智能网卡可以在报文为目标报文的情况下将所述报文转发至第二队列,在报文为非目标报文的情况下将所述报文转发至第一队列。其中,目标报文包括多协议标签交换(Multi-Protocol Label Switching,MPLS)报文。

需要说明的是,智能网卡可能不具备分发目标报文(如MPLS报文)的能力,因此智能网卡在收到目标报文后可以将目标报文送入第二队列交由中央处理器对目标报文进行分发。智能网卡在收到非目标报文后,分发非目标报文的业务由智能网卡完成,无需中央处理器分发,以充分发挥智能网卡硬件能力。

在一种可能的实现方式中,可以在智能网卡的利用率高于第一阈值的情况下,将所述报文转发至第二队列。

可以理解的是,智能网卡的利用率高于第一阈值说明智能网卡当前负载较高,这时智能网卡在收到报文后可以将报文送入第二队列交由中央处理器对报文进行分发,从而降低智能网卡的负载,避免智能网卡因负载率较高而宕机。

可选地,所述报文特征包括源IP地址、目的IP地址、协议号、源端口、目的端口、服务类型或界面索引中的至少一项。

需要说明的是,根据报文特征将报文分发至不同的队列可以使多核中央处理器能够实现基于流的保序。

第二方面,本申请实施例提供了一种报文处理方法,应用于服务器,所述服务器运行有虚拟化装置,所述服务器包括至少一个中央处理器,虚拟化装置包括至少一个软件队列,所述至少一个软件队列与所述至少一个中央处理器一一对应,所述至少一个中央处理器与虚拟化装置绑定。第一中央处理器接收报文。所述第一中央处理器根据所述报文特征将所述报文分发至第一队列。第二中央处理器从所述第一队列获取所述报文,对所述报文进行处理。其中,所述至少一个中央处理器包括所述第一中央处理器,所述至少一个软件队列包括所述第一队列,所述至少一个中央处理器包括所述第二中央处理器。

相关技术中,可以通过建立保序队列进行保序处理,然而保序队列是一种FIFO队列,交换结构在每一个时隙中将输入队列队头的报文发送到其对应的中央处理器中,队列后部的报文就只能等待前面传输完后再排到队列前面,然后才可以传输。如果某一缓存头部的报文由于拥塞而不能交换到目的中央处理器,那么后面的报文就会被它阻塞,该缓存中余下的报文也会被队头的报文所阻塞而无法到达这些报文本身的目的中央处理器,从而打断这些目的中央处理器的流水线,造成多核中央处理器转发性能急剧下降。

而本申请实施例提供的报文处理方法中,虚拟装置中央处理器在收到报文后会根据报文特征将报文分发至相应的软件队列中,由于服务器的中央处理和虚拟化装置的软件队列一一对应,因此服务器的每个中央处理器只能接收自身对应的软件队列中的报文,服务器的多核中央处理器相互之间由此可以实现无锁化并行收包处理,送往不同中央处理器的报文也不会因队头的报文所阻塞而无法到达这些报文对应的中央处理器,由此避免采用多核中央处理器在处理及转发报文时,发生多核转发性能急剧下降情况。且多队列分流架构能够实现较好的可扩展性,转发性能与多核数量保持较好的线性度。

在一种可能的实现方式中,所述服务器还包括网卡,所述第一中央处理器可以从所述网卡的硬件队列获取所述报文。

可选地,上述网卡可以为非智能网卡。

可选地,上述网卡可以为单队列网卡。

可选地,所述报文特征包括源IP地址、目的IP地址、协议号、源端口、目的端口、服务类型或界面索引中的至少一项。

第三方面,本申请实施例提供了一种服务器,所述服务器运行有虚拟化装置,所述服务器包括智能网卡和至少一个中央处理器,所述智能网卡包括至少一个硬件队列,所述至少一个硬件队列与所述至少一个中央处理器一一对应,所述至少一个中央处理器与虚拟化装置绑定。所述智能网卡,用于接收报文以及根据所述报文特征将所述报文分发至第一队列,所述至少一个硬件队列包括所述第一队列。第一中央处理器,用于从所述第一队列获取所述报文,对所述报文进行处理,所述至少一个中央处理器包括所述第一中央处理器。

在一种可能的实现方式中,所述虚拟化装置包括至少一个软件队列,所述至少一个软件队列与所述至少一个中央处理器一一对应,所述智能网卡还用于,将所述报文转发至第二队列,所述至少一个硬件队列包括所述第二队列。第二中央处理器,用于从所述第二队列获取报文以及根据所述报文特征将所述报文分发至第三队列,所述至少一个中央处理器包括所述第二中央处理器,所述至少一个软件队列包括所述第三队列。所述第一中央处理器,还用于从所述第三队列获取所述报文,对所述报文进行处理。

可选地,所述报文特征包括源IP地址、目的IP地址、协议号、源端口、目的端口、服务类型或界面索引中的至少一项。

第四方面,本申请实施例提供了一种服务器,所述服务器运行有虚拟化装置,所述服务器包括至少一个中央处理器,虚拟化装置包括至少一个软件队列,所述至少一个软件队列与所述至少一个中央处理器一一对应,所述至少一个中央处理器与虚拟化装置绑定。第一中央处理器,用于接收报文以及根据所述报文特征将所述报文分发至第一队列,所述至少一个中央处理器包括所述第一中央处理器,所述第一中央处理器所述至少一个软件队列包括所述第一队列。第二中央处理器,用于从所述第一队列获取所述报文,对所述报文进行处理,所述至少一个中央处理器包括所述第二中央处理器。

可选地,所述报文特征包括源IP地址、目的IP地址、协议号、源端口、目的端口、服务类型或界面索引中的至少一项。

第五方面,本申请实施例还提供一种服务器,包括至少一个处理器和存储器,其特征在于,所述至少一个处理器执行存储在存储器中的程序或指令,以使得所述服务器实现上述第一方面或其任意可能的实现方式中所述的方法。

可选地,上述服务器可以为服务器。

第六方面,本申请实施例还提供一种芯片,包括:输入界面、输出界面、至少一个处理器。可选地,该芯片还包括存储器。该至少一个处理器用于执行该存储器中的代码,当该至少一个处理器执行该代码时,该芯片实现上述第一方面或其任意可能的实现方式中所述的方法。

可选地,上述芯片还可以为集成电路。

第七方面,本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于实现上述第一方面或其任意可能的实现方式中所述的方法。

第八方面,本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机实现上述第一方面或其任意可能的实现方式中所述的方法。

本实施例提供的服务器、计算机存储介质、计算机程序产品和芯片均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文所提供的方法中的有益效果,此处不再赘述。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种通信系统的结构示意图;

图2为本申请实施例提供的一种服务器的结构示意图;

图3为本申请实施例提供的另一种服务器的结构示意图

图4为本申请实施例提供的一种报文处理方法的流程示意图;

图5为本申请实施例提供的另一种报文处理方法的流程示意图;

图6为本申请实施例提供一种芯片的结构示意图;

图7为本申请实施例提供一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。

本申请实施例的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。

此外,本申请实施例的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选的还包括其他没有列出的步骤或单元,或可选的还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。

需要说明的是,本申请实施例的描述中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优先或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。

在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。

首先对本申请实施例涉及的术语进行解释说明。

线性度:输入与输出的比例度量,在本申请实施例中用于描述多核数量与转发性能的比例关系。

多核转发:使用多核技术并发处理报文转发业务,一般采用多线程绑定多核技术,提升转发系统整体处理性能

并行处理:多核转发系统中能同时执行多个处理的一种方案。并行处理可同时工作于同一程序的不同方面。并行处理的主要目的是节省大型和复杂问题的解决时间。为使用并行处理,首先需要对程序进行并行化处理,也就是说将工作各部分分配到不同处理线程中

分流调度:多核转发系统中已知收包调度模型,入方向报文按照一定规则划分为不同类型流量,分别分发给不同的核进行调度收包

多队列技术:多队列技术依赖硬件或软件支持,能够将报文分发到多个队列中,便于多核进程并行对多队列中的报文进行收包处理,能够大幅度提升系统的并发处理性能

相关技术中,可以通过建立保序队列进行保序处理,然而保序队列是一种FIFO队列,交换结构在每一个时隙中将输入队列队头的报文发送到其对应的中央处理器中,队列后部的报文就只能等待前面传输完后再排到队列前面,然后才可以传输。如果某一缓存头部的报文由于拥塞而不能交换到目的中央处理器,那么后面的报文就会被它阻塞,该缓存中余下的报文也会被队头的报文所阻塞而无法到达这些报文本身的目的中央处理器,从而打断这些目的中央处理器的流水线,造成多核中央处理器转发性能急剧下降。

为此,本申请实施例提供了一种报文处理方法,能够避免采用多核中央处理器处理及转发报文时,造成多核转发性能急剧下降。本申请实施例提供的报文处理方法可以由服务器执行,该方法可以应用于通信系统。

图1示出了本申请实施例提供的报文处理方法可应用于的一种通信系统,如图1所示,该系统包括多个终端设备和服务器。

终端设备,用于向服务器发送报文,以及接收服务器发送的报文。

上述终端装置可以是手机(mobile phone)、平板电脑(pad)、电脑、虚拟现实(virtual reality,VR)终端装置、增强现实(augmented reality,AR)终端装置、工业控制(industrial control)中的无线终端装置、无人驾驶(self driving)中的无线终端装置、远程医疗(remote medical)中的无线终端装置、智能电网(smart grid)中的无线终端装置、运输安全(transportation safety)中的无线终端装置、智慧城市(smart city)中的无线终端装置、智慧家庭(smart home)中的无线终端装置等。

服务器,用于接收终端设备发送的报文,以及将接收的报文分发至终端设备。

服务器和终端设备可以通过有线或无线方式进行通信。

需要说明的是,上述无线方式可以通过通信网络实现通信,该通信网络可以是局域网,也可以是通过中继设备转接的广域网,或者包括局域网和广域网。当该通信网络为局域网时,示例性地,该通信网络可以是wifi热点网络、wifi P2P网络、蓝牙网络、zigbee网络、近场通信(near field communication,NFC)网或者未来可能的通用短距离通信网络、专用短距通信(dedicated short range communication,DSRC)网络等。当该通信网络为广域网时,

示例性地,该通信网络可以是第三代移动通信技术(3rd-generation wirelesstelephone technology,3G)网络、第四代移动通信技术(the 4th generation mobilecommunication technology,4G)网络、第五代移动通信技术(5th-generation mobilecommunication technology,5G)网络、PLMN或因特网等,本申请实施例对此不做限定。

图1中示出的组成结构并不构成对该通信系统的限定,除图1所示部件之外,该通信系统可以包括比图1所示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

图2示出了本申请实施例提供的一种服务器,如图2所示,该服务器运行有虚拟化装置,上述服务器包括智能网卡和N个中央处理器。

上述智能网卡包括N个硬件队列,上述N个硬件队列与上述N个中央处理器一一对应,上述N个中央处理器与虚拟化装置绑定。

在一种可能的实现方式中,上述虚拟化装置,可以用于承载具有路由、交换、安全、虚拟专用网络(Virtual Private Network,VPN)等功能的路由器虚拟网络功能(virtualised network function,VNF)实例。

在一种可能的实现方式中,上述虚拟化装置包括N个软件队列,上述N个软件队列与上述N个中央处理器一一对应。

图2中示出的组成结构并不构成对该服务器的限定,除图2所示部件之外,该服务器可以包括比图2所示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

例如,服务器还可以包括内存、存储等硬件资源。

又例如,服务器还可以运行有主机操作系统。

又例如,服务器还可以运行有管理程序(hypervisor)。其中,管理程序支持公有云上内核级虚拟化技术(Kernel-based Virtual Machine,KVM)(如华为云、AWS、天翼云和阿里云)等虚拟化平台,作为物理服务器和虚拟机实例之间的中间软件层,实现虚拟化装置的管理,允许多个虚拟机实例共享硬件资源。

又例如,服务器还可以包括虚拟交换机(vSwitch)/外围组件互连直通(Peripheral Component Interconnect-passthrough,PCI-passthrough),vSwitch/PCI-passthrough用于实现各个虚拟机实例之间以及虚拟机实例与外部网络之间的的信息交换。

图3示出了本申请实施例提供的另一种服务器,如图3所示,该服务器运行有虚拟化装置,上述服务器包括网卡和N个中央处理器。

虚拟化装置包括N个软件队列,上述N个软件队列与上述N个中央处理器一一对应,上述N个中央处理器与虚拟化装置绑定。

网卡包括一个硬件队列,上述一个硬件队列与上述N个中央处理器中的一个中央处理器对应。

图3中示出的组成结构并不构成对该服务器的限定,除图3所示部件之外,该服务器可以包括比图3所示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

图4示出了本申请实施例提供的一种报文处理方法,该方法应用于图2所示的服务器,该方法包括:

S401、智能网卡接收报文。

示例性地,智能网卡可以接收加密或不加密的IPSEC报文。

又示例性地,智能网卡也可以接收MPLS报文。

又示例性地,智能网卡也可以接收普通的IP报文。

S402、智能网卡根据报文特征将报文分发至第一队列。

其中,上述N个硬件队列包括上述第一队列。

可选地,上述报文特征包括源网际互连协议IP地址、目的IP地址、协议号、源端口、目的端口、服务类型或界面索引中的至少一项。

示例性地,智能网卡可以通过接收端缩放(Receive Side Scaling,RSS)模型对接收到的报文进行解析,获取报文的报文特征,然后通过配置的哈希(HASH)函数根据报文特征计算出报文的HASH值,然后取HASH值全部或部分(如第N位)作为复位向表(redirectiontable,RETA)的索引,之后根据RETA中存储的值将报文分发至第一队列。

需要说明的是,根据报文特征将报文分发至不同的队列可以使多核中央处理器能够实现基于流的保序。

需要说明的是,智能网卡也可以根据报文特征将报文分发至其他队列。

S403、第一中央处理器从第一队列获取报文,对报文进行处理。

其中,上述N个中央处理器包括上述第一中央处理器。

相关技术中,可以通过建立保序队列进行保序处理,然而保序队列是一种FIFO队列,交换结构在每一个时隙中将输入队列队头的报文发送到其对应的中央处理器中,队列后部的报文就只能等待前面传输完后再排到队列前面,然后才可以传输。如果某一缓存头部的报文由于拥塞而不能交换到目的中央处理器,那么后面的报文就会被它阻塞,该缓存中余下的报文也会被队头的报文所阻塞而无法到达这些报文本身的目的中央处理器,从而打断这些目的中央处理器的流水线,造成多核中央处理器转发性能急剧下降。

而本申请实施例提供的报文处理方法中,一方面服务器的智能网卡在收到报文后会根据报文特征将报文分发至相应的硬件队列中,由于服务器的中央处理和智能网卡的硬件队列一一对应,因此服务器的每个中央处理器只能接收自身对应的硬件队列中的报文,服务器的多核中央处理器相互之间由此可以实现无锁化并行收包处理,送往不同中央处理器的报文也不会因队头的报文所阻塞而无法到达这些报文对应的中央处理器,由此避免采用多核中央处理器在处理及转发报文时,发生多核转发性能急剧下降情况。且多队列分流架构能够实现较好的可扩展性,转发性能与多核数量保持较好的线性度。

另一方面,相较于现有运行有虚拟化装置的服务器通过中央处理器进行报文分发,本申请实施例中运行有虚拟化装置的服务器,将中央处理器的报文分发业务卸载至智能网卡,由此减少服务器的多核中央处理器的损耗,释放了多核中央处理器的性能。

可选地,该方法还可以包括:

S404、智能网卡将报文转发至第二队列。

其中,所述N个硬件队列包括所述第二队列。

在一种可能的实现方式中,所述智能网卡可以在报文为目标报文的情况下将所述报文转发至第二队列,在报文为非目标报文的情况下将所述报文转发至第一队列。其中,目标报文包括多协议标签交换(Multi-Protocol Label Switching,MPLS)报文。

需要说明的是,智能网卡可能不具备分发目标报文(如MPLS报文)的能力,因此智能网卡在收到目标报文后可以将目标报文送入第二队列交由中央处理器对目标报文进行分发。智能网卡在收到非目标报文后,分发非目标报文的业务由智能网卡完成,无需中央处理器分发,以充分发挥智能网卡硬件能力。

在另一种可能的实现方式中,智能网卡可以在利用率高于第一阈值的情况下,将所述报文转发至第二队列。

可以理解的是,智能网卡的利用率高于第一阈值说明智能网卡当前负载较高,这时智能网卡在收到报文后可以将报文送入第二队列交由中央处理器对报文进行分发,从而降低智能网卡的负载,避免智能网卡因负载率较高而宕机。

S405、第二中央处理器从所述第二队列获取报文。

其中,所述N个中央处理器包括所述第一中央处理器。

S406、第二中央处理器根据所述报文特征将所述报文分发至第三队列。

其中,所述N个软件队列包括所述第三队列。

S407、第一中央处理器从第三队列获取报文,对报文进行处理。

可以看出,本申请实施例提供的报文处理方法中,智能网卡也可以不对报文进行分发,而是将报文转发至自身的某个硬件队列中,然后由该硬件队列对应的中央处理器从该硬件队列读取报文并根据报文特征对报文进行分发。这样使智能网卡与多核中央处理转发协同处理,以优化提升服务器整体的业务转发性能,且后续的转发系统优化可以从智能网卡和多核中央处理器系统两个维度提升。

图5示出了本申请实施例提供的一种报文处理方法,该方法应用于图3所示的服务器,该方法包括:

S501、第一中央处理器接收报文。

其中,所述N个中央处理器包括所述第一中央处理器。

在一种可能的实现方式中,第一中央处理器可与网卡的硬件队列对应,第一中央处理器可以从网卡的硬件队列中获取报文。

在一种可能的实现方式中,可以周期性的变更第一中央处理器,即周期性的变更不同的中央处理器与网卡的硬件队列对应。

例如,可以将当前周期中利用率最低的处理器作为下一周期的第一中央处理器。

可选地,上述网卡可以为非智能网卡。

可选地,上述网卡可以为单队列网卡。

需要说明的是,非智能网卡和单队列网卡不具备报文分发功能,因此非智能网卡和单队列网卡在收到报文后需要将报文转发至自身硬件队列,以供多核中央处理器中用于分发报文的第一中央处理器通过网卡的硬件接收报文并分发报文。

S502、第一中央处理器根据报文特征将报文分发至第一队列。

其中,所述N个软件队列包括所述第一队列。

可选地,上述报文特征包括源网际互连协议IP地址、目的IP地址、协议号、源端口、目的端口、服务类型或界面索引中的至少一项。

示例性地,第一中央处理器可以通过RSS模型对接收到的报文进行解析,获取报文的报文特征,然后通过配置的HASH函数根据报文特征计算出报文的HASH值,然后取HASH值全部或部分(如第N位)作为RETA的索引,之后根据RETA中存储的值将报文分发至第一队列。

需要说明的是,根据报文特征将报文分发至不同的队列可以使多核中央处理器能够实现基于流的保序。

需要说明的是,智能网卡也可以根据报文特征将报文分发至其他队列。

S503、第二中央处理器从第一队列获取报文,对报文进行处理。

其中,所述N个中央处理器包括所述第二中央处理器。

相关技术中,可以通过建立保序队列进行保序处理,然而保序队列是一种FIFO队列,交换结构在每一个时隙中将输入队列队头的报文发送到其对应的中央处理器中,队列后部的报文就只能等待前面传输完后再排到队列前面,然后才可以传输。如果某一缓存头部的报文由于拥塞而不能交换到目的中央处理器,那么后面的报文就会被它阻塞,该缓存中余下的报文也会被队头的报文所阻塞而无法到达这些报文本身的目的中央处理器,从而打断这些目的中央处理器的流水线,造成多核中央处理器转发性能急剧下降。

而本申请实施例提供的报文处理方法中,虚拟装置中央处理器在收到报文后会根据报文特征将报文分发至相应的软件队列中,由于服务器的中央处理和虚拟化装置的软件队列一一对应,因此服务器的每个中央处理器只能接收自身对应的软件队列中的报文,服务器的多核中央处理器相互之间由此可以实现无锁化并行收包处理,送往不同中央处理器的报文也不会因队头的报文所阻塞而无法到达这些报文对应的中央处理器,由此避免采用多核中央处理器在处理及转发报文时,发生多核转发性能急剧下降情况。且多队列分流架构能够实现较好的可扩展性,转发性能与多核数量保持较好的线性度。

图6示出了一种芯片700的结构示意图。芯片600包括一个或多个处理器601以及界面电路602。可选的,上述芯片600还可以包含总线603。

处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述报文处理方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。

可选地,上述的处理器601可以是通用处理器、数字信号处理(digital signalproces sing,DSP)器、集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

界面电路602可以用于数据、指令或者信息的发送或者接收,处理器601可以利用界面电路602接收的数据、指令或者其他信息,进行加工,可以将加工完成信息通过界面电路602发送出去。

可选的,芯片还包括存储器,存储器可以包括只读存储器和随机存取存储器,并向处理器提供操作指令和数据。存储器的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,NVRAM)。

可选的,存储器存储了可执行软件模块或者数据结构,处理器可以通过调用存储器存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。

可选的,芯片可以使用在本申请实施例涉及的服务器中。可选的,界面电路602可用于输出处理器601的执行结果。关于本申请实施例的一个或多个实施例提供的报文处理方法可参考前述各个实施例,这里不再赘述。

需要说明的,处理器601、界面电路602各自对应的功能既可以通过硬件设计实现,也可以通过软件设计来实现,还可以通过软硬件结合的方式来实现,这里不作限制。

图7为本申请实施例提供的一种电子设备的结构示意图,该电子设备700可以为服务器或者服务器中的芯片或者功能模块。如图7所示,该电子设备700包括处理器701,收发器702以及通信线路703。

其中,处理器701用于执行如图1所示的方法实施例中的任一步骤,且在执行步骤时,可选择调用收发器702以及通信线路703来完成相应操作。

进一步的,该电子设备700还可以包括存储器704。其中,处理器701,存储器704以及收发器702之间可以通过通信线路703连接。

其中,处理器701是中央处理器(central processing unit,CPU)、通用处理器、网络处理器(network processor,NP)、数字信号处理器(digital signal processing,DSP)、微处理器、微控制器、可编程逻辑器件(programmable logic device,PLD)或它们的任意组合。处理器701还可以是其他具有处理功能的装置,例如电路、器件或软件模块,不予限制。

收发器702,用于与其他设备或其他通信网络进行通信,其他通信网络可以为以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。收发器702可以是模块、电路、收发器或者任何能够实现通信的装置。

收发器702主要用于数据的收发,可以包括发射器和接收器,分别进行信号的发送和接收;除信号收发之外的操作由处理器实现,如信息处理,计算等。

通信线路703,用于在电子设备700所包括的各部件之间传送信息。

在一种设计中,可以将处理器看做逻辑电路,收发器看做界面电路。

存储器704,用于存储指令。其中,指令可以是计算机程序。

其中,存储器704可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLD RAM)和直接存储器总线随机存取存储器(direct rambus RAM,DRRAM)。存储器704还可以是只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光盘存储(包括压缩光盘、激光碟、光盘、数字通用光盘、蓝光光盘等)、磁盘存储介质或其他磁存储设备等。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其他适合类型的存储器。

需要指出的是,存储器704可以独立于处理器701存在,也可以和处理器701集成在一起。存储器704可以用于存储指令或者程序代码或者一些数据等。存储器704可以位于电子设备700内,也可以位于电子设备700外,不予限制。处理器701,用于执行存储器704中存储的指令,以实现本申请上述实施例提供的方法。

在一种示例中,处理器701可以包括一个或多个处理器,例如图7中的CPU0和CPU1。

作为一种可选的实现方式,电子设备700包括多个处理器,例如,除图7中的处理器701之外,还可以包括处理器707。

作为一种可选的实现方式,电子设备700还包括输出设备705和输入设备706。示例性地,输入设备706是键盘、鼠标、麦克风或操作杆等设备,输出设备705是显示屏、扬声器(speaker)等设备。

需要指出的是,电子设备700可以是芯片系统或有图7中类似结构的设备。其中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。本申请的各实施例之间涉及的动作、术语等均可以相互参考,不予限制。本申请的实施例中各个设备之间交互的消息名称或消息中的参数名称等只是一个示例,具体实现中也可以采用其他的名称,不予限制。此外,图7中示出的组成结构并不构成对该电子设备700的限定,除图7所示部件之外,该电子设备700可以包括比图7所示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本申请中描述的处理器和收发器可实现在集成电路(integrated circuit,IC)、模拟IC、射频集成电路、混合信号IC、专用集成电路(application specific integratedcircuit,ASIC)、印刷电路板(printed circuit board,PCB)、电子设备等上。该处理器和收发器也可以用各种IC工艺技术来制造,例如互补金属氧化物半导体(complementary metaloxide semiconductor,CMOS)、N型金属氧化物半导体(nMetal-oxide-semiconductor,NMOS)、P型金属氧化物半导体(positive channel metal oxide semiconductor,PMOS)、双极结型晶体管(Bipolar Junction Transistor,BJT)、双极CMOS(BiCMOS)、硅锗(SiGe)、砷化镓(GaAs)等。

本申请实施例还提供一种服务器,该装置包括:至少一个处理器,当上述至少一个处理器执行程序代码或指令时,实现上述相关方法步骤实现上述实施例中的报文处理方法。

可选地,该装置还可以包括至少一个存储器,该至少一个存储器用于存储该程序代码或指令。

本申请实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在服务器上运行时,使得服务器执行上述相关方法步骤实现上述实施例中的报文处理方法。

本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的报文处理方法。

本申请实施例还提供一种服务器,这个装置具体可以是芯片、集成电路、组件或模块。具体的,该装置可包括相连的处理器和用于存储指令的存储器,或者该装置包括至少一个处理器,用于从外部存储器获取指令。当装置运行时,处理器可执行指令,以使芯片执行上述各方法实施例中的报文处理方法。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些界面,装置或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

技术分类

06120116524056