CN115665073A - 报文处理方法及装置 - Google Patents
报文处理方法及装置 Download PDFInfo
- Publication number
- CN115665073A CN115665073A CN202211552829.3A CN202211552829A CN115665073A CN 115665073 A CN115665073 A CN 115665073A CN 202211552829 A CN202211552829 A CN 202211552829A CN 115665073 A CN115665073 A CN 115665073A
- Authority
- CN
- China
- Prior art keywords
- network card
- sending end
- message
- processing unit
- central processing
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种报文处理方法及装置,发送端网卡侧中央处理器根据自身维护的队列对QP的发送端状态信息,确定待处理报文所属QP的发送端状态;确定出待处理报文所属QP的发送端状态为闲置状态,发送端网卡侧中央处理器利用自身预先集成的协议栈封装待处理报文,并将封装后的待处理报文经由发送端网卡转发;确定出待处理报文所属QP的发送端状态为非闲置状态,发送端网卡侧中央处理器将待处理报文发送至发送端网卡,以使发送端网卡调度发送端网卡自身缓存中待处理报文所属QP的QP资源发送待处理报文。本公开实施例能够大量分担了发送端网卡的工作负担,从而使得发送端网卡在大量QP连接同时保持的同时实现了高性能的数据传输。
Description
技术领域
本发明涉及信息处理领域,尤其是涉及一种报文处理方法及装置。
背景技术
随着基于直接数据存取(Remote Direct Memory Access,RDMA)的网络规模越来越大,RDMA的队列对(Queue Pair,QP)连接数也随之越来越多。
相关技术中,要么是将全部QP的报文放在软件上处理,要么是将全部的QP报文放在硬件上处理。
将全部QP的报文放在软件上处理的方式缺陷在于软件性能不够,QP报文处理速度很慢,将全部的QP报文放在硬件上处理的方式受到硬件资源限制,硬件上无法管理大规模的QP连接,即便是业界目前做的最好的Mellanox的网卡,ConnectX-6网卡,当QP数目超过3072时,端口吞吐率不到70%,且吞吐率随着QP数目的增大而急剧下降,因此这种方式很难支持大量QP连接同时保持高性能的数据传输。
发明内容
本公开实施例提供了一种报文处理方法及装置,能够支持大量QP连接同时保持高性能的数据传输。
一方面,本公开实施例提供了一种报文处理方法,包括:
发送端网卡侧中央处理器根据自身维护的QP的发送端状态信息,确定待处理报文所属QP的发送端状态;
确定出所述待处理报文所属QP的发送端状态为闲置状态,所述发送端网卡侧中央处理器利用自身预先集成的协议栈封装所述待处理报文,并将封装后的待处理报文经由发送端网卡转发;
确定出所述待处理报文所属QP的发送端状态为非闲置状态,所述发送端网卡侧中央处理器将所述待处理报文发送至发送端网卡,以使所述发送端网卡调度所述发送端网卡自身缓存中所述待处理报文所属QP的QP资源发送所述待处理报文;其中,所述闲置状态表示QP资源未存储在发送端网卡的缓存中,所述非闲置状态表示QP资源存储在发送端网卡的缓存中。
另一方面,本公开实施例还提供了一种报文处理方法,包括:
发送端网卡接收来自发送端网卡侧中央处理器的待处理报文;其中,所述待处理报文是所述发送端网卡侧中央处理器确定的发送端状态为非闲置状态的QP对应的待处理的报文;
所述发送端网卡在自身的缓存中调度所述待处理报文所属QP的QP资源发送所述待处理报文。
再一方面,本公开实施例还提供了一种报文处理方法,包括:
接收端网卡接收来自发送端网卡的待处理报文;
当所述接收端网卡根据所维护的QP的接收端状态信息确定出所述待处理报文所属QP的接收端状态为非闲置状态,所述接收端网卡调用自身的缓存中所述待处理报文所属QP的QP资源处理所述待处理报文;
当确定出所述待处理报文所属QP的接收端状态为闲置状态,所述接收端网卡将所述待处理报文发送至所述接收端网卡侧中央处理器,由所述接收端网卡侧中央处理器利用自身预先集成的协议栈处理所述待处理报文。
另一方面,本公开实施例还提供了一种报文处理方法,包括:
接收端网卡侧中央处理器接收来自接收端网卡的待处理报文;其中,所述待处理报文是所述接收端网卡确定的接收端状态为闲置状态的QP对应的待处理的报文;
所述接收端网卡侧中央处理器利用预设协议栈处理所述待处理报文。
再一方面,本公开实施例还提供了一种发送端网卡侧中央处理器,包括存储器和处理器,所述存储器用于保存可执行程序;
所述处理器用于读取执行所述可执行程序,以实现前述以发送端网卡侧中央处理器为执行主体的报文处理方法。
再一方面,本公开实施例还提供了一种发送端网卡,包括存储器和处理器,所述存储器用于保存可执行程序;
所述处理器用于读取执行所述可执行程序,以实现如前述以发送端网卡为执行主体的报文处理方法。
再一方面,本公开实施例还提供了一种接收端网卡侧中央处理器,包括存储器和处理器,所述存储器用于保存可执行程序;
所述处理器用于读取执行所述可执行程序,以实现前述以接收端网卡侧中央处理器为执行主体的报文处理方法。
再一方面,本公开实施例还提供了一种接收端网卡,包括存储器和处理器,所述存储器用于保存可执行程序;
所述处理器用于读取执行所述可执行程序,以实现如前述以接收端网卡为执行主体的报文处理方法。
与相关技术相比,本公开实施例提供的报文处理方法,发送端网卡侧中央处理器当确定待处理报文所属QP的发送端状态为闲置状态,即所属QP的QP资源未存储在发送端网卡的缓存中,那么就不将待处理报文推送至发送端网卡,而是直接自行处理,当确定待处理报文所属QP的发送端状态为非闲置状态,即所属QP的QP资源存储在发送端网卡的缓存中,才将待处理报文推送至发送端网卡由发送端网卡处理,因此大量分担了发送端网卡的工作负担,从而使得发送端网卡在大量QP连接同时保持的同时实现了高性能的数据传输。
本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本公开技术方案的理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开技术方案的限制。
图1为本公开实施例一种报文处理方法的流程示意图;
图2为本公开实施例另一种报文处理方法的流程示意图;
图3为本公开实施例又一种报文处理方法的流程示意图;
图4为本公开实施例又一种报文处理方法的流程示意图。
具体实施方式
本公开描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本公开所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本公开包括并设想了与本领域普通技术人员已知的特征和元件的组合。本公开已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的方案。任何实施例的任何特征或元件也可以与来自其它方案的特征或元件组合,以形成另一个由权利要求限定的独特的方案。因此,应当理解,在本公开中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本公开实施例的精神和范围内。
本公开实施例提供了一种报文处理方法,如图1所示,该方法包括:
步骤101、发送端网卡侧中央处理器根据自身维护的QP的发送端状态信息,确定待处理报文所属QP的发送端状态;
步骤102、确定出所述待处理报文所属QP的发送端状态为闲置状态,所述发送端网卡侧中央处理器利用自身预先集成的协议栈封装所述待处理报文,并将封装后的待处理报文经由发送端网卡转发;
步骤103、确定出所述待处理报文所属QP的发送端状态为非闲置状态,所述发送端网卡侧中央处理器将所述待处理报文发送至发送端网卡,以使所述发送端网卡调度所述发送端网卡自身缓存中所述待处理报文所属QP的QP资源发送所述待处理报文;其中,所述闲置状态表示QP资源未存储在发送端网卡的缓存中,所述非闲置状态表示QP资源存储在发送端网卡的缓存中。
示例性的,待处理报文所属QP的发送端状态为闲置状态表示该QP一个周期或一定时间内的待发送报文较少,且该QP的QP资源是由软件资源维护的,待处理报文所属QP的发送端状态为非闲置状态表示该QP一个周期或一定时间内的待发送报文较多,且该QP的QP资源是由硬件资源维护的。发送端网卡侧中央处理器预先集成有RDMA协议栈,当待处理报文所属QP的发送端状态为闲置状态,发送端网卡侧中央处理器利用预先集成有RDMA协议栈封装待处理报文。
示例性的,QP资源包括:队列对上下文(Queue Pair Context,QPC)和发送队列(Send Pair)SQ/接收队列(Receive Pair)RQ等数据。
示例性的,发送端网卡和接收端网卡之间存在着多条QP,每条QP都存在一个发送端和接收端,称为QP的发送端与QP的接收端,待发送报文是在QP中传输的,即从对应的QP的发送端传输到对应的QP的接收端;并且每条QP的发送端和接收端都分别存在一个状态信息,称为QP的发送端状态和接收端状态。
相关技术中,RDMA协议栈可以支持单节点的大规模QP连接,但是性能十分低下,所以软件RDMA协议栈无法满足用户的高性能传输需求。而在传统RDMA网卡上,难以支持单节点的大规模QP连接的场景,即便是业界目前做的最好的Mellanox的网卡,硬件上支持的QP数目超过4096后性能也会变得非常差。而本公开实施例提供的报文处理方法,发送端网卡侧中央处理器当确定待处理报文所属QP的发送端状态为闲置状态,即所属QP的QP资源未存储在发送端网卡的缓存中,那么就不将待处理报文推送至发送端网卡,而是直接自行处理,当确定待处理报文所属QP的发送端状态为非闲置状态,即所属QP的QP资源存储在发送端网卡的缓存中,才将待处理报文推送至发送端网卡由发送端网卡处理。而本公开实施例提供的报文处理方法,本质上是一种管理大规模QP连接的方法,采用的是软件和硬件切换的调度机制,改变了市面上要么是全部放在软件上处理(软件上性能不够),要么是全部放在硬件上处理(硬件上无法管理大规模QP连接)的现状,打破了原有的RDMA技术架构(需要引入新的调度机制)。
本公开实施例提供的报文处理方法,发送端网卡侧中央处理器当确定待处理报文所属QP的发送端状态为闲置状态,即所属QP的QP资源未存储在发送端网卡的缓存中,那么就不将待处理报文推送至发送端网卡,而是直接自行处理,当确定待处理报文所属QP的发送端状态为非闲置状态,即所属QP的QP资源存储在发送端网卡的缓存中,才将待处理报文推送至发送端网卡由发送端网卡处理,因此大量分担了发送端网卡的工作负担,从而使得发送端网卡能够在大量QP连接同时保持的同时实现了高性能的数据传输。
在一种示例性实例中,本公开实施例提供的报文处理方法还包括:
首先,所述发送端网卡侧中央处理器根据自身维护的QP的发送端状态信息,周期性获取发送端状态为所述闲置状态的QP上待处理报文的数量;
其次,当获得的数量大于预设值,所述发送端网卡侧中央处理器更改所述待处理报文所属QP的发送端状态为所述非闲置状态,并将所述待处理报文所属QP的QP资源同步到所述发送端网卡的缓存中。
示例性的,当发送端网卡侧中央处理器监测到某个(也可能是某些)闲置状态的QP对应的待发送报文的数量大于预设值,则认为该QP最近有大量的报文需要处理,那么发送端网卡侧中央处理器更改所述待处理报文所属QP的发送端状态为所述非闲置状态,并将所述待处理报文所属QP的QP资源同步到所述发送端网卡的缓存中,这个过程可以描述为发送端网卡侧中央处理器将某个或某些原本由软件资源维护的QP“交给”硬件资源维护,从而能够提高待处理报文的处理速度。本公开实施例提供的发送端网卡侧中央处理器将某个或某些原本由软件资源维护的QP“交给”硬件资源维护的过程,与上个实施例描述的发送端网卡侧中中央处理器对待处理报文处理的过程是两个并行过程,具体可以通过两个独立线程实现。
在一种示例性实例中,本公开实施例提供的报文处理方法还包括:
首先,所述发送端网卡侧中央处理器接收将指定QP的发送端状态由闲置状态调整为非闲置状态的指令;
其次,所述发送端网卡侧中央处理器根据所述指令更改所述指定QP的发送端状态为非闲置状态,并将所述指定QP的QP资源同步到所述发送端网卡的缓存中。
本公开实施例提供的报文处理方法,还支持用户对于QP的发送端状态由闲置状态向非闲置状态的主动调整,发送端网卡侧中央处理器一旦到这样的指令,就会更改指定QP的发送端状态为所述非闲置状态,并将指定QP的QP资源同步到所述发送端网卡的缓存中,这个过程可以同样描述为发送端网卡侧中央处理器将某个或某些原本由软件资源维护的QP“交给”硬件资源维护。
在一种示例性实例中,所述发送端网卡侧中央处理器更改之前,还包括:
首先,所述发送端网卡侧中央处理器根据自身存储的QP资源存储量信息判断所述缓存中所存储的QP资源是否达到容量上限;
其次,当所述发送端网卡侧中央处理器确定所述缓存中所存储的QP资源达到容量上限,向所述发送端网卡发送QP资源淘汰指令;
最后,所述发送端网卡侧中央处理器接受所述发送端网卡向自身的随机存储器中刷新的淘汰QP资源,其中,所述淘汰QP资源是所述发送端网卡根据所述QP资源淘汰指令淘汰的QP资源。
示例性的,发送端网卡侧中央处理器维护着发送端网卡所存储的QP资源的容量,当发送端网卡侧中央处理器要将某个QP交由硬件资源维护时(即要把这个QP的QP资源同步到发送端网卡的缓存中),发送端网卡侧中央处理器就会先判断发送端网卡的缓存中是否还有容量存储该QP资源,如果没有容量进行存储,发送端网卡侧中央处理器就会先发送淘汰指令给发送端网卡,发送端网卡就会淘汰出一个QP的QP资源到发送端网卡侧中央处理器的随机存储器中,这样发送端网卡的缓存中才会有容量存储要新的QP资源。
示例性的,随机存储器包括:双倍速率同步动态随机存储器(Double DataRateSynchronous Dynamic random access memory,双倍速率同步动态随机存取内存)。
在一种示例性实例中,本公开实施例提供的报文处理方法还包括:
所述发送端网卡侧中央处理器接受所述发送端网卡向自身的随机存储器中刷新的淘汰QP资源;其中,所述淘汰QP资源是所述发送端网卡根据所述QP资源淘汰指令淘汰的QP资源。
示例性的,发送端网卡会采用老化机制主动淘汰QP资源,并将淘汰的QP资源刷新到发送端网卡侧中央处理器的随机存储器中。
在一种示例性实例中,本公开实施例提供的报文处理方法还包括:
所述发送端网卡侧中央处理器监测自身是否接收到用于对所述发送端网卡进行热升级的升级指令。
在一种示例性实例中,所述发送端网卡侧中央处理器根据自身维护的队列对QP的发送端状态信息,确定待处理报文所属QP的发送端状态,包括:
当所述发送端网卡侧中央处理器确定自身未接收到所述升级指令,所述发送端网卡侧中央处理器根据自身维护的队列对QP的发送端状态信息,确定待处理报文所属QP的发送端状态。
示例性的,当发送端网卡热升级前,将发送端网卡的缓存中全部QP资源刷新到发送端网卡侧中央处理器的随机存储器上,并在热升级期间,由发送端网卡侧中央处理器处理所有报文,热升级结束后,发送端网卡侧中央处理器再按照上述实施例提供的周期性获取到发送端状态为所述闲置状态的QP上待处理报文的数量大于预设值时,更改所述待处理报文所属QP的发送端状态、并将待处理报文所属QP的QP资源同步到所述发送端网卡的缓存中的过程处理,实现将非闲置状态的QP“交给”硬件维护。
本公开实施例还提供了一种报文处理方法,如图2所示,该方法包括:
步骤201、发送端网卡接收来自发送端网卡侧中央处理器的待处理报文;其中,所述待处理报文是所述发送端网卡侧中央处理器确定的发送端状态为非闲置状态的QP对应的待处理的报文;
步骤202、所述发送端网卡在自身的缓存中调度所述待处理报文所属QP的QP资源发送所述待处理报文。
示例性的,发送端网卡侧中央处理器根据自身维护的QP的发送端状态信息,确定所有待处理报文所属QP的发送端状态;当确定出一部分待处理报文所属QP的发送端状态为闲置状态,所述发送端网卡侧中央处理器利用自身预先集成的协议栈封装这一部分待处理报文,并将封装后的待处理报文经由发送端网卡转发;当确定出另一部分待处理报文所属QP的发送端状态为非闲置状态,所述发送端网卡侧中央处理器将所述另一部分的待处理报文发送至发送端网卡,以使所述发送端网卡调度所述发送端网卡自身缓存中所述待处理报文所属QP的QP资源发送另一部分待处理报文;其中,所述闲置状态表示QP资源未存储在发送端网卡的缓存中,所述非闲置状态表示QP资源存储在发送端网卡的缓存中。
本公开实施例提供的报文处理方法,发送端网卡只接收并处理发送端网卡侧中央处理器确定的发送端状态为非闲置状态的QP对应的待处理的报文,因此发送端网卡只需要承担一部分报文处理的工作负担,从而在大量QP连接同时保持的同时实现了高性能的数据传输。
在一种示例性实例中,本公开实施例提供的报文处理方法还包括:
所述发送端网卡采用最近最少使用(Least Recently Used,LRU)算法管理自身的缓存中存储的QP资源。
示例性的,发送端网卡具体还可以以队列的形式配合LRU算法管理自身的缓存中存储的QP资源,该队列可以称为QP调度队列,QP调度队列中所放置的是发送端网卡的缓存中存储的QP资源对应的QP标识信息。管理过程具体来说,当某个QP发送待处理报文后,都要将该QP的QP标识信息放在QP调度队列的队首,当某个QP资源被同步到发送端网卡的缓存中后,都要将该QP资源对应的QP的QP标识信息放在QP调度队列的队首。
在一种示例性实例中,本公开实施例提供的报文处理方法还包括:
首先,所述发送端网卡接收来自所述发送端网卡侧中央处理器的QP资源淘汰指令;
其次,所述发送端网卡根据所述QP资源淘汰指令,将采用LRU确定的一段时间内最少使用的QP资源对应的QP的发送端状态更改为闲置状态,并将更改为闲置状态的QP资源刷新到所述发送端网卡侧中央处理器的随机存储器中;
最后,所述发送端网卡接受所述发送端网卡侧中央处理器向自身的缓存中同步的QP资源。
示例性的,如果发送端网卡以QP调度队列的形式配合LRU算法管理自身的缓存中存储的QP资源,那么使用频率最低的QP资源对应的QP就是排在QP调度队列队尾的QP标识信息对应的QP。
示例性的,当发送端网卡侧中央处理器要将某个QP交由硬件资源维护时(即要把这个QP的QP资源同步到发送端网卡的缓存中),发送端网卡侧中央处理器就会先判断发送端网卡的缓存中是否还有容量存储该QP资源,如果没有容量进行存储,发送端网卡侧中央处理器就会先发送淘汰指令给发送端网卡,发送端网卡接收到QP资源淘汰指令,就会淘汰出一个QP的QP资源到发送端网卡侧中央处理器的随机存储器中,这样发送端网卡的缓存中才会有容量存储新的QP资源。
示例性的,QP的发送端状态表示从发送端看这条QP的QP资源是由硬件维护还是由软件维护,QP的接收端状态表示从接收端看该QP的QP资源是由硬件维护还是由软件维护。
在一种示例性实例中,本公开实施例提供的报文处理方法还包括:
所述发送端网卡采用老化机制淘汰自身的缓存中存储的QP资源,将淘汰的QP资源对应的QP的发送端状态更改为闲置状态,并将淘汰的QP资源刷新到所述发送端网卡侧中央处理器的随机存储器中。
示例性的,LRU是对QP资源对应的QP标识信息的先后排列顺序进行调整,而老化机制则会将不常使用的QP资源淘汰出去,以保证发送端网卡的缓存中都是经常使用的QP资源,从而实现硬件资源的最大利用化。
在一种示例性实例中,本公开实施例提供的报文处理方法还包括:
首先,所述发送端网卡接收来自所述发送端网卡侧中央处理器的升级指令;其中,所述升级指令用于对所述发送端网卡进行热升级;
其次,所述发送端网卡根据所述升级指令将自身缓存中存储的全部QP资源刷新到所述发送端网卡侧中央处理器的随机存储器中。
本公开实施例还提供了一种报文处理方法,如图3所示,该方法包括:
步骤301、接收端网卡接收来自发送端网卡的待处理报文;
步骤302、当所述接收端网卡根据所维护的QP的接收端状态信息确定出所述待处理报文所属QP的接收端状态为非闲置状态,所述接收端网卡调用自身的缓存中所述待处理报文所属QP的QP资源处理所述待处理报文;
步骤303、当确定出所述待处理报文所属QP的接收端状态为闲置状态,所述接收端网卡将所述待处理报文发送至所述接收端网卡侧中央处理器,由所述接收端网卡侧中央处理器利用自身预先集成的协议栈处理所述待处理报文。
示例性的,待处理报文所属QP的接收端状态为闲置状态,即所属QP的QP资源未存储在接收端网卡的缓存中,待处理报文所属QP的接收端状态为非闲置状态,即所属QP的QP资源存储在接收端网卡的缓存中。
本公开实施例提供的报文处理方法,接收端网卡当确定待处理报文所属QP的接收端状态为非闲置状态,直接调用自身的缓存中所述待处理报文所属QP的QP资源处理所述待处理报文,当确定待处理报文所属QP的接收端状态为闲置状态,将待处理报文推送至接收端网卡侧中央处理器由接收端网卡侧中央处理器利用所集成的协议栈进行处理,因此接收端网卡只需要承担一部分报文处理的工作负担,从而在大量QP连接同时保持的同时实现了高性能的数据传输。
在一种示例性实例中,本公开实施例提供的报文处理方法还包括:
所述接收端网卡采用LRU算法管理自身的缓存中存储的QP资源。
示例性的,接收端网卡具体还可以以队列的形式配合LRU算法管理自身的缓存中存储的QP资源,该队列可以称为QP调度队列,QP调度队列中所放置的是接收端网卡的缓存中存储的QP资源对应的QP标识信息。管理过程具体来说,当某个QP接收待处理报文后,都要将该QP的QP标识信息放在QP调度队列的队首,当某个QP资源被同步到接收端网卡的缓存中后,都要将该QP资源对应的QP的QP标识信息放在QP调度队列的队首。
在一种示例性实例中,当所述待处理报文所属QP的接收端状态为非闲置状态,还包括:
当所述接收端网卡根据所述待处理报文中携带的发送端状态标识信息确定所述待处理报文所属QP的发送端状态为闲置状态,所述接收端网卡将所述待处理报文所属QP的接收端状态更改为闲置状态,并将所述待处理报文所属QP的QP资源刷新到接收端网卡侧中央处理器的随机存储器中。
示例性的,待处理报文所属QP的接收端状态为非闲置状态包括两种情况,其一是:该QP的发送端状态也为非闲置状态,其二是:该QP的发送端状态为闲置状态,如果是情况二,说明因为存在网络时延等因素导致该QP的发送端状态调整了但接收端状态还没有调整,因此接收端状态需要跟随发送端状态进行变更。
在一种示例性实例中,当所述待处理报文所属QP的接收端状态为闲置状态,还包括:
首先,所述接收端网卡将所述待处理报文发送至所述接收端网卡侧中央处理器;
其次,所述接收端网卡接收所述接收端网卡侧中央处理器向自身的缓存中同步的所述待处理报文所属QP的QP资源。
在一种示例性实例中,所述接收端网卡接收所述接收端网卡侧中央处理器向自身的缓存中同步的所述待处理报文所属QP的QP资源之前,还包括:
首先,所述接收端网卡判断自身的缓存中所存储的QP资源是否达到容量上限;
其次,当确定自身缓存中所存储的QP资源达到容量上限,所述接收端网卡将采用LRU确定的一段时间内最少使用的QP资源对应的QP的接收端状态更改为闲置状态,并将更改为闲置状态的QP资源刷新到所述接收端网卡侧中央处理器的随机存储器中。
示例性的,如果接收端网卡以QP调度队列的形式配合LRU算法管理自身的缓存中存储的QP资源,那么一段时间内最少使用QP资源对应的QP就是排在QP调度队列队尾的QP标识信息对应的QP。
示例性的,当接收端网卡要将某个QP变为由硬件资源维护时(即接收该QP的QP资源同步到接收端网卡的缓存中),发送端网卡就会先判断自身的缓存中是否还有容量存储该QP资源,如果没有容量进行存储,发送端网卡就会先淘汰出一个QP的QP资源到发送端网卡侧中央处理器的随机存储器中,这样接收端网卡的缓存中才会有容量存储新的QP资源。
在一种示例性实例中,本公开实施例提供的报文处理方法还包括:
所述接收端网卡采用老化机制淘汰自身缓存中存储的QP资源,将淘汰的QP资源对应的QP的接收端状态更改为闲置状态,并将淘汰的QP资源刷新到所述接收端网卡侧中央处理器的随机存储器中。
示例性的,LRU是对QP资源对应的QP标识信息的先后排列顺序进行调整,而老化机制则会将不常使用的QP资源淘汰出去,以保证接收端网卡的缓存中都是经常使用的QP资源,从而实现硬件资源的最大利用化。
本公开实施例还提供了一种报文处理方法,如图4所示,该方法包括:
步骤401、接收端网卡侧中央处理器接收来自接收端网卡的待处理报文;其中,所述待处理报文是所述接收端网卡确定的接收端状态为闲置状态的QP对应的待处理的报文;
步骤402、所述接收端网卡侧中央处理器利用预设协议栈处理所述待处理报文。
示例性的,当所述接收端网卡根据所维护的QP的接收端状态信息确定出一部分待处理报文所属QP的接收端状态为非闲置状态,所述接收端网卡调用自身的缓存中这部分待处理报文所属QP的QP资源处理这部分待处理报文;当确定出另一部分待处理报文所属QP的接收端状态为闲置状态,所述接收端网卡将另一部分待处理报文发送至所述接收端网卡侧中央处理器,由所述接收端网卡侧中央处理器利用自身预先集成的协议栈处理。
本公开实施例提供的报文处理方法,接收端网卡侧中央处理器接收并处理接收端网卡确定的接收端状态为闲置状态的QP对应的待处理的报文,因此大量分担了接收端网卡的工作负担,从而使得接收端网卡在大量QP连接同时保持的同时实现了高性能的数据传输。
在一种示例性实例中,所述接收端网卡侧中央处理器接收来自接收端网卡的待处理报文之后,还包括:
当所述接收端网卡侧中央处理器根据所述待处理报文中携带的发送端状态标识信息确定所述待处理报文所属QP的发送端状态为非闲置状态,所述接收端网卡侧中央处理器将所述待处理报文所属QP的接收端状态更改为非闲置状态,并所述待处理报文所属QP的QP资源同步到所述接收端网卡侧中央处理器的缓存中。
示例性的,待处理报文所属QP的接收端状态为闲置状态包括两种情况,其一是:该QP的发送端状态也为闲置状态,其二是:该QP的发送端状态为非闲置状态,如果是情况二,说明因为存在网络时延等因素导致该QP的发送端状态调整了但接收端状态还没有调整,因此接收端状态需要跟随发送端状态进行变更。
在一种示例性实例中,本公开实施例提供的报文处理方法还包括:
所述接收端网卡侧中央处理器接收所述接收端网卡向自身的随机存储器中刷新的淘汰QP资源。
本公开实施例还提供了一种发送端网卡侧中央处理器,包括存储器和处理器,所述存储器用于保存可执行程序;
所述处理器用于读取执行所述可执行程序,以实现如上述任一实施例以发送端网卡侧中央处理器为执行主体的报文处理方法。
本公开实施例还提供了一种发送端网卡,包括存储器和处理器,所述存储器用于保存可执行程序;
所述处理器用于读取执行所述可执行程序,以实现如上述任一实施例以发送端网卡为执行主体的报文处理方法。
本公开实施例还提供了一种接收端网卡侧中央处理器,包括存储器和处理器,所述存储器用于保存可执行程序;
所述处理器用于读取执行所述可执行程序,以实现如上述任一实施例以接收端网卡侧中央处理器为执行主体的报文处理方法。
本公开实施例还提供了一种接收端网卡,包括存储器和处理器,所述存储器用于保存可执行程序;
所述处理器用于读取执行所述可执行程序,以实现如上述任一实施例以接收端网卡为执行主体的报文处理方法。
应理解,处理器可以是中央处理单元(Central Processing Unit,简称为“CPU”),处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
在实现过程中,终端设备所执行的处理可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。即本公开实施例所公开的方法的步骤可以体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
Claims (25)
1.一种报文处理方法,其特征在于,包括:
发送端网卡侧中央处理器根据自身维护的队列对QP的发送端状态信息,确定待处理报文所属QP的发送端状态;
确定出所述待处理报文所属QP的发送端状态为闲置状态,所述发送端网卡侧中央处理器利用自身预先集成的协议栈封装所述待处理报文,并将封装后的待处理报文经由发送端网卡转发;
确定出所述待处理报文所属QP的发送端状态为非闲置状态,所述发送端网卡侧中央处理器将所述待处理报文发送至发送端网卡,以使所述发送端网卡调度所述发送端网卡自身缓存中所述待处理报文所属QP的QP资源发送所述待处理报文;其中,所述闲置状态表示QP资源未存储在发送端网卡的缓存中,所述非闲置状态表示QP资源存储在发送端网卡的缓存中。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述发送端网卡侧中央处理器根据自身维护的QP的发送端状态信息,周期性获取发送端状态为所述闲置状态的QP上待处理报文的数量;
当获得的数量大于预设值,所述发送端网卡侧中央处理器更改所述待处理报文所属QP的发送端状态为所述非闲置状态,并将所述待处理报文所属QP的QP资源同步到所述发送端网卡的缓存中。
3.根据权利要求1所述的方法,其特征在于,还包括:
所述发送端网卡侧中央处理器接收将指定QP的发送端状态由闲置状态调整为非闲置状态的指令;
所述发送端网卡侧中央处理器根据所述指令更改所述指定QP的发送端状态为非闲置状态,并将所述指定QP的QP资源同步到所述发送端网卡的缓存中。
4.根据权利要求2或3所述的方法,其特征在于,所述发送端网卡侧中央处理器更改之前,还包括:
所述发送端网卡侧中央处理器根据自身存储的QP资源存储量信息判断所述缓存中所存储的QP资源是否达到容量上限;
当所述发送端网卡侧中央处理器确定所述缓存中所存储的QP资源达到容量上限,向所述发送端网卡发送QP资源淘汰指令;
所述发送端网卡侧中央处理器接受所述发送端网卡向自身的随机存储器中刷新的淘汰QP资源,其中,所述淘汰QP资源是所述发送端网卡根据所述QP资源淘汰指令淘汰的QP资源。
5.根据权利要求1所述的方法,其特征在于,还包括:
所述发送端网卡侧中央处理器接受所述发送端网卡向自身的随机存储器中刷新的淘汰QP资源;其中,所述淘汰QP资源是所述发送端网卡根据QP资源淘汰指令淘汰的QP资源。
6.根据权利要求1所述的方法,其特征在于,还包括:
所述发送端网卡侧中央处理器监测自身是否接收到用于对所述发送端网卡进行热升级的升级指令;
所述发送端网卡侧中央处理器根据自身维护的队列对QP的发送端状态信息,确定待处理报文所属QP的发送端状态,包括:
当所述发送端网卡侧中央处理器确定自身未接收到所述升级指令,所述发送端网卡侧中央处理器根据自身维护的队列对QP的发送端状态信息,确定待处理报文所属QP的发送端状态。
7.根据权利要求6所述的方法,其特征在于,还包括:
当所述发送端网卡侧中央处理器确定自身接收到所述升级指令,所述发送端网卡侧中央处理器将所述升级指令发送至发送端网卡;
所述发送端网卡侧中央处理器接收接收端网卡向自身的随机存储器中刷新的全部QP资源;
所述发送端网卡侧中央处理器利用自身预先集成的协议栈封装所述待处理报文,并将封装后的待处理报文经由发送端网卡转发。
8.一种报文处理方法,其特征在于,包括:
发送端网卡接收来自发送端网卡侧中央处理器的待处理报文;其中,所述待处理报文是所述发送端网卡侧中央处理器确定的发送端状态为非闲置状态的QP对应的待处理的报文;
所述发送端网卡在自身的缓存中调度所述待处理报文所属QP的QP资源发送所述待处理报文。
9.根据权利要求8所述的方法,其特征在于,还包括:
所述发送端网卡采用最近最少使用LRU算法管理自身的缓存中存储的QP资源。
10.根据权利要求9所述的方法,其特征在于,还包括:
所述发送端网卡接收来自所述发送端网卡侧中央处理器的QP资源淘汰指令;
所述发送端网卡根据所述QP资源淘汰指令,将采用LRU确定的一段时间内最少使用的QP资源对应的QP的发送端状态更改为闲置状态,并将更改为闲置状态的QP资源刷新到所述发送端网卡侧中央处理器的随机存储器中;
所述发送端网卡接受所述发送端网卡侧中央处理器向自身的缓存中同步的QP资源。
11.根据权利要求8所述的方法,其特征在于,还包括:
所述发送端网卡采用老化机制淘汰自身的缓存中存储的QP资源,将淘汰的QP资源对应的QP的发送端状态更改为闲置状态,并将淘汰的QP资源刷新到所述发送端网卡侧中央处理器的随机存储器中。
12.根据权利要求8所述的方法,其特征在于,还包括:
所述发送端网卡接收来自所述发送端网卡侧中央处理器的升级指令;其中,所述升级指令用于对所述发送端网卡进行热升级;
所述发送端网卡根据所述升级指令将自身缓存中存储的全部QP资源刷新到所述发送端网卡侧中央处理器的随机存储器中。
13.一种报文处理方法,其特征在于,包括:
接收端网卡接收来自发送端网卡的待处理报文;
当所述接收端网卡根据所维护的QP的接收端状态信息确定出所述待处理报文所属QP的接收端状态为非闲置状态,所述接收端网卡调用自身的缓存中所述待处理报文所属QP的QP资源处理所述待处理报文;
当确定出所述待处理报文所属QP的接收端状态为闲置状态,所述接收端网卡将所述待处理报文发送至所述接收端网卡侧中央处理器,由所述接收端网卡侧中央处理器利用自身预先集成的协议栈处理所述待处理报文。
14.根据权利要求13所述的方法,其特征在于,还包括:
所述接收端网卡采用LRU算法管理自身的缓存中存储的QP资源。
15.根据权利要求13所述的方法,其特征在于,当所述待处理报文所属QP的接收端状态为非闲置状态,还包括:
当所述接收端网卡根据所述待处理报文中携带的发送端状态标识信息确定所述待处理报文所属QP的发送端状态为闲置状态,所述接收端网卡将所述待处理报文所属QP的接收端状态更改为闲置状态,并将所述待处理报文所属QP的QP资源刷新到接收端网卡侧中央处理器的随机存储器中。
16.根据权利要求13所述的方法,其特征在于,当所述待处理报文所属QP的接收端状态为闲置状态,还包括:
所述接收端网卡将所述待处理报文发送至所述接收端网卡侧中央处理器;
所述接收端网卡接收所述接收端网卡侧中央处理器向自身的缓存中同步的所述待处理报文所属QP的QP资源。
17.根据权利要求15或16所述的方法,其特征在于,所述接收端网卡接收所述接收端网卡侧中央处理器向自身的缓存中同步的所述待处理报文所属QP的QP资源之前,还包括:
所述接收端网卡判断自身的缓存中所存储的QP资源是否达到容量上限;
当确定自身缓存中所存储的QP资源达到容量上限,所述接收端网卡将采用LRU确定的一段时间内最少使用的QP资源对应的QP的接收端状态更改为闲置状态,并将更改为闲置状态的QP资源刷新到所述接收端网卡侧中央处理器的随机存储器中。
18.根据权利要求13所述的方法,其特征在于,还包括:
所述接收端网卡采用老化机制淘汰自身缓存中存储的QP资源,将淘汰的QP资源对应的QP的接收端状态更改为闲置状态,并将淘汰的QP资源刷新到所述接收端网卡侧中央处理器的随机存储器中。
19.一种报文处理方法,其特征在于,包括:
接收端网卡侧中央处理器接收来自接收端网卡的待处理报文;其中,所述待处理报文是所述接收端网卡确定的接收端状态为闲置状态的QP对应的待处理的报文;
所述接收端网卡侧中央处理器利用预设协议栈处理所述待处理报文。
20.根据权利要求19所述的方法,其特征在于,所述接收端网卡侧中央处理器接收来自接收端网卡的待处理报文之后,还包括:
当所述接收端网卡侧中央处理器根据所述待处理报文中携带的发送端状态标识信息确定所述待处理报文所属QP的发送端状态为非闲置状态,所述接收端网卡侧中央处理器将所述待处理报文所属QP的接收端状态更改为非闲置状态,并所述待处理报文所属QP的QP资源同步到所述接收端网卡侧中央处理器的缓存中。
21.根据权利要求19所述的方法,其特征在于,还包括:
所述接收端网卡侧中央处理器接收所述接收端网卡向自身的随机存储器中刷新的淘汰QP资源。
22.一种发送端网卡侧中央处理器,其特征在于,包括存储器和处理器,所述存储器用于保存可执行程序;
所述处理器用于读取执行所述可执行程序,以实现如权利要求1-7任一项所述的报文处理方法。
23.一种发送端网卡,其特征在于,包括存储器和处理器,所述存储器用于保存可执行程序;
所述处理器用于读取执行所述可执行程序,以实现如权利要求8-12任一项所述的报文处理方法。
24.一种接收端网卡侧中央处理器,其特征在于,包括存储器和处理器,所述存储器用于保存可执行程序;
所述处理器用于读取执行所述可执行程序,以实现如权利要求13-18任一项所述的报文处理方法。
25.一种接收端网卡,其特征在于,包括存储器和处理器,所述存储器用于保存可执行程序;
所述处理器用于读取执行所述可执行程序,以实现如权利要求19-21任一项所述的报文处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211552829.3A CN115665073B (zh) | 2022-12-06 | 2022-12-06 | 报文处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211552829.3A CN115665073B (zh) | 2022-12-06 | 2022-12-06 | 报文处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115665073A true CN115665073A (zh) | 2023-01-31 |
CN115665073B CN115665073B (zh) | 2023-04-07 |
Family
ID=85018793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211552829.3A Active CN115665073B (zh) | 2022-12-06 | 2022-12-06 | 报文处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115665073B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108023829A (zh) * | 2017-11-14 | 2018-05-11 | 东软集团股份有限公司 | 报文处理方法及装置、存储介质、电子设备 |
CN109688063A (zh) * | 2018-11-14 | 2019-04-26 | 华为技术有限公司 | 一种大型接收卸载功能的设置方法和装置 |
CN110391999A (zh) * | 2018-04-18 | 2019-10-29 | 海能达通信股份有限公司 | 一种数据通信方法及系统 |
CN110968402A (zh) * | 2018-09-28 | 2020-04-07 | 深信服科技股份有限公司 | 一种cpu工作控制方法、装置、设备及存储介质 |
CN114090495A (zh) * | 2019-03-01 | 2022-02-25 | 华为技术有限公司 | 数据处理的方法、网卡和服务器 |
CN114401218A (zh) * | 2021-12-28 | 2022-04-26 | 绿盟科技集团股份有限公司 | 一种数据报文的旁路转发方法及装置 |
WO2022105884A1 (zh) * | 2020-11-23 | 2022-05-27 | 中兴通讯股份有限公司 | 数据传输方法、装置、网络设备、存储介质 |
WO2022143685A1 (zh) * | 2020-12-29 | 2022-07-07 | 华为技术有限公司 | 一种使用网络设备进行数据查询的系统、方法、及装置 |
-
2022
- 2022-12-06 CN CN202211552829.3A patent/CN115665073B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108023829A (zh) * | 2017-11-14 | 2018-05-11 | 东软集团股份有限公司 | 报文处理方法及装置、存储介质、电子设备 |
CN110391999A (zh) * | 2018-04-18 | 2019-10-29 | 海能达通信股份有限公司 | 一种数据通信方法及系统 |
CN110968402A (zh) * | 2018-09-28 | 2020-04-07 | 深信服科技股份有限公司 | 一种cpu工作控制方法、装置、设备及存储介质 |
CN109688063A (zh) * | 2018-11-14 | 2019-04-26 | 华为技术有限公司 | 一种大型接收卸载功能的设置方法和装置 |
CN114090495A (zh) * | 2019-03-01 | 2022-02-25 | 华为技术有限公司 | 数据处理的方法、网卡和服务器 |
WO2022105884A1 (zh) * | 2020-11-23 | 2022-05-27 | 中兴通讯股份有限公司 | 数据传输方法、装置、网络设备、存储介质 |
WO2022143685A1 (zh) * | 2020-12-29 | 2022-07-07 | 华为技术有限公司 | 一种使用网络设备进行数据查询的系统、方法、及装置 |
CN114401218A (zh) * | 2021-12-28 | 2022-04-26 | 绿盟科技集团股份有限公司 | 一种数据报文的旁路转发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115665073B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100992282B1 (ko) | 통신 접속 수립 방법과 시스템, 데이터 전송 방법과 시스템, 및 컴퓨터 판독 가능한 저장 매체 | |
KR101006260B1 (ko) | 네트워크 프로토콜 처리의 오프로드에서 메모리 관리를 지원하기 위한 장치 및 방법 | |
US7826460B2 (en) | Network-on-chip apparatus, and method for controlling dynamic frequency for the same | |
US7480238B2 (en) | Dynamic packet training | |
WO2020019743A1 (zh) | 流量控制方法及装置 | |
CN113014528B (zh) | 报文处理方法、处理单元及虚拟专用网络服务器 | |
TW201127157A (en) | Method and apparatus for scheduling request | |
CN113179327B (zh) | 基于大容量内存的高并发协议栈卸载方法、设备、介质 | |
CN107517167B (zh) | 一种数据传输控制方法、装置及SoC芯片 | |
CN115665073B (zh) | 报文处理方法及装置 | |
CN104052683A (zh) | 处理分组交换的网络处理器及方法、网络交换系统 | |
EP3694164A1 (en) | Data transmission method and device, and computer storage medium | |
CN108023938B (zh) | 一种消息发送方法及服务器 | |
WO2010060291A1 (zh) | 轮询的方法和装置 | |
CN111131081B (zh) | 一种支持多进程的高性能单向传输的方法和装置 | |
CN109743350B (zh) | 一种科学计算应用影像区交换通信模式的卸载实现方法 | |
US20100085905A1 (en) | Communication system and wireless communication device | |
US20230111984A1 (en) | Methods and Apparatus for Adaptive Power Profiling in A Baseband Processing System | |
TWI446766B (zh) | 管理執行之方法及具有執行管理能力之裝置 | |
AU2013347470A1 (en) | Traffic management scheduling method and apparatus | |
CN113626221B (zh) | 一种消息入队方法及装置 | |
CN110661731B (zh) | 一种报文处理方法及其装置 | |
KR20210073005A (ko) | 효율적 메시지 처리를 제공하는 dds 미들웨어 장치의 동작 방법 | |
CN113794585B (zh) | 一种报文处理方法及装置 | |
CN111737176B (zh) | 一种基于pcie数据的同步装置及驱动方法 |
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 |