Traffic shaping method and device, information transmission method and device, related equipment, storage medium and computer program product

By judging packet loss and congestion, determining the actual transmission rate and upper bandwidth of the path, and performing traffic shaping, the problem of low utilization of RDMA data transmission bandwidth in the wide area network is solved, and transmission efficiency and bandwidth utilization are improved.

CN119316363AActive Publication Date: 2025-01-14CHINA MOBILE COMM LTD RES INST +1
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
CN202411290643.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-13
Publication Date
2025-01-14
Estimated Expiration
2044-09-13

AI Technical Summary

Technical Problem

In the wide area network scenario, data transmission based on the RDMA mechanism is difficult to ensure high bandwidth utilization. The existing technology requires a lossless network environment, and it is difficult to implement a wide area network, resulting in packet loss and congestion, affecting throughput.

Method used

By judging packet loss and congestion, determining the actual transmission rate and upper bandwidth of the path, and performing traffic shaping to optimize the transmission rate and ensure high bandwidth utilization.

Benefits of technology

It realizes dynamically adjusting the transmission rate according to path conditions in RDMA data transmission, avoiding packet loss and congestion, and improving the efficiency and bandwidth utilization of data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119316363A_ABST
    Figure CN119316363A_ABST
Patent Text Reader

Abstract

The invention discloses a traffic shaping method, an information transmission method and device, a sending end, a receiving end, a storage medium and a computer program product. The method comprises the steps that a sending end judges whether a data packet on a first path is lost or not and / or whether the first path is congested or not to obtain a judgment result, and the sending end and a receiving end conduct data transmission at least through the first path and based on a remote direct memory access (RDMA) mechanism; determining an actual transmission rate and an upper limit bandwidth corresponding to the first path according to the judgment result; and shaping the flow on the first path by using the determined actual transmission rate and upper limit bandwidth corresponding to the first path.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a traffic shaping method, an information transmission method, an apparatus, related equipment, a storage medium and a computer program product. Background Art

[0002] In the related technology, Remote Direct Memory Access (RDMA) technology allows user-mode applications to directly read and write remote host memory, avoiding data copying and context switching, which can improve throughput and reduce data transmission latency.

[0003] When performing data transmission based on the RDMA mechanism, a Go Back N (GBN) mechanism is usually used for congestion control. In the GBN mechanism, data transmission is required to be performed in a lossless network environment to ensure throughput.

[0004] However, in actual applications, it is difficult for wide area networks to provide a lossless network environment. Therefore, in wide area network scenarios, how to ensure the bandwidth utilization of data transmission based on the RDMA mechanism is currently an urgent problem to be solved. Summary of the invention

[0005] To solve the above technical problems, the embodiments of the present application provide a traffic shaping method, an information transmission method, an apparatus, related equipment, a storage medium and a computer program product, which can optimize the sending rate in data transmission based on the RDMA mechanism to ensure high bandwidth utilization.

[0006] The technical solution of the embodiment of the present application is implemented as follows:

[0007] The embodiment of the present application provides a traffic shaping method, which is applied to a sending end, wherein the sending end and the receiving end transmit data at least through a first path and based on an RDMA mechanism, and the method includes:

[0008] Determine whether a data packet is lost on the first path and / or whether the first path is congested, and obtain a determination result;

[0009] Determine, according to the determination result, an actual transmission rate and an upper limit bandwidth corresponding to the first path;

[0010] The traffic on the first path is shaped by using the determined actual transmission rate and upper bandwidth limit corresponding to the first path.

[0011] In the above solution, the determining whether the first path is congested includes:

[0012] When an explicit congestion notification (ECN) is received through the first path, and / or a round trip time (RTT) of a data packet transmitted through the first path is greater than a first threshold, it is determined that the first path is congested.

[0013] In the above solution, the determining whether the first path is congested includes:

[0014] When no new ECN is received within a first period of time after the ECN is received through the first path, and / or when the RTT of the data packet transmitted through the first path is less than or equal to a second threshold, it is determined that the first path is not congested.

[0015] In the above solution, when the judgment result indicates that the first path is congested and / or data packets are lost on the first path, determining the upper limit bandwidth corresponding to the first path according to the judgment result includes:

[0016] An upper limit bandwidth corresponding to the first path is determined by using an actual transmission rate corresponding to the first path.

[0017] In the above solution, when the judgment result indicates that the first path is not congested, determining the upper limit bandwidth corresponding to the first path according to the judgment result includes:

[0018] A maximum transmission rate corresponding to the first path is determined, and an upper bandwidth corresponding to the first path is determined using the maximum transmission rate.

[0019] In the above solution, determining the maximum transmission rate of the first path includes:

[0020] Using the upper limit rate corresponding to the first path, sending first information to the receiving end through the first path, where the first information is used to instruct the receiving end to feed back information related to the receiving rate corresponding to the first path;

[0021] The receiving rate related information fed back by the receiving end is received, a receiving rate corresponding to the first path is determined based on the receiving rate related information, and the receiving rate is used as the maximum transmission rate of the first path.

[0022] In the above solution, the sending of the first information to the receiving end includes:

[0023] Based on the path maximum transmission unit (PMTU) corresponding to the first path, the first information is sent to the receiving end via N data packets, the basic transmission header BTH of each data packet in the N data packets contains the sending time information of the data packet, and N is an integer greater than or equal to 1.

[0024] In the above solution, the BTH of the last data packet among the N data packets includes second information, and the second information is used to indicate whether the receiving end feeds back the receiving rate related information through an ACK data packet.

[0025] In the above solution, the transmitting end and the receiving end perform data transmission based on a hierarchical multi-path transmission mechanism, and the multi-path includes the first path.

[0026] The embodiment of the present application further provides an information transmission method, which is applied to a receiving end, wherein the receiving end and the sending end perform data transmission at least through a first path and based on an RDMA mechanism, and the method includes:

[0027] On the first path, receiving first information sent by the transmitting end, where the first information is used to instruct the receiving end to feed back information related to a receiving rate corresponding to the first path;

[0028] Determine the receiving rate related information, and feed back the receiving rate related information to the transmitting end.

[0029] In the above solution, the receiving the first information sent by the sending end includes:

[0030] Receiving the first information sent by the transmitting end through N data packets, the BTH of each data packet in the N data packets includes the sending time information of the data packet, and N is an integer greater than or equal to 1;

[0031] The determining the receiving rate related information includes:

[0032] Recording the receiving time of each of the N data packets;

[0033] The receiving rate related information is determined using the sending time and receiving time of the N data packets.

[0034] In the above scheme, the BTH of the last data packet in the N data packets includes second information, and the second information is used to indicate whether the receiving end feeds back the receiving rate related information through an ACK data packet. When the second information is used to indicate that the receiving end feeds back the receiving rate related information through an ACK data packet, the feeding back of the receiving rate related information to the sending end includes:

[0035] An ACK data packet is sent to the sending end, wherein an acknowledgment extended transmission header AETH of the ACK data packet includes the receiving rate related information.

[0036] In the above solution, the receiving end and the transmitting end perform data transmission based on a hierarchical multi-path transmission mechanism, and the multi-path includes the first path.

[0037] The embodiment of the present application further provides a traffic shaping device, which is arranged at a sending end, wherein the sending end and the receiving end transmit data at least through a first path and based on an RDMA mechanism, including:

[0038] a determination unit, configured to determine whether a data packet is lost on the first path and / or whether the first path is congested, and obtain a determination result;

[0039] a determining unit, configured to determine an actual transmission rate and an upper bandwidth limit corresponding to the first path according to the determination result;

[0040] A shaping unit is used to shape the traffic on the first path by using the determined actual transmission rate and upper bandwidth corresponding to the first path.

[0041] The embodiment of the present application further provides an information transmission device, which is arranged at a receiving end, wherein the receiving end and the sending end transmit data at least through a first path and based on an RDMA mechanism, including:

[0042] A receiving unit, configured to receive, on the first path, first information sent by the transmitting end, where the first information is used to instruct the receiving end to feed back information related to a receiving rate corresponding to the first path;

[0043] A feedback unit is used to determine the receiving rate related information and feed back the receiving rate related information to the sending end.

[0044] The embodiment of the present application further provides a transmitting end, wherein the transmitting end and the receiving end transmit data at least through a first path and based on the RDMA mechanism, including: a first communication interface and a first processor; wherein,

[0045] The first processor is used to determine whether data packets are lost on the first path and / or whether the first path is congested, and obtain a determination result; determine an actual transmission rate and an upper bandwidth corresponding to the first path according to the determination result; and use the determined actual transmission rate and upper bandwidth corresponding to the first path to shape the traffic on the first path.

[0046] The embodiment of the present application further provides a receiving end, wherein the receiving end and the sending end perform data transmission at least through a first path and based on an RDMA mechanism, including:

[0047] A second communication interface is used to receive first information sent by the sending end on the first path, where the first information is used to instruct the receiving end to feed back information related to a receiving rate corresponding to the first path;

[0048] The second processor is used to determine the receiving rate related information and feed back the receiving rate related information to the sending end.

[0049] The embodiment of the present application further provides a transmitting end, comprising: a first processor and a first memory for storing a computer program that can be run on the processor,

[0050] Wherein, the first processor is used to execute the steps of any of the above-mentioned methods on the sending end side when running the computer program.

[0051] The embodiment of the present application further provides a receiving end, comprising: a second processor and a second memory for storing a computer program that can be run on the processor,

[0052] Wherein, the second processor is used to execute the steps of any of the above-mentioned methods on the receiving end side when running the computer program.

[0053] An embodiment of the present application also provides a storage medium on which a computer program is stored. When the computer program is executed by a processor, the steps of any of the above-mentioned methods on the sending end side are implemented, or the steps of any of the methods on the receiving end side are implemented.

[0054] An embodiment of the present application also provides a computer program product, including a computer program, which, when executed by a processor, implements the steps of any of the above-mentioned methods on the sending end side, or implements the steps of any of the methods on the receiving end side.

[0055] The traffic shaping method, information transmission method, apparatus, related equipment, storage medium and computer program product provided in the embodiments of the present application, the sending end determines whether the data packet on the first path is lost, and / or whether the first path is congested, and obtains a judgment result, the sending end and the receiving end at least use the first path, and perform data transmission based on the RDMA mechanism; according to the judgment result, the actual transmission rate and upper bandwidth corresponding to the first path are determined; the traffic on the first path is shaped using the actual transmission rate and upper bandwidth corresponding to the determined first path. In the scheme provided in the embodiments of the present application, when the sending end and the receiving end perform data transmission on a path based on the RDMA mechanism, the sending end can determine the actual transmission rate and upper bandwidth on the path according to the data packet loss and congestion on the path, thereby performing traffic shaping on the path based on the actual transmission rate and upper bandwidth, so that the sending rate is optimized to ensure high bandwidth utilization. BRIEF DESCRIPTION OF THE DRAWINGS

[0056] Figure 1 A flow chart of a method for traffic shaping according to an embodiment of the present application;

[0057] Figure 2 This is a schematic diagram of a method flow for information transmission according to an embodiment of the present application;

[0058] Figure 3 A schematic diagram of a congestion control system is provided as an example for the application of this application;

[0059] Figure 4 A flowchart of a multi-parameter congestion control method for application example of this application;

[0060] Figure 5 This is a schematic diagram of the structure of a basic transport header (BTH) used as an example in this application;

[0061] Figure 6 This is a schematic diagram of the structure of an Acknowledge Extended Transport Header (AETH) used as an example in this application;

[0062] Figure 7 This is a schematic diagram of the structure of a flow shaping device according to an embodiment of the present application;

[0063] Figure 8 This is a schematic diagram of the structure of an information transmission device according to an embodiment of the present application;

[0064] Fig. 9 This is a schematic diagram of the structure of the sending end of an embodiment of the present application;

[0065] Fig.10This is a schematic diagram of the structure of the receiving end of an embodiment of the present application;

[0066] Fig.11 This is a schematic diagram of the structure of the traffic shaping system according to an embodiment of the present application. DETAILED DESCRIPTION

[0067] The present application will be further described in detail below through the accompanying drawings and embodiments.

[0068] The rapid development of the digital industry has led to an explosive growth in the amount of data. At the same time, due to the uneven distribution of computing resources, there is an increasing demand for transmission between data production and consumption, resulting in a large number of data transmission services, such as East-West Computing, the national integrated computing network, data express, distributed intelligent computing and wide area interconnection.

[0069] At present, offline manual hard disk express delivery solutions are mostly used to meet the needs of long-distance transmission of large files. However, offline manual hard disk express delivery solutions have risks such as data leakage and loss, and cannot meet market demand in terms of data security and transmission efficiency.

[0070] Based on this, various cloud computing vendors have proposed their own solutions for the long-distance transmission of large files. For example, Amazon's AWS DataSync (Amazon WEB Services Data Synchronization) can quickly and securely transmit large amounts of data between local storage and cloud storage; Microsoft's Azure DataBox provides a safe and reliable way to transfer large amounts of data from local to Azure data centers; Huawei Cloud's Cloud WAN (Cloud Wide Area Network) 3.0 solution supports ultra-wide interconnection and efficient data transmission through Internet Protocol Version 6 (IPv6) + innovative technology system; Alibaba Cloud uses intelligent routing technology and transport layer acceleration technology to further improve the speed and stability of data transmission. Various cloud computing vendors have provided solutions for the efficient transmission of large-scale data in the wide area network through global data center layout and optimized transmission protocols.

[0071] However, for data transmission tasks at the scale of tens of terabytes (TB), online transmission solutions are difficult to meet timeliness requirements and must still be carried out using offline transmission. At the same time, for interactive services with large temporal and spatial scales such as distributed intelligent computing and wide-area interconnection, further research is also needed on wide-area transmission technology for ultra-large-scale data.

[0072] In order to meet the needs of the above-mentioned large-scale, large-scale time and space data transmission tasks, RDMA technology (which can also be understood as RDMA mechanism or RDMA transmission mechanism) is proposed. Data transmission based on the RDMA mechanism adopts technologies such as memory zero copy, kernel bypass, and central processing unit (CPU) offload, and all the Transmission Control Protocol / Internet Protocol (TCP / IP) protocol stacks are offloaded to the network card for processing. By allowing user-mode applications to directly read and write remote host memory, data copying and context switching are avoided, and high throughput, low latency, and low CPU computing power loss performance are achieved. Among them, because the RDMA mechanism provides kernel bypass and has direct memory access (DMA) characteristics, the CPU overhead of the receiving and sending ends can be greatly reduced during data transmission. By utilizing the "one-sided" operation corresponding to the RDMA mechanism (i.e., registering the receiving buffer (Buffer) to the receiving end network card in advance), the receiving end CPU can perform massive data transmission almost imperceptibly.

[0073] In related technologies, the RDMA mechanism has been widely deployed in data centers to support a variety of low-latency and high-throughput applications, such as key-value storage, distributed transactions, distributed memory, remote procedure call (RPC), storage systems, graph computing, and machine learning systems.

[0074] Data transmission based on the RDMA mechanism was originally implemented by wireless bandwidth (InfiniBand) technology. Specifically, a lossless network is implemented at the hardware level through a dedicated protocol, and data transmission based on the RDMA mechanism is performed in a lossless network environment, and the GBN mechanism is used for congestion control. In actual application, the GBN mechanism has a low tolerance for data packet loss (also known as packet loss). For example, a 1% packet loss rate may cause the data transmission throughput to drop to 0. Therefore, the RDMA over Converged Ethernet version 2 (RoCEv2) protocol based on Converged Ethernet requires that the data transmission environment be a lossless network environment.

[0075] However, when data is transmitted based on the RDMA mechanism in a wide area network, it is usually difficult for the wide area network to achieve true losslessness due to the high cost and poor scalability of deterministic networks or lossless network facilities, that is, it cannot provide a lossless network environment. At the same time, there is a need for reliable transmission of massive data in the wide area network. When reliable transmission is performed, the data transmission rate (which can also be understood as the data transmission rate of the reliable transmission protocol) can be dynamically adjusted according to the congestion control algorithm. The performance of the congestion control algorithm has a significant impact on the data packet throughput (throughput can be specifically characterized by bandwidth utilization). Therefore, it is urgent to propose a traffic shaping (which can be expressed in English as Traffic Shaping) solution to achieve optimal congestion detection and optimal transmission rate adjustment, thereby ensuring high bandwidth utilization.

[0076] Based on this, in various embodiments of the present application, when the sender and the receiver perform data transmission on a path based on the RDMA mechanism, the sender can determine the actual transmission rate and the upper bandwidth on the path according to the packet loss and congestion conditions on the path, and thus perform traffic shaping on the path based on the actual transmission rate and the upper bandwidth to optimize the sending rate and ensure high bandwidth utilization.

[0077] The embodiment of the present application provides a traffic shaping method, which is applied to a sending end, wherein the sending end and the receiving end perform data transmission via at least a first path and based on an RDMA mechanism, such as Figure 1 As shown, the method includes:

[0078] Step 101: determining whether a data packet is lost on the first path and / or whether the first path is congested, and obtaining a determination result;

[0079] Step 102: Determine the actual transmission rate and upper limit bandwidth corresponding to the first path according to the determination result;

[0080] Step 103: shaping the traffic on the first path using the determined actual transmission rate and upper bandwidth limit corresponding to the first path.

[0081] Here, in actual application, the sending end may also be referred to as a sending device or a sending end device, and the receiving end may also be referred to as a receiving device or a receiving end device. The specific names of the sending end and the receiving end are not limited in the embodiment of the present application, as long as their functions are realized. The sending end and the receiving end are both electronic devices that can perform data transmission based on the RDMA mechanism, such as a network interface card.

[0082] In data transmission based on the RDMA mechanism, the basic communication unit specifically includes a queue pair (QP, QueuePair). Therefore, when the sender and the receiver perform data transmission based on the RDMA mechanism through the first path, the first path can be called a QP link, and the specific name of the first path is not limited in the embodiments of the present application. In actual application, data can be transmitted between the sender and the receiver through multiple paths (which can also be understood as multi-paths). Specifically, in one embodiment, the sender and the receiver perform data transmission based on a hierarchical multi-path transmission mechanism, and the multi-path includes the first path. At this time, the QP transmitted on each path is a part of the QP transmitted on all paths, and the QP transmitted on each path can be specifically called a sub-QP (sQP, sub-QP). Therefore, the first path can be called an sQP link.

[0083] In actual application, in order to realize the reliable transmission required in the RDMA mechanism, the specific process of the sending end and the receiving end performing data transmission on the first path may include: the sending end sends a data packet to the receiving end through the first path; after the receiving end receives the data packet, it feeds back confirmation (ACK, Acknowledge) information to the sending end through the first path. If the receiving end fails to successfully receive the data packet (that is, data packet loss occurs), the sending end may resend the data packet when the RTT corresponding to the data packet times out (which can also be understood as RTT exceeding a preset threshold) to ensure that each data packet is successfully transmitted to the receiving end. Among them, the ACK information may specifically include identification information, receiving time information, etc. of the data packet received by the receiving end; the receiving end may feed back ACK information to the sending end through the ACK data packet, that is, the receiving end sends an ACK data packet to the sending end, and the ACK data packet contains ACK information. The first path may not include other network nodes except the sending end and the receiving end. In this case, the data packet sent by the sending end is directly transmitted to the receiving end. Of course, the first path may also include one or more (one or more may also be understood as at least one) other network nodes (also may be understood as intermediate nodes). In this case, the data packet sent by the sending end may be forwarded to the receiving end via one or more other network nodes.

[0084] In actual application, before the data packet starts to be transmitted, the sending end can set the initial sending rate of the data packet; specifically, the sending end can set the sending rate of the data packet according to the physical bandwidth of the first path (which can also be understood as the physical bandwidth of the link). Among them, the specific implementation method of the sending end obtaining the physical bandwidth of the first path can be set according to actual needs, such as obtaining the physical bandwidth through a network management device, and this embodiment of the application does not limit this.

[0085] During data packet transmission, due to factors such as network failures and data flow competition, when the transmitting end and the receiving end transmit data through the first path, data packet loss and / or path congestion may occur. In the event of data packet loss and / or path congestion, if the transmission rate is greater than the upper bandwidth of the first path (also understood as the bottleneck bandwidth), a large number of transmitted data packets cannot be correctly received by the receiving end due to the limited path bandwidth, resulting in the need for the transmitting end to continuously retransmit the lost data packets, causing the throughput to drop a lot, or even to zero, and low bandwidth utilization. Therefore, in step 101, the transmitting end needs to determine whether data packet loss occurs in the first path, and / or determine whether the first path is congested, so as to find congestion.

[0086] Specifically, when data packets are lost on the first path, the receiving end does not successfully receive the lost data packets, and will not feed back ACK data packets for the lost data packets to the sending end. At this time, the RTT counted by the sending end for the lost data packets will time out. Therefore, when the RTT corresponding to one or more data packets times out, the sending end may consider that one or more data packets have not been successfully received by the receiving end, and further determine that data packets are lost on the first path; in other cases, the sending end may determine that no data packets are lost on the first path.

[0087] At the same time, when the first path is congested, the data packets transmitted on the first path need to take a long time to reach the receiving end; accordingly, the sending end also needs a long time to receive the ACK data packet fed back by the receiving end. At this time, the sending end can determine that the first path is congested when the RTT of one or more data packets is greater than a certain threshold. The threshold can be set according to actual needs.

[0088] Based on this, in one embodiment, determining whether the first path is congested includes:

[0089] When the RTT of the data packet transmitted through the first path is greater than a first threshold, it is determined that the first path is congested.

[0090] Of course, when the first path is congested, the congestion may specifically occur in one or more network nodes on the first path. If the network node where the congestion occurs supports the ECN function, the network node may carry relevant information of the ECN in the data packet when forwarding the data packet. For example, when forwarding the data packet, the relevant information of the ECN is carried in the header of the data packet. When the receiving end receives the data packet, if the data packet carries relevant information of the ECN, the receiving end may feedback the ECN to the sending end through the first path. When the sending end receives the ECN related to the first path, it may be determined that the first path is congested.

[0091] Based on this, in one embodiment, determining whether the first path is congested includes:

[0092] In case that an ECN is received through the first path, it is determined that the first path is congested.

[0093] In actual application, the specific implementation of the receiving end feeding back ECN to the sending end may include: when the receiving end receives a data packet containing relevant information of ECN, the receiving end sends an ACK data packet for the data packet to the sending end, and the ACK data packet contains relevant information of ECN. The E field of AETH of the ACK data packet can be used to represent relevant information of ECN, that is, when the E field is set, the ACK data packet contains relevant information of ECN, and when the E field is not set, the ACK data packet does not contain relevant information of ECN.

[0094] From the above description, it can be seen that in step 101, the sending end can specifically use parameters such as RTT and ECN to determine whether data packet loss occurs in the first path and / or whether the first path is congested. Of course, the sending end can also use other information to make the above judgment to obtain the judgment result. For example, the sending end monitors the network nodes on the first path and uses the monitoring data to make the above judgment to obtain the judgment result. At this time, the sending end can obtain the other information (such as monitoring data, etc.) through the network management device, and the embodiment of the present application does not limit this.

[0095] In actual application, the transmitting end usually transmits data according to the upper bandwidth of the first path (that is, the transmission rate matches the upper bandwidth). Therefore, when the first path is congested and / or data packets are lost on the first path, the transmitting end can adjust the upper bandwidth of the first path to reduce the transmission rate when data is transmitted through the first path, thereby avoiding data packet loss and / or congestion on the first path, thereby ensuring data transmission efficiency and high bandwidth utilization. The above process can also be understood as shaping the traffic on the first path, or tuning the transmission rate of the first path.

[0096] Specifically, the transmitting end may determine the upper limit bandwidth of the first path as the actual transmission rate corresponding to the first path (that is, the data rate that the first path can actually transmit successfully), and reduce packet loss and / or avoid congestion by reducing the transmission rate. That is, in one embodiment, when the judgment result indicates that the first path is congested, and / or when data packets are lost on the first path, determining the upper limit bandwidth corresponding to the first path according to the judgment result includes:

[0097] An upper limit bandwidth corresponding to the first path is determined by using an actual transmission rate corresponding to the first path.

[0098] Here, in actual application, the sending end can determine the actual transmission rate corresponding to the first path based on the number of data packets (which can also be understood as the number of packets) successfully received by the receiving end through the first path within a certain duration (the duration can also be understood as a time period). In this embodiment of the application, the certain duration is referred to as the second duration, and the second duration can be set according to actual needs, such as 5 minutes, etc., and this embodiment of the application is not limited to this.

[0099] Specifically, after receiving each data packet, the receiving end may feed back the receiving time information of the data packet and the packet sequence number (PSN) corresponding to the data packet to the sending end. Thus, after receiving the receiving time information and PSN, the sending end may calculate the actual transmission rate by using the maximum value and the minimum value of the PSN within the second time length of the receiving time information and the size of the data packet, which may be specifically expressed as formula (1):

[0100] Rr=PMTU(PSNT2 - PSNT1) / (T2 - T1) (1)

[0101] Among them, Rr represents the actual transmission rate of the first path, T2 represents the upper limit of the time period, T1 represents the lower limit of the time period, T2-T1 represents the second time period, PSNT2 represents the maximum PSN value within the second time period, and PSNT1 represents the minimum PSN value within the second time period; at the same time, since the size of the data packet (except the last packet and the only packet) in the data transmission based on the RDMA mechanism is usually set according to PMTU, PMTU can be used to represent the size of the data packet transmitted on the first path.

[0102] Specifically, the receiving end may feed back the receiving time information and the PSN to the sending end through an ACK data packet, that is, the receiving end sends an ACK data packet to the sending end, and the ACK data packet includes the receiving time information and the PSN. More specifically, the AETH of the ACK data packet includes the receiving time information and the PSN.

[0103] In actual application, the transmitting end may determine the actual transmission rate once every second time interval, so that the transmitting end can obtain the accurate actual transmission rate in time when the actual transmission rate changes. Specifically, each time the actual transmission rate is determined, the transmitting end may consider the actual transmission rate determined last time, and determine a new and actual transmission rate by weighted summation, which can be specifically expressed as formula (2):

[0104] Rr= (1-α)R* +αPMTU(PSNT2 - PSNT1) / (T2 - T1) (2)

[0105] Wherein, R* represents the actual transmission rate determined last time, α represents a weighting parameter, α is greater than or equal to 0 and less than or equal to 1, and α represents the proportion of the transmission rate in the most recent second time period in calculating the actual transmission rate.

[0106] After determining the actual transmission rate of the first path, the transmitter can determine (also understood as setting or updating) the upper bandwidth corresponding to the first path according to the actual transmission rate. Then in step 103, the transmitter can shape the traffic on the first path according to the determined upper bandwidth of the first path (specifically, it can be achieved by adjusting the transmission rate) to ensure high throughput and bandwidth utilization of the first path. The above process can also be understood as congestion control of the first path.

[0107] In actual application, after data packet loss and / or path congestion occurs on the first path, the first path may no longer be congested due to factors such as changes in the physical bandwidth of the first path and / or the disappearance of competing data flows (which can also be understood as data flows that compete with data flows transmitted on the first path). At this time, the maximum transmission rate that can be achieved through the first path will be greater than the upper limit bandwidth determined by the sender when the first path is congested and / or packet loss occurs. In other words, the upper limit bandwidth determined when the first path is congested and / or packet loss occurs is invalid. Therefore, in order to make full use of the bandwidth of the first path, the sender needs to redetermine the data transmission rate and upper limit bandwidth corresponding to the first path when the first path is no longer congested, and perform traffic shaping.

[0108] In actual application, if the sender does not receive a new ECN within a period of time after receiving the ECN, the sender may consider that the first path is no longer congested; or, if the RTT of the data packets on the first path counted by the sender drops to a certain threshold, the sender may consider that the first path is no longer congested.

[0109] Based on this, in one embodiment, determining whether the first path is congested includes:

[0110] When no new ECN is received within a first period of time after the ECN is received through the first path, and / or the RTT of the data packet transmitted through the first path is less than or equal to a second threshold, the second information indicates that the first path is not congested.

[0111] Among them, the second threshold value can specifically represent the RTT value corresponding to the first path being in a light load or no-load state. The second threshold value can be set according to actual needs, and the embodiment of the present application is not limited to this; the setting method of the first duration can be selected according to actual needs, such as manual setting, or dynamic setting based on artificial intelligence (AI, Artificial Intelligence) technology (which can also be understood as dynamic adjustment), etc., and the embodiment of the present application is not limited to this.

[0112] After determining that the second information indicates that the first path is not congested, in step 102, the transmitter needs to determine the maximum transmission rate that can be achieved after the first path is not congested, and then reset the upper limit bandwidth of the first path to achieve traffic shaping.

[0113] Based on this, in one embodiment, when the judgment result indicates that the first path is not congested, determining the upper limit bandwidth corresponding to the first path according to the judgment result includes:

[0114] A maximum transmission rate corresponding to the first path is determined, and an upper bandwidth corresponding to the first path is determined using the maximum transmission rate.

[0115] Here, in actual application, the transmitting end may determine the maximum transmission rate corresponding to the first path by means of rate detection. Specifically, in one embodiment, determining the maximum transmission rate of the first path includes:

[0116] Using the upper limit rate corresponding to the first path, sending first information to the receiving end through the first path, where the first information is used to instruct the receiving end to feed back information related to the receiving rate corresponding to the first path;

[0117] The receiving rate related information fed back by the receiving end is received, a receiving rate corresponding to the first path is determined based on the receiving rate related information, and the receiving rate is used as the maximum transmission rate of the first path.

[0118] Here, the upper limit rate corresponding to the first path may specifically include the upper limit of the physical bandwidth between the transmitter and the receiver (which can also be understood as the maximum physical bandwidth). The method for the transmitter to obtain the upper limit rate can be selected according to actual needs, and the embodiment of the present application does not limit this.

[0119] The first information may also be called detection information or indication information. The embodiment of the present application does not limit the name of the first information.

[0120] In actual application, the transmitting end can send the first information to the receiving end through a detection message, that is, the transmitting end sends a detection message to the receiving end, and the detection message contains the first information. Among them, the transmitting end can send the detection message through one or more data packets. When the transmitting end sends the detection message through multiple data packets, the receiving device receives the detection message through multiple data packets, and can obtain the corresponding receiving rate for each data packet in the multiple data packets, and then determine the corresponding receiving rate of the first path (that is, the transmission rate at which the receiving end can actually successfully receive data) according to the obtained multiple receiving rates. Related information can reduce errors caused by network fluctuations (which can also be understood as changes in the stability of network connections, such as network delays, connection terminals, bandwidth changes, etc.).

[0121] Based on this, in one embodiment, sending the first information to the receiving end includes:

[0122] Based on the PTMU corresponding to the first path, the first information is sent to the receiving end through N data packets, the BTH of each of the N data packets includes the sending time information of the data packet, and N is an integer greater than or equal to 1.

[0123] Here, in actual application, the sending end can split the detection message into N data packets according to the size of PMTU, wherein the BTH of each data packet contains the sending time information of the data packet, so that after the receiving end receives the data packet, it can determine the receiving rate-related information corresponding to the first path based on the sending time information and the receiving time information of the received data packet.

[0124] In actual application, after the receiving end determines the receiving rate related information corresponding to the first path, the receiving end can feedback the receiving rate related information through an ACK data packet. However, when performing data transmission based on the RDMA mechanism, in order to ensure the transmission speed, the receiving end usually only feedbacks the ACK data packet to the sending end when the received data packet contains information indicating the feedback of the ACK data packet.

[0125] Based on this, in one embodiment, the BTH of the last data packet among the N data packets includes second information, where the second information is used to indicate whether the receiving end feeds back the receiving rate related information through an ACK data packet.

[0126] Specifically, when the transmitting end sends the N data packets, the confirmation field (A field) of the BTH of the last data packet includes the second information.

[0127] In actual application, after receiving the reception rate related information fed back by the receiving end, the transmitting end can use the reception rate corresponding to the first path as the maximum transmission rate of the first path, and determine (also can be understood as setting, updating) the upper limit bandwidth corresponding to the first path according to the maximum transmission rate. Then in step 103, the transmitting end can shape the traffic on the first path according to the latest determined upper limit bandwidth of the first path (specifically, it can be achieved by adjusting the transmission rate) to ensure the high throughput and bandwidth utilization of the first path.

[0128] In the traffic shaping method provided in the embodiment of the present application, the sending end determines whether the data packet is lost on the first path, and / or whether the first path is congested, and obtains a judgment result, the sending end and the receiving end at least use the first path, and perform data transmission based on the RDMA mechanism; according to the judgment result, the actual transmission rate and upper bandwidth corresponding to the first path are determined; and the traffic on the first path is shaped using the actual transmission rate and upper bandwidth corresponding to the determined first path. In the scheme provided in the embodiment of the present application, when the sending end and the receiving end perform data transmission on a path based on the RDMA mechanism, the sending end can determine the actual transmission rate and upper bandwidth on the path according to the data packet loss and congestion conditions on the path, thereby performing traffic shaping on the path based on the actual transmission rate and upper bandwidth, so that the sending rate is optimized to ensure high bandwidth utilization.

[0129] Accordingly, an embodiment of the present application further provides an information transmission method, which is applied to a receiving end, wherein the receiving end and the sending end perform data transmission via at least a first path and based on an RDMA mechanism, such as Figure 2 As shown, the method includes:

[0130] Step 201: receiving first information sent by the transmitting end on the first path, where the first information is used to instruct the receiving end to feed back information related to a receiving rate corresponding to the first path;

[0131] Step 202: Determine the receiving rate related information, and feed back the receiving rate related information to the transmitting end.

[0132] Here, in actual application, when the sending end and the receiving end perform data transmission based on the RDMA mechanism on the first path, the sending end can determine the maximum transmission rate corresponding to the first path by means of rate detection. Specifically, the sending end can send indication information to the receiving end, instructing the receiving end to feed back information related to the receiving rate of the first path, so that the sending end can determine the maximum transmission rate corresponding to the first path according to the information related to the receiving rate corresponding to the first path.

[0133] Specifically, the transmitting end may send the first information to the receiving end through a detection message, that is, the transmitting end sends a detection message to the receiving end, and the detection message includes the first information; accordingly, the receiving end receives the detection message to obtain the first information. Among them, the transmitting end may send the detection message through one or more data packets, and the receiving end receives the detection message through one or more data packets; when the transmitting end sends the detection message through multiple data packets, the receiving device receives the detection message through multiple data packets, and can obtain the corresponding receiving rate for each data packet in the multiple data packets, and then determine the corresponding receiving rate of the first path (that is, the transmission rate at which the receiving end can actually successfully receive data) according to the obtained multiple receiving rates. Related information can reduce errors caused by network fluctuations and other reasons.

[0134] Based on this, in one embodiment, the receiving the first information sent by the sending end includes:

[0135] Receiving the first information sent by the transmitting end through N data packets, the BTH of each data packet in the N data packets includes the sending time information of the data packet, and N is an integer greater than or equal to 1;

[0136] In actual application, after receiving the N data packets, the receiving end determines the sending time information contained in the data packets and records the receiving time information of the received data packets. The receiving end can then use the sending time information and the receiving time information to determine the receiving rate related information corresponding to the first path. That is, in one embodiment, determining the receiving rate related information includes:

[0137] Recording the receiving time of each of the N data packets;

[0138] The receiving rate related information is determined using the sending time and receiving time of the N data packets.

[0139] In actual application, after the receiving end determines the receiving rate related information corresponding to the first path, the receiving end can feedback the receiving rate related information through an ACK data packet. However, when performing data transmission based on the RDMA mechanism, in order to ensure the transmission speed, the receiving end usually only feedbacks the ACK data packet to the sending end when the received data packet contains information indicating the feedback of the ACK data packet.

[0140] Based on this, when the sending end sends the N data packets, the N data packets include indication information indicating feedback of an ACK data packet; accordingly, when the receiving end receives the N data packets, it feeds back an ACK data packet based on the indication information, and the ACK data packet includes the receiving rate related information.

[0141] Specifically, in one embodiment, the BTH of the last data packet in the N data packets includes second information, where the second information is used to indicate whether the receiving end feeds back the receiving rate related information through an ACK data packet, and when the second information is used to indicate that the receiving end feeds back the receiving rate related information through an ACK data packet, the feeding back the receiving rate related information to the sending end includes:

[0142] An ACK data packet is sent to the transmitting end, wherein the AETH of the ACK data packet includes the receiving rate related information.

[0143] Specifically, when the receiving end sends an ACK data packet, a path rate (Prate, Path Rate) field of AETH of the ACK data packet includes the receiving rate related information.

[0144] The information transmission method provided by the embodiment of the present application is that the receiving end receives the first information sent by the sending end on the first path, and the first information is used to instruct the receiving end to feedback the receiving rate related information corresponding to the first path. The sending end and the receiving end at least pass through the first path and perform data transmission based on the RDMA mechanism; determine the receiving rate related information and feedback the receiving rate related information to the sending end. In the scheme provided by the embodiment of the present application, the sending end sends indication information to the receiving end, and the receiving end determines and feeds back the receiving rate corresponding to the path according to the indication information, so that the sending end can accurately know the rate of the path, thereby realizing the optimal adjustment of the sending rate to ensure high bandwidth utilization.

[0145] The present application is described in further detail below in conjunction with application examples.

[0146] The application example of this application provides a congestion control system, which includes a transmitting end and a receiving end. Figure 3As shown, the data transmission between the sender and the receiver is based on the RDMA mechanism and the hierarchical multi-path transmission mechanism, that is, there are multiple sQP links between the sender and the receiver. The sQP link between the sender and the receiver is a reliable connection (RC, Reliable Connection).

[0147] Based on the above system, this application example provides a multi-parameter congestion control method to implement congestion control for one sQP link (i.e., the first path) among the multiple sQP links to ensure the bandwidth utilization of the sQP link, such as Figure 4 As shown, the following steps may be specifically included:

[0148] Step 401: The sender determines an initial sending rate using the physical bandwidth of the sQP link, and sends a data packet to the receiver at the initial sending rate;

[0149] Here, in actual application, the sending end may obtain the physical bandwidth through various means such as network management.

[0150] Step 402: After receiving the data packet through the sQP link, the receiving end feeds back an ACK data packet (including an ACK message) to the sending end;

[0151] Here, in actual application, if congestion occurs in the sQP link, the data packet received by the receiving end may contain ECN-related information. At this time, when the receiving end feeds back an ACK data packet, the ACK data packet contains ECN, wherein when the ECN field (also referred to as the E field) of AETH of an ACK data packet is set, the ACK data packet contains ECN.

[0152] Step 403: When the RTT of the data packet exceeds a preset threshold (i.e., the first threshold mentioned above), and / or when an ACK data packet containing an ECN is received, the sending end performs congestion control; and executes step 404;

[0153] In other cases, the sending end continues to perform normal data transmission with the receiving end;

[0154] Here, in actual application, when the sender receives the ECN corresponding to the sQP link (which can also be understood as the presence of an ECN mark in the ACK data packet), and / or when the RTT of a data packet exceeds a certain threshold, it indicates that the current sQP link is in a full load state or a congested state. At this time, the sender can use the current actual transmission speed to estimate the upper bandwidth of the sQP link. The above process can also be understood as resetting the upper bandwidth based on the ECN and / or RTT parameters.

[0155] Specifically, the specific implementation of the transmitter determining (which can also be understood as sensing) the actual transmission speed of the sQP link may include: the transmitter determines the actual transmission speed of the sQP link once every fixed time interval (i.e., the second time interval mentioned above) using formula (2). The actual transmission speed can also be understood as the actual transmission rate or the actual sending rate.

[0156] After obtaining the upper bandwidth of the sQP link, the sender can perform congestion control, that is, adjust the sending rate to be consistent with the upper bandwidth to avoid data packet loss and alleviate congestion, thereby avoiding a large amount of retransmission overhead and ensuring high bandwidth utilization and throughput.

[0157] Step 404: After performing congestion control, the sender waits for a preset time (i.e., the first time) and, if no new ECN is received on the sQP link within the preset time, and / or if the RTT corresponding to the data packet transmitted through the sQP link drops to the RTT corresponding to the link light load state or the link no load state (i.e., the sQP is no longer congested), a timeout detection is performed, the upper limit bandwidth of the sQP link is updated, and step 405 is executed;

[0158] Here, in actual application, the upper bandwidth limit set by the sender for congestion control may become invalid after a period of time due to factors such as changes in the physical bandwidth of the sQP link and disappearance of competing data flows. Therefore, the sender needs to re-detect the available bandwidth (i.e., the upper bandwidth limit) of the sQP link after a period of time. Specifically, after the sQP link is congested, the sender can wait for a period of time (T probe ), if T probe If the sQP link does not receive ECN again and / or the RTT value corresponding to the data packet on the sQP link drops to the link light load or no load RTT, the sending end performs a timeout detection on the upper bandwidth of the sQP link, wherein the T probe The value can be configured manually or adjusted dynamically based on AI.

[0159] In actual application, the specific implementation of the timeout detection of the upper bandwidth of the sQP link by the sender may include:

[0160] Step 1: The sender splits a detection message (i.e., the first information) of a certain size (specifically, half the size of the bandwidth-delay product (BDP)) into N data packets according to the PMTU size, and uses the obtained N data packets as a group of detection packets (also referred to as data packets, detection message groups, detection data packet groups, etc.), where N is an integer greater than or equal to 1;

[0161] Step 2: The transmitting end sends all N data packets in the obtained detection packet to the receiving end through the sQP link;

[0162] Specifically, Figure 5 As shown, the BTH of each of the N data packets includes a T1 field, a Tr field, an A field, a chunk PSN (cPSN, chunk PSN) field, etc., wherein the T1 field is used to include the sending time information of the data packet, the Tr field is used to include the estimated receiving time information of the data packet when the receiving end receives the data packet, the A field is used to include information indicating that the receiving end feeds back an ACK data packet (i.e., the above-mentioned second information), and the cPSN field is used to include the PSN corresponding to the data packet in the sQP link.

[0163] In actual application, the transmitting end sets the A field of the BTH of the last data packet sent in each detection packet to trigger the receiving end to feed back an ACK data packet.

[0164] Step 3: The receiving end receives the N data packets through the sQP link, records the receiving time of each data packet, and calculates the receiving rate (also known as the arrival rate) of the data packets;

[0165] Specifically, the receiving end may calculate the receiving rate of the received data packets according to the sending time and receiving time of each data packet.

[0166] Step 4: The receiving end feeds back an ACK data packet for the N data packets to the sending end, where the Prate field of AETH of the ACK data packet includes the receiving rate;

[0167] Here, in actual application, the receiving end writes the receiving rate into the Prate field in the AETH of the ACK data packet. Figure 6 As shown, the AETH of the ACK data packet includes a T3 field, a Ts field, a cPSN field, an E field, a Prate field, a Syndrome field, etc., wherein the T3 field is used to include the reception time information of the receiving end receiving N data packets, the Ts field is used to include the time information of the sending end receiving the ACK data packet estimated by the receiving end, the E field is used to include the ECN, the cPSN field is used to include the PSN corresponding to the N data packets on the sQP link, the Prate field is used to include the reception rate related information, and the Syndrome field is used to indicate additional information of the ACK data packet (such as error type, fault behavior, etc.).

[0168] Step 5: After receiving the ACK packet, the sender uses the receiving rate to update the upper limit rate of the sQP link.

[0169] In this way, the transmitting end can implement the timeout detection of the upper bandwidth through the above steps to obtain the updated upper bandwidth. In the above process, the transmitting end can record a unique detection number for each timeout detection (which can also be understood as each round), such as a chunk send sequence number (cSSN, chunk send sequence number), which is used to identify a detection packet; correspondingly, the receiving end can record a receiving number for each received detection packet, such as a chunk message sequence number (cMSN, chunk message sequence number).

[0170] Step 405: The sending end performs traffic shaping on the traffic of the sQP link according to the updated upper bandwidth limit of the sQP link and the actual transmission speed corresponding to the sQP link, and sends the shaped traffic.

[0171] Here, in actual application, the sender can calculate the difference between the updated upper bandwidth of each sQP link and the actual transmission speed, that is, the bandwidth that the sQP link can expand, and can determine the traffic shaping method corresponding to each sQP link based on optimization algorithms and other methods, thereby determining the sending rate of the sender on each sQP link to ensure optimal bandwidth utilization.

[0172] In actual application, the congestion control system can repeat steps 401 to 405 at each preset time interval (which can also be understood as the third time interval), that is, reinitialize the sending rate of the sQP link and perform multi-parameter congestion control to fully smooth the traffic fluctuation jagged teeth during large file transmission and improve bandwidth utilization.

[0173] The solution provided in this application example is that the sender senses multiple parameters such as RTT, packet loss, ECN, etc. of the data packet during data transmission (which can also be understood as a multi-parameter collaborative sensing mechanism), so as to continuously detect the actual sending speed of the sQP link, adjust the upper bandwidth of the sQP link, and set (which can also be understood as selecting) the optimal sQP link sending rate to ensure high bandwidth utilization, so that the number of in-flight data packets of the sQP link can approach the theoretical value of the "packet conservation law";

[0174] At the same time, by extending (also understood as updating) BTH and AETH in the standard RoCEv2, the transmission of sQP-level interactive information is achieved, the evolution process is smooth, and the implementation difficulty is small;

[0175] At the same time, through frequency detection (that is, flexible adjustment of T probevalue), fixed-frequency emptying (that is, reinitializing the sending rate of the sQP link every third time interval) can fully smooth the traffic fluctuation jagged teeth when large files are transmitted and improve bandwidth utilization.

[0176] In order to implement the method on the sending end side of the embodiment of the present application, the embodiment of the present application also provides a traffic shaping device, which is arranged on the sending end, and the sending end and the receiving end at least use the first path and perform data transmission based on the RDMA mechanism, such as Figure 7 As shown, the device comprises:

[0177] The judging unit 701 is configured to judge whether a data packet is lost on the first path and / or whether the first path is congested, and obtain a judgment result;

[0178] A determination unit 702 is used to determine an actual transmission rate and an upper limit bandwidth corresponding to the first path according to the determination result;

[0179] The shaping unit 703 is used to shape the traffic on the first path by using the determined actual transmission rate and upper bandwidth corresponding to the first path.

[0180] In one embodiment, the determining unit 701 is specifically configured to:

[0181] When an explicit congestion notification ECN is received through the first path and / or a round trip time RTT of a data packet transmitted through the first path is greater than a first threshold, it is determined that the first path is congested.

[0182] In one embodiment, the determining unit 701 is specifically configured to:

[0183] When no new ECN is received within a first period of time after the ECN is received through the first path, and / or when the RTT of the data packet transmitted through the first path is less than or equal to a second threshold, it is determined that the first path is not congested.

[0184] In one embodiment, when the judgment result indicates that the first path is congested and / or data packets are lost on the first path, the determining unit 702 is specifically configured to:

[0185] An upper limit bandwidth corresponding to the first path is determined by using an actual transmission rate corresponding to the first path.

[0186] In one embodiment, when the judgment result indicates that the first path is not congested, the determining unit 702 is specifically configured to:

[0187] A maximum transmission rate corresponding to the first path is determined, and an upper bandwidth corresponding to the first path is determined using the maximum transmission rate.

[0188] In one embodiment, the determining unit 702 is specifically configured to:

[0189] Using the upper limit rate corresponding to the first path, sending first information to the receiving end through the first path, where the first information is used to instruct the receiving end to feed back information related to the receiving rate corresponding to the first path;

[0190] The receiving rate related information fed back by the receiving end is received, a receiving rate corresponding to the first path is determined based on the receiving rate related information, and the receiving rate is used as the maximum transmission rate of the first path.

[0191] In one embodiment, the determining unit 702 is specifically configured to:

[0192] Based on the PTMU corresponding to the first path, the first information is sent to the receiving end through N data packets, the BTH of each of the N data packets includes the sending time information of the data packet, and N is an integer greater than or equal to 1.

[0193] In actual application, the judgment unit 701 and the determination unit 702 can be implemented by a processor in the traffic shaping device in combination with a communication interface; the shaping unit 703 can be implemented by a processor in the traffic shaping device.

[0194] It should be noted that: the traffic shaping device provided in the above embodiment only uses the division of the above program units as an example when performing traffic shaping. In actual applications, the above processing can be assigned to different program units as needed, that is, the internal structure of the device is divided into different program units to complete all or part of the processing described above. In addition, the traffic shaping device provided in the above embodiment and the traffic shaping method embodiment belong to the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.

[0195] In order to implement the method on the receiving end side of the embodiment of the present application, the embodiment of the present application also provides an information transmission device, which is arranged on the receiving end, and the receiving end and the sending end transmit data through at least a first path and based on the RDMA mechanism, such as Figure 8 As shown, the device comprises:

[0196] A receiving unit 801 is configured to receive, on the first path, first information sent by the transmitting end, where the first information is used to instruct the receiving end to feed back information related to a receiving rate corresponding to the first path;

[0197] The feedback unit 802 is used to determine the receiving rate related information and feed back the receiving rate related information to the transmitting end.

[0198] In one embodiment, the receiving unit 801 is specifically configured to:

[0199] Receiving the first information sent by the transmitting end through N data packets, the BTH of each data packet in the N data packets includes the sending time information of the data packet, and N is an integer greater than or equal to 1;

[0200] The feedback unit 802 is specifically used for:

[0201] Recording the receiving time of each of the N data packets;

[0202] The receiving rate related information is determined using the sending time and receiving time of the N data packets.

[0203] In one embodiment, the BTH of the last data packet in the N data packets includes second information, where the second information is used to indicate whether the receiving end feeds back the receiving rate related information through an ACK data packet. When the second information is used to indicate that the receiving end feeds back the receiving rate related information through an ACK data packet, the feedback unit 802 is specifically used to:

[0204] An ACK data packet is sent to the transmitting end, wherein the AETH of the ACK data packet includes the receiving rate related information.

[0205] In actual application, the receiving unit 801 can be implemented by a communication interface in an information transmission device; and the feedback unit 802 can be implemented by a processor in the information transmission device.

[0206] It should be noted that: the information transmission device provided in the above embodiment only uses the division of the above program units as an example when performing information transmission. In actual applications, the above processing can be assigned to different program units as needed, that is, the internal structure of the device is divided into different program units to complete all or part of the processing described above. In addition, the information transmission device provided in the above embodiment and the information transmission method embodiment belong to the same concept, and the specific implementation process is detailed in the method embodiment, which will not be repeated here.

[0207] Based on the hardware implementation of the above program module, and in order to implement the method of the transmitting end side of the embodiment of the present application, the embodiment of the present application also provides a transmitting end, and the transmitting end and the receiving end at least use the first path and perform data transmission based on the RDMA mechanism, such as Fig. 9 As shown, the transmitting end 900 includes:

[0208] The first communication interface 901 is capable of exchanging information with other devices (such as a receiving end);

[0209] A first processor 902, connected to the first communication interface 901, to implement information interaction with other devices, and configured to execute the method provided by one or more technical solutions of the sending end side when running a computer program;

[0210] A first memory 903 , in which the computer program is stored.

[0211] Specifically, the first processor 902 is configured to:

[0212] In combination with the first communication interface 901, determine whether data packets are lost on the first path and / or whether the first path is congested to obtain a judgment result; determine an actual transmission rate and an upper bandwidth corresponding to the first path based on the judgment result; and use the determined actual transmission rate and upper bandwidth corresponding to the first path to shape the traffic on the first path.

[0213] In one embodiment, the first processor 902 is specifically configured to:

[0214] When an explicit congestion notification ECN is received through the first path and / or a round trip time RTT of a data packet transmitted through the first path is greater than a first threshold, it is determined that the first path is congested.

[0215] In one embodiment, the first processor 902 is specifically configured to:

[0216] When no new ECN is received within a first period of time after the ECN is received through the first path, and / or when the RTT of the data packet transmitted through the first path is less than or equal to a second threshold, it is determined that the first path is not congested.

[0217] In one embodiment, when the determination result indicates that the first path is congested and / or data packets are lost on the first path, the first processor 902 is specifically configured to:

[0218] An upper limit bandwidth corresponding to the first path is determined by using an actual transmission rate corresponding to the first path.

[0219] In one embodiment, when the determination result indicates that the first path is not congested, the first processor 902 is specifically configured to:

[0220] A maximum transmission rate corresponding to the first path is determined, and an upper bandwidth corresponding to the first path is determined using the maximum transmission rate.

[0221] In one embodiment, the first processor 902 is specifically configured to:

[0222] Using the upper limit rate corresponding to the first path, sending first information to the receiving end through the first path, where the first information is used to instruct the receiving end to feed back information related to the receiving rate corresponding to the first path;

[0223] The receiving rate related information fed back by the receiving end is received, a receiving rate corresponding to the first path is determined based on the receiving rate related information, and the receiving rate is used as the maximum transmission rate of the first path.

[0224] In one embodiment, the first processor 902 is specifically configured to:

[0225] Based on the PTMU corresponding to the first path, the first information is sent to the receiving end through N data packets, the BTH of each of the N data packets includes the sending time information of the data packet, and N is an integer greater than or equal to 1.

[0226] It should be noted that the specific processing process of the first processor 902 and the first communication interface 901 can be understood by referring to the above method.

[0227] Of course, in actual application, the various components in the transmitting end 900 are coupled together through the bus system 904. It can be understood that the bus system 904 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 904 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, Fig. 9 Various buses are labeled as bus system 904.

[0228] The first memory 903 in the embodiment of the present application is used to store various types of data to support the operation of the sending end 900. Examples of such data include: any computer program used to operate on the sending end 900.

[0229] The method disclosed in the above embodiment of the present application can be applied to the first processor 902, or implemented by the first processor 902. The first processor 902 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by an integrated logic circuit of hardware or software instructions in the first processor 902. The above-mentioned first processor 902 may be a general-purpose processor, a digital signal processor (DSP, Digital Signal Processor), or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The first processor 902 can implement or execute the various methods, steps and logic block diagrams disclosed in the embodiments of the present application. A general-purpose processor may be a microprocessor or any conventional processor, etc. In combination with the steps of the method disclosed in the embodiment of the present application, it can be directly embodied as a hardware decoding processor to execute, or it can be executed by a combination of hardware and software modules in the decoding processor. The software module may be located in a storage medium, which is located in the first memory 903, and the first processor 902 reads the information in the first memory 903 and completes the steps of the above method in combination with its hardware.

[0230] In an exemplary embodiment, the transmitting end 900 can be implemented by one or more application specific integrated circuits (ASIC), DSP, programmable logic device (PLD), complex programmable logic device (CPLD), field programmable gate array (FPGA), general processor, controller, microcontroller (MCU), microprocessor, or other electronic components to execute the aforementioned method.

[0231] Based on the hardware implementation of the above program module, and in order to implement the method of the receiving end side of the embodiment of the present application, the embodiment of the present application also provides a receiving end, and the receiving end and the sending end at least use the first path and perform data transmission based on the RDMA mechanism, such as Fig.10 As shown, the receiving end 1000 includes:

[0232] The second communication interface 1001 is capable of exchanging information with other devices (such as a transmitting end);

[0233] The second processor 1002 is connected to the second communication interface 1001 to implement information interaction with the sending end, and is used to execute the method provided by one or more technical solutions on the receiving end side when running the computer program;

[0234] The second memory 1003 , on which the computer program is stored.

[0235] Specifically, the second communication interface 1001 is used to:

[0236] On the first path, receiving first information sent by the transmitting end, where the first information is used to instruct the receiving end to feed back information related to a receiving rate corresponding to the first path;

[0237] The second processor 1002 is configured to:

[0238] The receiving rate related information is determined, and in combination with the second communication interface 1001, the receiving rate related information is fed back to the transmitting end.

[0239] In one embodiment, the second communication interface 1001 is specifically used for:

[0240] Receiving the first information sent by the transmitting end through N data packets, the BTH of each data packet in the N data packets includes the sending time information of the data packet, and N is an integer greater than or equal to 1;

[0241] The second processor 1002 is specifically configured to:

[0242] Recording the receiving time of each of the N data packets;

[0243] The receiving rate related information is determined using the sending time and receiving time of the N data packets.

[0244] In one embodiment, the BTH of the last data packet in the N data packets includes second information, where the second information is used to indicate whether the receiving end feeds back the receiving rate related information through an ACK data packet, and when the second information is used to indicate that the receiving end feeds back the receiving rate related information through an ACK data packet, the second processor 1002 is specifically used to:

[0245] In combination with the second communication interface 1001, an ACK data packet is sent to the transmitting end, and the AETH of the ACK data packet includes the receiving rate related information.

[0246] It should be noted that the specific processing process of the second processor 1002 and the second communication interface 1001 can be understood by referring to the above method.

[0247] Of course, in actual application, the various components in the receiving end 1000 are coupled together through the bus system 1004. It can be understood that the bus system 1004 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 1004 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, Fig.10 Various buses are labeled as bus system 1004 .

[0248] The second memory 1003 in the embodiment of the present application is used to store various types of data to support the operation of the receiving end 1000. Examples of such data include: any computer program used to operate on the receiving end 1000.

[0249] The method disclosed in the above embodiment of the present application can be applied to the second processor 1002, or implemented by the second processor 1002. The second processor 1002 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit or software instructions in the second processor 1002. The above-mentioned second processor 1002 may be a general-purpose processor, DSP, or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The second processor 1002 can implement or execute the various methods, steps and logic block diagrams disclosed in the embodiments of the present application. A general-purpose processor may be a microprocessor or any conventional processor, etc. In combination with the steps of the method disclosed in the embodiment of the present application, it can be directly embodied as a hardware decoding processor to execute, or it can be executed by a combination of hardware and software modules in the decoding processor. The software module may be located in a storage medium, which is located in the second memory 1003, and the second processor 1002 reads the information in the second memory 1003 and completes the steps of the above method in combination with its hardware.

[0250] In an exemplary embodiment, the receiving end 1000 may be implemented by one or more ASICs, DSPs, PLDs, CPLDs, FPGAs, general-purpose processors, controllers, MCUs, Microprocessors, or other electronic components to perform the aforementioned method.

[0251] It can be understood that the memory (first memory 903, second memory 1003) of the embodiment of the present application can be a volatile memory or a non-volatile memory, and can also include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic random access memory (FRAM), a ferromagnetic random access memory, a flash memory, a magnetic surface memory, an optical disc, or a compact disc read-only memory (CD-ROM); the magnetic surface memory can be a disk memory or a tape memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), synchronous static random access memory (SSRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DRRAM).The memories described in the embodiments of the present application are intended to include, but are not limited to, these and any other suitable types of memories.

[0252] In an exemplary embodiment, the embodiment of the present application further provides a storage medium, namely a computer storage medium, specifically a computer-readable storage medium, for example, including a first memory 903 storing a computer program, the computer program can be executed by the first processor 902 of the sending end 900 to complete the steps of the sending end method, and for another example, including a second memory 1003 storing a computer program, the computer program can be executed by the second processor 1002 of the receiving end 1000 to complete the steps of the receiving end side method. The computer-readable storage medium can be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disk, or CD-ROM.

[0253] In an exemplary embodiment, the embodiment of the present application also provides a computer program product, including a computer program, which can be executed by the first processor 902 of the sending end 900 to complete the steps described in the aforementioned sending end side method, or the computer program can be executed by the second processor 1002 of the receiving end 1000 to complete the steps described in the aforementioned receiving end side method.

[0254] In order to implement the method of the embodiment of the present application, the embodiment of the present application also provides a traffic shaping system, such as Fig.11 As shown, the system includes: a transmitting end 1101 and a receiving end 1102.

[0255] Here, it should be noted that the specific processing procedures of the sending end 1101 and the receiving end 1102 have been described in detail above and will not be repeated here.

[0256] It should be noted that: "first", "second", etc. are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.

[0257] In addition, the technical solutions described in the embodiments of the present application can be combined arbitrarily without conflict.

[0258] The above description is only a preferred embodiment of the present application and is not intended to limit the protection scope of the present application.

Claims

1. A traffic shaping method, characterized in that: Applied to a sending end, the sending end and the receiving end perform data transmission at least through a first path and based on a remote direct memory access (RDMA) mechanism, the method comprising: Determine whether a data packet is lost on the first path and / or whether the first path is congested, and obtain a determination result; Determine, according to the determination result, an actual transmission rate and an upper limit bandwidth corresponding to the first path; The traffic on the first path is shaped by using the determined actual transmission rate and upper bandwidth limit corresponding to the first path.

2. The method according to claim 1, characterized in that The determining whether the first path is congested includes: When an explicit congestion notification ECN is received through the first path and / or a round trip time RTT of a data packet transmitted through the first path is greater than a first threshold, it is determined that the first path is congested.

3. The method according to claim 1, characterized in that The determining whether the first path is congested includes: When no new ECN is received within a first period of time after the ECN is received through the first path, and / or when the RTT of the data packet transmitted through the first path is less than or equal to a second threshold, it is determined that the first path is not congested.

4. The method according to claim 1, characterized in that: When the judgment result indicates that the first path is congested and / or data packets are lost on the first path, determining the upper limit bandwidth corresponding to the first path according to the judgment result includes: An upper limit bandwidth corresponding to the first path is determined by using an actual transmission rate corresponding to the first path.

5. The method according to claim 1, characterized in that When the judgment result indicates that the first path is not congested, determining the upper limit bandwidth corresponding to the first path according to the judgment result includes: A maximum transmission rate corresponding to the first path is determined, and an upper bandwidth corresponding to the first path is determined using the maximum transmission rate.

6. The method according to claim 5, characterized in that The determining the maximum transmission rate of the first path includes: Using the upper limit rate corresponding to the first path, sending first information to the receiving end through the first path, where the first information is used to instruct the receiving end to feed back information related to the receiving rate corresponding to the first path; The receiving rate related information fed back by the receiving end is received, a receiving rate corresponding to the first path is determined based on the receiving rate related information, and the receiving rate is used as the maximum transmission rate of the first path.

7. The method according to claim 6, characterized in that The sending the first information to the receiving end includes: Based on the path maximum transmission unit PTMU corresponding to the first path, the first information is sent to the receiving end via N data packets, the basic transmission header BTH of each data packet in the N data packets contains the sending time information of the data packet, and N is an integer greater than or equal to 1.

8. The method according to claim 7, characterized in that The BTH of the last data packet among the N data packets includes second information, where the second information is used to indicate whether the receiving end feeds back the receiving rate related information through an ACK data packet.

9. The method according to any one of claims 1 to 8, characterized in that: The transmitting end and the receiving end perform data transmission based on a hierarchical multi-path transmission mechanism, and the multi-path includes the first path.

10. An information transmission method, characterized in that: Applied to a receiving end, the receiving end and the sending end perform data transmission at least through a first path and based on an RDMA mechanism, the method includes: On the first path, receiving first information sent by the transmitting end, where the first information is used to instruct the receiving end to feed back information related to a receiving rate corresponding to the first path; Determine the receiving rate related information, and feed back the receiving rate related information to the transmitting end.

11. The method according to claim 10, characterized in that The receiving the first information sent by the sending end includes: Receiving the first information sent by the transmitting end through N data packets, the BTH of each data packet in the N data packets includes the sending time information of the data packet, and N is an integer greater than or equal to 1; The determining the receiving rate related information includes: Recording the receiving time of each of the N data packets; The receiving rate related information is determined using the sending time and receiving time of the N data packets.

12. The method according to claim 10, characterized in that The BTH of the last data packet among the N data packets includes second information, where the second information is used to indicate whether the receiving end feeds back the receiving rate related information through an ACK data packet. When the second information is used to indicate that the receiving end feeds back the receiving rate related information through an ACK data packet, the feeding back the receiving rate related information to the sending end includes: An ACK data packet is sent to the sending end, wherein an acknowledgment extended transmission header AETH of the ACK data packet includes the receiving rate related information.

13. The method according to any one of claims 10 to 12, characterized in that: The receiving end and the transmitting end perform data transmission based on a hierarchical multi-path transmission mechanism, and the multi-path includes the first path.

14. A flow shaping device, characterized in that: The transmitting end and the receiving end are set up, and the transmitting end and the receiving end transmit data at least through a first path and based on the RDMA mechanism, including: a determination unit, configured to determine whether a data packet is lost on the first path and / or whether the first path is congested, and obtain a determination result; a determining unit, configured to determine an actual transmission rate and an upper bandwidth limit corresponding to the first path according to the determination result; A shaping unit is used to shape the traffic on the first path by using the determined actual transmission rate and upper bandwidth corresponding to the first path.

15. An information transmission device, characterized in that: The receiving end is set up, and the receiving end and the sending end are at least through a first path, and data is transmitted based on the RDMA mechanism, including: A receiving unit, configured to receive, on the first path, first information sent by the transmitting end, where the first information is used to instruct the receiving end to feed back information related to a receiving rate corresponding to the first path; A feedback unit is used to determine the receiving rate related information and feed back the receiving rate related information to the sending end.

16. A transmitting end, characterized in that: The transmitting end and the receiving end transmit data at least through a first path and based on the RDMA mechanism, including: a first communication interface and a first processor; wherein, The first processor is used to determine whether data packets are lost on the first path and / or whether the first path is congested, and obtain a determination result; determine an actual transmission rate and an upper bandwidth corresponding to the first path according to the determination result; and use the determined actual transmission rate and upper bandwidth corresponding to the first path to shape the traffic on the first path.

17. A receiving end, characterized in that: The receiving end and the sending end perform data transmission at least through a first path and based on an RDMA mechanism, including: A second communication interface is used to receive first information sent by the sending end on the first path, where the first information is used to instruct the receiving end to feed back information related to a receiving rate corresponding to the first path; The second processor is used to determine the receiving rate related information and feed back the receiving rate related information to the sending end.

18. A transmitting end, characterized in that: include: a first processor and a first memory for storing a computer program executable on the processor, Wherein, when the first processor is used to run the computer program, the steps of the method described in any one of claims 1 to 9 are executed.

19. A receiving end, characterized in that: include: a second processor and a second memory for storing a computer program executable on the processor, Wherein, when the second processor is used to run the computer program, the steps of the method described in any one of claims 10 to 13 are executed.

20. A storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the computer program implements the steps of the method according to any one of claims 1 to 9, or implements the steps of the method according to any one of claims 10 to 13.

21. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the computer program implements the steps of the method according to any one of claims 1 to 9, or implements the steps of the method according to any one of claims 10 to 13.

Citation Information

Patent Citations

  • A QoS control method and system

    CN101009631A

  • Token-based Internet traffic control method

    CN101035078A

  • Data transmission method, equipment and computer storage medium

    CN108418767A

  • Flow control method, apparatus and system and storage medium

    CN111385223A

  • Congestion control method and device, and computer readable medium

    CN112054965A