Long-distance data transmission methods, apparatus, equipment and readable storage media

By establishing dedicated signaling channels and collaborative RDMA service proxies and service gateways between data centers, the problem of RDMA's inability to achieve long-distance data transmission was solved, enabling efficient cross-data center data transmission.

CN118612269BActive Publication Date: 2025-12-02INSPUR COMM TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410691418.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-05-30
Publication Date
2025-12-02
Estimated Expiration
2044-05-30

AI Technical Summary

Technical Problem

Existing RDMA technology cannot achieve long-distance data transmission and is limited to communication within a short range.

Method used

By establishing a dedicated signaling channel between the source terminal and the destination terminal, and utilizing the collaborative work of the RDMA service agent, service gateway, and destination terminal, data transmission authorization and bandwidth reservation are performed to achieve long-distance data transmission.

Benefits of technology

It enables long-distance data transmission with low latency, zero replication, and high bandwidth across data centers, and provides collaborative assurance between the end-side and the RDMA service gateway.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118612269B_ABST
    Figure CN118612269B_ABST
Patent Text Reader

Abstract

This invention relates to the field of communication technology, and provides a method, apparatus, device, and readable storage medium for long-distance data transmission. The method includes: receiving a service request for determining data transmission services and reserved bandwidth; sending an RPC request based on the service request determination to a local RDMA service gateway; then, based on the RPC request, service processing information of the local RDMA service gateway, service processing information of a remote RDMA service gateway, and bandwidth resources of the destination terminal, sending data transmission authorization information to the destination terminal; and finally, establishing a dedicated signaling channel for data transmission between the local and remote RDMA service gateways based on the data transmission authorization information. This invention provides a fundamental guarantee for long-distance, high-speed transmission through collaboration between the terminal and the RDMA service gateway.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of communication technology, and in particular to a long-distance data transmission method, apparatus, device, and readable storage medium. Background Technology

[0002] Remote Direct Memory Access (RDMA) is a high-speed, direct remote memory access technology that utilizes intelligent network interface cards (NICs) and optimized software architecture. It allows direct transfer of data from one computer's memory to another's memory without the intervention of either computer's operating system. RDMA features low latency, zero replication, and high bandwidth, and is widely used in data center networks. However, because RDMA relies on a lossless underlying transmission network, it is limited to short-range communication (e.g., 1 kilometer) and cannot support long-distance data transmission across data centers. Summary of the Invention

[0003] This invention provides a long-distance data transmission method, apparatus, device, and readable storage medium to solve the technical problem that existing RDMA cannot achieve long-distance data transmission services.

[0004] This invention provides a long-distance data transmission method applied to a long-distance data transmission system, the system comprising a source terminal, a local remote direct data access (RDMA) service gateway, a remote RDMA service gateway, and a destination terminal; the source terminal is equipped with a first RDMA service proxy; the method includes:

[0005] The first RDMA service proxy receives the service request generated by the source terminal and determines the data transmission service and reserved bandwidth based on the service request.

[0006] The first RDMA service agent sends a Remote Procedure Call (RPC) request to the local RDMA service gateway; the RPC request is determined based on the data transmission service and the reserved bandwidth.

[0007] Based on the RPC request, the service processing information of the local RDMA service gateway, the service processing information of the remote RDMA service gateway, and the bandwidth resources of the destination terminal, data transmission authorization information is sent sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal.

[0008] When the source terminal receives the data transmission authorization information, a dedicated signaling channel is established between the local RDMA service gateway and the remote RDMA service gateway, and data transmission is performed based on the dedicated signaling channel.

[0009] According to a long-distance data transmission method provided by the present invention, the step of determining the RPC request based on the data transmission service and the reserved bandwidth includes:

[0010] Based on the service request, a data transmission service and a queue pair are determined; the data transmission service has a service identifier and a service priority, and the queue pair has a queue identifier.

[0011] The reserved bandwidth is determined based on the service type of the data transmission service;

[0012] The RPC request is determined to carry the service identifier, the service priority, the queue identifier, and the reserved bandwidth.

[0013] According to a long-distance data transmission method provided by the present invention, the destination terminal is equipped with a second RDMA service proxy; the step of sending data transmission authorization information sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal based on the RPC request, the service processing information of the local RDMA service gateway, the service processing information of the remote RDMA service gateway, and the bandwidth resources of the destination terminal includes:

[0014] When the local RDMA service gateway receives the RPC request, it determines the service processing information of the local RDMA service gateway, which includes the remaining bandwidth and the priority of the remaining services.

[0015] Based on the comparison between the remaining bandwidth and the reserved bandwidth, and the comparison between the service priority and the priority of the remaining service, the RPC request is forwarded to the remote RDMA service gateway.

[0016] Based on the service processing information of the remote RDMA service gateway, the RPC request is forwarded to the second RDMA service proxy;

[0017] If the bandwidth resources of the destination terminal meet the reserved bandwidth, data transmission authorization information is sent sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal.

[0018] According to a long-distance data transmission method provided by the present invention, the step of forwarding the RPC request to the remote RDMA service gateway based on the comparison result of the remaining bandwidth and the reserved bandwidth, and the comparison result of the service priority and the priority of the remaining service, includes:

[0019] If the remaining bandwidth is greater than or equal to the reserved bandwidth, and the service priority is greater than the priority of the remaining service, the RPC request is forwarded to the remote RDMA service gateway.

[0020] According to a long-distance data transmission method provided by the present invention, the long-distance data transmission method further includes:

[0021] If the bandwidth resources of the destination terminal meet the reserved bandwidth, a first queue is created;

[0022] The first queue is bound to the service identifier, the queue identifier and the reserved bandwidth, and data transmission authorization information is sent sequentially to the remote RDMA service gateway, the local RDMA service gateway and the source terminal.

[0023] Upon receiving the data transmission authorization information at the source terminal, a second pair of queues is created;

[0024] Bind the second queue to the service identifier, the queue identifier, and the reserved bandwidth.

[0025] According to a long-distance data transmission method provided by the present invention, the data transmission based on the dedicated signaling channel includes:

[0026] A connection establishment request is sent to the destination terminal through the dedicated signaling channel. The connection establishment request carries the memory address information of the source terminal and the queue identifier.

[0027] If the destination terminal responds that the connection has been successfully established, data is transmitted between the source terminal and the destination terminal through the first queue and the second queue.

[0028] According to a long-distance data transmission method provided by the present invention, the queue pair includes a first queue and a second queue; the data transmission based on the dedicated signaling channel includes:

[0029] Obtain the cache usage information of the queue pair;

[0030] Based on the cache usage information, the transmission congestion value between the source terminal and the destination terminal is determined;

[0031] When the source terminal transmits data to the target terminal and the transmission congestion value is greater than the congestion threshold, the transmission rate of the source terminal is reduced based on the cache usage information and the transmission congestion value.

[0032] The present invention also provides a long-distance data transmission device, comprising:

[0033] The service request receiving module is used to receive service requests generated by the source terminal through the first RDMA service proxy, and determine data transmission services and reserved bandwidth based on the service requests;

[0034] The RPC request invocation module is used to send a Remote Procedure Call (RPC) request to the local RDMA service gateway through the first RDMA service proxy; the RPC request is determined based on the data transmission service and the reserved bandwidth.

[0035] The data transmission authorization information sending module is used to send data transmission authorization information sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal based on the RPC request, the service processing information of the local RDMA service gateway, the service processing information of the remote RDMA service gateway, and the bandwidth resources of the destination terminal.

[0036] The data transmission module is used to establish a dedicated signaling channel between the local RDMA service gateway and the remote RDMA service gateway when the source terminal receives the data transmission authorization information, and to perform data transmission based on the dedicated signaling channel.

[0037] The present invention also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement any of the long-distance data transmission methods described above.

[0038] The present invention also provides a non-transitory computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the long-distance data transmission method as described above.

[0039] This invention provides a method, apparatus, device, and readable storage medium for long-distance data transmission. The method is applied to a long-distance data transmission system comprising a source terminal, a local Remote Direct Data Access (RDMA) service gateway, a remote RDMA service gateway, and a destination terminal. The method involves receiving a service request generated by the source terminal through a first RDMA service proxy, determining the data transmission service and reserved bandwidth based on the service request, and then sending an RPC request based on the determined data transmission service and reserved bandwidth to the local RDMA service gateway through the first RDMA service proxy. Based on the RPC request, the service processing information of the local RDMA service gateway, the service processing information of the remote RDMA service gateway, and the bandwidth resources of the destination terminal, data transmission authorization information is sequentially sent to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal. Upon receiving the data transmission authorization information, the source terminal establishes a dedicated signaling channel between the local RDMA service gateway and the remote RDMA service gateway, and finally performs data transmission based on this dedicated signaling channel. This invention provides a fundamental guarantee for long-distance high-speed transmission through collaboration between the terminal and the RDMA service gateway. Attached Figure Description

[0040] To more clearly illustrate the technical solutions in this invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.

[0041] Figure 1 This is one of the flowcharts illustrating the long-distance data transmission method provided by the present invention;

[0042] Figure 2 This is a schematic diagram of the connection structure of the long-distance data transmission system provided by the present invention;

[0043] Figure 3 This is the second flowchart illustrating the long-distance data transmission method provided by the present invention;

[0044] Figure 4 This is a schematic diagram of the structure of the long-distance data transmission device provided by the present invention;

[0045] Figure 5 This is a schematic diagram of the structure of the electronic device provided by the present invention. Detailed Implementation

[0046] To make the objectives, technical solutions, and advantages of this invention clearer, the technical solutions of this invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of this invention. All other embodiments obtained by those skilled in the art based on the embodiments of this invention without creative effort are within the scope of protection of this invention.

[0047] Please refer to Figure 1 This invention provides a long-distance data transmission method applied to a long-distance data transmission system, the system comprising a source terminal, a local remote direct data access (RDMA) service gateway, a remote RDMA service gateway, and a destination terminal; the source terminal is equipped with a first RDMA service proxy; the method includes:

[0048] Step 100: Receive the service request generated by the source terminal through the first RDMA service proxy, and determine the data transmission service and reserved bandwidth based on the service request;

[0049] like Figure 2As shown, the long-distance data transmission method provided by this invention is applied to a long-distance data transmission system, which sequentially includes a source terminal, a local RDMA service gateway, a remote RDMA service gateway, and a destination terminal. Specifically, the source terminal has a first RDMA service proxy; a local RDMA service gateway is located at the data exit of the first data center; and a remote RDMA service gateway is located at the data exit of the second data center.

[0050] The first RDMA service agent is primarily responsible for receiving service requests initiated by the source terminal and estimating communication resources (e.g., bandwidth resources) based on the type of the requested service (i.e., data transmission service in this embodiment). In this embodiment, the reserved bandwidth is the estimated bandwidth requirement in the service request. Then, the first RDMA service agent invokes the RDMA connection establishment procedure to allocate queue pairs (QPs), but does not send connection establishment signaling during the current process. Each QP consists of two queues: a sending queue and a receiving queue.

[0051] Step 200: Send a Remote Procedure Call (RPC) request to the local RDMA service gateway through the first RDMA service proxy; the RPC request is determined based on the data transmission service and the reserved bandwidth;

[0052] Through Remote Procedure Call (RPC), the first RDMA service agent initiates a service resource reservation request to the local RDMA service gateway, carrying fields such as the service request message type (e.g., resource request), service identifier, QP identifier, service priority, required bandwidth, and duration, and requests the local RDMA service gateway to query and authorize.

[0053] Step 300: Based on the RPC request, the service processing information of the local RDMA service gateway, the service processing information of the remote RDMA service gateway, and the bandwidth resources of the destination terminal, data transmission authorization information is sent sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal.

[0054] After receiving an RPC request, the local RDMA service gateway first determines whether its remaining available bandwidth resources meet the estimated bandwidth requirements in the service request initiated by the source terminal, and then determines the priority of other services running on the local RDMA service gateway. In this embodiment, the service processing information of the local RDMA service gateway includes information such as remaining available bandwidth resources and the priorities of other running services; the service processing information of the remote RDMA service gateway is processed similarly.

[0055] If the remaining available bandwidth resources of the local RDMA service gateway meet the required bandwidth (i.e., the reserved bandwidth in this embodiment), the local RDMA service gateway binds the reserved bandwidth, service identifier, and QP identifier, and continues to forward the RPC request to the remote RDMA service gateway. If the remaining available bandwidth resources of the local RDMA service gateway do not meet the reserved bandwidth, the priority of other running services of the local RDMA service gateway is further determined to be relative to the priority of the aforementioned service request. If the former is less than the latter, the local RDMA service gateway stores the service records that need to be paused among the other running services and continues to forward the RPC request to the remote RDMA service gateway. If the former is greater than or equal to the latter, the local RDMA service gateway sends a service request rejection message to the source terminal. The service request rejection message includes the remaining available bandwidth resources of the local RDMA service gateway, so that the source terminal can determine whether to reduce the bandwidth resource requirement or delay the service request.

[0056] After receiving the RPC request, the remote RDMA service gateway repeats the above judgment of remaining available bandwidth resources and service priority within the remote RDMA service gateway. If the remaining available bandwidth resources of the remote RDMA service gateway meet the reserved bandwidth, or if the service priority is high enough among the priorities of other running services on the remote RDMA service gateway, then the RPC request will continue to be forwarded to the destination terminal.

[0057] After receiving the RPC request, the destination terminal determines its current bandwidth resource status (i.e., the bandwidth resources of the destination terminal in this embodiment). If the destination terminal's current bandwidth resources meet the reserved bandwidth, a dedicated virtual queue is created, and the reserved bandwidth, service identifier, and QP identifier are bound to the dedicated virtual queue. The destination terminal then replies to the source terminal that data transmission authorization has succeeded. If the destination terminal's current bandwidth resources do not meet the reserved bandwidth, the source terminal is replied that data transmission authorization has failed. Specifically, data transmission authorization information is sent sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal.

[0058] Step 400: When the source terminal receives the data transmission authorization information, a dedicated signaling channel is established between the local RDMA service gateway and the remote RDMA service gateway, and data transmission is performed based on the dedicated signaling channel.

[0059] After receiving a successful data transmission authorization response, the first RDMA service agent of the source terminal sends a connection establishment request through a dedicated signaling channel (established between the local RDMA service gateway and the remote RDMA service gateway). After the destination terminal successfully responds to the connection establishment request, the source terminal can start transmitting data to the destination terminal directly at a predetermined rate through a dedicated virtual queue.

[0060] This embodiment receives a service request generated by the source terminal through a first RDMA service proxy, determines the data transmission service and reserved bandwidth based on the service request, and then sends an RPC request based on the data transmission service and reserved bandwidth to the local RDMA service gateway through the first RDMA service proxy. Based on the RPC request, the service processing information of the local RDMA service gateway, the service processing information of the remote RDMA service gateway, and the bandwidth resources of the destination terminal, data transmission authorization information is sent sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal. Upon receiving the data transmission authorization information, the source terminal establishes a dedicated signaling channel between the local RDMA service gateway and the remote RDMA service gateway, and finally performs data transmission based on the dedicated signaling channel. This invention provides a fundamental guarantee for long-distance high-speed transmission through the collaboration between the terminal and the RDMA service gateway.

[0061] In one embodiment, the long-distance data transmission method provided in this application may further include:

[0062] Step 210: Determine the data transmission service and queue pair based on the service request; the data transmission service has a service identifier and a service priority, and the queue pair has a queue identifier;

[0063] Step 220: Determine the reserved bandwidth based on the service type of the data transmission service;

[0064] Step 230: Determine that the RPC request carries the service identifier, the service priority, the queue identifier, and the reserved bandwidth.

[0065] Specifically, in this embodiment, the queue identifier is the QP identifier mentioned above. The service request initiated by the source terminal carries a data transmission service, which has a service identifier and a service priority. The reserved bandwidth is estimated based on the type of data transmission service. A queue pair is allocated by the first RDMA service proxy, and each queue pair has a queue identifier. After obtaining the service identifier, service priority, queue identifier, and reserved bandwidth, an RPC request carrying the service identifier, service priority, queue identifier, and reserved bandwidth is generated. The RPC request is then sent to the local RDMA service gateway through the first RDMA service proxy.

[0066] This embodiment determines remote procedure call requests based on data transmission services and reserved bandwidth.

[0067] In one embodiment, the long-distance data transmission method provided in this application may further include:

[0068] Step 310: When the local RDMA service gateway receives the RPC request, determine the service processing information of the local RDMA service gateway, the service processing information including the remaining bandwidth and the priority of the remaining services;

[0069] Step 320: Based on the comparison result of the remaining bandwidth and the reserved bandwidth, and the comparison result of the service priority and the priority of the remaining service, forward the RPC request to the remote RDMA service gateway;

[0070] Step 330: Based on the service processing information of the remote RDMA service gateway, forward the RPC request to the second RDMA service proxy;

[0071] Step 340: If the bandwidth resources of the destination terminal meet the reserved bandwidth, data transmission authorization information is sent sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal.

[0072] The long-distance data transmission method provided in this application embodiment may further include:

[0073] Step 321: If the remaining bandwidth is greater than or equal to the reserved bandwidth and the service priority is greater than the priority of the remaining service, forward the RPC request to the remote RDMA service gateway.

[0074] Specifically, as described above, the local RDMA service gateway first receives the RPC request, and then, based on a comparison of the local RDMA service gateway's remaining available bandwidth resources with the reserved bandwidth, and a comparison of the priorities of other running services on the local RDMA service gateway with the service priority, determines whether the local RDMA service gateway should forward the RPC request to the remote RDMA service gateway. This application provides an example: if the local RDMA service gateway's remaining bandwidth is greater than or equal to the reserved bandwidth, and the service priority is greater than the priority of other running services, the local RDMA service gateway forwards the RPC request to the remote RDMA service gateway.

[0075] At the remote RDMA service gateway, the processing procedure is similar to that of the local RDMA service gateway. Based on the comparison between the remaining available bandwidth resources of the remote RDMA service gateway and the reserved bandwidth, as well as the comparison between the priority of other running services on the remote RDMA service gateway and the service priority, it is determined whether the remote RDMA service gateway should forward the RPC request to the destination terminal.

[0076] After receiving the RPC request, the destination terminal determines its bandwidth resources. If the destination terminal's bandwidth resources meet the reserved bandwidth, it creates a dedicated virtual queue, binds the reserved bandwidth, service identifier, and queue identifier to the dedicated virtual queue, and replies to the source terminal that data transmission authorization has been successful.

[0077] This embodiment determines whether data transmission is successfully authorized by sequentially forwarding remote procedure call requests between the local RDMA service gateway, the remote RDMA service gateway, and the destination terminal.

[0078] In one embodiment, the long-distance data transmission method provided in this application may further include:

[0079] Step 10: If the bandwidth resources of the destination terminal meet the reserved bandwidth, create a first queue;

[0080] Step 20: Bind the first queue with the service identifier, the queue identifier and the reserved bandwidth, and send data transmission authorization information to the remote RDMA service gateway, the local RDMA service gateway and the source terminal in sequence;

[0081] Step 30: If the source terminal receives the data transmission authorization information, create a second pair of queues;

[0082] Step 40: Bind the second queue to the service identifier, the queue identifier, and the reserved bandwidth.

[0083] Specifically, when the destination terminal receives an RPC request and its current bandwidth resources meet the reserved bandwidth requirements, the dedicated virtual queue created is the first queue in this embodiment. The first queue is bound to the service identifier, the queue identifier, and the reserved bandwidth, and data transmission authorization information is sent sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal.

[0084] After receiving a successful data transmission authorization message, the local RDMA service gateway and the remote RDMA service gateway reserve or reallocate resources. If resources are sufficient, a dedicated virtual queue (i.e., the second queue in this embodiment) is created directly, and the reserved bandwidth, service identifier, and queue identifier are bound to the second queue. If resources are insufficient, a pause notification with the pause duration is sent to low-priority services, while retaining the information of the paused services, releasing the original resources, and reallocating them to high-priority services.

[0085] This embodiment creates a dedicated virtual queue pair and then transmits data through the dedicated virtual queue.

[0086] In one embodiment, the long-distance data transmission method provided in this application may further include:

[0087] Step 410: Send a connection establishment request to the destination terminal through the dedicated signaling channel. The connection establishment request carries the memory address information of the source terminal and the queue identifier.

[0088] Step 420: If the destination terminal responds that the connection has been successfully established, data is transmitted between the source terminal and the destination terminal through the first queue and the second queue.

[0089] After receiving a successful authorization response, the source terminal's local RDMA service gateway sends a connection establishment request through a dedicated signaling channel, carrying the Global Identifier (GID), QP, and memory address information. Once the destination terminal responds with a successful connection establishment message, the source terminal can begin transmitting data at a predetermined rate through dedicated virtual queue pairs (the first queue and the second queue in this embodiment).

[0090] This embodiment transmits data between the source terminal and the destination terminal through a first queue and a second queue.

[0091] Please refer to Figure 3 In one embodiment, the long-distance data transmission method provided in this application may further include:

[0092] Step 500: Obtain the cache usage information of the queue pair;

[0093] Step 600: Based on the cache usage information, determine the transmission congestion value between the source terminal and the destination terminal;

[0094] Step 700: When the source terminal is transmitting data to the target terminal and the transmission congestion value is greater than the congestion threshold, the transmission rate of the source terminal is reduced based on the cache usage information and the transmission congestion value.

[0095] Specifically, after data transmission begins, the technical solution of this application further includes the following steps:

[0096] Step 1: During data transmission, the local RDMA service gateway can periodically monitor the virtual queue's buffer usage to anticipate congestion. The transmission congestion value is calculated using the following formula: Transmission Congestion Value = (Virtual Queue Sending Rate - Virtual Queue Receiving Rate - Transmission Rate between Source Terminal and Local RDMA Service Gateway × 2 - Alarm Information Processing Rate) × Timer Interval. If the local RDMA service gateway detects congestion, it can directly send Congestion Notification Packets (CNP) messages to the source terminal, instructing it to reduce its sending rate.

[0097] Step 2: During transmission, the remote RDMA service gateway can buffer the received data and send acknowledgment (ACK) frames in advance through a dedicated signaling channel to accelerate the rapid return of acknowledgment messages. If congestion or packet loss occurs, the remote RDMA service gateway can directly generate priority-based flow control (PFC) or negative acknowledgment (NACK) messages and send notifications to the local RDMA service gateway through a dedicated signaling channel.

[0098] Step 3: When the service starts, the local RDMA service gateway will start a timer. When the service request time expires, it will temporarily retain the service resources and notify the first RDMA service agent of the source terminal whether to renew the contract.

[0099] Step 4: The first RDMA service agent of the source terminal can also send an RDMA disconnect request or a PRC service termination request to notify the local RDMA service gateway and the remote RDMA service gateway to terminate the service and release the resources reserved for the service.

[0100] This embodiment achieves refined collaboration between the terminal and the gateway by using a service proxy to control terminal behavior on the terminal side, thereby enhancing long-distance data transmission capabilities.

[0101] The long-distance data transmission device provided by the present invention is described below. The long-distance data transmission device described below and the long-distance data transmission method described above can be referred to in correspondence.

[0102] Please refer to Figure 4 The present invention also provides a long-distance data transmission device, comprising:

[0103] The service request receiving module 401 is used to receive a service request generated by the source terminal through the first RDMA service proxy, and determine the data transmission service and reserved bandwidth based on the service request.

[0104] The RPC request invocation module 402 is used to send a Remote Procedure Call (RPC) request to the local RDMA service gateway through the first RDMA service proxy; the RPC request is determined based on the data transmission service and the reserved bandwidth.

[0105] The data transmission authorization information sending module 403 is used to send data transmission authorization information sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal based on the RPC request, the service processing information of the local RDMA service gateway, the service processing information of the remote RDMA service gateway, and the bandwidth resources of the destination terminal.

[0106] The data transmission module 404 is used to establish a dedicated signaling channel between the local RDMA service gateway and the remote RDMA service gateway when the source terminal receives the data transmission authorization information, and to perform data transmission based on the dedicated signaling channel.

[0107] Optionally, the long-distance data transmission device further includes:

[0108] A data transmission service and queue pair determination module is used to determine a data transmission service and queue pair based on the service request; the data transmission service has a service identifier and a service priority, and the queue pair has a queue identifier.

[0109] A reserved bandwidth determination module is used to determine the reserved bandwidth based on the service type of the data transmission service;

[0110] The RPC request determination module is used to determine that the RPC request carries the service identifier, the service priority, the queue identifier, and the reserved bandwidth.

[0111] Optionally, the destination terminal has a second RDMA service proxy added; the data transmission authorization information sending module includes:

[0112] A service processing information determination unit is used to determine the service processing information of the local RDMA service gateway when the local RDMA service gateway receives the RPC request. The service processing information includes the remaining bandwidth and the priority of the remaining services.

[0113] The first RPC request forwarding unit is used to forward the RPC request to the remote RDMA service gateway based on the comparison result of the remaining bandwidth and the reserved bandwidth, and the comparison result of the service priority and the priority of the remaining service.

[0114] The second RPC request forwarding unit is used to forward the RPC request to the second RDMA service proxy based on the service processing information of the remote RDMA service gateway.

[0115] The data transmission authorization information sending unit is used to send data transmission authorization information sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal, provided that the bandwidth resources of the destination terminal meet the reserved bandwidth.

[0116] Optionally, the first RPC request forwarding unit includes:

[0117] The request forwarding unit is used to forward the RPC request to the remote RDMA service gateway when the remaining bandwidth is greater than or equal to the reserved bandwidth and the service priority is greater than the priority of the remaining service.

[0118] Optionally, the long-distance data transmission device further includes:

[0119] The first queue creation module is used to create a first queue when the bandwidth resources of the destination terminal meet the reserved bandwidth.

[0120] The first information binding module is used to bind the first queue with the service identifier, the queue identifier and the reserved bandwidth, and send data transmission authorization information to the remote RDMA service gateway, the local RDMA service gateway and the source terminal in sequence.

[0121] The second queue creation module is used to create a second pair of queues when the source terminal receives the data transmission authorization information;

[0122] The second information binding module is used to bind the second queue with the service identifier, the queue identifier, and the reserved bandwidth.

[0123] Optionally, the data transmission module includes:

[0124] A connection establishment request sending unit is used to send a connection establishment request to the destination terminal through the dedicated signaling channel. The connection establishment request carries the memory address information of the source terminal and the queue identifier.

[0125] The data transmission unit is used to transmit data between the source terminal and the destination terminal through the first queue and the second queue when the destination terminal responds that the connection establishment is successful.

[0126] Optionally, the queue pair includes the first queue and the second queue; the long-distance data transmission device further includes:

[0127] A cache usage information acquisition module is used to acquire cache usage information of the queue pair;

[0128] A transmission congestion value determination module is used to determine the transmission congestion value between the source terminal and the destination terminal based on the cache usage information;

[0129] A transmission rate adjustment module is used to reduce the transmission rate of the source terminal based on the cache usage information and the transmission congestion value when the source terminal is transmitting data to the target terminal and the transmission congestion value is greater than the congestion threshold.

[0130] Figure 5 An example is a schematic diagram of the physical structure of an electronic device, such as... Figure 5 As shown, the electronic device may include a processor 510, a communications interface 520, a memory 530, and a communication bus 540. The processor 510, communications interface 520, and memory 530 communicate with each other via the communication bus 540. The processor 510 can call logical instructions from the memory 530 to execute long-distance data transmission methods.

[0131] Furthermore, the logical instructions in the aforementioned memory 530 can be implemented as software functional units and, when sold or used as independent products, can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, essentially, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0132] In another aspect, the present invention also provides a non-transitory computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, is implemented to perform the long-distance data transmission methods provided by the above methods.

[0133] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Those skilled in the art can understand and implement this without any creative effort.

[0134] Through the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus necessary general-purpose hardware platforms, and of course, it can also be implemented by hardware. Based on this understanding, the above technical solutions, in essence or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments or some parts of the embodiments.

[0135] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims

1. A method for long-distance data transmission, characterized in that, An application is made in a long-distance data transmission system, the system comprising a source terminal, a local remote direct data access (RDMA) service gateway, a remote RDMA gateway, and a destination terminal; the source terminal is equipped with a first RDMA service proxy; the method includes: The first RDMA service proxy receives the service request generated by the source terminal and determines the data transmission service and reserved bandwidth based on the service request. The first RDMA service agent sends a Remote Procedure Call (RPC) request to the local RDMA service gateway; the RPC request is determined based on the data transmission service and the reserved bandwidth. Based on the RPC request, the service processing information of the local RDMA service gateway, the service processing information of the remote RDMA service gateway, and the bandwidth resources of the destination terminal, data transmission authorization information is sent sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal. When the source terminal receives the data transmission authorization information, a dedicated signaling channel is established between the local RDMA service gateway and the remote RDMA service gateway, and data transmission is performed based on the dedicated signaling channel. The steps for determining the RPC request based on the data transmission service and the reserved bandwidth include: Based on the service request, a data transmission service and a queue pair are determined; the data transmission service has a service identifier and a service priority, and the queue pair has a queue identifier. The reserved bandwidth is determined based on the service type of the data transmission service; The RPC request is determined to carry the service identifier, the service priority, the queue identifier, and the reserved bandwidth; The destination terminal has a second RDMA service proxy added; the step of sending data transmission authorization information sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal based on the RPC request, the service processing information of the local RDMA service gateway, the service processing information of the remote RDMA service gateway, and the bandwidth resources of the destination terminal includes: When the local RDMA service gateway receives the RPC request, it determines the service processing information of the local RDMA service gateway, which includes the remaining bandwidth and the priority of the remaining services. Based on the comparison between the remaining bandwidth and the reserved bandwidth, and the comparison between the service priority and the priority of the remaining service, the RPC request is forwarded to the remote RDMA service gateway. Based on the service processing information of the remote RDMA service gateway, the RPC request is forwarded to the second RDMA service proxy; If the bandwidth resources of the destination terminal meet the reserved bandwidth, data transmission authorization information is sent sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal. The step of forwarding the RPC request to the remote RDMA service gateway based on the comparison result of the remaining bandwidth and the reserved bandwidth, and the comparison result of the service priority and the priority of the remaining services, includes: If the remaining bandwidth does not meet the reserved bandwidth and the priority of the service is greater than the priority of the remaining service, the RPC request is forwarded to the remote RDMA service gateway.

2. The long-distance data transmission method according to claim 1, characterized in that, The long-distance data transmission method further includes: If the bandwidth resources of the destination terminal meet the reserved bandwidth, a first queue is created; The first queue is bound to the service identifier, the queue identifier and the reserved bandwidth, and data transmission authorization information is sent sequentially to the remote RDMA service gateway, the local RDMA service gateway and the source terminal. Upon receiving the data transmission authorization information at the source terminal, a second queue is created; Bind the second queue to the service identifier, the queue identifier, and the reserved bandwidth.

3. The long-distance data transmission method according to claim 2, characterized in that, The data transmission based on the dedicated signaling channel includes: A connection establishment request is sent to the destination terminal through the dedicated signaling channel. The connection establishment request carries the memory address information of the source terminal and the queue identifier. If the destination terminal responds that the connection has been successfully established, data is transmitted between the source terminal and the destination terminal through the first queue and the second queue.

4. The long-distance data transmission method according to claim 3, characterized in that, The queue pair includes the first queue and the second queue; the data transmission based on the dedicated signaling channel includes: Obtain the cache usage information of the queue pair; Based on the cache usage information, the transmission congestion value between the source terminal and the destination terminal is determined; When the source terminal is transmitting data to the destination terminal and the transmission congestion value is greater than the congestion threshold, the transmission rate of the source terminal is reduced based on the cache usage information and the transmission congestion value.

5. A long-distance data transmission device, characterized in that, include: The service request receiving module is used to receive service requests generated by the source terminal through the first RDMA service proxy, and determine data transmission services and reserved bandwidth based on the service requests; The RPC request invocation module is used to send a Remote Procedure Call (RPC) request to the local RDMA service gateway through the first RDMA service proxy; the RPC request is determined based on the data transmission service and the reserved bandwidth. The data transmission authorization information sending module is used to send data transmission authorization information sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal based on the RPC request, the service processing information of the local RDMA service gateway, the service processing information of the remote RDMA service gateway, and the bandwidth resources of the destination terminal. The data transmission module is used to establish a dedicated signaling channel between the local RDMA service gateway and the remote RDMA service gateway when the source terminal receives the data transmission authorization information, and to perform data transmission based on the dedicated signaling channel; The steps for determining the RPC request based on the data transmission service and the reserved bandwidth include: Based on the service request, a data transmission service and a queue pair are determined; the data transmission service has a service identifier and a service priority, and the queue pair has a queue identifier. The reserved bandwidth is determined based on the service type of the data transmission service; The RPC request is determined to carry the service identifier, the service priority, the queue identifier, and the reserved bandwidth; The destination terminal has a second RDMA service proxy added; the step of sending data transmission authorization information sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal based on the RPC request, the service processing information of the local RDMA service gateway, the service processing information of the remote RDMA service gateway, and the bandwidth resources of the destination terminal includes: When the local RDMA service gateway receives the RPC request, it determines the service processing information of the local RDMA service gateway, which includes the remaining bandwidth and the priority of the remaining services. Based on the comparison between the remaining bandwidth and the reserved bandwidth, and the comparison between the service priority and the priority of the remaining service, the RPC request is forwarded to the remote RDMA service gateway. Based on the service processing information of the remote RDMA service gateway, the RPC request is forwarded to the second RDMA service proxy; If the bandwidth resources of the destination terminal meet the reserved bandwidth, data transmission authorization information is sent sequentially to the remote RDMA service gateway, the local RDMA service gateway, and the source terminal. The step of forwarding the RPC request to the remote RDMA service gateway based on the comparison result of the remaining bandwidth and the reserved bandwidth, and the comparison result of the service priority and the priority of the remaining services, includes: If the remaining bandwidth does not meet the reserved bandwidth and the priority of the service is greater than the priority of the remaining service, the RPC request is forwarded to the remote RDMA service gateway.

6. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the long-distance data transmission method as described in any one of claims 1 to 4.

7. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the long-distance data transmission method as described in any one of claims 1 to 4.

Citation Information

Patent Citations

  • Distributed file system data transmission method and system based on RDMA network

    CN110191194A

  • Message processing method, gateway equipment and storage system

    CN116566933A