A network interface supporting a remote data direct access protocol
By introducing a context information management module into the RDMA network interface and adopting aggregation rules to merge multiple aggregatable native connection context information, the scalability problem of the RDMA network interface is solved, the communication performance and scalability are improved, and the CPU and host overhead are reduced.
Patent Information
- Application Number
- CN202310078726.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-02-08
- Publication Date
- 2025-10-17
- Estimated Expiration
- 2043-02-08
AI Technical Summary
Existing RDMA network interfaces have scalability issues in large-scale reliable connections, resulting in insufficient cache space and missing connection context information cache, which affects communication performance.
By introducing a context information management module into the network interface, multiple aggregatable native connection context information are merged into one aggregated connection context information using aggregation rules, reducing cache space usage and achieving unified management of reliable connections.
It reduces the cache miss rate of the network interface, improves the scalability and performance of RDMA communication, and reduces the software overhead of the CPU and host.
Smart Images

Figure CN116722884B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the field of computer architecture, in particular to the field of network interface supporting remote data direct access, and more particularly to a network interface supporting a remote data direct access protocol. BACKGROUND
[0002] In the field of high performance computing (HPC) and large data centers, the network transmission efficiency of traditional transport layer protocols such as Transmission Control Protocol (TCP) is difficult to meet the growing needs of customers in scenarios requiring high throughput and low latency. Remote Direct Memory Access (RDMA) implements the entire transmission logic in a network interface card (NIC) and allows direct access to remote memory with almost no involvement of the central processing unit (CPU) or operating system. Because communication is carried out using a network interface supporting the RDMA protocol, the communication connection state and host address access permissions can be managed by the network interface hardware, and the processing of the data path in the communication almost does not require the involvement of the host operating system except for permission granting. Therefore, RDMA can achieve extremely high throughput and extremely low latency network transmission with almost no CPU involvement (generally, the CPU only performs preliminary permission judgment).
[0003] RDMA technology is an important data access mode for high-performance network communication. Using RDMA for communication can manage the communication connection state and host address access permissions by the network interface in a hardware manner, and the processing of the data path in the communication does not require the involvement of the host operating system, reduces data copying, and achieves high-bandwidth, low-latency high-performance network communication effect.
[0004] A connection context information cache and a data cache are provided in the network interface. The connection context information cache is used to store the context information of the connection (equivalent to the information for managing the RDMA connection), and the data cache is used to store the data transmitted through the RDMA connection. Currently, RDMA is widely used in commercial data centers and high-performance computing clusters. As the network scale expands, the number of RDMA reliable connections increases, and the existing technology establishes a corresponding connection context information for each RDMA reliable connection. However, the capacity of the connection context information cache is limited. If the space is completely occupied, a buffer overflow will occur, resulting in a decrease in network performance due to the lack of connection context information in the connection context information cache in the network interface, that is, the scalability problem of the RDMA network.
[0005] Current large-scale RDMA networks generally use two ways to alleviate the scalability problem:
[0006] The first mode is to use an unreliable datagram (UD) to avoid establishment of a large-scale reliable connection.
[0007] However, the first mode has the following problems:
[0008] (1) The UD communication mode has no reliability guarantee, and needs upper-layer software to maintain reliability, thereby increasing host-side overhead;
[0009] (2) The UD communication mode does not support high-performance RDMA one-sided communication, thereby increasing host-side overhead;
[0010] The second mode is to use a reliable connection (RC) mode for communication. The RC mode can release host-side CPU overhead by using high-performance RDMA one-sided communication, but the RC mode generates a large amount of connection context information that needs to be maintained by a network interface. To avoid a connection context cache miss in the network interface, some research works use a QP (Queue Pair) connection grouping and time slice switching of QP groups to alleviate the scalability problem. For example, when there are a large number of QP connections for communication, a special thread is created on the host side to manage a large number of QP groups (the special thread causes software overhead on the host side). For example, all QPs are divided into G groups according to group_size, and in a time slice T, the QPs of one group are called to process communication requests, and in the next time slice, the QPs of other groups are called to process communication requests. By ensuring that group_size is less than the connection context information cache size in the network interface, it is ensured that the QPs processed in each time slice do not have a cache miss.
[0011] However, the second mode has the following problems:
[0012] (1) The RC mode generates a large amount of connection context information that needs to be maintained by a network interface, which can cause a connection context information cache miss in the network interface, thereby blocking the entire communication;
[0013] (2) The QP connection grouping and time slice switching of QP groups can alleviate the scalability problem to a certain extent, but these methods increase software overhead of the CPU on the host side.
[0014] (3) Software developers need to have a full understanding of the architecture and performance of an existing network interface to reasonably set the parameters of the QP group size and the time slice length, but most network interfaces are a "black box" device for software developers, which leads to unreasonable parameter setting and affects network communication performance.
[0015] (4) The QP connection grouping, the time slice switching QP group and the like do not essentially reduce the total connection context information amount to be maintained by the network interface, but limit the active connection number maintained by the network interface in each time slice, and each connection grouping update will introduce the bandwidth occupation of the network interface and the host end communication.
[0016] In general, in the research of the RDMA network interface, the inventor finds that the communication performance is greatly reduced in the case of large-scale RDMA reliable connection, that is, the RDMA has the scalability problem, and the phenomenon is caused by the limited cache space in the network interface which is difficult to accommodate large-scale connection context information. Because the cache space in the network interface is limited, and in the RC mode communication process, a corresponding connection context information is generated for each reliable connection, a large amount of connection context information needs to be maintained by the network interface, which may cause the connection context information cache missing in the network interface cache, and the network interface needs to load from the host end memory through the PCIe interface, thereby blocking the entire communication. For example, when the number of connections reaches hundreds, the connection context information is missing in the cache of the network interface, and the network interface needs to load from the host end memory through the PCIe interface, which blocks the communication of the connection, at the same time, occupies the bandwidth of the PCIe reading communication data load, and causes the RDMA communication performance to decline. SUMMARY
[0017] Therefore, the purpose of the present application is to overcome the defects of the prior art, and to provide a network interface supporting a remote data direct access protocol.
[0018] The purpose of the present application is achieved by the following technical solutions:
[0019] In some embodiments of the present application, the present application provides a network interface supporting a remote data direct access protocol, comprising a network interface supporting a remote data direct access protocol, characterized in that the network interface comprises: a control management module for managing the RDMA communication process, the RDMA communication comprising RDMA reliable connection communication based on the RDMA reliable connection mode; a context information management module for managing the connection context information maintained by the RDMA communication process in the cache of the network interface, wherein in the case that it is determined according to the preset aggregation rule that a plurality of native connection context information corresponding to a plurality of native connections based on the RDMA reliable connection mode is aggregable, the aggregated connection context information is used instead of the aggregable plurality of native connection context information, so as to reduce the cache space occupation of the network interface; and a data transmission module for executing the data transmission process of the RDMA reliable connection communication according to the native connection context information or the aggregated connection context information.
[0020] In some embodiments of the present application, the context information management module is configured to: obtain the aggregated connection context information obtained by performing the aggregation operation on the corresponding native connection context information according to the aggregation rule by the host directly connected to the network interface and cache the aggregated connection context information into the cache of the network interface, and delete the multiple native connection context information corresponding to the aggregated connection context information originally stored in the cache of the network interface; or obtain the aggregated connection context information obtained by performing the aggregation operation on the corresponding native connection context information according to the aggregation rule and delete the multiple native connection context information corresponding to the aggregated connection context information originally stored in the cache of the network interface.
[0021] In some embodiments of the present application, the preset aggregation rule includes: in the case that the native queues corresponding to the multiple native connections are the native queues generated by the same process initiating the communication request to the same node, it is determined that the multiple native connection context information corresponding to the multiple native connections is aggregable.
[0022] In some embodiments of the present application, in the case that the local interface number, the opposite end interface number and the completion queue number of the native connection context information corresponding to the multiple native connections are all the same, it is determined that the native queues corresponding to the multiple native connections are the native queues generated by the same process initiating the communication request to the same node, and the multiple native connection context information corresponding to the multiple native connections is aggregable.
[0023] In some embodiments of the present application, the aggregation operation is performed after triggering the aggregation check and checking that the multiple native connection context information is aggregable, and the aggregation check is triggered by at least one of the following: periodically, when the space occupation amount of all native connection context information to the cache of the network interface reaches a predetermined early warning threshold, and each time new native connection is generated.
[0024] In some embodiments of the present application, the network interface further comprises: an RDMA protocol processing module for processing the communication protocol of the RDMA communication, and wherein the communication protocol required for the RDMA reliable connection communication based on the native connection context information is preset to indicate the communication rule of the native connection and the communication protocol required for the RDMA reliable connection communication based on the aggregated connection context information is preset to indicate the communication rule of the aggregated connection.
[0025] In some embodiments of the present application, the context information management module comprises a native context information management unit for managing the native connection context information and an aggregated context information management unit for managing the aggregated connection context information, wherein the aggregated context information management unit is configured to: in the communication process, each native connection corresponding to the multiple native connection context information replaced by the aggregated connection context information can read and write access the aggregated connection context information to realize the functional requirements related to the communication.
[0026] In some embodiments of the present application, the aggregation context information management unit comprises: an aggregation access control component for parsing and responding to access requests of the control management module and the RDMA protocol processing module to complete access to the aggregation connection context information and / or access to the metadata of the aggregation connection context information; an aggregation context cache component for providing a cache space for the aggregation connection context information; a metadata component of the aggregation connection context information for storing the metadata of the aggregation connection context information; and a resource entity access component for performing information interaction with the host end to initiate read and write operations on the aggregation connection context information stored in the host end.
[0027] In some embodiments of the present application, the data transmission module is further configured to, in the case of replacing a plurality of original connection context information that can be aggregated with one aggregation connection context information, maintain the connection of the corresponding plurality of original connections in units of aggregation connections, update the state, and perform data packet encapsulation processing when transmitting data.
[0028] In some embodiments of the present application, the data transmission module is further configured to, in the communication process, perform selective retransmission and out-of-order packet submission in a data packet granularity, wherein the selective retransmission refers to retransmitting data packets that have not been received or have not been received on time by the data receiving end when transmitting a plurality of data packets, and the out-of-order packet submission refers to submitting data packets even when the data packets are received out of order, instead of reporting an error.
[0029] In some embodiments of the present application, the aggregation connection context information comprises: an association linked list for recording the association relationship between each original connection and the aggregation connection to support the aggregated original connections to perform data transmission and reception through the aggregation connection or to perform RDMA unilateral communication.
[0030] The beneficial technical effects of the present application are as follows:
[0031] The present application can aggregate reliable connections that can be aggregated, replace a plurality of connection context information that can be aggregated with aggregation connection context information in the hardware of the network interface, implement unified management, reduce the cache space occupation of the connection context information in the network interface, and further reduce the cache miss rate and improve the RDMA communication scalability. BRIEF DESCRIPTION OF DRAWINGS
[0032] The embodiments of the present application will be further described below with reference to the accompanying drawings, in which:
[0033] Figure 1 FIG. 1 is a schematic diagram of the module structure of the network interface according to the embodiments of the present application;
[0034] Figure 2Fig. 1 is a schematic diagram of the contents of the aggregated connection context information according to an embodiment of the present application;
[0035] Figure 3 Fig. 2 is a schematic diagram of the principle of aggregating the original connection context information according to an embodiment of the present application;
[0036] Figure 4 Fig. 3 is a schematic diagram of the principle of aggregating the connection in a server-client scenario according to an embodiment of the present application;
[0037] Figure 5 Fig. 4 is a schematic diagram of the structure of the aggregated context information management unit according to an embodiment of the present application. DETAILED DESCRIPTION
[0038] In order to make the objects, technical solutions and advantages of the present application clearer, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and should not be used to limit the present application.
[0039] As mentioned in the background section, the inventors have found that there is a large amount of redundant information in the connection context information of the logical reliable connection created by the user after studying the establishment, modification, query and communication process of the RDMA reliable connection. For example, in the communication process of the RDMA reliable connection mode, a corresponding connection context information will be generated for each reliable connection, and a large amount of connection context information will be generated, which needs to be maintained by the network interface. This may cause the connection context information cache in the network interface to be missing, thereby blocking the entire communication. The inventors have found that the context information of many reliable connections can be reused in actual communication. To solve the RDMA connection scalability problem, the software and hardware cooperative method can be used to aggregate the reliable connections that can be aggregated, and the network interface hardware can be used to uniformly manage the reliable connection information that can be aggregated, thereby reducing the cache space occupation of the connection context information in the network interface, and further reducing the cache miss rate, and realizing high expansion RDMA in a large-scale network environment. To this end, the present application provides a network interface supporting a remote data direct access protocol, and a context information management module thereof, which is used to manage the connection context information maintained in the cache of the network interface in the RDMA communication process. In the case where it is determined according to a preset aggregation rule that a plurality of native connection context information corresponding to a plurality of native connections based on the RDMA reliable connection mode is aggregable, one aggregated connection context information is used to replace the aggregable plurality of (at least two) native connection context information. Thus, the aggregable reliable connections (native connections) can be aggregated, and the aggregable plurality of native connection context information can be replaced by one aggregated connection context information. Under the same conditions, the amount of cache occupation of the network interface can be reduced, and the cache miss rate of the network interface can be further reduced (because the cache capacity on the network interface is limited, too much storage of the native connection context information will cause some native connection context information to be kicked out to the next level of storage medium, such as the storage space of the host. When accessing these kicked-out native connection context information, cache miss (Cache Miss) will occur. At this time, the network interface needs to read the storage space of the host to the cache, which consumes a lot of time overhead and affects the efficiency of the RDMA reliable connection communication. The aggregated connection context information of the present application reduces the occupation of the cache space of the network interface, so that the cache of the network interface can actually accommodate more connection context information, and the cache miss of the network interface is reduced, thereby improving the communication performance of the RDMA reliable connection communication.
[0040] According to one embodiment of the present application, a network interface supporting a remote data direct access protocol is provided, which, when applied, is connected with a resource entity 200 (such as a host) through a resource entity interface (such as PCIe), and comprises a control management module 101, a context information management module 102, an RDMA protocol processing module 103, a data transmission module 104, and a system bus controller 105; wherein the resource entity 200 is a master control unit of the network interface, and is usually composed of a CPU and a storage medium of a host end, and is used to create various resources (such as QP, CQ, MR, PD, SRC QP, which is a source connection queue corresponding to an aggregated connection) required for RDMA reliable connection communication and control the RDMA reliable connection communication. The improvement of the present application is mainly based on the network interface. In order to facilitate the understanding of the technical solution of the present application, the various modules of the network interface will be introduced respectively as follows.
[0041] I. Control management module
[0042] According to one embodiment of the present application, the control management module 101 is used to manage the RDMA communication process, which includes RDMA reliable connection communication based on the RDMA reliable connection mode. The control management module 101 is responsible for the management of the control plane in the communication process, and can be used to manage the RDMA reliable connection communication, which includes the response of the communication request, the analysis and execution of the allocation communication resource configuration command, the processing of the configuration aggregated connection context information command to write the aggregated connection context information into the cache of the network interface, the abnormal event processing, and the analysis and execution of the release communication resource command, or a combination thereof. In the control management module 101, the response of the communication request can be to inform the RDMA protocol processing module 103 to process the communication request. In addition, the control management module 101 can be used to manage the ordinary RDMA reliable connection communication or the unreliable datagram communication, and the management work of this part can refer to the prior art, and the present application does not make any limitation on this.
[0043] II. Context information management module
[0044] According to one embodiment of the present application, the context information management module 102 is configured to manage the connection context information maintained by the RDMA communication process in the cache of the network interface. When it is determined according to the preset aggregation rule that the plurality of native connection context information corresponding to the plurality of native connections based on the RDMA reliable connection mode is aggregable, the aggregated connection context information is used to replace the aggregable plurality of native connection context information. In the RDMA communication process, the corresponding connection context information needs to be maintained for the established connection. According to one embodiment of the present application, if the native connection context information and the aggregated connection context information are maintained in different cache areas respectively, preferably, for the native connection, the native connection context information includes: a state flag bit for indicating the connection state, a sending queue size, a receiving queue size, a local interface number for describing the ID number of the local network interface, a peer interface number for describing the ID number of the destination network interface, packet sequence number information for describing the data packet in the communication process, completion queue number information for describing the completion queue number associated with the current aggregated connection, and memory key information for describing the key for querying the memory access permission in the resource entity; and for the aggregated connection, the aggregated connection context information includes: a state flag bit for indicating the connection state, a sending queue size, a receiving queue size, a local interface number for describing the ID number of the local network interface, a peer interface number for describing the ID number of the destination network interface, a local aggregated connection queue number, a peer (destination) aggregated connection queue number, packet sequence number information for describing the data packet in the communication process, completion queue number information for describing the completion queue number associated with the current aggregated connection, memory key information for describing the key for querying the memory access permission in the resource entity, and an association list for recording the association relationship between each native connection and the aggregated connection to support the data transmission or reception of the aggregated native connection through the aggregated connection or the RDMA unilateral communication. When the data of the native connection needs to be sent out, the corresponding aggregated connection can be found through the association list, and the data is sent out through the aggregated connection. According to one embodiment of the present application, if the native connection context information and the aggregated connection context information are maintained in the same cache area of the network interface, in order to distinguish the connection context information of different types, the aggregated connection context information further includes connection type information for distinguishing the aggregated connection and the native connection. That is, the connection type information for indicating whether the corresponding connection is the native connection or the aggregated connection. See Figure 2For example, the aggregated connection context information includes a state flag 301, connection type information 302, a sending queue size 303, a receiving queue size 304, a local interface number 305, a peer interface number 306, a local aggregated connection queue number 307, a peer aggregated connection number 308, packet sequence number information 309, a completion queue number information 310, memory key information 311, and an association list 312. The use of each information (or field) in the aggregated connection context information is described below:
[0045] The state flag 301 includes an error state (connection error), an initialization state (state when the connection is created), a sending state (when data can be sent and received), and a receiving state (when data can be received but cannot be sent). The flag is modified and updated by the host software before connection creation and communication request processing, and is modified and updated according to the communication protocol and communication condition during single and double communication. The flag is cleared when the host software releases the connection resource after communication ends.
[0046] The connection type information 302 is used to indicate the aggregated connection type or the native connection type (different from the ordinary QP connection). The field is modified by the host software when the connection is created, and is queried by the network card when processing the request during single and double communication. The data sending and receiving logic of the aggregated connection is used for the request of the aggregated connection type, and the native data sending and receiving logic is used for the request of the native connection type. The field is cleared when the host software releases the connection resource after communication ends.
[0047] The sending queue size 303 is used to describe the space size of the sending queue corresponding to the connection in the resource entity. For the aggregated connection, the sending queue size of the aggregated connection (the native queue includes the sending queue and the receiving queue) in the resource entity is described. The field is modified by the host software when the connection is created, and is queried by the network card of the sending end when obtaining the sending request during single and double communication. The size of the sending queue is read to accurately read the request of a certain length. The field is cleared when the host software releases the connection resource after communication ends.
[0048] The receiving queue size 304 is used to describe the space size of the receiving queue corresponding to the connection in the resource entity. For the aggregated connection, the space size of the receiving queue corresponding to the aggregated connection in the resource entity is described. The field is modified by the host software when the connection is created, and is queried by the network card of the receiving end when obtaining the receiving request during double communication. The size of the receiving queue is read to accurately read the receiving request of a certain length. The field is cleared when the host software releases the connection resource after communication ends.
[0049] Local interface number 305, opposite interface number 306 (or called ID number of local network interface, ID number of opposite network interface), the field is modified by host software when connection is created, and is used to verify whether local end and opposite network interface ID in request match in single and bilateral communication process, and is emptied when host software releases connection resource after communication ends.
[0050] Local aggregation connection queue number 307, opposite aggregation connection number 308 (or called local SRC queue number, opposite SRC queue number), the field is modified by host software when connection is created, and is used to verify whether local SRC queue number and opposite SRC queue number in request match in single and bilateral communication process, and secondly, SRC queue number is fed back to upper software in communication completion information, and is emptied when host software releases connection resource after communication ends.
[0051] Packet sequence number information 309, used to describe packet sequence number (PSN) information in data transmission process, including recently acquired Ack packet PSN, NextPSN of packet to be sent, and ExpectPSN of packet to be received.
[0052] Completion queue number information 310, used to describe queue number information of completion queue (CQ) associated with the aggregation connection.
[0053] Memory key information 311, used to describe memory key information of the key for memory access permission query of the aggregation connection in resource entity.
[0054] Association list 312, when the aggregation connection is created, the network interface stores the aggregable native connection in the form of a linked list in the aggregation connection context information (SRC context for short) (specifically, the associated native queue number list) for use in communication process and completion information submission process. In single and bilateral communication, the network interface of the sending end receives the communication request containing local aggregation connection queue number, local native queue number and opposite native queue number issued by software, and the network interface hardware distinguishes the communication request through the local aggregation connection queue number, local native queue number and opposite native queue number, and verifies through the associated native queue number list in the SRC context; the network interface of the receiving end distinguishes the data packet through the aggregation connection queue number and native queue number in the packet header when processing the received data, and verifies through the native queue number list in the SRC context, so as to realize communication through the aggregation connection; when the completion information is submitted, the network interface submits the aggregation queue number, native queue number and request number corresponding to the processed communication request to the completion queue, so as to realize resource release and the like.
[0055] It should be noted that when sending a data packet through the aggregated connection for communication, the peer aggregated connection number is additionally added in the packet header of the data packet sent through the native connection for communication, so that the receiver of the data can be parsed through the aggregated connection context corresponding to the peer aggregated connection number after being sent to the peer.
[0056] The context information management module 102 can passively accept and store the aggregated connection context information that has been aggregated (aggregation mode two), or actively aggregate the corresponding native connection context information (aggregation mode one). The specific implementation can be set by the implementer as needed. In aggregation mode one, the context information management module 102 is configured to obtain the aggregated connection context information obtained by the host directly connected to the network interface (for example, a host that sets a network interface (or a network interface card) for external communication is a host directly connected to the network interface) according to the aggregation rule for the aggregation operation of the corresponding native connection context information and cache it in the cache of the network interface, and delete the multiple native connection context information corresponding to the aggregated connection context information originally stored in the cache of the network interface. For example: in aggregation mode two, the context information management module 102 obtains the aggregated connection context information obtained by the aggregation operation of the corresponding native connection context information according to the aggregation rule and deletes the multiple native connection context information corresponding to the aggregated connection context information originally stored in the cache of the network interface. The technical scheme of this embodiment can at least achieve the following beneficial technical effects: this embodiment can aggregate the reliable connections (native connections) that can be aggregated, replace the multiple native connection context information that can be aggregated with one aggregated connection context information, reduce the cache occupancy of the network interface under the same conditions, and further reduce the cache miss rate of the network interface, thereby guaranteeing the performance of RDMA reliable connection communication.
[0057] To realize the aggregation of the redundant native connection context information, the corresponding aggregation rule needs to be defined to reduce the occupation of the cache space of the network interface. According to one embodiment of the present application, the preset aggregation rule includes: in the case that the native queues (Queue Pair, QP, also referred to as queue pair) corresponding to the multiple native connections are the native queues generated by the same process to the same node due to the communication request, it is confirmed that the multiple native connection context information corresponding to the multiple native connections is aggregable. At this time, it is equivalent to allowing the access of the same process to the same node to utilize one aggregated connection to perform the RDMA reliable connection communication, and in this process, the multiple native connection context information corresponding to the process is aggregated into one aggregated connection context information. Preferably, in the case that the local interface number, the opposite end interface number and the completion queue number of the native connection context information corresponding to the multiple native connections are all the same, it is confirmed that the native queues corresponding to the multiple native connections are the native queues generated by the same process to the same node due to the communication request, and the multiple native connection context information corresponding to the multiple native connections is aggregable. Taking any two native connections as an example, assuming that the local interface number, the opposite end interface number and the completion queue number of the native connection 1 are a, b and c respectively, and the local interface number, the opposite end interface number and the completion queue number of the native connection 2 are a, b and c respectively, the local interface number, the opposite end interface number and the completion queue number of the native connection 1 and the native connection 2 are all the same, and the native connection context information corresponding to the native connection 1 and the native connection 2 is aggregable. The aggregation rule can be defined by the extended SRC (Scalable Reliable Connection) primitive realized by libibverbs (a general RDMA programming interface), and the user can check whether the multiple existing native connection context information is aggregable through the extended SRC primitive, aggregate the aggregable native connection context information, generate the aggregated connection queue number, bind the native queue number corresponding to the aggregable native connection context information with the aggregated connection queue number to generate the aggregated connection context information (the aggregated connection context information includes the aggregated connection context information of the aggregated connection request end (SRC Requester, maintained in the cache of the local network interface) and the aggregated connection context information of the aggregated connection response end (SRC Responder, maintained in the cache of the opposite end network interface), used for subsequent communication based on the aggregated connection) actually managed in the network interface. Through the extended SRC primitive, the user can conveniently complete the aggregation of the native connection context information, the submission of the communication request, and can perceive the number of the connection context information actually needed to be maintained in the network interface.
[0058] It should be noted that in the foregoing aggregation rule, the native queue generated by the same process initiating a communication request to the same node is not only applicable to the aggregation operation on the corresponding native connection context information in the network interface of the request end, but also applicable to the aggregation operation on the corresponding native connection context information in the network interface of the response end. See Figure 3 According to one embodiment of the present application, the embodiment is a method for implementing the logical relationship between the aggregation queue (SRC QP for short) corresponding to the aggregation connection and the native queue (ordinary QP for short) and the connection relationship between the SRC request end (SRC Requester, the party initiating the communication request) and the SRC response end (SRC Responder, the party responding to the communication request):
[0059] First, the following is aggregated Figure 3Some of the tags in the table are briefly explained. The memory area in the memory is the information that may be directly accessed by RDMA reliable connection communication. Node 0 (abbreviated as N0) is the node number corresponding to the current host. Node 1 (abbreviated as N1), Node 2 (abbreviated as N2), and Node n (abbreviated as Nn) are the node numbers corresponding to some hosts that may establish connections with the current host. Process 0, process 1...process n represent processes running on the host. QP0, QP1,..., QPn,...QPi, QPi+1,...QPi+n represent the queue numbers of the corresponding native queues. Assume that QP0, QP1,...,QPn are all native queues generated by the same process in node Node 0 initiating communication requests to the same node Node1. If the completion queues corresponding to the native queues QP0, QP1,...,QPn are also the same, then in the network interface of node Node 0, the native connection context information corresponding to the native queues QP0, QP1,...,QPn is aggregated and represented by SRC N1 Req P0 (see K1) represents the local aggregate connection queue number formed locally when process 0 (P0) initiates a communication request to node 1; similarly, SRC Nn Req Pn represents the local aggregate connection context information corresponding to process n initiating a communication request to node n. The meanings of the remaining reference numerals are similar and will not be repeated here. On the responding end, multiple native queues will be generated because the same process initiates a communication request to the node. The native connection context information corresponding to these multiple native queues still needs to be aggregated into one aggregate connection context information and generate the corresponding peer aggregate connection queue number; for example, for SRC N1Req P0, SRC N0 Rsp P0 (see K2) is set in node N1, indicating the peer aggregate connection queue number in the node used to respond to the communication request of process 0 of node N0. Similarly, node N0 establishes a corresponding peer aggregate connection queue number for communication requests initiated by processes of other nodes. Taking SRC N2 Rsp P0 in node Node 2 as an example, it has a one-to-one connection relationship with SRC N2 Req P0; the rest are similar and will not be repeated here.
[0060] Secondly, SRC is further explained. SRC is divided into two categories: SRC request end ( Figure 3 K1) and SRC response end ( Figure 3 If n processes in a node (host) want to communicate with N nodes, n*N SRC request terminals need to be created;
[0061] The relationship between ordinary QP and SRC requester: All ordinary QPs that establish a connection with the same destination node in the same process of the same node and use the same CQ can be aggregated into the same SRC requester; Figure 3In the specific embodiment, QP0 to QPn in the 0th process in the 0th node need to establish a communication connection with the 1st node, and QP0 to QPn are associated with the same CQ, so QP0 to QPn can be aggregated to the same SRC request end (for example Figure 3 SRC N1 Req P0) marked by K1.
[0062] Connection relationship between the SRC request end and the SRC response end: the SRC request end and the SRC response end are a 1:1 connection relationship. When the connection relationship between the SRC request end and the SRC response end is represented by an aggregated connection queue, for example Figure 3 K1 (SRC N1 Req P0, the SRC request end in the 0th node for communication with the 1st node) and K2 (SRC N0 Rsp P0, the SRC response end in the 1st node for communication with the 0th node) establish a 1:1 connection.
[0063] Relationship between the common QP and the SRC response end: each independent SRC response end in a node can be associated with any common QP in the node. For example Figure 3 In the specific embodiment, the SRC response end (for example Figure 3 SRC N2 Rsp P0) marked by K3 in the 0th node for responding to the 2nd node 0th process can establish a logical relationship with any QP in the 0th node, and other similar relationships are not described herein.
[0064] In order to facilitate understanding of the technical solutions of the present application, the embodiments of the present application are combined with Figure 4 the actual deployment scenario of the client-server to illustrate the scalability advantage of the present application in practice. According to an embodiment of the present application, it is assumed that there are c client, each client has P processes, each process has n QPs for communication with the server, there is 1 server, and the server has P processes. Wherein, SRC represents an aggregated connection; CcPp represents establishing a connection with the process (Process) p in the client (Client) c, for example, C0P0 represents establishing a connection with the process 0 in the client 0; Req represents a request end; Rsp represents a response end, and other marks can be referred to the explanation of Figure 3 , which is not described herein.
[0065] If all use the corresponding common QP of the native connection, the server needs to create c*P*n common QPs, and each client needs to create n*P common QPs, so as to meet the communication requirements, which will cause the network interface to maintain a large number of common QP contexts (i.e. native connection context information), especially the network interface of the server needs to maintain c*P*n common QP contexts, which is prone to cache miss and performance degradation.
[0066] If the aggregation scheme of the present application is used, the server only needs to create c*P SRC response ends, and each client needs to create P SRC request ends, so as to meet the communication requirement, greatly reduce the SRC context (i.e. the aggregation connection context information) that needs to be maintained by the network interface, reduce the possibility of cache missing in the network interface, and thus guarantee the scalability of RDMA.
[0067] It should be understood that the above embodiment is only a preferred embodiment, and according to the needs of the implementer, the redundant native connection context information can also be aggregated according to other aggregation rules, for example, in the case that the access contents corresponding to a plurality of native connections are the same, it is confirmed that the plurality of native connection context information corresponding to the plurality of native connections is aggregable, and the present application does not make any limitation on this.
[0068] In order to perform the aggregation operation, it is necessary to define the condition for triggering the aggregation check. According to an embodiment of the present application, the aggregation operation is performed after the aggregation check is triggered and it is checked that the plurality of native connection context information is aggregable, and the aggregation check is triggered at least in one of the following ways: periodically, when the space occupation of all native connection context information to the cache of the network interface reaches a predetermined warning threshold, and each time a new native connection is generated. For example, the periodic execution is performed once every 100 milliseconds, every second, every 3 seconds, or every 5 seconds, etc. The predetermined warning threshold is set according to the occupation rate, such as 60%; or according to the size of the occupied space, such as 8Mb or 16Mb, etc. The technical scheme of this embodiment can at least achieve the following beneficial technical effects: the periodic execution of the aggregation check of the present embodiment can reduce the overhead of the aggregation operation; the execution of the aggregation check when the space occupation of all native connection context information to the cache of the network interface reaches the predetermined warning threshold can realize dynamic adjustment of the saving form of the connection context information according to the actual cache condition, i.e. when the space occupation of the cache of the network interface is not high, the native connection context information is saved according to the original rule, and when the space occupation of the cache of the network interface is high, part of the native connection context information is aggregated, so as to reduce the cache missing rate of the network interface and guarantee the performance of the RDMA reliable connection communication; the execution of the aggregation check each time a new native connection is generated can immediately find and aggregate the redundant native connection context information, and maximize the performance of the RDMA reliable connection communication.
[0069] The following will be described taking one RDMA communication as an example. According to an embodiment of the present application, the embodiment is the overall execution flow of one communication based on aggregated connection, which includes the following steps:
[0070] S1: any communication entity initiates RDMA reliable connection communication;
[0071] S2: The communication entity (including the requesting end and the responding end) creates various resources required for RDMA reliable connection communication, including a native queue (QP, Queue Pair, also referred to as a common queue pair), a completion queue (CQ), a memory region (MR), a protection domain (PD), and the like;
[0072] S3: The communication entity invokes a predetermined aggregation rule (or SRC creation primitive) to aggregate the redundant native connection context information of at least two native connection pairs into aggregated connection context information, and creates resources associated with multiple native queues; S3 includes:
[0073] S301: Check whether the local interface number, the opposite end interface number, and the completion queue number in the native connection context information corresponding to the corresponding native queue are consistent. If consistent, the check passes, and the corresponding native connection context information of the corresponding native queue can be aggregated into an aggregated connection context information. Based on the aggregated connection communication, the process goes to S4 corresponding to the communication flow; if the check fails, the native queue that fails the check is based on the native connection communication, and the process goes to S4' corresponding to the communication flow;
[0074] S302: The network interface obtains the aggregated connection context information generated by the host and stores it in the cache of the network interface;
[0075] S4: Obtain the aggregated connection-based communication request and go to S5. The requesting end communication entity invokes a communication protocol (or SRC communication primitive) required for RDMA reliable connection communication based on the aggregated connection context information to generate an aggregated connection-based communication request, writes a doorbell into the network interface, the doorbell is information used to notify the network interface of the communication request, and the network interface obtains the communication request from the requesting end communication entity according to the doorbell; S4 includes:
[0076] S401: Generate an aggregated connection-based communication request and write it into an aggregated request queue corresponding to the aggregated connection-based communication request. The aggregated connection-based communication request includes: an operation type (RDMA Write, RDMA Read), an opposite end aggregated connection queue number, an associated local native queue number (local common QP number), an associated opposite end native queue number (destination common QP number), a message length, an opposite end interface number, a memory key, and a virtual address in the message payload memory;
[0077] S402: Generate a doorbell, which includes the request length of the aggregated connection-based communication request, the aggregated connection queue number, and the communication operation type;
[0078] S403: Write the doorbell into the address space of the network interface;
[0079] S4': communication flow based on native connection context information, which can use the existing RDMA communication flow, consistent with the flow described in the IBTA standard;
[0080] S5: the network interface executes the communication request based on the aggregated connection, wherein S5 includes:
[0081] If it is the sending end:
[0082] S501: the request end network interface parses the doorbell and obtains the communication request based on the aggregated connection from the resource entity;
[0083] S502: the request end network interface parses the obtained communication request based on the aggregated connection, obtains the network communication data load from the resource entity, performs packet encapsulation and transmission based on the aggregated connection context information, and supports selective retransmission of dropped packets. When performing packet encapsulation corresponding to the aggregated connection based on the aggregated connection context information, the packet header is increased by the opposite end aggregated connection queue number compared with the packet header of the packet based on the native connection context information, and the rest is consistent with the RDMA packet format specified by IBTA. Alternatively, some bits can be reserved as packet header reserved bits for later expansion of other functions. For example, 32 bits are added to the packet header, wherein 0-23 bits are used to record the opposite end aggregated connection queue number, and 24-31 bits are reserved for other purposes.
[0084] If it is the receiving end:
[0085] S501': the receiving end network interface parses the obtained data packet corresponding to the aggregated connection, wherein the receiving end of the data packet is confirmed according to the corresponding aggregated connection queue found according to the opposite end aggregated connection queue number in the data packet and the information corresponding to the native connection recorded in the corresponding associated linked list and the packet header, the data packet is written into the resource entity, out-of-order submission of out-of-order arrived data packets is supported, the communication state based on the aggregated connection is updated during data reception, and Ack information is fed back to the sending end.
[0086] S6: the network interface feeds back completion information to the upper layer software after completing a communication request processing. S6 includes:
[0087] S601: whenever the ordinary QP associated with the SRC completes a communication, the completion information is written back to the receiving end communication entity, and the SRC context is updated.
[0088] S7: the network interface and the resource entity release the resources of the communication (the resources of the native connection corresponding to the native queue or the resources of the aggregated connection corresponding to the aggregated queue).
[0089] S8: the RDMA reliable connection communication is ended.
[0090] In order to better manage the native connection context information and the aggregated connection context information, the two kinds of information can be managed separately, according to an embodiment of the present application, a context information management module includes a native context information management unit for managing the native connection context information and an aggregated context information management unit for managing the aggregated connection context information, wherein the aggregated context information management unit is configured to: in a communication process, each native connection corresponding to a plurality of native connection context information replaced by the aggregated connection context information can read and write the aggregated connection context information to realize a communication related function requirement and / or delete the aggregated connection context information when communication tasks of the plurality of native connections corresponding to the plurality of native connection context information replaced by the aggregated connection context information are all completed. According to an embodiment of the present application, see Figure 5The aggregation context information management unit comprises: an aggregation access control component 10201 configured to parse and respond to an access request R1 of the control management module and an access request R2 of the RDMA protocol processing module, so as to complete access to the aggregation connection context information and / or access to metadata of the aggregation connection context information; an aggregation context cache component 10202 configured to provide a cache space of the aggregation connection context information; an metadata component 10203 of the aggregation connection context information configured to store metadata of the aggregation connection context information; and a resource entity access component 10204 configured to perform information interaction with the host end to initiate read and write operations on the aggregation connection context information stored in the host end. The native context information management unit can be implemented by using a prior art solution, and the present application does not make any limitation in this regard. Illustratively, the aggregation access control component 10201 is configured to parse and respond to the access request R1 (generated in the corresponding stages of steps S2, S3 and S7 in the foregoing embodiment) of the control management module and the access request R2 (generated in the corresponding stages of steps S4, S5 and S6), so as to complete access to the cache space of the connection context information, access to the metadata of the context information, and access to the corresponding resources of the resource entity end. The aggregation context cache component 10202 is configured to store the SRC context entries (i.e., the aggregation connection context information) by using cache storage, and the organization form of the cache is not limited to multi-way set associative, and the replacement strategy is not limited to least recently used (LRU) or random replacement. The metadata component 10203 of the aggregation connection context information is configured to store metadata of the SRC context entries, including the number of SRCs, and physical address information of each SRC context in the resource entity, which is written in the corresponding stages of steps S2 and S3. When the access control module accesses the SRC cache miss, the module is accessed to obtain the physical address of the missing SRC context in the resource entity. The resource entity access component 10204 is configured to complete information interaction between the context management module and the host end (resource entity). Specifically, when a certain SRC context entry is updated, missing, replaced, dirty block write-back or invalid release, the component obtains the physical address of the certain SRC context entry in the resource entity. It should be understood that the embodiment is only a structural schematic diagram of one possible implementation of the aggregation context information management unit, and in the case of achieving the same function, some components of the embodiment can be combined or further split to obtain other embodiments, and the present application does not make any limitation in this regard.
[0091] III. RDMA protocol processing module
[0092] According to an embodiment of the present application, the RDMA protocol processing module is used for processing of the communication protocol of the RDMA communication data plane, and wherein the communication protocol required for the RDMA reliable connection communication based on the native connection context information is preset to indicate the communication rules of the native connection and the communication protocol required for the RDMA reliable connection communication based on the aggregated connection context information is preset to indicate the communication rules of the aggregated connection. In the RDMA protocol processing module, in the communication rules required for setting the aggregated connection, the local aggregated connection queue number and the parsing manner of the data receiver according to the aggregated connection queue number and the native queue number (the local native queue number and the opposite end native queue number) in the packet header are additionally added in the packet header, and the native queue number is contained in the original packet header. According to the information, the communication based on the aggregated connection can be realized.
[0093] IV. Data transmission module
[0094] According to an embodiment of the present application, the data transmission module 104 is used for executing the data transmission process of the RDMA communication, wherein the data transmission process of the RDMA reliable connection communication based on the native connection context information or the aggregated connection context information is included. The data transmission module 104 is responsible for the implementation of the link layer and the physical layer in the network interface, and provides the network cable interface to the outside.
[0095] According to an embodiment of the present application, the data transmission module is further configured to, in the case of using one aggregated connection context information to replace the plurality of native connection context information which can be aggregated, maintain the connection of the corresponding plurality of native connections in the aggregated connection unit, update the state, and perform the data packet encapsulation processing in the transmission data. For example, in one aggregated connection, the task of representing all the original queues of the corresponding native connections needs to be executed, and the corresponding resources can be released. The technical scheme of the embodiment can at least achieve the following beneficial technical effects: reducing the transmission state maintenance of a large number of connections, reducing the cache occupation space of the data transmission module, further avoiding the cache missing situation, and guaranteeing the communication efficiency.
[0096] According to an embodiment of the present application, the data transmission module is further configured to, in the communication process, perform selective retransmission and out-of-order packet submission in the granularity of the data packet. The selective retransmission refers to retransmitting the data packet which is not received or not received in time by the data receiving party when a plurality of data packets are sent. The out-of-order packet submission refers to submitting the data packet when the data packet sent by the data sending party is received out of order, instead of reporting an error. The embodiment supports the out-of-order packet submission and the selective retransmission, which can provide data reliability guarantee, improve the data transmission and reception efficiency, improve the network utilization rate, and reduce the small message delay. Preferably, the selective retransmission appears in the following PSN acknowledgement mechanism and timeout retransmission mechanism:
[0097] 1. PSN confirmation mechanism
[0098] The sending end and the receiving end maintain the order of data packets through the packet sequence number (PSN) mechanism. Each data packet and its acknowledgement packet carries a PSN to determine whether the packet arrives in order.
[0099] (1) When the receiving end receives a data packet that arrives in order, the PSN carried in the received data packet is consistent with the expected ExpectPSN, the receiving end updates the packet sequence number of the next packet expected to be received ExpectPSN+1, and returns an acknowledgement packet corresponding to the packet sequence number PSN to the sending end. After the sending end receives the acknowledgement packet consistent with the expected ExpectPSN, the packet sequence number of the next acknowledgement packet expected to be received is updated ExpectPSN+1.
[0100] (2) When the receiving end receives a data packet with a packet sequence number less than ExpectPSN, it indicates that the packet is a duplicate packet and is discarded, and no acknowledgement packet corresponding to the packet sequence number is returned to the sending end.
[0101] (3) When the receiving end receives a data packet with a packet sequence number PSN greater than ExpectPSN, it returns an acknowledgement packet corresponding to the packet sequence number PSN to the sending end. Since the packet does not arrive in order, the receiving end does not update ExpectPSN. After the sending end receives the acknowledgement packet with a packet sequence number PSN greater than ExpectPSN, it indicates that the data packets with packet sequence numbers from ExpectPSN to PSN-1 may be lost; then it selectively retransmits the data packets with packet sequence numbers from ExpectPSN to PSN-1.
[0102] 2. Timeout retransmission mechanism
[0103] In addition to PSN, the sending end starts a timer after sending a data packet to count the time before receiving an acknowledgement packet. If the time exceeds the set threshold, it indicates that the data packet may be lost, and the data packet is retransmitted.
[0104] Five, system bus controller
[0105] The system bus controller 105 is used to control the connection of the internal modules of the network interface and the communication interface between the network interface and the resource entity. For example, it is responsible for the on-chip network inside the network interface to connect the control management module 101, the context information management module 102, the RDMA protocol processing module 103, and the data transmission module 104, and to control the DMA and PCIe interfaces between the network interface and the resource entity.
[0106] In general, compared with the prior art, the present application has at least the following effects:
[0107] The application can polymerize a large amount of reliable connection corresponding connection context information, uniformly manage the polymerizable connection context information in the network interface, reduce the cache space occupation of the connection context information in the network interface, and further reduce the cache miss rate, thereby improving the communication performance.
[0108] It should be noted that although the above describes the steps in a specific order, it does not mean that the steps must be performed in the above specific order, in fact, some of the steps can be performed concurrently, or even in reverse order, as long as the desired function can be achieved.
[0109] The present application can be a system, a method, and / or a computer program product. The computer program product can include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present application.
[0110] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se.
[0111] Embodiments of the application have been described above, and the description is intended to be illustrative of the embodiments and not restrictive of the disclosed embodiments. Many modifications and variations of the described embodiments are possible and are apparent to those of ordinary skill in the art. The selection of terms is intended to best describe the principles, practical applications, or technical improvements of the embodiments disclosed herein, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. A network interface supporting a remote data direct access protocol, characterized in that: The network interface includes: A control management module is used to manage the RDMA communication process, where RDMA communication includes RDMA reliable connection communication based on the RDMA reliable connection mode; A context information management module is configured to manage connection context information maintained in a cache of a network interface during an RDMA communication process. When it is determined according to a preset aggregation rule that multiple pieces of native connection context information corresponding to multiple native connections based on an RDMA reliable connection mode are aggregatable, the aggregated connection context information is used to replace the aggregatable pieces of native connection context information to reduce cache space occupied by the network interface. The preset aggregation rule includes: when the native queues corresponding to the multiple native connections are native queues generated by the same process initiating communication requests to the same node, confirming that the multiple pieces of native connection context information corresponding to the multiple native connections are aggregatable, and the aggregated connection context information is obtained by aggregating the corresponding native connection context information according to the aggregation rule. The data transmission module is used to perform the data transmission process of RDMA reliable connection communication according to the native connection context information or the aggregated connection context information.
2. The network interface according to claim 1, wherein: The context information management module is configured to: Obtain aggregated connection context information obtained by aggregating the corresponding native connection context information according to the aggregation rule on the host side directly connected to the network interface, and cache the aggregated connection context information in the cache of the network interface, and delete the multiple native connection context information corresponding to the aggregated connection context information originally stored in the cache of the network interface; or Aggregation operation is performed on corresponding native connection context information according to the aggregation rule to obtain aggregated connection context information, and multiple pieces of native connection context information corresponding to the aggregated connection context information originally stored in the cache of the network interface are deleted.
3. The network interface according to claim 2, wherein: When the local interface number, peer interface number, and completion queue number of the native connection context information corresponding to multiple native connections are the same, it is confirmed that the native queues corresponding to the multiple native connections are native queues generated by the same process initiating communication requests to the same node, and the multiple pieces of native connection context information corresponding to the multiple native connections are aggregatable.
4. The network interface according to claim 2, wherein: The aggregation operation is performed after the aggregation check is triggered and multiple native connection context information that can be aggregated are detected. The aggregation check is triggered by at least one of periodic execution, execution when the space occupied by all native connection context information in the cache of the network interface reaches a predetermined warning threshold, and execution each time a new native connection is generated.
5. The network interface according to any one of claims 1 to 4, characterized in that: The network interface also includes: an RDMA protocol processing module, which is used to process the communication protocol of RDMA communication, and in which the communication protocol required for RDMA reliable connection communication based on native connection context information to indicate the communication rules of native connection and the communication protocol required for RDMA reliable connection communication based on aggregate connection context information to indicate the communication rules of aggregate connection are preset.
6. The network interface according to claim 5, characterized in that The context information management module includes a native context information management unit for managing native connection context information and an aggregate context information management unit for managing aggregate connection context information, wherein the aggregate context information management unit is configured to: During the communication process, each native connection corresponding to the multiple pieces of native connection context information replaced by the aggregated connection context information can read and write access to the aggregated connection context information to achieve communication-related functional requirements.
7. The network interface according to claim 6, characterized in that The aggregate context information management unit includes: An aggregate access control component, configured to parse and respond to access requests from the control management module and the RDMA protocol processing module to complete access to aggregate connection context information and / or access to metadata of the aggregate connection context information; Aggregation context cache component, used to provide cache space for aggregate connection context information; The metadata component of the aggregate connection context information is used to store metadata of the aggregate connection context information; The resource entity access component is used to perform information interaction with the host side to initiate read and write operations on the aggregate connection context information stored in the host side.
8. The network interface according to any one of claims 1 to 4, characterized in that: The data transmission module is also configured to: when using one aggregated connection context information instead of multiple native connection context information that can be aggregated, maintain the corresponding multiple native connections, update the status and encapsulate the data packets when transmitting data as an aggregated connection unit.
9. The network interface according to any one of claims 1 to 4, characterized in that: The data transmission module is also configured to: during the communication process, perform selective retransmission and submission of out-of-order packets based on the granularity of data packets, wherein selective retransmission means that when sending multiple data packets, the data packets that the data receiver has not received or has not received on time are retransmitted, and submission of out-of-order packets means that when the data packets sent by the data sender are received out of order, the data packets are still submitted instead of reporting an error.
10. The network interface according to any one of claims 1 to 4, characterized in that: The aggregated connection context information includes: an association linked list, which is used to record the association relationship between each native connection and the aggregated connection to support the aggregated native connection to send and receive data or perform RDMA unilateral communication through the aggregated connection.
Citation Information
Patent Citations
RDMA event management method and device, computer equipment and storage medium
CN114265713A
Network interface card, controller, storage device and message sending method
CN114490462A