Data processing method and device, electronic equipment and storage medium

By deploying the video network protocol stack on the client and server side to process RDMA data, the problem of complexity and high cost of deployment of existing RDMA technologies is solved, and efficient and secure RDMA data transmission in the video network environment is achieved.

CN119788718APending Publication Date: 2025-04-08VISIONVERA INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411782523.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-05
Publication Date
2025-04-08

AI Technical Summary

Technical Problem

The existing RDMA technology has complexity and high cost in deployment and application, mainly due to the need to adapt and upgrade switches, routers and other devices in the network link to support the RDMA protocol.

Method used

By deploying the first video network protocol stack and the second video network protocol stack respectively on the client and the server, these protocol stacks are used to process the data of the RDMA protocol, realizing RDMA connection and data operations, and then applying RDMA technology in the video network environment.

Benefits of technology

This method reduces dependence on network equipment such as RDMA switches, RDMA routers, reduces deployment complexity and communication costs, and ensures data security and efficient transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119788718A_ABST
    Figure CN119788718A_ABST
Patent Text Reader

Abstract

The invention provides a data processing method and device, electronic equipment and a storage medium. The data processing method comprises the steps that after a client side obtains an RDMA connection request, a first articulated naturality web protocol stack is called to send the RDMA connection request to a server side, and after an RDMA connection response returned by the server side by calling a second articulated naturality web protocol stack is received, RDMA connection between the client side and the server side is successfully established; and after acquiring the RDMA data operation request, the client calls a first articulated naturality web protocol stack and sends an articulated naturality web protocol data packet corresponding to the RDMA data operation request to the server, so that the server calls a second articulated naturality web protocol stack and performs data processing operation based on the articulated naturality web protocol data packet. According to the invention, the RDMA technology is applied to the articulated naturality web, the dependence on network equipment such as an RDMA switch and an RDMA router is solved, and related network equipment does not need to be deployed in the articulated naturality web.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of network technology, and in particular to a data processing method, device, electronic equipment and storage medium. Background Art

[0002] RDMA (Remote Direct Memory Access) is a new memory access technology that allows servers to directly read and write memory data of other servers at high speed without the need for processing by the operating system / CPU (Central Processing Unit). In RDMA technology, first, there is no system call during the data transmission process; then, zero copy is achieved within the system memory, eliminating the process of copying data between user space and kernel space; finally, the encapsulation and parsing of data packets are done by the RDMA network card hardware, reducing the CPU load.

[0003] However, the current RDMA technology uses RDMA network cards. In order to support RDMA technology, network devices such as switches and routers in the network link also need to be adapted and upgraded to support the RDMA protocol, so the deployment complexity and cost are relatively high. Summary of the invention

[0004] In view of the above problems, embodiments of the present invention are proposed to provide a data processing method, device, electronic device and storage medium that overcome the above problems or at least partially solve the above problems.

[0005] In a first aspect, an embodiment of the present invention discloses a data processing method, which is applied to a client, and the method includes:

[0006] After obtaining the RDMA connection request, calling the first visual networking protocol stack to send the RDMA connection request to the server, and after receiving the RDMA connection response returned by the server calling the second visual networking protocol stack, successfully establishing the RDMA connection between the client and the server;

[0007] After obtaining the RDMA data operation request, the first visual networking protocol stack is called to send a visual networking protocol data packet corresponding to the RDMA data operation request to the server, so that the server calls the second visual networking protocol stack and performs data processing operations based on the visual networking protocol data packet.

[0008] Optionally, the first visual networking protocol stack is called to send a visual networking protocol data packet corresponding to the RDMA data operation request to the server, so that the server calls the second visual networking protocol stack to perform data processing operations based on the visual networking protocol data packet, including: when the RDMA data operation request is an RDMA write request, obtaining first data from a source memory address corresponding to the RDMA write request, calling the first visual networking protocol stack to encapsulate the first data into a first visual networking protocol data packet, and sending the first visual networking protocol data packet to the server; so that the server calls the second visual networking protocol stack to parse the first visual networking protocol data packet to obtain the first data, and writes the first data into a destination memory address corresponding to the RDMA write request.

[0009] Optionally, encapsulating the first data into a first visual networking protocol data packet includes: encapsulating the first data into a first visual networking protocol data packet, and adding a packet sequence number to the first visual networking protocol data packet; after sending the first visual networking protocol data packet to the server, it also includes: upon receiving the first packet sequence number to be retransmitted returned by the server, calling the first visual networking protocol stack, and sending the first visual networking protocol data packet corresponding to the first packet sequence number to be retransmitted to the server.

[0010] Optionally, the first visual networking protocol stack is called to send a visual networking protocol data packet corresponding to the RDMA data operation request to the server, so that the server calls the second visual networking protocol stack and performs data processing operations based on the visual networking protocol data packet, including: when the RDMA data operation request is an RDMA read request, the first visual networking protocol stack is called to encapsulate the RDMA read request into a second visual networking protocol data packet, and send the second visual networking protocol data packet to the server; so that the server calls the second visual networking protocol stack to parse the second visual networking protocol data packet to obtain the RDMA read request, obtains the second data from the source memory address corresponding to the RDMA read request, calls the second visual networking protocol stack to encapsulate the second data into a third visual networking protocol data packet, and sends the third visual networking protocol data packet to the client; after receiving the third visual networking protocol data packet, the first visual networking protocol stack is called to parse the third visual networking protocol data packet to obtain the second data, and writes the second data into the destination memory address corresponding to the RDMA read request.

[0011] Optionally, before parsing the third visual networking protocol data packet to obtain the second data, it also includes: judging whether the packet sequence number of the third visual networking protocol data packet is correct, the packet sequence number of the third visual networking protocol data packet is added by the server to the third visual networking protocol data packet; when the packet sequence number of the third visual networking protocol data packet is wrong, obtaining the second packet sequence number to be retransmitted, and sending the second packet sequence number to be retransmitted to the server; parsing the third visual networking protocol data packet to obtain the second data, including: when the packet sequence number of the third visual networking protocol data packet is correct, parsing the third visual networking protocol data packet to obtain the second data.

[0012] In a second aspect, an embodiment of the present invention discloses a data processing method, which is applied to a server, and the method includes:

[0013] After receiving the RDMA connection request sent by the client calling the first visual networking protocol stack, calling the second visual networking protocol stack to return an RDMA connection response to the client, and successfully establishing an RDMA connection between the client and the server;

[0014] After receiving the visual networking protocol data packet corresponding to the RDMA data operation request sent by the client calling the first visual networking protocol stack, the second visual networking protocol stack is called to perform data processing operations based on the visual networking protocol data packet.

[0015] In a third aspect, an embodiment of the present invention discloses a data processing device, which is applied to a client, and the device includes:

[0016] A first establishing module is used to call the first visual networking protocol stack to send the RDMA connection request to the server after obtaining the RDMA connection request, and successfully establish the RDMA connection between the client and the server after receiving the RDMA connection response returned by the server calling the second visual networking protocol stack;

[0017] The first processing module is used to call the first visual networking protocol stack after obtaining the RDMA data operation request, and send a visual networking protocol data packet corresponding to the RDMA data operation request to the server, so that the server calls the second visual networking protocol stack and performs data processing operations based on the visual networking protocol data packet.

[0018] Optionally, the first processing module includes: a write processing unit, which is used to obtain the first data from the source memory address corresponding to the RDMA write request when the RDMA data operation request is an RDMA write request, call the first visual networking protocol stack to encapsulate the first data into a first visual networking protocol data packet, and send the first visual networking protocol data packet to the server; so that the server calls the second visual networking protocol stack to parse the first visual networking protocol data packet to obtain the first data, and write the first data into the destination memory address corresponding to the RDMA write request.

[0019] Optionally, the write processing unit is specifically used to encapsulate the first data into a first visual networking protocol data packet and add a packet sequence number to the first visual networking protocol data packet; the write processing unit is also used to call the first visual networking protocol stack when receiving the first packet sequence number to be retransmitted returned by the server, and send the first visual networking protocol data packet corresponding to the first packet sequence number to be retransmitted to the server.

[0020] Optionally, the first processing module includes: a read processing unit, which is used to call the first visual networking protocol stack to encapsulate the RDMA read request into a second visual networking protocol data packet when the RDMA data operation request is an RDMA read request, and send the second visual networking protocol data packet to the server; so that the server calls the second visual networking protocol stack to parse the second visual networking protocol data packet to obtain the RDMA read request, obtains the second data from the source memory address corresponding to the RDMA read request, calls the second visual networking protocol stack to encapsulate the second data into a third visual networking protocol data packet, and sends the third visual networking protocol data packet to the client; after receiving the third visual networking protocol data packet, calls the first visual networking protocol stack to parse the third visual networking protocol data packet to obtain the second data, and writes the second data into the destination memory address corresponding to the RDMA read request.

[0021] Optionally, the reading processing unit is also used to determine whether the packet sequence number of the third visual networking protocol data packet is correct, and the packet sequence number of the third visual networking protocol data packet is added by the server to the third visual networking protocol data packet; when the packet sequence number of the third visual networking protocol data packet is wrong, obtain the second packet sequence number to be retransmitted, and send the second packet sequence number to be retransmitted to the server; the reading processing unit is specifically used to parse the third visual networking protocol data packet to obtain the second data when the packet sequence number of the third visual networking protocol data packet is correct.

[0022] In a fourth aspect, an embodiment of the present invention discloses a data processing device, which is applied to a server, and the device includes:

[0023] A second establishing module is used to call the second visual networking protocol stack to return an RDMA connection response to the client after receiving the RDMA connection request sent by the client calling the first visual networking protocol stack, and successfully establish the RDMA connection between the client and the server;

[0024] The second processing module is used to call the second visual networking protocol stack after receiving the visual networking protocol data packet corresponding to the RDMA data operation request sent by the client calling the first visual networking protocol stack, and perform data processing operations based on the visual networking protocol data packet.

[0025] In a fifth aspect, an embodiment of the present invention discloses an electronic device, comprising a processor and a computer-readable storage medium, wherein a computer program is stored on the computer-readable storage medium; when the computer program is executed by the processor, the processor executes the data processing method as described in any one of the above items.

[0026] In a sixth aspect, an embodiment of the present invention discloses a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the processor executes the data processing method as described in any one of the above items.

[0027] In an embodiment of the present invention, a first visual networking protocol stack is deployed in a client, and a second visual networking protocol stack is deployed in a server. The processing of the first visual networking protocol stack and the second visual networking protocol stack is utilized to realize the transmission of RDMA protocol data in the visual network, thereby realizing the application of RDMA technology to the visual network, communicating in the visual network environment, and ensuring the security of data; and, the first visual networking protocol stack and the second visual networking protocol stack replace network devices such as RDMA switches and RDMA routers, thereby solving the dependence on network devices such as RDMA switches and RDMA routers, and there is no need to deploy related network devices in the visual network, thereby reducing the complexity of deployment and communication costs.

[0028] The above description is only an overview of the technical solution of the present invention. In order to more clearly understand the technical means of the present invention, it can be implemented according to the contents of the specification. In order to make the above and other purposes, features and advantages of the present invention more obvious and easy to understand, the specific implementation methods of the present invention are listed below. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] In order to more clearly illustrate the technical solution of the embodiment of the present invention, the drawings required for use in the description of the embodiment of the present invention will be briefly introduced below. Obviously, the drawings described below are only some drawings of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0030] Figure 1 is a system architecture diagram of an embodiment of the present invention;

[0031] Figure 2 is a functional architecture diagram of an embodiment of the present invention;

[0032] Figure 3 is a flow chart of steps of a data processing method according to an embodiment of the present invention;

[0033] Figure 4 is a flowchart of another data processing method according to an embodiment of the present invention;

[0034] Figure 5 is a structural block diagram of a data processing device according to an embodiment of the present invention;

[0035] Figure 6 is a structural block diagram of another data processing device according to an embodiment of the present invention;

[0036] Figure 7 is a structural block diagram of an electronic device according to an embodiment of the present invention;

[0037] Figure 8 It is a structural block diagram of a computer-readable storage medium according to an embodiment of the present invention. DETAILED DESCRIPTION

[0038] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0039] Reference Figure 1 , showing a system architecture diagram of an embodiment of the present invention.

[0040] like Figure 1As shown, in the embodiment of the present invention, the client includes a first application, a first RDMA API (Application Program Interface), a first user-mode driver, a first kernel-mode driver, a first visual networking protocol stack, and a first network card; the server includes a second application, a second RDMA API, a second user-mode driver, a second kernel-mode driver, a second visual networking protocol stack, and a second network card. The first and second are used to distinguish elements with the same name.

[0041] The implementation of the RDMA architecture is divided into user-mode drivers and kernel-mode drivers. The user-mode driver mainly connects to the application program, and the application program calls the RDMA API, which is implemented in the user mode; the kernel-mode driver needs to implement data encapsulation, mapping association between virtual memory and physical memory, operation of memory data, sending and receiving with the hardware network card, etc. If the memory is operated, the kernel-mode driver can directly read or write after parsing the remote memory address without the CPU participating. This is the advantage of RDMA.

[0042] By deploying the first visual networking protocol stack in the client and the second visual networking protocol stack in the server, the data of the RDMA protocol is transmitted in the visual networking by using the processing of the first visual networking protocol stack and the second visual networking protocol stack, thereby realizing the application of RDMA technology in the visual networking. Among them, the visual networking protocol stack can be placed in the kernel layer of the operating system.

[0043] In RDMA communication, the roles of client and server are relative. A system can act as a client in one communication and as a server in another communication.

[0044] Reference Figure 2 , showing a functional architecture diagram of an embodiment of the present invention.

[0045] like Figure 2 As shown, in an embodiment of the present invention, the RDMA implementation method based on the visual network involves the visual network protocol stack and RDMA management. The visual network protocol stack may include network entry and exit management, keep-alive management, network detection management, and retransmission management. RDMA management may include connection management, work domain management, event management, and queue management.

[0046] Network access and network exit management is responsible for managing the access of the visual network protocol stack to the visual network or the exit from the visual network.

[0047] Keep-alive management is responsible for periodically sending status report messages to the platform according to the configured keep-alive time to maintain communication connection with the platform.

[0048] Network detection management is responsible for performing network detection.

[0049] Retransmission management is responsible for managing the retransmission of data.

[0050] The connection manager is responsible for establishing and releasing RDMA connections.

[0051] Event management is responsible for managing events involved in the RDMA data transmission process.

[0052] The work domain management is responsible for the management of the work domains of the RDMA client and server.

[0053] Queue management is responsible for managing the queues involved in the RDMA data transmission process.

[0054] Next, in combination with the above system architecture and functional architecture, the data processing method in the embodiment of the present invention is described in detail.

[0055] In the embodiment of the present invention, before data processing is performed, it is necessary to first perform network access operations of the first visual networking protocol stack and the second visual networking protocol stack, as well as initialization operations of the client and the server.

[0056] The network access operation of the first visual network protocol stack refers to the first visual network protocol stack accessing the visual network, configuring the visual network MAC (Media Access Control) address for the first visual network protocol stack, applying for access to the visual network based on the visual network MAC address of the first visual network protocol stack, and obtaining the visual network number of the first visual network protocol stack (involving the above-mentioned network access and exit management).

[0057] The network access operation of the second visual network protocol stack refers to the second visual network protocol stack accessing the visual network, configuring the visual network MAC address for the second visual network protocol stack, applying for access to the visual network based on the visual network MAC address of the second visual network protocol stack, and obtaining the visual network number of the second visual network protocol stack (involving the above-mentioned network access and exit management).

[0058] In RDMA communication, both the client and the server need to perform a series of initialization operations to ensure that both parties can exchange data correctly. These initialization operations include memory allocation and registration, work domain creation, event processing mechanism settings, and queue allocation and configuration.

[0059] Memory allocation and registration: Allocate physical memory: Both the client and the server need to allocate a certain amount of physical memory from the physical device memory for RDMA operations for subsequent RDMA communication; Create virtual address mapping: Create a mapping relationship between physical addresses and virtual addresses for the allocated physical memory so that it can be accessed in the application; Register memory area: Register the allocated memory area with the RDMA hardware so that the RDMA hardware can directly access this memory. In this process, define the size of the memory block, set permissions such as read or write permissions, and obtain the local memory key (L_KEY) for subsequent RDMA operations.

[0060] Protection Domain (PD) creation: Allocate a Protection Domain (PD) number: Create a Protection Domain number and write it to a free slot in the PD table. The Protection Domain defines a set of memory registration operation contexts used to manage memory registration and queue pair (QP) creation.

[0061] Event handling mechanism setting: RDMA technology usually relies on an event-driven approach to handle various network events, such as connection establishment, data transmission completion, etc. The client and server need to set up corresponding event handling mechanisms so that they can respond in a timely manner when an event occurs.

[0062] Queue allocation and configuration: RDMA communication is based on three queues: Send Queue (SQ), Receive Queue (RQ) and Completion Queue (CQ). The send queue and the receive queue form a queue pair. The queue allocation and configuration process involves: allocating queue memory: allocating enough memory space for SQ, RQ and CQ; programming base address registers: writing the base addresses of SQ, RQ and CQ into the corresponding registers; configuring queue parameters: configuring the queue depth, buffer size and other parameters according to actual needs.

[0063] Reference Figure 3 , showing a step flow chart of a data processing method according to an embodiment of the present invention. Figure 3 The data processing method shown can be applied in a client.

[0064] like Figure 3 As shown, the data processing method may include the following steps:

[0065] Step 301, after obtaining the RDMA connection request, the client calls the first visual networking protocol stack to send the RDMA connection request to the server, and after receiving the RDMA connection response returned by the server calling the second visual networking protocol stack, the RDMA connection between the client and the server is successfully established.

[0066] In the embodiment of the present invention, if the client wants to perform RDMA communication with the server, it is necessary to first establish an RDMA connection between the client and the server.

[0067] The first application in the client triggers an RDMA connection request (REQ message), transmits the RDMA connection request to the first user-mode driver in the client through the first RDMAAPI, and then the first user-mode driver transmits the RDMA connection request to the first kernel-mode driver in the client. The RDMA connection request may include, but is not limited to: a local communication identifier, a globally unique identifier of a channel adapter, a QP number, a QP service type (reliable connection, unreliable connection, etc.), a starting packet sequence number (PSN), a P_Key (partition key) value, a payload size, and other information. The RDMA connection request is an RDMA protocol.

[0068] After obtaining the RDMA connection request, the first kernel-mode driver in the client calls the first visual networking protocol stack to send the RDMA connection request to the server.

[0069] After obtaining the RDMA connection request, the first kernel-state driver can first verify the legitimacy of the RDMA connection request. After verifying that the RDMA connection request is legal, the first kernel-state driver then calls the first visual networking protocol stack to send the RDMA connection request to the server. After verifying that the RDMA connection request is illegal, the first kernel-state driver discards the RDMA connection request and no longer calls the first visual networking protocol stack.

[0070] In the process of verifying the legitimacy of the RDMA connection request, the RDMA connection request can be parsed to extract a check field in the RDMA connection request, and the check field can indicate whether the RDMA connection request is legal. For example, when the check field is set specific information, it means that the RDMA connection request is legal; otherwise, it means that the RDMA connection request is illegal.

[0071] The first kernel-state driver calls the first visual networking protocol stack and gives the RDMA connection request to the first visual networking protocol stack. After obtaining the RDMA connection request, the first visual networking protocol stack extracts the destination address of the RDMA connection request (specifically, it can be the destination address of the server) and verifies the legitimacy of the destination address. After verifying that the destination address is legal, the first visual networking protocol stack establishes a visual networking channel with the second visual networking protocol stack. After verifying that the destination address is illegal, no subsequent processing is performed. Among them, the visual networking channel can specifically be a videophone channel.

[0072] In the process of the first kernel state driver calling the first visual networking protocol stack, the first kernel state driver calls the SDK (Software Development Kit) corresponding to the first visual networking protocol stack at the transceiver interface to send and receive data, and performs SDK encapsulation and decapsulation on the data through the SDK's transmission and reception.

[0073] In the process of verifying the legitimacy of the destination address, the destination address may be matched with a preset legal address. If the match is successful, that is, the destination address is a legal address, the destination address is determined to be legal; otherwise, the destination address is determined to be illegal.

[0074] In the process of establishing a visual networking channel between the first visual networking protocol stack and the second visual networking protocol stack, the visual networking number of the second visual networking protocol stack can be pre-configured in the first visual networking protocol stack, and the visual networking number of the first visual networking protocol stack can be configured in the second visual networking protocol stack. The first visual networking protocol stack initiates a channel establishment request for the visual networking protocol, and the channel establishment request includes information such as the visual networking number of the first visual networking protocol stack (source visual networking number) and the visual networking number of the second visual networking protocol stack (destination visual networking number). The first visual networking protocol stack sends the channel establishment request to the second network card in the server through the first network card in the client, and then sends the channel establishment request to the second visual networking protocol stack in the server through the second network card.

[0075] After receiving the channel establishment request, the second visual networking protocol stack determines whether there are idle channel resources. If there are idle channel resources, the idle channel resources are allocated, and a successful channel establishment response of the visual networking protocol is issued. The successful channel establishment response includes the visual network number of the second visual networking protocol stack (source visual network number), the visual network number of the first visual networking protocol stack (destination visual network number), and information on the allocated idle channel resources. The second visual networking protocol stack sends the successful channel establishment response to the first network card through the second network card, and then sends the successful channel establishment response to the first visual networking protocol stack through the first network card, so as to establish a visual networking channel between the first visual networking protocol stack and the second visual networking protocol stack. If there are no idle channel resources, the second visual networking protocol stack returns a channel establishment failure response of the visual networking protocol according to the above path.

[0076] After the visual networking channel is successfully established, the first visual networking protocol stack can encapsulate the RDMA connection request of the RDMA protocol to obtain a fourth visual networking protocol data packet of the visual networking protocol, and send the fourth visual networking protocol data packet to the second network card in the server through the first network card in the client, and then send the fourth visual networking protocol data packet to the second visual networking protocol stack in the server through the second network card. The first visual networking protocol stack can also record the packet information of the fourth visual networking protocol data packet.

[0077] In the process of encapsulating the RDMA connection request of the RDMA protocol by the first visual networking protocol stack to obtain the fourth visual networking protocol data packet of the visual networking protocol, the first visual networking protocol stack adds a fourth visual networking protocol packet header to the RDMA connection request to obtain the fourth visual networking protocol packet. Among them, the fourth visual networking protocol packet header may include but is not limited to: the visual networking number of the first visual networking protocol stack (source visual networking number), the visual networking number of the second visual networking protocol stack (destination visual networking number), the visual networking MAC address of the first visual networking protocol stack (source visual networking MAC address), the visual networking MAC address of the second visual networking protocol stack (destination visual networking MAC address), and the like.

[0078] After obtaining the fourth visual networking protocol data packet, the second visual networking protocol stack parses the fourth visual networking protocol data packet to obtain the RDMA connection request, and sends the RDMA connection request to the second kernel state driver in the server, and the second kernel state driver calls the second RDMAAPI interface in the server to transmit the RDMA connection request to the second application in the server.

[0079] In the process of the second visual networking protocol stack parsing the fourth visual networking protocol data packet to obtain the RDMA connection request, the second visual networking protocol stack deletes the fourth visual networking protocol packet header in the fourth visual networking protocol data packet to obtain the RDMA connection request.

[0080] After receiving the RDMA connection request, the second application triggers an RDMA connection response (Reply message) for the RDMA connection request, transmits the RDMA connection response to the second user-mode driver in the server through the second RDMA API, and then the second user-mode driver transmits the RDMA connection response to the second kernel-mode driver. The RDMA connection response may include, but is not limited to, information such as a local communication identifier, a remote communication identifier, a globally unique identifier of a channel adapter, a QP number, and a starting data packet sequence number. The RDMA connection response is an RDMA protocol.

[0081] After obtaining the RDMA connection response, the second kernel-mode driver in the server calls the second visual networking protocol stack to send the RDMA connection response to the client.

[0082] The second kernel-state driver calls the second visual networking protocol stack and gives the RDMA connection response to the second visual networking protocol stack. After obtaining the RDMA connection response, the second visual networking protocol stack can encapsulate the RDMA connection response of the RDMA protocol to obtain the fifth visual networking protocol data packet of the visual networking protocol, and send the fifth visual networking protocol data packet to the first network card through the second network card, and then send the fifth visual networking protocol data packet to the first visual networking protocol stack through the first network card.

[0083] In the process of encapsulating the RDMA connection response of the RDMA protocol and obtaining the fifth visual networking protocol data packet of the visual networking protocol, the second visual networking protocol stack adds the fifth visual networking protocol packet header to the RDMA connection response to obtain the fifth visual networking protocol packet. Among them, the fifth visual networking protocol packet header may include but is not limited to: the visual networking number of the second visual networking protocol stack (source visual networking number), the visual networking number of the first visual networking protocol stack (destination visual networking number), the visual networking MAC address of the second visual networking protocol stack (source visual networking MAC address), the visual networking MAC address of the first visual networking protocol stack (destination visual networking MAC address), and the like.

[0084] After obtaining the fifth visual networking protocol data packet, the first visual networking protocol stack parses the fifth visual networking protocol data packet to obtain the RDMA connection response, and sends the RDMA connection response to the first kernel state driver, which calls the first RDMA API interface to transmit the RDMA connection response to the first application.

[0085] In the process of the first visual networking protocol stack parsing the fifth visual networking protocol data packet to obtain the RDMA connection response, the first visual networking protocol stack deletes the fifth visual networking protocol packet header in the fifth visual networking protocol data packet to obtain the RDMA connection response.

[0086] After receiving the RDMA connection response, the first application can also trigger an RDMA connection confirmation message (RTU (Ready to Use) message), and transmit the RDMA connection confirmation message to the second application on the server side according to the transmission path and processing of the above RDMA connection request. During the connection initialization process, the working state of the client changes from the initial ready to send to the ready to receive state.

[0087] At this point, the RDMA connection between the client and the server is successfully established.

[0088] Step 302: After obtaining the RDMA data operation request, the client calls the first visual networking protocol stack and sends a visual networking protocol data packet corresponding to the RDMA data operation request to the server, so that the server calls the second visual networking protocol stack and performs data processing operations based on the visual networking protocol data packet.

[0089] After the RDMA connection between the client and the server is successfully established, the client and the server can perform memory data operations based on the RDMA connection.

[0090] The first application in the client triggers an RDMA data operation request, transmits the RDMA data operation request to the first user-mode driver in the client through the first RDMAAPI, and then the first user-mode driver publishes the RDMA data operation request to the client's send queue. Specifically, it creates the RDMA data operation request as a work request (WR) and publishes it as a work request entity (WRE) to the send queue allocated by the client.

[0091] The RDMA data operation request may include but is not limited to: the type of data operation (read, write), local memory address, local memory key (L_Key), remote memory address, remote memory key (R_Key), R_Key is received from SCN (Subnet Configuration Notification) through the management connection. When the RDMA data operation request is a write request, the local memory address is the source memory address, and the length of the local memory (the length of the memory to be written) is also required, and the remote memory address is the destination memory address; when the RDMA data operation request is a read request, the local memory address is the destination memory address, the remote memory address is the source memory address, and the length of the process memory (the length of the memory to be read) is also required. The RDMA data operation request is the RDMA protocol.

[0092] The first kernel-mode driver in the client takes out the RDMA data operation request from the client's sending queue, calls the first visual networking protocol stack to generate a visual networking protocol data packet corresponding to the RDMA data operation request, and sends the visual networking protocol data packet corresponding to the RDMA data operation request to the server. The server calls the second visual networking protocol stack to perform data processing operations based on the visual networking protocol data packet corresponding to the RDMA data operation request.

[0093] When the RDMA data operation request is an RDMA write request, the first kernel-mode driver in the client obtains the first data from the source memory address corresponding to the RDMA write request, calls the first visual networking protocol stack to encapsulate the first data into a first visual networking protocol data packet, and sends the first visual networking protocol data packet to the server. The server calls the second visual networking protocol stack to parse the first visual networking protocol data packet to obtain the first data, and writes the first data into the destination memory address corresponding to the RDMA write request.

[0094] The first kernel-state driver takes out the RDMA write request from the client's sending queue, parses it to obtain the source memory address corresponding to the RDMA write request (also including the memory length corresponding to the RDMA write request), the source memory address corresponding to the RDMA write request is a virtual address, so the first kernel-state driver maps the source memory address corresponding to the RDMA write request to the source physical address corresponding to the RDMA write request by querying the mapping relationship between the physical address and the virtual address, and takes out the data corresponding to the memory length corresponding to the RDMA write request from the source physical address corresponding to the RDMA write request as the first data, the first kernel-state driver can also encapsulate the first data into the first data packet of the RDMA protocol and send it to the first visual networking protocol stack. The first data packet can include the information included in the RDMA write request.

[0095] After the first visual networking protocol stack obtains the first data (specifically, it can be the first data packet of the RDMA protocol), it encapsulates the first data into the first visual networking protocol data packet of the visual networking protocol. Specifically, the first visual networking protocol stack adds the first visual networking protocol packet header to the first data to obtain the first visual networking protocol packet. Among them, the first visual networking protocol packet header may include but is not limited to: the visual networking number of the first visual networking protocol stack (source visual networking number), the visual networking number of the second visual networking protocol stack (destination visual networking number), the visual networking MAC address of the first visual networking protocol stack (source visual networking MAC address), the visual networking MAC address of the second visual networking protocol stack (destination visual networking MAC address), and so on. The first visual networking protocol stack sends the first visual networking protocol data packet to the second network card in the server through the first network card, and then sends the first visual networking protocol data packet to the second visual networking protocol stack in the server through the second network card.

[0096] After acquiring the first visual networking protocol data packet, the second visual networking protocol stack parses the first visual networking protocol data packet to obtain the first data, and publishes the first data to the receiving queue of the server. Specifically, the second visual networking protocol stack deletes the first visual networking protocol packet header in the first visual networking protocol data packet to obtain the first data.

[0097] The second kernel-state driver takes out the first data from the receiving queue of the server, and parses it to obtain the destination memory address corresponding to the first data (that is, the destination memory address corresponding to the RDMA write request). The destination memory address corresponding to the first data is a virtual address. Therefore, the second kernel-state driver queries the mapping relationship between the physical address and the virtual address, maps the destination memory address corresponding to the RDMA write request to the destination physical address corresponding to the RDMA write request, and writes the first data to the destination physical address corresponding to the RDMA write request, thereby writing the first data to the destination memory address corresponding to the RDMA write request. After the first data is written, the second kernel-state driver can trigger a write completion notification, and publish the write completion notification to the completion queue of the server.

[0098] After the second application on the server side receives the write completion notification from the completion queue on the server side, it can return the write completion notification to the first application on the client side according to the transmission path and processing method of the above-mentioned RDMA connection response. After the first application on the client side receives the write completion notification, it can send a release RDMA connection request to the server side according to the transmission path and processing method of the above-mentioned RDMA connection request, and the client releases the working domain information, memory information, closing event information, channel information, etc. After receiving the release RDMA connection request, the server side releases the working domain information, memory information, closing event information, channel information, etc. The client and the server disconnect the visual networking channel, and the first visual networking protocol stack initiates a disconnection request for the visual networking channel to the second visual networking protocol stack. After receiving the disconnection request for the visual networking channel, the second visual networking protocol stack disconnects the visual networking channel.

[0099] When the RDMA data operation request is an RDMA read request, the first kernel-mode driver in the client calls the first visual networking protocol stack to encapsulate the RDMA read request into a second visual networking protocol data packet, and sends the second visual networking protocol data packet to the server. The server calls the second visual networking protocol stack to parse the second visual networking protocol data packet to obtain the RDMA read request, obtains the second data from the source memory address corresponding to the RDMA read request, calls the second visual networking protocol stack to encapsulate the second data into a third visual networking protocol data packet, and sends the third visual networking protocol data packet to the client. After receiving the third visual networking protocol data packet, the client calls the first visual networking protocol stack to parse the third visual networking protocol data packet to obtain the second data, and writes the second data to the destination memory address corresponding to the RDMA read request.

[0100] The first kernel-mode driver takes out the RDMA read request from the client's sending queue, calls the first visual networking protocol stack, and the first visual networking protocol stack obtains the RDMA read request and encapsulates the RDMA read request into a second visual networking protocol data packet. Specifically, the first visual networking protocol stack adds a second visual networking protocol header to the RDMA read request to obtain the second visual networking protocol data packet. Among them, the second visual networking protocol header may include but is not limited to: the visual networking number of the first visual networking protocol stack (source visual networking number), the visual networking number of the second visual networking protocol stack (destination visual networking number), the visual networking MAC address of the first visual networking protocol stack (source visual networking MAC address), the visual networking MAC address of the second visual networking protocol stack (destination visual networking MAC address), and so on. The first visual networking protocol stack sends the second visual networking protocol data packet to the second network card in the server through the first network card, and then sends the second visual networking protocol data packet to the second visual networking protocol stack in the server through the second network card.

[0101] After acquiring the second visual networking protocol data packet, the second visual networking protocol stack parses the second visual networking protocol data packet to obtain an RDMA read request, and publishes the RDMA read request to the receiving queue of the server. Specifically, the second visual networking protocol stack deletes the second visual networking protocol packet header in the second visual networking protocol data packet to obtain the RDMA read request.

[0102] The second kernel state driver takes out the RDMA read request from the receiving queue of the server, and parses it to obtain the source memory address corresponding to the RDMA read request. The source memory address corresponding to the RDMA read request is a virtual address. Therefore, the second kernel state driver maps the source memory address corresponding to the RDMA read request to the source physical address corresponding to the RDMA current request by querying the mapping relationship between the physical address and the virtual address, and takes out the data corresponding to the memory length corresponding to the RDMA read request from the source physical address corresponding to the RDMA current request as the second data. The second kernel state driver can also encapsulate the second data into a second data packet of the RDMA protocol and send it to the second visual networking protocol stack. The second data packet can include the information included in the RDMA read request.

[0103] After the second visual networking protocol stack obtains the second data (specifically, it can be the second data packet of the RDMA protocol), it encapsulates the second data into a third visual networking protocol data packet of the visual networking protocol. Specifically, the second visual networking protocol stack adds a third visual networking protocol packet header to the second data to obtain the third visual networking protocol packet. Among them, the third visual networking protocol packet header may include but is not limited to: the visual networking number of the second visual networking protocol stack (source visual networking number), the visual networking number of the first visual networking protocol stack (destination visual networking number), the visual networking MAC address of the second visual networking protocol stack (source visual networking MAC address), the visual networking MAC address of the first visual networking protocol stack (destination visual networking MAC address), and so on. The second visual networking protocol stack sends the third visual networking protocol data packet to the first network card through the second network card, and then sends the third visual networking protocol data packet to the first visual networking protocol stack through the first network card.

[0104] After acquiring the third visual networking protocol data packet, the first visual networking protocol stack parses the third visual networking protocol data packet to obtain the second data, and publishes the second data to the receiving queue of the client. Specifically, the first visual networking protocol stack deletes the third visual networking protocol packet header in the third visual networking protocol data packet to obtain the second data.

[0105] The first kernel-state driver takes out the second data from the receiving queue of the server, and parses it to obtain the destination memory address corresponding to the second data (that is, the destination memory address corresponding to the RDMA read request). The destination memory address corresponding to the second data is a virtual address. Therefore, the first kernel-state driver maps the destination memory address corresponding to the RDMA read request to the destination physical address corresponding to the RDMA read request by querying the mapping relationship between the physical address and the virtual address, and writes the second data to the destination physical address corresponding to the RDMA read request, thereby writing the second data to the destination memory address corresponding to the RDMA read request. After the second data is written, the first kernel-state driver can trigger a read completion notification and publish the read completion notification to the completion queue of the client.

[0106] After the first application of the client receives the read completion notification from the completion queue of the client, it can send a release RDMA connection request to the server according to the transmission path and processing method of the above RDMA connection request, and the client releases the work domain information, memory information, close event information, channel information, etc. After receiving the release RDMA connection request, the server releases the work domain information, memory information, close event information, channel information, etc. The client and the server disconnect the visual networking channel, and the first visual networking protocol stack initiates a disconnection request to the second visual networking protocol stack. After receiving the disconnection request, the second visual networking protocol stack disconnects the visual networking channel.

[0107] In an optional implementation, considering that RDMA communication is highly dependent on the network, once packet loss occurs, each subsequent data packet will be retransmitted starting from the lost packet, which will cause a sharp drop in RDMA performance. In response to the above problems, in the embodiment of the present application, the RDMA application creates a connection, adds a packet sequence number identification bit when sending a connection packet, and the other party receives the connection packet, confirms the packet sequence number, and returns the information of the packet with the same sequence number. The returned information reaches the sender, and then the data transmission is started. At the same time, the basic information such as the sending packet sequence number and the memory address are recorded, and the sent data is numbered in natural order. The receiving end receives the data and verifies it according to the sequence number. If packet loss occurs, the packet sequence number needs to be fed back to the sending end. The sending end receives the lost data, obtains the basic information such as the memory address according to the query record, obtains the memory data, and then resends it. Other non-lost data is no longer retransmitted. In this way, the RDMA retransmission mechanism is improved, the data retransmission after the lost packet is reduced, and only the lost packet is retransmitted, thereby improving the transmission performance.

[0108] When the RDMA data operation request is an RDMA write request, the first visual networking protocol stack also adds a packet sequence number to the first visual networking protocol data packet during the process of encapsulating the first data into a first visual networking protocol data packet. After sending the first visual networking protocol data packet, relevant information of the first visual networking protocol data packet, such as the packet sequence number, memory address, etc., can also be recorded.

[0109] After receiving the first visual networking protocol data packet, the second visual networking protocol stack of the server determines whether the packet sequence number of the first visual networking protocol data packet is correct; when the packet sequence number of the first visual networking protocol data packet is wrong, obtains the first packet sequence number to be retransmitted, and sends the first packet sequence number to be retransmitted to the client; when the packet sequence number of the first visual networking protocol data packet is correct, executes the process of parsing the first visual networking protocol data packet to obtain the first data. The first packet sequence number to be retransmitted refers to the packet sequence number of the lost first visual networking protocol data packet.

[0110] When the client receives the first packet sequence number to be retransmitted returned by the server, the client calls the first visual networking protocol stack to send the first visual networking protocol data packet corresponding to the first packet sequence number to be retransmitted to the server. The client queries the recorded relevant information of the first visual networking protocol data packet corresponding to the first packet sequence number to be retransmitted, and re-acquires the first visual networking protocol data packet corresponding to the first packet sequence number to be retransmitted.

[0111] When the RDMA data operation request is an RDMA read request, the second visual networking protocol stack also adds a packet sequence number to the third visual networking protocol data packet during the process of encapsulating the second data into a third visual networking protocol data packet. After sending the third visual networking protocol data packet, relevant information of the third visual networking protocol data packet, such as the packet sequence number, memory address, etc., can also be recorded.

[0112] After receiving the third visual networking protocol data packet, the first visual networking protocol stack of the client determines whether the packet sequence number of the third visual networking protocol data packet is correct; when the packet sequence number of the third visual networking protocol data packet is wrong, obtains the second packet sequence number to be retransmitted, and sends the second packet sequence number to be retransmitted to the server; when the packet sequence number of the third visual networking protocol data packet is correct, executes the process of parsing the third visual networking protocol data packet to obtain the second data. The second packet sequence number to be retransmitted refers to the packet sequence number of the lost third visual networking protocol data packet.

[0113] When the server receives the second packet sequence number to be retransmitted returned by the client, it calls the second visual networking protocol stack to send the third visual networking protocol data packet corresponding to the second packet sequence number to be retransmitted to the client. The server queries the recorded relevant information of the third visual networking protocol data packet corresponding to the second packet sequence number to be retransmitted, and re-acquires the third visual networking protocol data packet corresponding to the second packet sequence number to be retransmitted.

[0114] Reference Figure 4 , shows a step flow chart of another data processing method according to an embodiment of the present invention. Figure 4 The data processing method shown can be applied to the server.

[0115] like Figure 4 As shown, the data processing method may include the following steps:

[0116] Step 401, after receiving the RDMA connection request sent by the client calling the first visual networking protocol stack, the server calls the second visual networking protocol stack to return an RDMA connection response to the client, and successfully establishes the RDMA connection between the client and the server.

[0117] Step 402: After receiving the visual networking protocol data packet corresponding to the RDMA data operation request sent by the client calling the first visual networking protocol stack, the server calls the second visual networking protocol stack to perform data processing operations based on the visual networking protocol data packet.

[0118] For the specific process of step 401 and step 402, reference may be made to the relevant description above, and this embodiment will not be discussed in detail here.

[0119] Reference Figure 5, shows a structural block diagram of a data processing device according to an embodiment of the present invention. Figure 5 The data processing device shown can be applied in a client.

[0120] like Figure 5 As shown, the data processing device may include the following modules:

[0121] The first establishing module 501 is used to call the first visual networking protocol stack to send the RDMA connection request to the server after obtaining the RDMA connection request, and successfully establish the RDMA connection between the client and the server after receiving the RDMA connection response returned by the server calling the second visual networking protocol stack;

[0122] The first processing module 502 is used to call the first visual networking protocol stack after obtaining the RDMA data operation request, and send a visual networking protocol data packet corresponding to the RDMA data operation request to the server, so that the server calls the second visual networking protocol stack and performs data processing operations based on the visual networking protocol data packet.

[0123] Optionally, the first processing module 502 includes: a write processing unit, which is used to obtain the first data from the source memory address corresponding to the RDMA write request when the RDMA data operation request is an RDMA write request, call the first visual networking protocol stack to encapsulate the first data into a first visual networking protocol data packet, and send the first visual networking protocol data packet to the server; so that the server calls the second visual networking protocol stack to parse the first visual networking protocol data packet to obtain the first data, and write the first data into the destination memory address corresponding to the RDMA write request.

[0124] Optionally, the write processing unit is specifically used to encapsulate the first data into a first visual networking protocol data packet and add a packet sequence number to the first visual networking protocol data packet; the write processing unit is also used to call the first visual networking protocol stack when receiving the first packet sequence number to be retransmitted returned by the server, and send the first visual networking protocol data packet corresponding to the first packet sequence number to be retransmitted to the server.

[0125] Optionally, the first processing module 502 includes: a read processing unit, which is used to call the first visual networking protocol stack to encapsulate the RDMA read request into a second visual networking protocol data packet when the RDMA data operation request is an RDMA read request, and send the second visual networking protocol data packet to the server; so that the server calls the second visual networking protocol stack to parse the second visual networking protocol data packet to obtain the RDMA read request, obtains the second data from the source memory address corresponding to the RDMA read request, calls the second visual networking protocol stack to encapsulate the second data into a third visual networking protocol data packet, and sends the third visual networking protocol data packet to the client; after receiving the third visual networking protocol data packet, calls the first visual networking protocol stack to parse the third visual networking protocol data packet to obtain the second data, and writes the second data into the destination memory address corresponding to the RDMA read request.

[0126] Optionally, the reading processing unit is also used to determine whether the packet sequence number of the third visual networking protocol data packet is correct, and the packet sequence number of the third visual networking protocol data packet is added by the server to the third visual networking protocol data packet; when the packet sequence number of the third visual networking protocol data packet is wrong, obtain the second packet sequence number to be retransmitted, and send the second packet sequence number to be retransmitted to the server; the reading processing unit is specifically used to parse the third visual networking protocol data packet to obtain the second data when the packet sequence number of the third visual networking protocol data packet is correct.

[0127] Reference Figure 6 , shows a structural block diagram of another data processing device according to an embodiment of the present invention. Figure 6 The data processing device shown can be applied in a server.

[0128] like Figure 6 As shown, the data processing device may include the following modules:

[0129] The second establishing module 601 is used to call the second visual networking protocol stack to return an RDMA connection response to the client after receiving the RDMA connection request sent by the client calling the first visual networking protocol stack, and successfully establish the RDMA connection between the client and the server;

[0130] The second processing module 602 is used to call the second visual networking protocol stack after receiving the visual networking protocol data packet corresponding to the RDMA data operation request sent by the client calling the first visual networking protocol stack, and perform data processing operations based on the visual networking protocol data packet.

[0131] In an embodiment of the present invention, a first visual networking protocol stack is deployed in a client, and a second visual networking protocol stack is deployed in a server. The processing of the first visual networking protocol stack and the second visual networking protocol stack is utilized to realize the transmission of RDMA protocol data in the visual network, thereby realizing the application of RDMA technology to the visual network, communicating in the visual network environment, and ensuring the security of data; and, the first visual networking protocol stack and the second visual networking protocol stack replace network devices such as RDMA switches and RDMA routers, thereby solving the dependence on network devices such as RDMA switches and RDMA routers, and there is no need to deploy related network devices in the visual network, thereby reducing the complexity of deployment and communication costs.

[0132] As for the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0133] In an embodiment of the present invention, an electronic device is further provided. The electronic device may include a processor and a computer-readable storage medium, wherein a computer program is stored on the computer-readable storage medium; when the computer program is executed by the processor, the processor executes the data processing method of any of the above embodiments.

[0134] Reference Figure 7 , shows a structural block diagram of an electronic device according to an embodiment of the present invention. Figure 7 As shown, the electronic device 11 includes a processor 111 and a computer-readable storage medium 112 , on which a computer program 1121 is stored.

[0135] The processor 111 is used to execute the computer program 1121 stored on the computer-readable storage medium 112. When executing the computer program 1121, the processor 111 implements the data processing method of any of the above embodiments and can achieve the same technical effect. To avoid repetition, it will not be repeated here.

[0136] The processor 111 mentioned above may include but is not limited to: a central processing unit (CPU), a network processor (NP), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.

[0137] The computer-readable storage medium 112 mentioned above may include but is not limited to: read-only memory (ROM), random access memory (RAM), compact disc read-only memory (CD-ROM), electronic erasable programmable read-only memory (EEPROM), hard disk, floppy disk, flash memory, etc.

[0138] In an embodiment of the present invention, a computer-readable storage medium is further provided, on which a computer program is stored. The computer program can be executed by a processor of an electronic device. When the computer program is executed by the processor, the processor executes the data processing method described in any of the above embodiments.

[0139] Reference Figure 8 , shows a block diagram of a computer-readable storage medium according to an embodiment of the present invention. Figure 8 As shown, a computer program 211 is stored on the computer-readable storage medium 21. When the computer program 211 is executed by the processor, the processor executes the data processing method described in any of the above embodiments and can achieve the same technical effect. To avoid repetition, it will not be repeated here.

[0140] It should be noted that all actions of acquiring signals, information or data in the present invention are performed in compliance with the corresponding data protection laws and policies of the location and with the authorization given by the owner of the corresponding device.

[0141] The various embodiments in this specification are interrelated, and each embodiment is described in a progressive manner. Each embodiment focuses on the differences from other embodiments, and the same or similar parts between the various embodiments can be referenced to each other.

[0142] It will be appreciated by those skilled in the art that the embodiments of the present invention may be provided as methods, devices, or computer program products. Therefore, the embodiments of the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the embodiments of the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.

[0143] The embodiments of the present invention are described with reference to the flowcharts and / or block diagrams of the methods, terminal devices (systems), and computer program products according to the embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of the processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing terminal device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0144] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing terminal device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0145] These computer program instructions can also be loaded onto a computer or other programmable data processing terminal device so that a series of operating steps are executed on the computer or other programmable terminal device to produce a computer-implemented process, thereby providing instructions for executing on the computer or other programmable terminal device to implement the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0146] Although the preferred embodiments of the present invention have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the embodiments of the present invention.

[0147] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or terminal device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or terminal device including the elements.

[0148] The data processing method, device, electronic device and storage medium provided by the present invention are introduced in detail above. The principle and implementation mode of the present invention are explained in detail using specific examples. The description of the above embodiments is only used to help understand the method of the present invention and its core idea. At the same time, for those skilled in the art, according to the idea of ​​the present invention, there will be changes in the specific implementation mode and application scope. In summary, the content of this specification should not be understood as limiting the present invention.

Claims

1. A data processing method, characterized in that: Applied to a client, the method comprises: After obtaining the RDMA connection request, calling the first visual networking protocol stack to send the RDMA connection request to the server, and after receiving the RDMA connection response returned by the server calling the second visual networking protocol stack, successfully establishing the RDMA connection between the client and the server; After obtaining the RDMA data operation request, the first visual networking protocol stack is called to send a visual networking protocol data packet corresponding to the RDMA data operation request to the server, so that the server calls the second visual networking protocol stack and performs data processing operations based on the visual networking protocol data packet.

2. The method according to claim 1, characterized in that Calling the first visual networking protocol stack, sending a visual networking protocol data packet corresponding to the RDMA data operation request to the server, so that the server calls the second visual networking protocol stack, and performs a data processing operation based on the visual networking protocol data packet, including: When the RDMA data operation request is an RDMA write request, the first data is obtained from the source memory address corresponding to the RDMA write request, the first visual networking protocol stack is called to encapsulate the first data into a first visual networking protocol data packet, and the first visual networking protocol data packet is sent to the server; so that the server calls the second visual networking protocol stack to parse the first visual networking protocol data packet to obtain the first data, and writes the first data into the destination memory address corresponding to the RDMA write request.

3. The method according to claim 2, characterized in that Encapsulating the first data into a first visual networking protocol data packet, including: encapsulating the first data into a first visual networking protocol data packet, and adding a packet sequence number to the first visual networking protocol data packet; After sending the first visual networking protocol data packet to the server, it also includes: when receiving the first packet sequence number to be retransmitted returned by the server, calling the first visual networking protocol stack, and sending the first visual networking protocol data packet corresponding to the first packet sequence number to be retransmitted to the server.

4. The method according to claim 1, characterized in that: Calling the first visual networking protocol stack, sending a visual networking protocol data packet corresponding to the RDMA data operation request to the server, so that the server calls the second visual networking protocol stack, and performs a data processing operation based on the visual networking protocol data packet, including: When the RDMA data operation request is an RDMA read request, the first visual networking protocol stack is called to encapsulate the RDMA read request into a second visual networking protocol data packet, and the second visual networking protocol data packet is sent to the server; so that the server calls the second visual networking protocol stack to parse the second visual networking protocol data packet to obtain the RDMA read request, obtains the second data from the source memory address corresponding to the RDMA read request, calls the second visual networking protocol stack to encapsulate the second data into a third visual networking protocol data packet, and sends the third visual networking protocol data packet to the client; After receiving the third visual networking protocol data packet, the first visual networking protocol stack is called to parse the third visual networking protocol data packet to obtain the second data, and the second data is written into the destination memory address corresponding to the RDMA read request.

5. The method according to claim 4, characterized in that Before parsing the third visual networking protocol data packet to obtain the second data, it also includes: judging whether the packet sequence number of the third visual networking protocol data packet is correct, the packet sequence number of the third visual networking protocol data packet is added by the server to the third visual networking protocol data packet; when the packet sequence number of the third visual networking protocol data packet is wrong, obtaining the second packet sequence number to be retransmitted, and sending the second packet sequence number to be retransmitted to the server; Parsing the third visual networking protocol data packet to obtain the second data includes: when the packet sequence number of the third visual networking protocol data packet is correct, parsing the third visual networking protocol data packet to obtain the second data.

6. A data processing method, characterized in that: Applied to the server, the method includes: After receiving the RDMA connection request sent by the client calling the first visual networking protocol stack, calling the second visual networking protocol stack to return an RDMA connection response to the client, and successfully establishing an RDMA connection between the client and the server; After receiving the visual networking protocol data packet corresponding to the RDMA data operation request sent by the client calling the first visual networking protocol stack, the second visual networking protocol stack is called to perform data processing operations based on the visual networking protocol data packet.

7. A data processing device, characterized in that: Applied to a client, the device comprises: A first establishing module is used to call the first visual networking protocol stack to send the RDMA connection request to the server after obtaining the RDMA connection request, and successfully establish the RDMA connection between the client and the server after receiving the RDMA connection response returned by the server calling the second visual networking protocol stack; The first processing module is used to call the first visual networking protocol stack after obtaining the RDMA data operation request, and send a visual networking protocol data packet corresponding to the RDMA data operation request to the server, so that the server calls the second visual networking protocol stack and performs data processing operations based on the visual networking protocol data packet.

8. A data processing device, characterized in that: Applied to the server, the device comprises: A second establishing module is used to call the second visual networking protocol stack to return an RDMA connection response to the client after receiving the RDMA connection request sent by the client calling the first visual networking protocol stack, and successfully establish the RDMA connection between the client and the server; The second processing module is used to call the second visual networking protocol stack after receiving the visual networking protocol data packet corresponding to the RDMA data operation request sent by the client calling the first visual networking protocol stack, and perform data processing operations based on the visual networking protocol data packet.

9. An electronic device, characterized in that: The electronic device includes a processor and a computer-readable storage medium, wherein a computer program is stored on the computer-readable storage medium; when the computer program is executed by the processor, the processor executes the data processing method according to any one of claims 1 to 6.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the processor executes the data processing method according to any one of claims 1 to 6.