A data processing method, apparatus, network device, and storage medium
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- NEW H3C TECH CO LTD
- Filing Date
- 2024-09-23
- Publication Date
- 2026-05-26
Smart Images

Figure CN122095609A_ABST
Abstract
Description
Data processing method and device, network equipment and storage medium TECHNICAL FIELD
[0001] The present application relates to the technical field of communication, in particular to a data processing method and device, network equipment and storage medium. BACKGROUND
[0002] In order to solve the delay of server data processing in network transmission, RDMA (Remote Direct Memory Access) service emerges as the times require. The reliability requirement of RDMA service for network transmission is very high, mainly reflected in the network packet loss.
[0003] At present, there is a demand for transmitting RDMA service based on wide area network. However, the reasons for packet loss in wide area network are various, and the reliability is poor, which leads to a sharp decline in the performance of RDMA service when transmitting RDMA service based on wide area network.
[0004] SUMMARY
[0005] The purpose of the embodiments of the present application is to provide a data processing method and device, network equipment and storage medium, to solve the problem of packet loss in wide area network and improve the performance of services with high network transmission reliability requirements such as RDMA service when applied to wide area network. The specific technical solutions are as follows:
[0006] In a first aspect, the embodiments of the present application provide a data processing method applied to a first network equipment, wherein the first network equipment is located on a specified path from a first host in a first data center to a second host in a second data center, and the first data center and the second data center are connected through a wide area network; the method comprises:
[0007] obtaining a first rate of sending RDMA service packets by the first network equipment, and obtaining a second rate of receiving RDMA service packets by the first network equipment; the forwarding path corresponding to the RDMA service is the specified path, the source address of the RDMA service packet is the address of the first host, and the destination address of the RDMA service packet is the address of the second host;
[0008] matching the first rate and the second rate to obtain a third rate expected by the first network equipment to receive the RDMA service packets;
[0009] The rate of receiving RDMA service packets by the first network equipment is counter-pressed to the third rate.
[0010] In some embodiments, the step of obtaining the first rate of sending RDMA service packets by the first network equipment comprises:
[0011] detecting a bottleneck bandwidth between the first network device and a second network device, the second network device being located on the specified path and being a downstream device of the first network device;
[0012] calculating a product of the bottleneck bandwidth and a first gain factor to obtain the first rate.
[0013] In some embodiments, the method further comprises:
[0014] detecting a minimum round-trip time between the first network device and the second network device;
[0015] calculating a product of the minimum round-trip time, the bottleneck bandwidth and a second gain factor to obtain a congestion window size;
[0016] sending, to the second network device, packets of the RDMA traffic of the congestion window size at the first rate.
[0017] In some embodiments, the step of obtaining a second rate at which the first network device receives packets of the RDMA traffic comprises:
[0018] calculating a growth rate of data in a target queue as the second rate at which the first network device receives packets of the RDMA traffic;
[0019] wherein the target queue is a forwarding queue corresponding to the RDMA traffic, or a preset cyclic queue corresponding to the RDMA traffic.
[0020] In some embodiments, before matching the first rate and the second rate, the method further comprises:
[0021] determining whether a number of packets buffered in a forwarding queue corresponding to the RDMA traffic exceeds a preset minimum waterline;
[0022] if the number of buffered packets exceeds the preset minimum waterline, performing the step of matching the first rate and the second rate.
[0023] In some embodiments, the method further comprises:
[0024] determining whether a number of packets buffered in a forwarding queue corresponding to the RDMA traffic exceeds a preset maximum waterline;
[0025] if the number of buffered packets exceeds the preset maximum waterline, discarding the received packets upon receiving the packets of the RDMA traffic;
[0026] If the preset maximum water line is not exceeded, when a packet of the RDMA service is received, the received packet is buffered to the forwarding queue.
[0027] In some embodiments, the matching of the first rate and the second rate to obtain a third rate at which the first network device expects to receive packets of the RDMA service comprises:
[0028] comparing the first rate and the second rate;
[0029] If an absolute value of a difference between the first rate and the second rate reaches a preset difference value, the first rate is taken as the third rate at which the first network device expects to receive packets of the RDMA service.
[0030] In some embodiments, the step of backpressuring the rate at which the first network device receives packets of the RDMA service to the third rate comprises:
[0031] determining a backpressure frequency and an adjustment amplitude required for adjusting the second rate to the third rate, the adjustment amplitude being an amplitude of adjusting the rate each time when the second rate is adjusted to the third rate using the backpressure frequency;
[0032] adjusting the rate at which the third network device sends packets of the RDMA service to the third rate using the backpressure frequency according to the adjustment amplitude, the third network device being located on the specified path and being an upstream device of the first network device.
[0033] In some embodiments, the first network device is a gateway device of the first data center in a wide area network, and the method further comprises:
[0034] receiving a packet of the RDMA service sent by the first host to the second host;
[0035] constructing a pseudo acknowledgement (ACK) message of the packet of the RDMA service according to connection management information between the first host and the second host;
[0036] feeding back the pseudo ACK message to the first host.
[0037] In some embodiments, the method further comprises:
[0038] intercepting a connection management message for establishing the specified path in a process in which the first host and the second host establish the specified path;
[0039] recording connection management information carried in the connection management message.
[0040] In some embodiments, the method further comprises:
[0041] After forwarding the message of the RDMA service, if an ACK message corresponding to the message of the RDMA service is not received within a preset time length, the message of the RDMA service is re-forwarded;
[0042] If an ACK message corresponding to the message of the RDMA service is received within a preset time length, the message of the RDMA service in the forwarding queue corresponding to the RDMA service is released.
[0043] In some embodiments, the method further comprises:
[0044] Receiving and recording path information issued by a controller, the path information including a segment routing list corresponding to the specified path, and a message feature of the RDMA service;
[0045] Based on the path information, forwarding the message of the RDMA service along the specified path.
[0046] In some embodiments, the path information is determined by the controller according to specified network resource information of the wide area network and a transmission index of the RDMA service.
[0047] In some embodiments, the specified network resource information includes one or more of network topology information, network bandwidth, network delay, and network jitter.
[0048] In a second aspect, the embodiments of the present application provide a data processing apparatus applied to a first network device, the first network device being located on a specified path from a first host in a first data center to a second host in a second data center, the first data center and the second data center being connected through a wide area network; the apparatus comprising:
[0049] An obtaining module, configured to obtain a first rate at which the first network device sends a message of an RDMA service, and obtain a second rate at which the first network device receives the message of the RDMA service; a forwarding path corresponding to the RDMA service being the specified path, a source address of the message of the RDMA service being an address of the first host, and a destination address of the message of the RDMA service being an address of the second host;
[0050] A matching module, configured to match the first rate and the second rate to obtain a third rate at which the first network device is expected to receive the message of the RDMA service;
[0051] A back pressure module, configured to back pressure the rate at which the first network device receives the message of the RDMA service to the third rate.
[0052] In some embodiments, the obtaining module is specifically configured to:
[0053] probe a bottleneck bandwidth between the first network device and a second network device, the second network device being located on the specified path and being a downstream device of the first network device;
[0054] calculate a product of the bottleneck bandwidth and a first gain coefficient to obtain the first rate.
[0055] In some embodiments, the obtaining module is further configured to probe a minimum round-trip time between the first network device and the second network device; and calculate a product of the minimum round-trip time, the bottleneck bandwidth and a second gain coefficient to obtain a congestion window size.
[0056] The apparatus further includes a sending module configured to send, to the second network device, a packet of the RDMA service with the congestion window size at the first rate.
[0057] In some embodiments, the obtaining module is specifically configured to:
[0058] calculate a growth rate of data in a target queue as a second rate at which the first network device receives the packet of the RDMA service; wherein the target queue is a forwarding queue corresponding to the RDMA service or a preset cyclic queue corresponding to the RDMA service.
[0059] In some embodiments, the matching module is specifically configured to:
[0060] before matching the first rate and the second rate, determine whether the packet buffered in the forwarding queue corresponding to the RDMA service exceeds a preset minimum waterline; and if the packet exceeds the preset minimum waterline, match the first rate and the second rate.
[0061] In some embodiments, the matching module is further configured to:
[0062] determine whether the packet buffered in the forwarding queue corresponding to the RDMA service exceeds a preset maximum waterline;
[0063] if the packet exceeds the preset maximum waterline, discard the received packet upon receiving the packet of the RDMA service;
[0064] if the packet does not exceed the preset maximum waterline, buffer the received packet to the forwarding queue upon receiving the packet of the RDMA service.
[0065] In some embodiments, the matching module is specifically configured to:
[0066] compare the first rate and the second rate;
[0067] If an absolute value of a difference between the first rate and the second rate reaches a preset difference value, the first rate is taken as a third rate at which the first network device expects to receive the packet of the RDMA service.
[0068] In some embodiments, the back pressure module is specifically configured to:
[0069] determine a back pressure frequency and an adjustment amplitude required for adjusting the second rate to the third rate, the adjustment amplitude being an amplitude of adjusting the second rate to the third rate each time by using the back pressure frequency;
[0070] adjust, according to the adjustment amplitude, the rate at which the third network device sends the packet of the RDMA service to the third rate by using the back pressure frequency, the third network device being located on the specified path and being an upstream device of the first network device.
[0071] In some embodiments, the first network device is a gateway device of the first data center in a wide area network, and the apparatus further comprises:
[0072] a first receiving module configured to receive the packet of the RDMA service sent by the first host to the second host;
[0073] a constructing module configured to construct a pseudo ACK message of the packet of the RDMA service according to connection management information between the first host and the second host;
[0074] a feedback module configured to feed back the pseudo ACK message to the first host.
[0075] In some embodiments, the apparatus further comprises:
[0076] a capturing module configured to capture a connection management message for establishing the specified path in a process in which the first host and the second host establish the specified path;
[0077] a recording module configured to record connection management information carried in the connection management message.
[0078] In some embodiments, the apparatus further comprises:
[0079] a sending module configured to, after forwarding the packet of the RDMA service, if an ACK message corresponding to the packet of the RDMA service is not received within a preset time length, re-forward the packet of the RDMA service, and if the ACK message corresponding to the packet of the RDMA service is received within the preset time length, release the packet of the RDMA service in a forwarding queue corresponding to the RDMA service.
[0080] In some embodiments, the apparatus further comprises:
[0081] a second receiving module, configured to receive and record path information issued by a controller, the path information comprising a segment routing list corresponding to the specified path, and a message feature of the RDMA service;
[0082] a sending module, configured to forward the message of the RDMA service along the specified path based on the path information.
[0083] In some embodiments, the path information is determined by the controller according to specified network resource information of the wide area network and a transmission index of the RDMA service.
[0084] In some embodiments, the specified network resource information comprises one or more of network topology information, network bandwidth, network latency, and network jitter.
[0085] In a third aspect, an embodiment of the present application provides a network device, comprising a processor and a machine readable storage medium, the machine readable storage medium stores a computer program capable of being executed by the processor, and the processor is prompted by the computer program to implement any of the method steps.
[0086] In a fourth aspect, an embodiment of the present application provides a machine readable storage medium, the machine readable storage medium stores a computer program, and the computer program is executed by a processor to implement any of the method steps.
[0087] In a fifth aspect, an embodiment of the present application provides a computer program, and the computer program is executed by a processor to implement any of the method steps.
[0088] In the technical scheme provided in the embodiments of the present application, the RDMA service is a service between a first host in a first data center and a second host in a second data center, and a message of the RDMA service is forwarded along a specified path from the first host to the second host. A first network device located on the specified path acquires a first rate at which the message of the RDMA service is sent and a second rate at which the message of the RDMA service is received, matches the first rate and the second rate, and backpresses the rate at which the message of the RDMA service is received, so that the rate at which the first network device receives the message of the RDMA service reaches a third expected rate. Since the third rate is obtained by matching the first rate and the second rate, when the rate at which the first network device receives the message of the RDMA service is backpressed to the third rate, the rate at which the first network device sends and receives the message of the RDMA service reaches a balance, the overall transmission efficiency is improved, and thus the packet jitter caused by congestion is not too large to misjudge packet loss, the problem of packet loss in a wide area network is solved, and the performance of an RDMA service or other service with high requirement on network transmission reliability applied to a wide area network is improved.
[0089] Of course, implementing any product or method of the present application does not necessarily require all the advantages described above to be achieved at the same time. BRIEF DESCRIPTION OF DRAWINGS
[0090] The drawings described herein are intended to provide further understanding of the present application, form a part of the present application, and serve to explain the present application, and do not constitute improper limitations on the present application.
[0091] FIG. 1 is a schematic diagram of performance of throughput of RDMA service read and write operations;
[0092] FIG. 2 is a schematic diagram of RDMA service transmission within a data center;
[0093] FIG. 3 is a schematic diagram of RDMA service transmission between data centers;
[0094] FIG. 4 is a schematic diagram of an RDMA service transmission scenario;
[0095] FIG. 5 is a schematic diagram of FlexE cross-connect channel configuration;
[0096] FIG. 6 is a schematic diagram of a network architecture provided by the embodiments of the present application;
[0097] FIG. 7 is a first schematic diagram of a data processing method provided by the embodiments of the present application;
[0098] FIG. 8 is a schematic diagram of a method for obtaining a first rate by detecting a bottleneck bandwidth according to an embodiment of the present application;
[0099] FIG. 9 is a schematic diagram of congestion situation processing according to an embodiment of the present application;
[0100] FIG. 10 is a schematic diagram of counter pressure provided by an embodiment of the present application;
[0101] FIG. 11 is a schematic diagram of an implementation of step S73;
[0102] FIG. 12 is a first schematic diagram of a data processing method provided by an embodiment of the present application;
[0103] FIG. 13 is a schematic diagram of a networking architecture provided by an embodiment of the present application;
[0104] FIG. 14a is a first part of a signaling diagram of data interaction provided by an embodiment of the present application;
[0105] FIG. 14b is a second part of a signaling diagram of data interaction provided by an embodiment of the present application;
[0106] FIG. 15 is a schematic diagram of a sending rate on a LAN side and a sending rate on a wide area network side provided by an embodiment of the present application;
[0107] FIG. 16 is a schematic diagram of a data processing apparatus provided by an embodiment of the present application;
[0108] FIG. 17 is a schematic diagram of a network device provided by an embodiment of the present application. DETAILED DESCRIPTION
[0109] To make the objectives, technical solutions, and advantages of the present application clearer, further detailed descriptions will be given below with reference to the drawings and embodiments. Obviously, the described embodiments are only some of the embodiments of the present application, but not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art belong to the scope of protection of the present application.
[0110] For the convenience of understanding, the terms appearing in the embodiments of the present application are explained as follows.
[0111] RDMA (Remote Direct Memory Access): a technology generated to solve the delay of server-side data processing in network transmission; RDMA service allows user-mode application programs to directly read or write remote memory without kernel intervention and memory copy. In the embodiments of the present application, the RDMA service is a service of directly reading or writing data to a remote device performed by an application program supporting the RDMA technology.
[0112] RoCE (RDMA over Converged Ethernet): a network protocol allowing the use of RDMA through Ethernet.
[0113] SRv6 (Segment Routing IPv6, Segment Routing based on IPv6 forwarding plane): It is a new generation of IP (Internet Protocol) carrying protocol. SRv6 adopts IPv6 forwarding technology, and realizes network programmability through flexible IPv6 extension header.
[0114] RDMA service has very high requirements on network transmission, mainly in the network packet loss. For different packet loss rates, the performance of the throughput of RDMA service read and write operations is as shown in FIG. 1. In FIG. 1, the short dashed line represents the performance of the throughput of read operation, and the long dashed line represents the performance of the throughput of write operation. As can be seen from FIG. 1, RDMA service is extremely sensitive to Ethernet packet loss. When the packet loss rate in Ethernet is greater than 0.001, the network throughput will decrease sharply, and the throughput is only about 0.75. When the packet loss rate in Ethernet increases to 0.01, the throughput of RDMA service decreases to 0. Based on FIG. 1, if the throughput of RDMA service is not affected, the packet loss rate needs to be guaranteed below 0.00001 (i.e. one ten-thousandth), and preferably no packet loss.
[0115] The current main application of RDMA service is in the data center. The data of RDMA service is transmitted through lossless network combined with RoCE technology, as shown in FIG. 2. The communication parties (including the sending end and the receiving end) belong to the same data center 1. The lossless network includes multiple spine nodes, such as spine1 and spine2 in FIG. 2, and multiple leaf nodes, such as leaf1 and leaf2 in FIG. 2. The sending end and the receiving end are respectively provided with RDMA network cards. After the sending end copies the RDMA service message of the application from the buffer to the RDMA network card, the RDMA network card is driven by the network card driver, and the sending of the RDMA service message is completed through the lossless network; the receiving end is driven by the network card driver to drive the RDMA network card, and the RDMA service message is received through the lossless network, and the RDMA service message is copied to the buffer of the application. Since the data center uses lossless network to transmit data, the packet loss rate of the network tends to 0, which can meet the high requirements of RDMA service on network transmission reliability.
[0116] With the development of edge computing and 5G MEC (Mobile Edge Computing), computing power is sinking to the edge, and integrated big data centers are developing rapidly. The business interaction between data centers and edge computing centers is becoming closer and closer. The application scenario of RDMA business is expanding from within the data center to between the data center and the edge computing center. In this scenario, a wide area network is needed to connect the data center and the edge computing center, which makes the communication parties of the RDMA business likely to be distributed in different locations as shown in FIG. 3. The communication parties of the RDMA business are located in data center 1 and data center 2, respectively.
[0117] Without changing the existing RDMA business implementation mechanism, the wide area network interconnecting the data center and the edge computing center also has the same requirements for the RDMA business, mainly in terms of packet loss on the network. The reasons for packet loss in the wide area network are various. One of the reasons is that congestion causes too much jitter, and the RDMA business message is misjudged as lost, which further causes the entire RDMA business message to be retransmitted. In addition, if the delay is large and small, it will also cause a sharp decline in the performance of the RDMA business.
[0118] In addition, the wide area network carries a large amount of various types of business, including video, voice, file transfer, etc. In the case of the wide area network providing best-effort (best-effort) network capability, different businesses affect each other, and the RDMA business message is very susceptible to the influence of various large-bandwidth transmission businesses, resulting in large jitter and even packet loss, further causing a sharp decline in the performance of the RDMA business.
[0119] To solve the above problems, in the related technology, as shown in FIG. 4, the RDMA business transmission scenario uses a FlexE cross connect channel to divide a separate network slice for the RDMA business, and uses the FlexE cross connect channel to provide services for the RDMA business across the data center, to ensure the performance of the RDMA business.
[0120] For example, the sending end in the data center 1 shown in FIG. 4 and the receiving end in the data center 2 shown in FIG. 4 are connected through a plurality of provider edge (PE) devices and a plurality of provider (P) devices in a wide area network, such as PE1, P1, P2 and PE2 in FIG. 5. The physical ports of PE1, P1, P2 and PE2 are connected, and a FlexE cross-connect channel is allocated to the physical ports, the FlexE cross-connections on PE1, P1, P2 and PE2 are connected, and a FlexE cross-connect channel from PE1 to PE2 is formed. In addition, the association between the RDMA service and the FlexE cross-connect channel is configured on PE1 and PE2. After the RDMA service is associated with the FlexE cross-connect channel, the message transmission process of the RDMA service between the sending end and the receiving end is as follows: the sending end sends the message of the RDMA service to PE1; PE1 encapsulates the message into the FlexE cross-connect channel through service matching, and then transmits the message to PE2 through P1 and P2; PE2 receives the message from the FlexE cross-connect channel, decapsulates the message, and then sends the message to the receiving end.
[0121] The FlexE cross-connect channel occupies the hardware resources through the time-division multiplexing (TDM) technology inherent in FlexE, so that the services in the FlexE cross-connect channel are strictly guaranteed in terms of bandwidth, latency and jitter.
[0122] The FlexE cross-connect channel technology can guarantee the performance of the RDMA service when transmitting the message of the RDMA service, but has the following disadvantages:
[0123] 1. All devices in the wide area network are required to support the FlexE cross-connect function, which is very high in device requirements and leads to high networking cost.
[0124] 2. The FlexE cross-connect channel is a hard pipe and adopts an exclusive mode, so the corresponding bandwidth resources cannot be shared by other services, resulting in low bandwidth resource utilization.
[0125] To solve the problem of packet loss in a wide area network, improve the performance of services with high requirements for network transmission reliability, such as RDMA services, when applied to a wide area network, and reduce the networking cost and improve the bandwidth resource utilization, an embodiment of the present application provides a data processing method. The data processing method can be applied to any network device (such as a first network device) on a specified path from a first host in a first data center to a second host in a second data center, that is, the first network device can be the first host, the second host, or a forwarding node on the specified path. The forwarding node can include a forwarding node in the first data center, a forwarding node in the second data center, a gateway device of the first data center in the wide area network, a gateway device of the second data center in the wide area network, and other forwarding nodes in the wide area network. The forwarding node can include, but is not limited to, a router, a switching device, a firewall device, and other devices with communication functions.
[0126] The first data center and the second data center are any two data centers connected by a wide area network, that is, the first data center and the second data center are located in different regions. The specified path is the forwarding path of the message of the RDMA service with high requirements for network transmission reliability.
[0127] For example, the network architecture shown in FIG. 6, data center 1 and data center 2 are connected by a wide area network. The wide area network includes PE1-PE2 and P1-P6, PE1 is the gateway of data center 1, and PE2 is the gateway of data center 2. The specified path 1 from the sending end in data center 1 to the receiving end in data center 2 is sending end-PE1-P1-P2-P5-P6-PE2-receiving end. The specified path 1 is the forwarding path of the RDMA service. The above first network device can be the sending end, PE1, P1, P2, P5, P6, PE2, or receiving end on the specified path 1, that is, the sending end, PE1, P1, P2, P5, P6, PE2, or receiving end can implement the data processing method provided by the embodiment of the present application. The switching devices inside the data center, such as spine1-spine2, leaf1-leaf2, etc. in FIG. 4, are omitted in FIG. 6. The switching devices inside the data center can also implement the data processing method provided by the embodiment of the present application.
[0128] In addition, in FIG. 6, other services are services other than RDMA services, that is, services with low requirements for network transmission reliability. In FIG. 6, only the forwarding path of the other services is taken as an example, that is, data center 1-PE1-P4-P5-P6-PE2-data center 2, and it does not have a limiting effect.
[0129] In the technical scheme provided in the embodiments of the present application, the RDMA service is a service between a first host in a first data center and a second host in a second data center, and a message of the RDMA service is forwarded along a specified path from the first host to the second host. A first network device located on the specified path acquires a first rate at which the message of the RDMA service is sent and a second rate at which the message of the RDMA service is received, matches the first rate and the second rate, and backpresses the rate at which the message of the RDMA service is received, so that the rate at which the message of the RDMA service is received by the first network device reaches a desired third rate. Since the third rate is obtained by matching the first rate and the second rate, when the rate at which the message of the RDMA service is received by the first network device is backpressed to the third rate, the rate at which the message of the RDMA service is sent and received by the first network device reaches a balance, the overall transmission efficiency is improved, and thus the packet loss problem in a wide area network is solved, and the performance of an RDMA service or other service with high requirement on network transmission reliability applied to a wide area network is improved.
[0130] In addition, when the RDMA service message is transmitted between the first host and the second host, all devices in the wide area network do not need to support complex FlexE cross-connection functions, the requirement on the devices is reduced, the networking cost is reduced, and the overall end-to-end rate is improved. Moreover, in the embodiments of the present application, the end-to-end transmission is implemented in a non-exclusive mode, and the corresponding bandwidth resources can also be shared by other services, and the bandwidth resource utilization rate is improved.
[0131] The data processing method provided in the embodiments of the present application will be described in detail below through specific embodiments.
[0132] Referring to FIG. 7, FIG. 7 is a first flowchart of a data processing method provided in the embodiments of the present application, which is applied to a first network device, the first network device is located on a specified path from a first host in a first data center to a second host in a second data center, and the first data center and the second data center are connected through a wide area network. The method comprises the following steps:
[0133] In step S71, a first rate at which the first network device sends a message of an RDMA service is acquired, and a second rate at which the first network device receives the message of the RDMA service is acquired; a forwarding path corresponding to the RDMA service is the specified path, a source address of the message of the RDMA service is an address of the first host, and a destination address of the message of the RDMA service is an address of the second host;
[0134] In step S72, the first rate and the second rate are matched to obtain a third rate at which the first network device is expected to receive the message of the RDMA service;
[0135] Step S73: the first network device reverses the rate of receiving the RDMA service message to a third rate.
[0136] In the technical solution provided by the embodiments, the RDMA service is a service between a first host in a first data center and a second host in a second data center, and the message of the RDMA service is forwarded along a specified path from the first host to the second host. A first network device located on the specified path acquires a first rate of sending the message of the RDMA service and a second rate of receiving the message of the RDMA service, matches the first rate and the second rate, and reverses the rate of receiving the message of the RDMA service, so that the rate of the first network device receiving the message of the RDMA service reaches a third rate. Since the third rate is obtained by matching the first rate and the second rate, when the rate of the first network device receiving the message of the RDMA service is reversed to the third rate, the rate of the first network device sending and receiving the message of the RDMA service reaches balance, the overall transmission efficiency is improved, and thus the packet loss problem in the wide area network is solved, and the performance of the RDMA service and other services with high requirements on network transmission reliability applied to the wide area network is improved.
[0137] In the above step S71, the RDMA service is a service with high requirements on network transmission reliability. An upper-layer application program of the first host generates the message of the RDMA service, the source address of the message is the address of the first host, and the destination address is the address of the second host. After the first host, each forwarding node, and the second host on the specified path receive the message of the RDMA service, the message of the RDMA service is forwarded along the specified path.
[0138] In the embodiments, if the first network device is the first host, the first rate is the rate of the first host sending the message of the RDMA service to a downstream device (such as a second network device), and the second rate is the rate of the first host receiving the message of the RDMA service generated by the upper-layer application program. The second network device can be a next-hop device of the first host on the specified path, or a specified device downstream of the first host on the specified path, such as a gateway device of the first data center or the second host. Here, the upper-layer application program can also be understood as a network device.
[0139] If the first network device is the second host, the first rate is the rate of the second host reporting the message of the RDMA service to the upper-layer application program, and the second rate is the rate of the second host receiving the message of the RDMA service sent by an upstream device (such as a third network device). The third network device can be a previous-hop device of the second host on the specified path, or a specified device upstream of the second host on the specified path, such as a gateway device of the second data center or the first host.
[0140] If the first network device is a forwarding node on the specified path, the first rate is a rate at which the forwarding node sends the RDMA service message to a downstream device (e.g., the second network device), and the second rate is a rate at which the RDMA service message is sent by an upstream device (e.g., the third network device) of the forwarding node, that is, a rate at which the upstream device sends the RDMA service message. The second network device can be a next-hop device of the forwarding node on the specified path, and the third network device can be a previous-hop device of the forwarding node on the specified path; or, the second network device can be a specified device downstream of the forwarding node on the specified path, and the third network device can be a specified device upstream of the forwarding node on the specified path. For example, the forwarding node is a gateway device of the first data center, the second network device is a gateway device of the second data center, and the third network device is the first host; or, the forwarding node is a gateway device of the second data center, the second network device is the second host, and the third network device is a gateway device of the first data center.
[0141] In the process of forwarding the RDMA service message, the first network device obtains the first rate and the second rate. The first rate can be greater than the second rate, or less than or equal to the second rate.
[0142] In an embodiment of the present application, the first network device can obtain the first rate in any of the following ways.
[0143] In a1, the first network device obtains the first rate by detecting the bottleneck bandwidth, as shown in FIG. 8, which can include the following steps.
[0144] In step S81, the bottleneck bandwidth between the first network device and the second network device is detected. The second network device is located on the specified path and is a downstream device of the first network device.
[0145] The bottleneck bandwidth is the maximum transmission capability of the link between the first network device and the second network device on the specified path. In an embodiment of the present application, the first network device can use the Bottleneck Bandwidth and RTT (BBR) algorithm to detect the bottleneck bandwidth between the first network device and the second network device.
[0146] For example, the first network device sets an initial value of the bottleneck bandwidth, such as setting the initial value of the bottleneck bandwidth to 0. The first network device sends messages to the second network device along the link at a low packet sending rate to obtain the current instant bandwidth. If the instant bandwidth > the current bottleneck bandwidth, the first network device updates the bottleneck bandwidth to the instant bandwidth. The first network device calculates the product of the bottleneck bandwidth and the first gain coefficient to obtain the current packet sending rate, and continues to send messages to the second network device at the current packet sending rate to obtain the current instant bandwidth and update the current bottleneck bandwidth.
[0147] If the instant bandwidths obtained by the consecutive preset times of detection are all less than the current bottleneck bandwidth, it is indicated that the bottleneck bandwidth between the first network device and the second network device has been obtained, and the first network device takes the current bottleneck bandwidth as the bottleneck bandwidth between the first network device and the second network device.
[0148] In the embodiments of the present application, the first network device can also detect the bottleneck bandwidth in other manners, which are not limited herein.
[0149] In step S82, the product of the bottleneck bandwidth and the first gain coefficient is calculated to obtain the first rate.
[0150] The first gain coefficient can be set according to actual requirements. For example, the first gain coefficient can be 0.35, 0.75, 1, 1.25, 2.89, etc.
[0151] After obtaining the bottleneck bandwidth between the first network device and the second network device, the first network device can calculate the product of the bottleneck bandwidth and the first gain coefficient to obtain the first rate.
[0152] In some embodiments, to further reduce the congestion in the network, the first network device can also perform the flow as shown in FIG. 9, which can specifically include the following steps:
[0153] In step S91, the minimum round-trip delay between the first network device and the second network device is detected.
[0154] The minimum round-trip delay (RTprop) refers to the time length required for one packet to make one round in the section between the first network device and the second network device on the specified path without queuing and packet loss. In the embodiments of the present application, the first network device can use the BBR algorithm to detect the minimum round-trip delay between the first network device and the second network device.
[0155] For example, the first network device adjusts the size of the congestion window to a preset minimum value, and sends the packets forwarded along the section to the second network device according to the adjusted congestion window (CWND) to empty the packets corresponding to the section; after the packets corresponding to the section are emptied, the minimum round-trip delay of the new section is detected.
[0156] In step S92, the product of the minimum round-trip delay, the bottleneck bandwidth and the second gain coefficient is calculated to obtain the size of the congestion window.
[0157] The second gain coefficient can be set according to actual requirements. For example, the second gain coefficient can be 1, 2, 2.89, etc.
[0158] After obtaining the minimum round-trip delay and the bottleneck bandwidth between the first network device and the second network device, the first network device can calculate the product of the minimum round-trip delay, the bottleneck bandwidth and the second gain coefficient, and obtain a value, which is the congestion window size.
[0159] In step S93, the first network device sends the packet of the RDMA service with the congestion window size to the second network device at the first rate.
[0160] For the packet of the RDMA service, the first network device obtains the packet data of the RDMA service with the congestion window size, and sends the obtained packet data to the second network device at the first rate.
[0161] In the embodiments of the present application, the first network device adjusts the packet sending rate of the first network device and the congestion window according to the network real-time state such as the bottleneck bandwidth and the minimum round-trip delay, so as to achieve the purpose of flow control, alleviate or solve the congestion problem in the network, thereby alleviating or solving the packet loss problem caused by congestion, and improving the performance of the RDMA service and other services with high requirements on network transmission reliability when applied to a wide area network.
[0162] Mode a2, the first network device obtains the first rate in a configured manner.
[0163] In the embodiments of the present application, the first network device can be pre-configured with a packet sending rate, i.e., the first rate, and the first network device sends the packet at the first rate. In this case, the first network device can directly obtain the pre-configured first rate.
[0164] In the embodiments of the present application, the first network device can also obtain the first rate in the above manner, which is not limited.
[0165] In the embodiments of the present application, the first network device can obtain the second rate in any of the following modes.
[0166] Mode b1, the first network device calculates the growth rate of data in the target queue as the second rate of the first network device receiving the packet of the RDMA service.
[0167] The target queue can be a forwarding queue corresponding to the RDMA service. The forwarding queue is used to buffer the packet of the RDMA service. The length of the forwarding queue can be adjusted. In the embodiments of the present application, the length of the forwarding queue is greater than a Bandwidth-Delay Product (BDP), and the difference between the length of the forwarding queue and the BDP is greater than or equal to a preset difference, which is greater than or equal to a threshold value of processing the packet on the host side. The BDP is equal to the product of the minimum round-trip delay and the bottleneck bandwidth.
[0168] The first network device buffers the message of the RDMA service to a forwarding queue after receiving the message of the RDMA service. The first network device reads the message from the forwarding queue and sends the read message to the second network device after performing de-duplication, sorting and other processing on the read message. For the forwarding queue, the first network device calculates a growth rate of data in the forwarding queue, and the growth rate is the second rate, that is, the rate at which the upstream third network device sends the message of the RDMA service.
[0169] In the embodiments of the present application, the target queue can also be a preset circular queue corresponding to the RDMA service. The preset circular queue is a circular queue allocated for the RDMA service outside the forwarding queue corresponding to the RDMA service. When the first network device buffers the message of the RDMA service to the forwarding queue, the first network device copies a message and buffers the copied message to the preset circular queue. For the preset circular queue, the first network device calculates a growth rate of data in the preset circular queue, and the growth rate is the second rate, that is, the rate at which the upstream third network device sends the message of the RDMA service.
[0170] In mode b2, the third network device sends a notification message to the first network device, and the notification message carries the rate at which the third network device sends the message of the RDMA service, that is, the second rate. The first network device extracts the second rate from the notification message.
[0171] The notification message can be the message of the RDMA service, that is, the message of the RDMA service carries the second rate, and then the first network device can take the message as the notification message. The notification message can also be a message additionally constructed by the third network device, which is not limited.
[0172] In the embodiments of the present application, the first network device can also use other ways to obtain the second rate, which is not limited.
[0173] In the above step S72, the first network device matches the first rate and the second rate, that is, matches the message transmission rate between the third network device and the first network device and the message transmission rate between the first network device and the second network device, and then obtains the expected third rate. The third rate is a rate that can improve the overall transmission efficiency, and the third rate is between the first rate and the second rate, and can be equal to the first rate.
[0174] For example, if the first rate is greater than the second rate, the third rate can be less than or equal to the first rate and greater than the second rate, that is, the first network device increases the rate at which the third network device sends the message to the first network device, so that the entire network can quickly complete the transmission of the RDMA service and improve the transmission efficiency.
[0175] If the first rate is less than the second rate, the third rate can be greater than or equal to the first rate and less than the second rate. That is, the first network device adjusts the rate at which the third network device sends the packet to the first network device, so that the network device upstream can use more bandwidth resources to transmit the packet of other services, thereby improving the packet transmission efficiency of the entire network.
[0176] In some embodiments, the first network device can pre-configure a minimum waterline of the forwarding queue corresponding to the RDMA service, that is, a preset minimum waterline. In the embodiments of the present application, the waterline is a threshold value for triggering a specified operation, and the specified operation corresponding to different waterlines is different. The specified operation corresponding to the preset minimum waterline is rate matching, that is, the threshold value of the preset minimum waterline triggers rate matching.
[0177] Before matching the first rate and the second rate, the first network device can determine whether the packet buffered in the forwarding queue corresponding to the RDMA service exceeds the preset minimum waterline; if the preset minimum waterline is exceeded, the first rate and the second rate are matched in step S72. If the preset minimum waterline is not exceeded, the first network device can not perform step S72, thereby avoiding the first network device from frequently performing back pressure, causing waste of network resources.
[0178] In some embodiments, the first network device can pre-configure a maximum waterline of the forwarding queue corresponding to the RDMA service, that is, a preset maximum waterline. The specified operation corresponding to the preset maximum waterline is a packet dropping operation, that is, the threshold value of the preset maximum waterline triggers the packet dropping operation.
[0179] The first network device determines whether the packet buffered in the forwarding queue corresponding to the RDMA service exceeds the preset maximum waterline; if the preset maximum waterline is exceeded, the received packet is discarded when the packet of the RDMA service is received; if the preset maximum waterline is not exceeded, the received packet is buffered to the forwarding queue when the packet of the RDMA service is received.
[0180] In the embodiments of the present application, before buffering the packet of the RDMA service to the forwarding queue, the first network device classifies and determines the packet, that is, determines whether to buffer the packet of the RDMA service to the forwarding queue. This can effectively avoid packet loss due to packet overflow of the forwarding queue, and the upstream device cannot perceive the packet loss.
[0181] In some embodiments, to further avoid the first network device from frequently performing back pressure, causing waste of network resources, the above step S72 can be: comparing the first rate and the second rate; if the absolute value of the difference between the first rate and the second rate reaches a preset difference value, the first rate is taken as the third rate at which the first network device expects to receive the packet of the RDMA service.
[0182] In the embodiments of the present application, the preset difference value is set according to actual requirements. When the absolute value of the difference between the first rate and the second rate reaches the preset difference value, the first network device determines the third rate, and then performs step S73, thereby reducing the frequency of the first network device performing back pressure. Moreover, the first network device takes the first rate as the expected third rate, and after the rate of sending the RDMA service message and the rate of receiving the RDMA service message are maximally reduced, the difference between the rate of sending the RDMA service message and the rate of receiving the RDMA service message is further reduced, thereby further reducing the frequency of the first network device performing back pressure.
[0183] In step S73, after the third rate, the first network device sends a back pressure message to the upstream device (such as an upper layer application program, a host or a forwarding node) to perform back pressure on the RDMA service, so that the upstream device sends the RDMA service message at the third rate, and then the first network device receives the RDMA service message at the third rate, thereby achieving the purpose of congestion avoidance and improving transmission efficiency. The back pressure message can be a congestion notification packet (CNP), or other types of back pressure messages, which are not limited.
[0184] For example, the back pressure schematic diagram shown in FIG. 10. After the network device receives the RDMA service message, the network device classifies and determines the message, that is, determines whether the forwarding queue corresponding to the RDMA service exceeds the preset maximum water line Pmax. If Pmax is exceeded, the network device discards the message, such as discarding message 3. If Pmax is not exceeded, the network device writes the message into the forwarding queue, such as writing message 1 to message 2 into the forwarding queue, and then sends message 1 to message 2 after processing such as deduplication and sorting. When message 1 to message 2 is written into the forwarding queue, the network device copies message 1 to message 2 and writes them into the preset cyclic queue. The network device calculates the receiving rate of the RDMA service message by using the growth rate of the data in the preset cyclic queue, so as to perform subsequent back pressure processing.
[0185] In the embodiments of the present application, the forwarding queue can also be combined with the preset cyclic queue. In this case, the network device can not copy the message, but directly calculate the growth rate of the data in the forwarding queue to obtain the receiving rate of the RDMA service message, so as to perform subsequent back pressure processing.
[0186] In addition, the network device determines whether the forwarding queue corresponding to the RDMA service exceeds the preset minimum water line Pmin. If Pmin is exceeded, the network device sends a CNP to the upstream device to back pressure the rate of receiving the RDMA service message to the expected rate.
[0187] In the embodiment, the first network device can send the third rate to the third network device upstream in the back pressure message. The third network device extracts the third rate from the back pressure message, and then sends the RDMA service packet to the first network device according to the third rate. In this way, the first network device completes the rate back pressure at one time, and the back pressure efficiency is improved.
[0188] In some embodiments, to improve the smoothness of the rate reduction, the step S73 can be implemented by the following steps as shown in FIG. 11.
[0189] In step S111, the back pressure frequency and the adjustment amplitude required for adjusting the second rate to the third rate are determined. The adjustment amplitude is the amplitude of adjusting the rate each time when the second rate is adjusted to the third rate by using the back pressure frequency.
[0190] In the embodiment, the first network device can pre-set the back pressure frequency. Based on the pre-set back pressure frequency and the rate adjustment algorithm, the first network device calculates the adjustment amplitude. The first network device can pre-set the adjustment amplitude. Based on the pre-set adjustment amplitude and the rate adjustment algorithm, the first network device calculates the back pressure frequency.
[0191] The rate adjustment algorithm can be: v1=v2+N*a.
[0192] Wherein, v1 is the third rate, v2 is the second rate, N is the back pressure frequency, i.e. the number of times of executing the back pressure, and a is the adjustment amplitude.
[0193] The rate adjustment algorithm can also be:
[0194] Wherein, v1 is the third rate, v2 is the second rate, N is the back pressure frequency, i.e. the number of times of executing the back pressure, and a is the adjustment amplitude.
[0195] In the case of pre-setting the back pressure frequency or the adjustment amplitude, the first network device can determine another parameter by using the above rate adjustment algorithm and the pre-set parameter.
[0196] In the embodiment, the above back pressure frequency and adjustment amplitude can also be issued to the first network device by the controller. For example, the controller collects information on the first network device, including the first rate and the third rate, etc., determines the back pressure frequency and the adjustment amplitude by using the above rate adjustment algorithm and the collected information, and issues them to the first network device.
[0197] In step S112, the rate of the third network device sending the RDMA service packet is adjusted to the third rate by using the back pressure frequency and the adjustment amplitude. The third network device is located on the specified path and is the upstream device of the first network device.
[0198] After determining the adjustment range and the frequency of the reverse pressure, the first network device starts to adjust the rate, wherein the first network device adjusts the rate by the adjustment range each time, and only after the frequency of the reverse pressure rate adjustment, the rate of the message of the RDMA service sent by the third network device is adjusted to the third rate, and the rate reverse pressure is completed.
[0199] For example, if the data cached in the forwarding queue corresponding to the RDMA service exceeds the preset minimum water line, the second rate is greater than the first rate, and the second rate is greater than the first rate, then every interval preset time, the first network device adjusts the rate according to the adjustment range, sends the CNP carrying the adjusted rate to the third network device, and then the third network device sends the message of the RDMA service to the first network device according to the adjusted rate. The rate is adjusted in this way, and the number of times of adjusting the rate reaches the frequency of the reverse pressure, that is, the adjusted rate is the third rate.
[0200] In the embodiment of the application, the first network device completes the rate reverse pressure by multiple adjustments, and adjusts the rate of the message of the RDMA service sent by the third network device to the third rate, thereby improving the smoothness of the speed reduction.
[0201] In addition, the frequency of the reverse pressure and the adjustment range can be adjusted according to actual needs to adapt to the changes of congestion in the network. For example, the second rate is much greater than the first rate, and in the case of a fixed adjustment range, the frequency of the reverse pressure can be increased. The first gateway device can give an adaptive algorithm, that is, the frequency of the reverse pressure and the adjustment range, by analyzing the network topology, the traffic model and the device characteristics, thereby improving the generalization ability and robustness of the embodiment of the application.
[0202] In some embodiments, the first network device is a gateway device of a first data center in a wide area network. Based on this, the embodiment of the application further provides a data processing method, as shown in FIG. 12, which can include the following steps:
[0203] Step S121, receiving the message of the RDMA service sent by the first host to the second host.
[0204] Step S122, constructing the pseudo ACK message corresponding to the message of the RDMA service according to the connection management information between the first host and the second host.
[0205] The connection management information can include but is not limited to the queue pair (Queue Pair, QP) corresponding to the RDMA service between the first host and the second host, and the address pair information. The connection management information is the required information for the second host to construct the ACK message corresponding to the message of the RDMA service.
[0206] The first network device records the connection management information between the first host and the second host. In the embodiment of the present application, the connection management information can be configured in the first network device by a controller, that is, the first network device receives the connection management information between the first host and the second host issued by the controller. The first network device can also intercept a connection management (CM) message used for establishing the specified path in the process of establishing the specified path by the first host and the second host; and record the CM information carried in the CM message.
[0207] In the process of establishing the specified path by the first host and the second host, the first host sends a CM message to the second host; the CM message will be forwarded through the first network device, in which process, the first network device will intercept the CM message, and then extract the CM information from the CM message. This way of obtaining the CM information does not need to be configured by the controller, thereby reducing the burden of the controller.
[0208] In the case of recording the connection management information between the first host and the second host, after receiving the RDMA service packet sent by the first host to the second host and buffering the RDMA service packet to the corresponding forwarding queue, the first network device can generate an ACK message corresponding to the RDMA service packet instead of the second host, and the ACK message is the same as the ACK message generated by the second host, which is a pseudo ACK message.
[0209] Step S123, feeding back the pseudo ACK message to the first host.
[0210] In the embodiment of the present application, the first network device feeds back the pseudo ACK message to the first host instead of the second host. After receiving the pseudo ACK message, the first host considers that the pseudo ACK message is fed back by the second host, that is, confirming that the second host receives the RDMA service packet, and then releasing the RDMA service packet in the sending queue (SQ) and the like.
[0211] In the embodiment of the present application, if the second host replies to the ACK message to the first host, the reply time is more than 100 milliseconds (ms) due to the transmission through the wide area network. The first network device replies the ACK message to the first host instead of the second host, which reduces the reply time by wireless transmission through the wide area network; and then the first host can make a quick adjustment to improve the convergence speed of the whole adjustment process.
[0212] In the embodiment of the present application, a controller can be deployed in the wide area network, such as the controller in FIG. 6, which can be an SDN (Software Defined Network) controller or other types of controllers.
[0213] The controller can issue path information to the network devices on the specified path, the path information including a segment routing list corresponding to the specified path and a message feature of the RDMA service. Each network device (including the first network device) receives and records the path information issued by the controller to ensure that the message of the RDMA service is forwarded along the specified path. In this way, the network device forwards the message of the RDMA service along the specified path based on the path information.
[0214] For example, based on the message feature of the RDMA service, the network device identifies the message of the RDMA service and forwards the message of the RDMA service along the specified path based on the segment routing list.
[0215] The configuration of the path information in each network device is completed by the controller, which facilitates unified management of each network device in the wide area network and ensures end-to-end deterministic transmission of the message of the RDMA service.
[0216] To determine accurate path information, the controller can collect specified network resource information of the wide area network and establish a network-wide resource model. The specified network resource information can include one or more of network topology information, network bandwidth, network latency, and network jitter. In addition, the controller collects transmission indicators of the RDMA service, calculates the specified path that meets the transmission indicators and the encapsulation information (such as the segment routing list) of the SRv6 message based on the collected specified network resource information and the transmission indicators of the RDMA service, and obtains the path information in combination with the message feature of the RDMA service. Here, SRv6 technology is only used as an example and does not limit the scope, as long as the message of the RDMA service is forwarded along the specified path.
[0217] In some embodiments, the controller can use an in-band network telemetry method to detect the wide area network and obtain the specified network resource information. Based on the specified network resource information detected by the in-band network telemetry method, the required latency and jitter of each path can be accurately estimated, and the specified path that meets the transmission indicators can be determined, and the path information corresponding to the specified path is issued to each network device. In this embodiment, the required latency and jitter of each path can be accurately estimated through the in-band network telemetry method. At this time, even if only the gateways of the two data centers perform the above data processing method and the intermediate devices do not perform the above data processing method, the selected path can still be effective within the QoS (Quality of Service) constraint range to achieve deterministic transmission, which reduces the requirements for intermediate devices and further saves network deployment costs.
[0218] In the embodiments of the present application, the controller can flexibly schedule the resources of the wide area network according to specific service requirements without occupying fixed bandwidth and other network resources, thereby improving network usage efficiency.
[0219] In addition, the data processing method provided by the embodiments of the present application has high network use efficiency and low network device requirement, realizes deterministic transmission with bounded latency, and can support more application scenarios with lossless requirements for wide area networks in the future.
[0220] In some embodiments, to ensure the performance of the service, the first gateway device can perform packet loss detection, specifically, after forwarding the RDMA service packet, if an ACK message corresponding to the RDMA service packet is not received within a preset time period, the RDMA service packet is re-forwarded; if the ACK message corresponding to the RDMA service packet is received within the preset time period, the RDMA service packet in the forwarding queue corresponding to the RDMA service is released. The ACK message here is a normal true ACK message constructed by the second host.
[0221] The data processing method provided by the embodiments of the present application will be described in detail below in combination with the networking architecture shown in FIG. 13 and the data interaction signaling diagram shown in FIG. 14. The RDMA service is an RDMA service.
[0222] In FIG. 13, the host 131 in the data center 1 and the host 132 in the data center 2 are connected through the gateway device 133 of the data center 1 and the gateway device 134 of the data center 2 in the wide area network. The forwarding nodes between the gateway device 133 and the gateway device 134 are omitted in FIG. 13. The gateway device 133 and the gateway device 134 support the data processing method provided by the embodiments of the present application. At this time, the end-to-end data transmission between the host 131 and the host 132 can be divided into three segments as shown in FIG. 13, one segment from the data center 1 (i.e., the host 131) to the gateway device 133 (i.e., the local area network (LAN) side), one segment from the gateway device 133 to the gateway device 134 (i.e., the wide area network side), and one segment from the gateway device 134 to the data center 2 (i.e., the host 132) (i.e., the LAN side). The gateway device acts as a bridge and enables the function of proxy forwarding.
[0223] The data center 1 and the data center 2 are lossless networks, which can be configured using technologies such as explicit congestion notification (ECN), priority-based flow control (PFC), and data center bridging exchange (DCBX).
[0224] The data center 1 is connected with the gateway device 133, and the data center 2 is connected with the gateway device 134. The distance between the data center 1 and the gateway device 133 and the distance between the data center 2 and the gateway device 134 are both very short. The gateway device 133 is equivalent to the edge device of the data center 1, and the gateway device 134 is equivalent to the edge device of the data center 2. The data center 1 and the gateway device 133 and the data center 2 and the gateway device 134 can perform a congestion control algorithm in the data center, such as a data center quantized congestion notification (DCQCN) congestion control algorithm. That is, the congestion control algorithm in the data center is performed on the LAN side.
[0225] The gateway device 133 and the gateway device 134 perform a wide-area network supported congestion control algorithm, such as a BBR congestion control algorithm, a packet loss retransmission function, and the like. That is, the wide-area network supported congestion control algorithm, the packet loss retransmission function, and the like are performed on the wide-area network side to avoid the unreliability and low transmission efficiency of the wide-area network transmission.
[0226] In the embodiment of the application, a controller is deployed in the wide-area network to collect network topology information, network bandwidth, network delay, network jitter, and the like of the wide-area network, and to establish a full-network resource model. In addition, the controller collects specific transmission indicators of the RDMA service on the network delay, bandwidth, jitter, and the like, and calculates a specified path and encapsulation information (such as a segment routing list) of an SRv6 message that satisfies the transmission indicators, according to the collected specified network resource information and the transmission indicators of the RDMA service, in combination with the port number, five-tuple information, and the like of the RDMA service. Path information is obtained. The controller issues the path information to the network devices in the wide-area network to establish an end-to-end transmission path between the host 131 and the host 132. As shown in FIG. 6, the controller can issue the path information to the PE1, P2, P5, P6, and PE2 in the wide-area network to establish a transmission path between the sending end in the data center 1 and the receiving end in the data center 2.
[0227] In the case where the transmission path is established, the entire network adopts the flow shown in FIGS. 14a and 14b for data interaction.
[0228] FIG. 14a is a normal interaction flow between the host 131 and the host 132.
[0229] In step S1401, the CM message is transmitted between the host 131 and the host 132 to establish a forwarding path corresponding to the RDMA service, that is, to associate the RDMA service with the transmission path between the sending end in the data center 1 and the receiving end in the data center 2.
[0230] Step S1402, the gateway device 133 and the gateway device 134 intercept the CM message, and record the QP and the address pair carried by the CM message.
[0231] Step S1403, the host 131 sends the RDMA service message to the gateway device 133 through the lossless network in the data center 1 at line speed.
[0232] Step S1404, the gateway device 133 determines whether the message cached in the forwarding queue corresponding to the RDMA service exceeds the maximum waterline; if yes, step S1405 is executed; if not, step S1406 is executed.
[0233] Step S1405, the gateway device 133 discards the message.
[0234] Step S1406, the gateway device 133 caches the message to the forwarding queue corresponding to the RDMA service.
[0235] Step S1407, the gateway device 133 constructs a pseudo-ACK message corresponding to the RDMA service message according to the CM information, and feeds back the pseudo-ACK message to the host 131.
[0236] Step S1408, the gateway device 133 reads the message from the forwarding queue, and forwards the read message to the gateway device 134.
[0237] Here, the gateway device 133 can encapsulate the read message into a corresponding tunnel message (such as an SRv6 message) to make the message transmitted to the gateway device 134 through the wide area network along the corresponding forwarding path.
[0238] In the embodiment of the application, the execution order of step S1407 and step S1408 is not limited.
[0239] Step S1409, the gateway device 134 forwards the message to the host 132 through the lossless network in the data center 2.
[0240] Here, the gateway device 134 caches the received message to the forwarding queue corresponding to the RDMA service, and then reads the message from the forwarding queue and forwards the read message to the host 132. The message received by the gateway device 134 can be a tunnel message. The gateway device 134 strips the tunnel information of the tunnel message to obtain the original message, and forwards the original message to the host 132 through the lossless network in the data center 2.
[0241] Step S1410, after the host 132 receives the message, the host 132 constructs a true ACK message corresponding to the RDMA service message according to the CM information, and feeds back the true ACK message to the host 131 through the gateway device 133 and the gateway device 134.
[0242] After receiving the true ACK message, the gateway device 133 and the gateway device 134 release the packet in the sending queue.
[0243] After receiving the ACK message, the host 131 releases the packet in the sending queue, updates the completion queue entry, and the like.
[0244] The host 131 first receives the ACK message (the pseudo ACK message) constructed by the gateway device 133 in step S1407, and thus releases the packet in the sending queue according to the pseudo ACK message, updates the completion queue entry, and the like.
[0245] FIG. 14b is a congestion control flow between the host 131 and the host 132.
[0246] In step S1421, the gateway device 133 detects the bottleneck bandwidth and the minimum round-trip time between the gateway device 133 and the gateway device 134.
[0247] In step S1422, the gateway device 133 determines the sending rate and the congestion window size according to the bottleneck bandwidth and the minimum round-trip time.
[0248] In the embodiment, the gateway device 133 detects the bottleneck bandwidth and the minimum round-trip time by using the BBR algorithm. The sending rate between the gateway device 133 and the gateway device 134 can be slowly increased from the minimum speed.
[0249] In step S1423, the gateway device 133 sends the packets of the RDMA service with the congestion window size at the sending rate to the network device 133.
[0250] The above steps S1421 to S1423 are used to implement the above step S1408.
[0251] In step S1424, the gateway device 133 determines whether the packets cached in the forwarding queue corresponding to the RDMA service exceed the minimum waterline. If yes, step S1425 is performed; if not, step S1424 is repeatedly performed.
[0252] In step S1425, the gateway device 133 performs backpressure, which can be specifically as follows.
[0253] The gateway device 133 compares the sending rate on the LAN side and the sending rate on the wide area network side, determines the expected sending rate on the LAN side, sends a backpressure message to the host 131, and the host 131 sends the packets of the RDMA service to the gateway device 133 at the expected sending rate according to the backpressure message.
[0254] The sending rate on the LAN side is the rate at which the host 131 sends packets to the gateway device 133, and the sending rate on the WAN side is the rate at which the gateway device 133 sends packets to the gateway device 134.
[0255] The gateway device 133 can send a back pressure message according to the congestion control algorithm executed on the LAN side in the data center. For example, the DCQCN algorithm is executed on the LAN side, and the rate adjustment algorithm thereof is:
[0256] wherein v1 is the expected sending rate, v2 is the sending rate on the WAN side, N is the back pressure frequency, i.e., the number of times of executing back pressure, and a is the adjustment amplitude.
[0257] Based on the above formula, the gateway device 133 reduces the sending rate of the host 131 to the expected sending rate for N times.
[0258] In actual application, the sending rate on the LAN side and the sending rate on the WAN side do not completely match. As shown in FIG. 15, if the sending rate Hr(t) on the LAN side is greater than the sending rate Wr(t) on the WAN side, the packets stored in the forwarding queue in the gateway device will increase, and even exceed the maximum water line, causing packet loss; if the sending rate Hr(t) on the LAN side is less than the sending rate Wr(t) on the WAN side, the packets stored in the forwarding queue in the gateway device will decrease, and even empty the forwarding queue, causing waste of line resources on the WAN side and processing resources of the gateway device. In the embodiment of the present application, since the distance between the gateway device 133 and the host 131 is very short, the above process shown in FIG. 14b can quickly complete the increase or decrease of the sending rate of the host 131, so that the sending rate on the LAN side and the sending rate on the WAN side can match, and the above problems can be effectively solved.
[0259] In addition, the gateway device 133 can omit the above step S1424, i.e., the gateway device 133 can execute the back pressure operation in real time.
[0260] To solve the congestion caused by untimely rate adjustment, and further cause the packet loss in the above step S1405, the gateway device 133 can further execute packet loss detection, which can specifically be: after sending a packet of the RDMA service, if an ACK message corresponding to the packet is not received within a preset time length, the gateway device 133 re-sends the packet to the gateway device 134. In the embodiment of the present application, the gateway device 133 can adopt a go-back-to-N or selective retransmission mode to retransmit the packet, which is not limited herein.
[0261] The process in which the host 132 sends the RDMA service packet to the host 131 is the same as the processes shown in FIG. 14a and FIG. 14b, which will not be described herein again.
[0262] In the technical scheme provided by the embodiment of the application, the transmission path of the entire RDMA service is divided into three segments, and the gateway device of the data center cooperates and adapts between the road segments of the LAN side and the wide area network side, so that the differences between different road segments can be shielded, and related resources can be coordinated and fully utilized as much as possible. In addition, the gateway device can quickly feedback after perceiving the change of the network topology / state, and the surrounding nodes (such as the hosts in the data center) can receive the feedback and make adjustments as soon as possible according to the algorithm and strategy.
[0263] In actual application, the rate mismatch between the LAN side and the wide area network side is a high-probability event. The rate mismatch will lead to the rise and fall of traffic bandwidth, affecting the overall transmission efficiency. This is like the flow of water in nature: turbulent flow and laminar flow; when the water flow rate changes greatly, turbulent flow is likely to occur, affecting the throughput per unit time of the pipeline. In the network, turbulent flow should also be avoided as much as possible. The rate matching double-ring control between the LAN side and the wide area network side controls the rates of the near end and the far end as much as possible to achieve smooth and orderly transmission, so as to achieve the best overall transmission efficiency of end-to-end.
[0264] In the embodiment of the application, the operations performed by the gateway device described above can also be implemented by the host. In this case, the functions of the gateway device 133 are implemented by the host 131, the functions of the gateway device 134 are implemented by the host 132, and the transmission path of the entire RDMA service is no longer segmented.
[0265] In addition, in the embodiment of the application, one or more forwarding nodes can also be selected in the wide area network to perform rate matching double-ring control to achieve more precise control.
[0266] Corresponding to the above data processing method, the embodiment of the application also provides a data processing apparatus, as shown in FIG. 16, applied to a first network device, the first network device is located on a specified path from a first host in a first data center to a second host in a second data center, the first data center and the second data center are connected through a wide area network; the apparatus comprises:
[0267] The obtaining module 161 is configured to obtain a first rate at which the first network device sends a message of an RDMA service, and obtain a second rate at which the first network device receives the message of the RDMA service; a forwarding path corresponding to the RDMA service is the specified path, a source address of the message of the RDMA service is an address of the first host, and a destination address of the message of the RDMA service is an address of the second host;
[0268] The matching module 162 is configured to match the first rate and the second rate to obtain a third rate at which the first network device is expected to receive the message of the RDMA service.
[0269] The reverse pressure module 163 is configured to reversely pressure a rate at which the first network device receives the RDMA service message to a third rate.
[0270] In some embodiments, the obtaining module 161 can be specifically configured to:
[0271] detect a bottleneck bandwidth between the first network device and a second network device, the second network device being located on the specified path and being a downstream device of the first network device; and calculate a product of the bottleneck bandwidth and a first gain coefficient to obtain the first rate.
[0272] In some embodiments, the obtaining module 161 can be further configured to detect a minimum round-trip delay between the first network device and the second network device; and calculate a product of the minimum round-trip delay, the bottleneck bandwidth and a second gain coefficient to obtain the congestion window size.
[0273] The data processing apparatus can further include a sending module (not shown in the figure) configured to send the congestion window size of the RDMA service message to the second network device at the first rate.
[0274] In some embodiments, the obtaining module 161 can be specifically configured to:
[0275] calculate a growth rate of data in a target queue as a second rate at which the first network device receives the RDMA service message; wherein the target queue is a forwarding queue corresponding to the RDMA service or a preset circulating queue corresponding to the RDMA service.
[0276] In some embodiments, the matching module 162 can be specifically configured to:
[0277] Before matching the first rate and the second rate, determine whether the RDMA service message buffered in the forwarding queue exceeds a preset minimum water line; if the RDMA service message exceeds the preset minimum water line, match the first rate and the second rate.
[0278] In some embodiments, the matching module 162 can be specifically configured to: determine whether the RDMA service message buffered in the forwarding queue exceeds a preset maximum water line; if the RDMA service message exceeds the preset maximum water line, discard the received RDMA service message when the RDMA service message is received; and if the RDMA service message does not exceed the preset maximum water line, buffer the received RDMA service message to the forwarding queue when the RDMA service message is received.
[0279] In some embodiments, the matching module 162 can be specifically configured to: compare the first rate and the second rate; if an absolute value of a difference between the first rate and the second rate reaches a preset difference value, take the first rate as a third rate at which the first network device expects to receive the RDMA service message.
[0280] In some embodiments, the back pressure module 163 can be configured to determine a back pressure frequency and an adjustment range required to adjust the second rate to the third rate, the adjustment range being an adjustment range of the rate each time the second rate is adjusted to the third rate using the back pressure frequency, and adjust the rate of the packet of the RDMA service sent by the third network device to the third rate using the back pressure frequency according to the adjustment range, the third network device being located on the specified path and being an upstream device of the first network device.
[0281] In some embodiments, the first network device is a gateway device of a first data center in a wide area network, and the data processing apparatus can further include:
[0282] a first receiving module configured to receive a packet of an RDMA service sent by a first host to a second host;
[0283] a constructing module configured to construct a pseudo ACK message of the packet of the RDMA service according to connection management information between the first host and the second host;
[0284] a feedback module configured to feed back the pseudo ACK message to the first host.
[0285] In some embodiments, the data processing apparatus can further include:
[0286] a capturing module configured to capture a connection management message for establishing a specified path during establishment of the specified path by the first host and the second host;
[0287] a recording module configured to record connection management information carried in the connection management message.
[0288] In some embodiments, the data processing apparatus can further include:
[0289] a sending module configured to, after forwarding the packet of the RDMA service, re-forward the packet of the RDMA service if an ACK message corresponding to the packet of the RDMA service is not received within a preset time length, and release the packet of the RDMA service in a forwarding queue corresponding to the RDMA service if the ACK message corresponding to the packet of the RDMA service is received within the preset time length.
[0290] In some embodiments, the data processing apparatus can further include:
[0291] a second receiving module configured to receive and record path information issued by a controller, the path information including a segment routing list corresponding to the specified path and a packet feature of the RDMA service;
[0292] a sending module configured to forward the packet of the RDMA service along the specified path based on the path information.
[0293] In some embodiments, the path information is determined by the controller according to specified network resource information of the wide area network and a transmission indicator of the RDMA service.
[0294] In some embodiments, the specified network resource information includes one or more of network topology information, network bandwidth, network latency, and network jitter.
[0295] In the technical solution provided by the embodiments of the present application, the RDMA service is a service between a first host in a first data center and a second host in a second data center, and the packets of the RDMA service are forwarded along a specified path from the first host to the second host. A first network device located on the specified path acquires a first rate at which the packets of the RDMA service are sent and a second rate at which the packets of the RDMA service are received, matches the first rate with the second rate, and backpresses the rate at which the packets of the RDMA service are received, so that the rate at which the first network device receives the packets of the RDMA service reaches a desired third rate. Since the third rate is obtained by matching the first rate with the second rate, when the rate at which the first network device receives the packets of the RDMA service is backpressed to the third rate, the rate at which the first network device sends and receives the packets of the RDMA service reaches a balance, the overall transmission efficiency is improved, and thus the problem of packet loss in the wide area network is solved, and the performance of the RDMA service and other services with high requirements on network transmission reliability when applied to the wide area network is improved.
[0296] The embodiments of the present application further provide a network device, as shown in FIG. 17, which includes a processor 171 and a machine readable storage medium 172, the machine readable storage medium 172 stores machine executable instructions capable of being executed by the processor 171, and the processor 171 is prompted by the machine executable instructions to implement the method steps of any one of the embodiments of FIGS. 6-15.
[0297] The machine readable storage medium can include a random access memory (RAM) and can also include a non-volatile memory (NVM), for example, at least one disk memory. Optionally, the machine readable storage medium can also be at least one storage device located away from the aforementioned processor.
[0298] The processor can be a general processor, including a central processing unit (CPU), a network processor (NP), etc.; can also be a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component.
[0299] In a further embodiment provided in the present application, a machine readable storage medium is also provided, and the machine readable storage medium stores a computer program, and the computer program is executed by a processor to implement the method steps in any of the embodiments of FIG. 6-FIG. 15.
[0300] In a further embodiment provided in the present application, a computer program is also provided, and the computer program is executed by a processor to implement the method steps in any of the embodiments of FIG. 6-FIG. 15.
[0301] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) manner. The computer readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. integrated with one or more available media. The available medium can be a magnetic medium (for example, floppy disk, hard disk, magnetic tape), an optical medium (for example, DVD), or a semiconductor medium (for example, solid state disk (SSD)) and the like.
[0302] It is to be noted that, in the present document, relational terms such as first and second and the like can be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Moreover, the terms "comprises", "comprising", or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but can include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by "comprises... a" does not, without more constraints, exclude the presence of additional identical elements in the process, method, article, or apparatus that comprises the element.
[0303] Each of the embodiments in the present specification is described in a related manner, and the same or similar parts between the embodiments can be mutually referred to. Each of the embodiments focuses on the difference from other embodiments. In particular, for the device, network device, storage medium, and computer program embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and the relevant parts can be referred to the part of the description of the method embodiments.
[0304] The above only describes the preferred embodiments of the present application, and is not intended to limit the present application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included in the protection scope of the present application.
Claims
1. A data processing method, characterized by, The method is applied to a first network device, the first network device is located on a specified path from a first host in a first data center to a second host in a second data center, and the first data center and the second data center are connected through a wide area network; the method comprises the following steps: Obtaining a first rate of a message of a RDMA service sent by the first network device, and obtaining a second rate of the message of the RDMA service received by the first network device; the forwarding path corresponding to the RDMA service is the specified path, the source address of the message of the RDMA service is the address of the first host, and the destination address of the message of the RDMA service is the address of the second host; Matching the first rate and the second rate to obtain a third rate at which the first network device is expected to receive the message of the RDMA service; The rate at which the first network device receives the message of the RDMA service is counter-pressed to the third rate.
2. The method of claim 1, wherein, The step of obtaining the first rate of the message of the RDMA service sent by the first network device comprises the following steps: Detecting a bottleneck bandwidth between the first network device and a second network device, the second network device being located on the specified path and being a downstream device of the first network device; Calculating the product of the bottleneck bandwidth and a first gain coefficient to obtain the first rate.
3. The method of claim 2, wherein, The method further comprises the following steps: Detecting a minimum round-trip delay between the first network device and the second network device; Calculating the product of the minimum round-trip delay, the bottleneck bandwidth and a second gain coefficient to obtain a congestion window size; Sending the message of the RDMA service of the congestion window size to the second network device at the first rate.
4. The method of claim 1, wherein, The step of obtaining the second rate of the message of the RDMA service received by the first network device comprises the following steps: Calculating the growth rate of data in a target queue as the second rate of the message of the RDMA service received by the first network device; The target queue is a forwarding queue corresponding to the RDMA service or a preset circulating queue corresponding to the RDMA service.
5. The method of claim 1, wherein, Before matching the first rate and the second rate, the method further comprises the following steps: Judging whether the messages buffered in a forwarding queue corresponding to the RDMA service exceed a preset minimum waterline; If the preset minimum waterline is exceeded, the step of matching the first rate and the second rate is performed.
6. The method of claim 5, wherein, The method further comprises the following steps: Judging whether the messages buffered in a forwarding queue corresponding to the RDMA service exceed a preset maximum waterline; If the preset maximum waterline is exceeded, the received message is discarded when the message of the RDMA service is received; If the preset maximum waterline is not exceeded, the received message is buffered to the forwarding queue when the message of the RDMA service is received.
7. The method of claim 1, wherein, The step of matching the first rate and the second rate to obtain the third rate at which the first network device is expected to receive the message of the RDMA service comprises the following steps: Comparing the first rate and the second rate; If an absolute value of a difference between the first rate and the second rate reaches a preset difference value, the first rate is taken as a third rate at which the first network device expects to receive the RDMA service message.
8. The method of claim 1, wherein, The step of backpressing the rate at which the first network device receives the RDMA service message to the third rate comprises: determining a backpressure frequency and an adjustment amplitude required for adjusting the second rate to the third rate, the adjustment amplitude being an amplitude of adjusting the rate each time when the second rate is adjusted to the third rate by using the backpressure frequency; adjusting the rate at which the third network device sends the RDMA service message to the third rate by using the backpressure frequency according to the adjustment amplitude, the third network device being located on the specified path and being an upstream device of the first network device.
9. The method of claim 1, wherein, The first network device is a gateway device of the first data center in a wide area network, and the method further comprises: receiving the RDMA service message sent by the first host to the second host; constructing a pseudo-acknowledgement (ACK) message of the RDMA service message according to connection management information between the first host and the second host; feeding back the pseudo-ACK message to the first host.
10. The method of claim 9, wherein, The method further comprises: intercepting a connection management message for establishing the specified path in a process in which the first host and the second host establish the specified path; recording connection management information carried in the connection management message.
11. The method of claim 1, wherein, The method further comprises: after forwarding the RDMA service message, if an ACK message corresponding to the RDMA service message is not received within a preset time length, re-forwarding the RDMA service message; if the ACK message corresponding to the RDMA service message is received within the preset time length, releasing the RDMA service message in a forwarding queue corresponding to the RDMA service.
12. The method of claim 1, wherein, The method further comprises: receiving and recording path information issued by a controller, the path information including a segment routing list corresponding to the specified path and a message feature of the RDMA service; forwarding the RDMA service message along the specified path based on the path information.
13. The method of claim 12, wherein, The path information is determined by the controller according to specified network resource information of the wide area network and a transmission index of the RDMA service.
14. The method of claim 13, wherein, The specified network resource information includes one or more of network topology information, network bandwidth, network delay, and network jitter.
15. A data processing apparatus, characterized by The apparatus is applied to a first network device, the first network device being located on a specified path from a first host in a first data center to a second host in a second data center, the first data center and the second data center being connected through a wide area network; and the apparatus comprises: The obtaining module is configured to obtain a first rate at which the first network device sends RDMA service packets and a second rate at which the first network device receives the RDMA service packets; the RDMA service corresponds to the specified path, a source address of the RDMA service packets is an address of the first host, and a destination address of the RDMA service packets is an address of the second host; The matching module is configured to match the first rate and the second rate to obtain a third rate at which the first network device is expected to receive the RDMA service packets; The back pressure module is configured to back pressure the rate at which the first network device receives the RDMA service packets to the third rate.
16. The apparatus of claim 15, wherein, The obtaining module is specifically configured to detect a bottleneck bandwidth between the first network device and a second network device, the second network device being located on the specified path and being a downstream device of the first network device; The obtaining module is specifically configured to calculate a product of the bottleneck bandwidth and a first gain coefficient to obtain the first rate.
17. The apparatus of claim 16, wherein, The obtaining module is further configured to detect a minimum round-trip time delay between the first network device and the second network device, and calculate a product of the minimum round-trip time delay, the bottleneck bandwidth, and a second gain coefficient to obtain a congestion window size. The apparatus further includes a sending module configured to send, to the second network device, the RDMA service packets of the congestion window size at the first rate.
18. The apparatus of claim 15, wherein, The obtaining module is specifically configured to calculate a growth rate of data in a target queue as the second rate at which the first network device receives the RDMA service packets; the target queue is a forwarding queue corresponding to the RDMA service or a preset cyclic queue corresponding to the RDMA service.
19. The apparatus of claim 15, wherein, The matching module is specifically configured to: Before matching the first rate and the second rate, the matching module is configured to determine whether the RDMA service corresponds to a forwarding queue in which packets are buffered beyond a preset minimum waterline; if the RDMA service corresponds to the forwarding queue in which the packets are buffered beyond the preset minimum waterline, the matching module is configured to match the first rate and the second rate.
20. The apparatus of claim 19, wherein, The matching module is further configured to determine whether the RDMA service corresponds to a forwarding queue in which packets are buffered beyond a preset maximum waterline; if the RDMA service corresponds to the forwarding queue in which the packets are buffered beyond the preset maximum waterline, the matching module is configured to discard the received packets when the RDMA service packets are received; if the RDMA service does not correspond to the forwarding queue in which the packets are buffered beyond the preset maximum waterline, the matching module is configured to buffer the received packets to the forwarding queue when the RDMA service packets are received.
21. The apparatus of claim 15, wherein, The matching module is specifically configured to compare the first rate and the second rate; if an absolute value of a difference between the first rate and the second rate reaches a preset difference value, the matching module is configured to take the first rate as the third rate at which the first network device is expected to receive the RDMA service packets.
22. The apparatus of claim 15, wherein, The back pressure module is specifically configured to: determine a back pressure frequency and an adjustment amplitude required for adjusting the second rate to the third rate, the adjustment amplitude being an amplitude of adjusting the rate each time the second rate is adjusted to the third rate using the back pressure frequency. According to the adjustment range, the rate of sending the RDMA service packet by the third network device is adjusted to the third rate by using the back pressure frequency, the third network device is located on the specified path and is an upstream device of the first network device.
23. The apparatus of claim 15, wherein, The first network device is a gateway device of the first data center in a wide area network, and the apparatus further comprises: A first receiving module is configured to receive the RDMA service packet sent by the first host to the second host; A constructing module is configured to construct a pseudo-acknowledgement (ACK) message of the RDMA service packet according to connection management information between the first host and the second host; A feedback module is configured to feed back the pseudo-ACK message to the first host.
24. The apparatus of claim 23, wherein, The apparatus further comprises: An intercepting module is configured to intercept a connection management message for establishing the specified path during the process of establishing the specified path by the first host and the second host; A recording module is configured to record connection management information carried in the connection management message.
25. The apparatus of claim 15, wherein, The apparatus further comprises: A sending module is configured to re-forward the RDMA service packet if no ACK message corresponding to the RDMA service packet is received within a preset time period after forwarding the RDMA service packet, and release the RDMA service packet in the forwarding queue if the ACK message corresponding to the RDMA service packet is received within the preset time period.
26. The apparatus of claim 15, wherein, The apparatus further comprises: A second receiving module is configured to receive and record path information issued by a controller, the path information including a segment routing list corresponding to the specified path and a packet feature of the RDMA service; A sending module is configured to forward the RDMA service packet along the specified path based on the path information.
27. The apparatus of claim 26, wherein, The path information is determined by the controller according to specified network resource information of the wide area network and a transmission index of the RDMA service.
28. The apparatus of claim 27, wherein, The specified network resource information includes one or more of network topology information, network bandwidth, network delay, and network jitter.
29. A network device, comprising: A processor and a machine readable storage medium are included, the machine readable storage medium stores a computer program executable by the processor, and the processor is prompted by the computer program to implement the method steps of any one of claims 1-14.
30. A machine-readable storage medium, characterized in that, The machine readable storage medium stores a computer program, and the computer program is executed by the processor to implement the method steps of any one of claims 1-14.
31. A computer program, characterized in that, The computer program is executed by the processor to implement the method steps of any one of claims 1-14.