Data congestion processing method, device, equipment, storage medium and program product
By receiving feedback messages to determine the round trip delay and responding to congestion notification messages, different data transmission strategies are used to adjust the packet transmission amount, which solves the delay problem of relying on switch metadata to deal with data congestion in the prior art, and improves data transmission efficiency and accuracy.
Patent Information
- Application Number
- CN202411970119.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-30
- Publication Date
- 2025-04-15
- Estimated Expiration
- 2044-12-30
AI Technical Summary
The prior art relies too much on the metadata inserted by the switch when processing data congestion, resulting in the decision-making time being delayed and the data congestion problem cannot be effectively and promptly deal with.
By receiving the feedback message, the round trip delay between the data sending device and the data receiving device is determined, and in response to the congestion notification message, different data sending strategies are used to adjust the data packet transmission amount to improve the response speed of the data transmission process.
It enriches the dimension of obtaining network congestion status information, improves packet transmission efficiency and transmission accuracy, and avoids the problem that inserting metadata may not be able to deal with data congestion in a timely manner.
Smart Images

Figure CN119402435B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of computer technology, and in particular to a data congestion processing method, device, equipment, storage medium and program product. Background Art
[0002] Packet transmission is the core technology of computer network communication. Data exchange in data center networks, the Internet and local area networks all rely on packet transmission mechanisms.
[0003] In the related art, during the data transmission process of forwarding a data packet sent by a sending end to a receiving end through a switch, the switch inserts metadata into the data packet, and the metadata is used to represent the information when the data packet leaves the switch egress port, such as timestamp, transmission bytes, etc.; the receiving end copies the metadata in an acknowledgment character (ACK) and feeds it back to the sending end, and the sending end reduces the data sending window used to send the data packet according to the metadata in the acknowledgment character, so as to achieve the purpose of reducing the amount of data transmission.
[0004] The above process relies too much on the metadata inserted by the switch to solve the data congestion problem. However, there may be a delay in the process of inserting metadata by the switch, which will cause the decision moment of the sender to reduce the data sending window to be postponed, and may not be able to effectively and timely deal with the data congestion problem. Summary of the invention
[0005] The embodiments of the present application provide a data congestion processing method, device, equipment, storage medium and program product, which can enrich the dimensions of network congestion status information acquisition, improve the change response speed of the data transmission process through more efficiently acquired congestion notification messages and round-trip delays, improve the data packet transmission efficiency, and ensure the transmission accuracy of the data packet. The technical solution is as follows.
[0006] In one aspect, a method for processing data congestion is provided, the method comprising:
[0007] In the process of sending a data packet to a data receiving device using a first data sending strategy, receiving a feedback message sent by the data receiving device, wherein the feedback message is information fed back by the data receiving device to the data sending device based on the received data packet;
[0008] In response to receiving a congestion notification message, determining a round trip delay between the data sending device and the data receiving device based on the feedback message, wherein the congestion notification message is used to indicate that there is data congestion in a process in which the data sending device sends a data packet to the data receiving device;
[0009] When the round-trip delay meets the preset delay condition, a second data sending strategy is adopted to send data packets to the data receiving device; wherein, the number of first data packets transmitted in a unit time period under the first data sending strategy is greater than the number of second data packets transmitted in the unit time period under the second data sending strategy.
[0010] On the other hand, a data congestion processing device is provided, the device comprising:
[0011] a receiving module, configured to receive a feedback message sent by the data receiving device during the process of sending a data packet to the data receiving device using a first data sending strategy, wherein the feedback message is information fed back by the data receiving device to the data sending device based on the received data packet;
[0012] a determination module, configured to determine, in response to receiving a congestion notification message, a round trip delay between the data sending device and the data receiving device based on the feedback message, wherein the congestion notification message is used to indicate that there is data congestion in the process of the data sending device sending a data packet to the data receiving device;
[0013] A sending module, used to send data packets to the data receiving device using a second data sending strategy when the round-trip delay meets a preset delay condition; wherein the number of first data packets transmitted in a unit time period under the first data sending strategy is greater than the number of second data packets transmitted in the unit time period under the second data sending strategy.
[0014] On the other hand, a computer device is provided, comprising a processor and a memory, wherein the memory stores at least one instruction, at least one program, a code set or an instruction set, and the at least one instruction, the at least one program, the code set or the instruction set is loaded and executed by the processor to implement the data congestion processing method as described in any of the above-mentioned embodiments of the present application.
[0015] On the other hand, a computer-readable storage medium is provided, wherein at least one instruction, at least one program, a code set or an instruction set is stored in the storage medium, and the at least one instruction, the at least one program, the code set or the instruction set is loaded and executed by a processor to implement the data congestion processing method as described in any of the above-mentioned embodiments of the present application.
[0016] On the other hand, a computer program product or a computer program is provided, the computer program product or the computer program comprising computer instructions, the computer instructions being stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the data congestion processing method described in any of the above embodiments.
[0017] The beneficial effects brought by the technical solution provided by the embodiment of the present application include at least:
[0018] If the data sending device receives a congestion notification message, the round-trip delay between it and the data receiving device is determined based on the feedback message, so that when the round-trip delay meets the preset delay condition, the second data sending strategy with fewer data packets transmitted in a unit time period is adopted to send data packets to the data receiving device. It is no longer necessary to insert metadata into the data packet through the switch to solve the problem of data congestion, nor is it necessary to directly adjust the data packet sending process based on the congestion notification message. Instead, the round-trip delay between the data sending device and the data receiving device is further analyzed based on the congestion notification message received, so that the number of data packets transmitted per unit time will be reduced when both conditions are met. While enriching the dimensions of obtaining network congestion status information, the method of avoiding inserting metadata may not be able to effectively and timely respond to the problem of data congestion, so as to improve the change response speed of the data transmission process through more efficiently obtained congestion notification messages and round-trip delays, improve the efficiency of data packet transmission, and ensure the accuracy of data packet transmission. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0020] Figure 1 is a structural block diagram of a processing system provided by an exemplary embodiment of the present application;
[0021] Figure 2 is a flow chart of a data congestion processing method provided by an exemplary embodiment of the present application;
[0022] Figure 3 is a flow chart of a data congestion processing method provided by another exemplary embodiment of the present application;
[0023] Figure 4 is a flow chart of a data congestion processing method provided by another exemplary embodiment of the present application;
[0024] Figure 5 is a flow chart of a data congestion processing method provided by another exemplary embodiment of the present application;
[0025] Figure 6 It is a schematic diagram of an architecture for implementing a data congestion processing process through a network card provided by an exemplary embodiment of the present application;
[0026] Figure 7 It is a schematic diagram comparing the processing results of a data congestion processing method provided by an exemplary embodiment of the present application and related technologies;
[0027] Figure 8 is a schematic diagram comparing the processing results of a data congestion processing method provided by another exemplary embodiment of the present application and a related technology;
[0028] Fig. 9 is a structural block diagram of a data congestion processing device provided by an exemplary embodiment of the present application;
[0029] Fig.10 It is a structural block diagram of an electronic device provided by an exemplary embodiment of the present application. DETAILED DESCRIPTION
[0030] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below with reference to the accompanying drawings.
[0031] In the related art, during the data transmission process of forwarding the data packet sent by the sender to the receiver through the switch, the switch inserts metadata into the data packet. The metadata is used to characterize the information when the data packet leaves the switch egress port, such as timestamp, transmission bytes, etc.; the receiver copies the metadata in the ACK and feeds it back to the sender. The sender reduces the data transmission window for sending the data packet according to the metadata in the confirmation character to achieve the purpose of reducing the data transmission volume. The above process relies too much on the metadata inserted by the switch to solve the data congestion problem. However, there may be a delay in the process of inserting metadata by the switch, which will cause the decision moment of the sender to reduce the data transmission window to be postponed, and the data congestion problem may not be effectively and timely dealt with.
[0032] In an embodiment of the present application, a data congestion processing method is introduced. On the basis of receiving a congestion notification message, the round-trip delay between the data sending device and the data receiving device is determined based on the feedback message, so that when the round-trip delay meets the preset delay condition, a second data sending strategy that transmits fewer data packets in a unit time period is adopted to send data packets. While enriching the dimensions of network congestion status information acquisition, the change response speed of the data transmission process is improved through more efficiently acquired congestion notification messages and round-trip delays, the data packet transmission efficiency is improved, and the transmission accuracy of the data packet is guaranteed. The data congestion processing method provided in the embodiment of the present application can be applied to a variety of large data transmission analysis scenarios such as multimedia data transmission scenarios, game data transmission scenarios, data center analysis scenarios, real-time data flow management scenarios, Internet of Things scenarios, satellite data communication scenarios, etc., which are not limited here.
[0033] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.) and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of the relevant regions. For example, the data packets, feedback messages, congestion notification messages and other contents involved in this application are all obtained with full authorization.
[0034] The processing system involved in the embodiment of the present application is described. The data congestion processing method provided in the embodiment of the present application can be implemented by at least two terminals through data interaction, or by at least two servers through data interaction, or by at least two terminals and a server through data interaction, or by at least two terminals and other devices through data interaction, which is not limited in the embodiment of the present application. Optionally, the data congestion processing method is described by taking at least two terminals and a communication device as an example.
[0035] For illustration, please refer to Figure 1 The processing system includes at least two terminals, and the at least two terminals include a data sending device 111 and a data receiving device 112. The data sending device 111 is a sending end, and the data receiving device 112 is a receiving end; in addition, it also includes a communication device 120 for communication between the data sending device 111 and the data receiving device 112. The communication device 120 is such as a server, a switch, etc., which is not limited here.
[0036] In some embodiments, the data sending device 111 receives a feedback message sent by the data receiving device 112 during the process of sending a data packet to the data receiving device 112 using the first data sending strategy.
[0037] The feedback message is information fed back by the data receiving device 112 to the data sending device 111 based on the received data packet.
[0038] Schematically, the data sending device 111 is used to send a data packet to the data receiving device 112, and the data packet is at least one of multiple forms such as a multimedia data packet, a voice data packet, an email data packet, a file transfer data packet, a wireless communication data packet, a Transmission Control Protocol / Internet Protocol (TCP / IP) data packet, etc. The first data sending strategy is a strategy adopted by the data sending device 111 when transmitting a data packet, such as adopting a transmission window of size A and a transmission rate of B to transmit a data packet. For example, the data sending device 111 sends a data packet to the data receiving device 112 through the communication device 120 using the first data sending strategy.
[0039] Illustratively, the data receiving device 112 sends a feedback message to the data sending device 111 based on the data packet reception status; optionally, the feedback message indicates whether the data receiving device 112 has received the data packet or has not received the data packet, etc.
[0040] In some embodiments, in response to receiving the congestion notification message, the data sending device 111 determines the round trip delay between the data sending device 111 and the data receiving device 112 based on the feedback message.
[0041] The congestion notification message is used to indicate that data congestion exists in the process of the data sending device 111 sending data packets to the data receiving device 112 .
[0042] Optionally, the congestion notification message is a message sent by the communication device 120 to the data sending device 111; or, the congestion notification message is a message sent by the data receiving device 112 to the data sending device 111 through the communication device 120; or, the congestion notification message is a message sent by the data receiving device 112 to the data sending device 111 based on the communication device 120, etc.
[0043] Illustratively, the congestion notification message is a message protocol used to notify the data sending device 111 that there is currently data congestion during the data transmission process of transmitting data packets. Optionally, when the communication device 120 (such as a router, switch, etc.) or the transmission path is congested, the data sending device 111 is required to reduce the amount of data packets sent to alleviate network congestion and avoid network collapse or excessive delays through the transmission of the congestion notification message.
[0044] Optionally, the data sending device 111 determines the round-trip delay between the data sending device 111 and the data receiving device 112 based on the data sending time and the receiving time of the feedback message. The round-trip delay is used to characterize the total time it takes for a data packet to be sent from the data sending device 111 to the data receiving device 112 and for the data sending device 111 to receive feedback (feedback message).
[0045] In some embodiments, when the round-trip delay meets the preset delay condition, the data sending device 111 adopts the second data sending strategy to send the data packet to the data receiving device 112 .
[0046] The number of first data packets transmitted in a unit time period under the first data sending strategy is greater than the number of second data packets transmitted in a unit time period under the second data sending strategy.
[0047] In an illustrative manner, the data sending device 111 compares the round trip delay with the preset delay condition. When the round trip delay meets the preset delay condition, the data sending device reduces the number of data packets transmitted in a unit time period, thereby replacing the first data sending strategy with the second data sending strategy and sending the data packet. For example, when the round trip delay meets the preset delay condition, the data sending device 111 adopts the second data sending strategy to send a data packet to the data receiving device 112 through the communication device 120, thereby avoiding the problem of aggravating data congestion due to excessive continuous data packet transmission. The adjustment of the sending strategy is also determined in a targeted manner by the constraint method of simultaneously meeting two conditions (receiving a congestion notification message and the round trip delay meets the preset delay condition).
[0048] It is worth noting that the above-mentioned terminals include but are not limited to mobile terminals such as mobile phones, tablet computers, portable laptops, intelligent voice interaction devices, smart home appliances, vehicle-mounted terminals, etc., and can also be implemented as desktop computers, etc.; the above-mentioned servers can be independent physical servers, or they can be server clusters or distributed systems composed of multiple physical servers, or they can also be cloud servers.
[0049] In combination with the above-mentioned noun introduction and application scenarios, the data congestion processing method provided by the present application is described, and the method is applied to a data sending device as an example. Figure 2 As shown, the method includes the following steps 210 to 230.
[0050] Step 210: receiving a feedback message sent by the data receiving device during the process of sending a data packet to the data receiving device using the first data sending strategy.
[0051] Illustratively, the first data sending strategy is a preset strategy for sending data packets to a data receiving device through a data sending device within a unit time period; optionally, the first data sending strategy corresponds to at least one of a first data sending rate and a first sending window, the first data sending rate is the speed for sending data packets, and the first sending window is the window size for sending data packets; that is: the first data sending strategy indicates that data packets are sent through the first sending window within a unit time period, and / or the first data sending strategy indicates that data packets are sent through the first data sending rate within a unit time period, etc.
[0052] Optionally, the data receiving device sends a feedback message to the data sending device. The feedback message is usually used to characterize the reception status of the data receiving device for the data packet sent by the data sending device. The reception status includes at least one of multiple information such as whether the data packet is successfully received, the reception order of the data packets, the data packet transmission status (such as whether the lost data packet is retransmitted), etc.
[0053] The feedback message is information fed back by the data receiving device to the data sending device based on the received data packet.
[0054] In some embodiments, taking the data transmission process between a data sending device and a data receiving device based on the Transmission Control Protocol (TCP) as an example, data is exchanged between the data sending device and the data receiving device through the TCP protocol. At this time, the feedback message sent by the data receiving device to the data sending device includes at least one of an acknowledgment message (ACK) and a negative acknowledgment message (NACK); ACK is used to notify the data sending device that the current data has been successfully received by the data receiving device; NACK is used to notify the data sending device that the current data has not been successfully received by the data receiving device. For example, when the data receiving device finds that the data packet is lost, damaged, or has a sequence error, it sends a NACK message to the data sending device to inform the data sending device that a certain data packet needs to be resent.
[0055] In some embodiments, the response message sent by the data receiving device to the data sending device is used as a feedback message. The response message is a message generated by the data receiving device after confirming the request data packet and processing the request data packet. The response message usually contains more information, such as: success, error, status code, etc. For example: the data receiving device is a server, and the server processes the request data packet sent by the data sending device (such as a terminal) and feeds back a HyperText Transfer Protocol (HTTP) response message, which includes a status code (such as 200, 404, etc.) and the result of the request (such as web page content, error information, etc.).
[0056] In some embodiments, the response message of the response delay sent by the data receiving device to the data sending device is used as a feedback message. Schematically, in the process of the data sending device sending a data packet to the data receiving device, the network delay from the data sending device to the data receiving device is also measured by sending a ping command. For example: the data sending device sends an Internet Control Message Protocol (ICMP) echo (Echo) request message to the data receiving device. After receiving the ICMP Echo request message, the data receiving device returns an ICMP Echo response message to inform the data receiving device that the request message has been received and its content has been confirmed; in addition to confirming the receipt of the request message, the Echo response message usually carries a response time, which is the time from the data sending device sending the request message to the data receiving device responding.
[0057] It is worth noting that the above are merely illustrative examples and are not limited to the embodiments of the present application.
[0058] Step 220: In response to receiving the congestion notification message, determine the round trip delay between the data sending device and the data receiving device based on the feedback message.
[0059] The congestion notification message is used to indicate that there is data congestion in the process of the data sending device sending data packets to the data receiving device. Optionally, when the data sending device and the data receiving device each have a congestion control protocol, when there is a data congestion problem in the data transmission between the data sending device and the data receiving device, the data sending device receives the congestion notification message to adjust the data transmission situation.
[0060] In some embodiments, the congestion notification message is a message sent by the data receiving device to the data sending device.
[0061] Optionally, the data receiving device sends a congestion notification message to the data sending device in an implicit manner.
[0062] In an illustrative manner, when the data buffer of the data receiving device is about to reach a preset cache threshold, the data receiving device can adjust the size of the receiving window and write the adjusted receiving window into the feedback message (e.g., there is a window field in the feedback message for writing the receiving window information), that is, the congestion notification message prompts the data sending device by implicitly being reflected in the feedback message.
[0063] Optionally, the data receiving device sends a congestion notification message to the data sending device in an explicit manner.
[0064] Schematically, data packets sent by a data sending device to a data receiving device are forwarded by a data intermediate device, such as at least one of a switch, a routing device, etc.; when the data intermediate device forwards the data packet to the data receiving device, when it detects that the number of data packets waiting to be forwarded at the data packet queuing sequence is greater than a preset queuing threshold, the data intermediate device randomly labels the data packets that need to be forwarded to the data receiving device, and the label is usually implemented as an explicit congestion notification (ECN) tag. The data receiving device generates a congestion notification message based on the data packet with the label and sends it to the data sending device (such as directly sending it to the data sending device, or forwarding it to the data sending device through the data intermediate device, etc.).
[0065] In some embodiments, the congestion notification message is a message sent by a data intermediate device between the data receiving device and the data sending device to the data sending device.
[0066] Schematically, the data intermediate device detects that the number of data packets waiting to be forwarded in the data packet queuing sequence is greater than a preset queuing threshold, and randomly labels the data packets that need to be forwarded to the data receiving device. The data intermediate device generates a congestion notification message based on the labeled data packets and sends the congestion notification message to the data sending device.
[0067] In some embodiments, after receiving the congestion notification message, the data sending device determines the round-trip delay through the feedback message; when the data sending device does not receive the congestion notification message, it receives the feedback message but may not determine the round-trip delay to reduce the amount of data analysis.
[0068] Optionally, the data sending device records the sending time of the data packet when sending the data packet, and then determines the receiving time of the feedback message when receiving the feedback message, and uses the difference between the receiving time and the sending time as the round trip time (RTT).
[0069] Schematically, in the process of sending multiple data packets to the data receiving device, the data sending device records the sending time of each data packet to determine the sending time corresponding to the multiple data packets; then receives the feedback messages corresponding to the multiple data packets and records the receiving time to obtain the receiving time corresponding to the multiple data packets; the recorded sending time and receiving time usually correspond to the packet identifier corresponding to the data packet, so the one-to-one corresponding sending time and receiving time can be determined based on the packet identifier, thereby determining the round-trip delay corresponding to the multiple data packets. Or,
[0070] Optionally, a round trip delay from a data sending device to a data receiving device is accurately measured by a network interface card (NIC) timestamp.
[0071] Schematically, when a data sending device sends a data packet, the network card of the device sending device executes the data sending process, and the network card automatically adds a sending timestamp 1 to the header or metadata of the data packet, and the sending timestamp 1 records the sending time of the data packet (usually the timestamp accuracy of the network card can reach the nanosecond level); when the data packet arrives at the data receiving device, the network card of the data receiving device records the receiving time when the data packet arrives, that is, obtains the receiving timestamp 1; then the network card of the data receiving device records the sending timestamp 2 of the sending feedback message in the same way, and sends the feedback message to the data sending device; the network card of the data sending device records the receiving timestamp 2 of the received feedback message, thereby obtaining the round-trip delay between the data sending device and the data receiving device based on the receiving timestamp 2 and the sending timestamp 1.
[0072] Step 230: When the round-trip delay meets the preset delay condition, a second data sending strategy is adopted to send a data packet to the data receiving device.
[0073] Illustratively, the data sending device compares the round-trip delay determined by analysis with the preset delay condition. When the round-trip time meets the preset delay condition, it adjusts the first data sending strategy for currently sending the data packet and uses the second data sending strategy to send the data packet to the data receiving device.
[0074] The number of first data packets transmitted in a unit time period under the first data sending strategy is greater than the number of second data packets transmitted in a unit time period under the second data sending strategy.
[0075] In an illustrative manner, if the data sending device receives a congestion notification message, it means that there is a congestion problem in the current data transmission process, and therefore the amount of data packets sent in a unit time period needs to be reduced. In this process, the reduction process of the number of transmitted data packets is no longer directly based on the congestion notification message, but the impact of the round-trip delay on the number of data packets sent is additionally considered, and the round-trip delay is compared with the preset delay condition. Only when the round-trip delay meets the preset delay condition will the second data sending strategy be used to send data packets to the data receiving device.
[0076] Optionally, when the round-trip delay meets the preset delay condition, a second data sending strategy is determined based on the preset delay condition, and a data packet is sent to the data receiving device through the second data sending strategy.
[0077] Illustratively, the preset delay condition is a preset delay condition, for example, the preset delay condition is a preset threshold value, or the preset delay condition is a preset value range, etc.
[0078] Optionally, if the round-trip delay meets the preset delay condition, the second data transmission strategy for transmitting the data packet is determined by the preset delay condition. For example, a preset threshold corresponding to the preset delay condition is used as a strategy parameter for determining the second data transmission strategy; or a difference between the preset threshold corresponding to the preset delay condition and the round-trip delay is used as a strategy parameter for determining the second data transmission strategy, etc., which is not limited here.
[0079] It is worth noting that the above are merely illustrative examples and are not limited to the embodiments of the present application.
[0080] In summary, the problem of data congestion can no longer be solved by inserting metadata into data packets through switches, nor can the data packet sending process be adjusted directly by relying solely on congestion notification messages. Instead, the round-trip delay between the data sending device and the data receiving device is continuously analyzed based on the congestion notification message received. Thus, the number of data packets transmitted per unit time is reduced only when both conditions are met. While enriching the dimensions of obtaining network congestion status information, the method of avoiding inserting metadata may not be able to effectively and timely deal with the problem of data congestion, so that the change response speed of the data transmission process is improved through more efficiently obtained congestion notification messages and round-trip delays, the data packet transmission efficiency is improved, and the accuracy of data packet transmission is guaranteed.
[0081] In an optional embodiment, the round-trip delay is compared with the preset delay condition. When the round-trip delay meets the preset delay condition, the second data transmission strategy is used to send the data packet. When the round-trip delay does not meet the preset delay condition, the third data transmission strategy is used to send the data packet. Although the second data transmission strategy and the third data transmission strategy are both used to reduce the number of data packets sent, the preset delay condition provides a more flexible staged adjustment method. Schematically, as Figure 3 As shown above Figure 2 The illustrated step 220 is followed by the following step 310 or step 320 .
[0082] Step 310: When the round-trip delay meets the preset delay condition, a second data sending strategy is used to send a data packet to a data receiving device.
[0083] Illustratively, after receiving the congestion notification message and determining the round trip delay, the round trip delay is compared with a preset delay condition, and if the round trip delay meets the preset delay condition, step 310 is performed to send a data packet to the data receiving device using a second data sending strategy.
[0084] The number of first data packets transmitted in a unit time period under the first data sending strategy is greater than the number of second data packets transmitted in a unit time period under the second data sending strategy.
[0085] The unit time period is a period of time used to measure the time interval, such as a unit time period of 1 second, or a unit time period of 1ms, etc.; the first quantity packet quantity is the number of data packets transmitted by the data sending device using the first data sending strategy; the second quantity packet quantity is the number of data packets transmitted by the data sending device using the second data sending strategy.
[0086] In an optional embodiment, when the round-trip delay reaches a delay threshold, a second data sending strategy is adopted to send a data packet to the data receiving device.
[0087] Among them, the preset delay condition includes a delay threshold.
[0088] Optionally, the delay threshold is a preset numerical condition, the round-trip delay is compared with the preset delay threshold, and the first data sending strategy is changed to the second data sending strategy when the round-trip delay reaches the delay threshold.
[0089] Optionally, the delay threshold is a numerical condition determined periodically based on the data packet transmission process, and the analysis period is a preset period, such as 1 second, 50ms, etc., which is not limited here. Schematically, during the data packet transmission process, the periodic transmission state of the data packet is analyzed at intervals of the analysis period, so as to determine the delay threshold according to the periodic transmission state, so as to use the delay threshold as a better evaluation standard for measuring the round-trip delay.
[0090] Optionally, the delay threshold is a numerical condition determined in real time based on the data packet transmission process. Schematically, the real-time transmission status of the data packet is analyzed during the data packet transmission process, so as to determine the delay threshold according to the real-time transmission status, so as to use the delay threshold as a better and more timely evaluation standard for measuring the round-trip delay.
[0091] In some embodiments, the following description is made by taking analyzing the real-time transmission status of data packets to obtain threshold parameters, and then obtaining the delay threshold through the threshold parameters as an example, wherein the threshold parameters include at least two of the baseline delay threshold, the data queuing delay, and the maximum queuing delay.
[0092] In some embodiments, a reference delay threshold, a data queuing delay, and a maximum queuing delay are obtained.
[0093] The reference delay threshold is used to characterize the minimum round-trip time between a data sending device and a data receiving device during data transmission.
[0094] Schematically, the baseline delay threshold can also be called the baseline round trip time (Base Round Trip Time, BaseRTT). The baseline delay threshold usually depends on the physical characteristics of the network link between the data sending device and the data receiving device. It refers to the minimum delay for transmitting a data packet from the data sending device to the data receiving device in the absence of data congestion. It can also be understood as the minimum round trip delay measured through the network link between the data sending device and the data receiving device under ideal conditions.
[0095] Optionally, the reference delay threshold is estimated using the following formula 1.
[0096] Formula 1:
[0097] Base RTT≈2×propagation delay+transmission delay
[0098] Among them, Propagation Delay refers to the time required for a signal to propagate on a network link, which depends on the signal propagation speed and the physical distance, and is usually implemented as the quotient of the physical distance and the propagation speed. The propagation speed depends on the transmission medium (such as optical fiber, cable, wireless link, etc.); Transmission Delay refers to the time required for a data packet to be transmitted from the network card of the data sending device to the network card of the data receiving device. The transmission delay is related to the data packet size and the link bandwidth, and is usually implemented as the quotient of the data packet size and the link bandwidth.
[0099] In addition, the baseline delay threshold may also be affected by processing delay and queuing delay, that is, the above formula 1 may also be affected by processing delay and queuing delay. Processing delay refers to the time required by data intermediate equipment (such as routing equipment, switches) to forward data packets (including data packet inspection, route calculation, queue management and other operations). Usually, processing delay is relatively small; queuing delay refers to the time that data packets wait for forwarding in the queue of data intermediate equipment. When the network load is high, queuing delay may increase significantly, but the baseline delay threshold is determined assuming that there is no network congestion. Therefore, when calculating the baseline delay threshold, queuing delay can be ignored in ideal conditions.
[0100] The data queuing delay is used to characterize the time that a data packet waits to be processed in the processing sequence when there is data congestion.
[0101] Schematically, data queuing delay can also be called burst-induced queuing delay, which is a delay determined by network traffic conditions, which are usually related to the number of data packets transmitted; when network traffic increases suddenly (data packet transmission increases suddenly), it may cause data packets to queue in the queue of the data intermediate device, causing additional delay; data queuing delay is dynamic and will be affected by factors such as network load, link status, and scheduling strategy in real time. Optionally, to measure data queuing delay in real time, network detection tools (such as ping, traceroute, or traffic detection, etc.) can be used to regularly measure the round-trip delay and queue queuing conditions to determine the data queuing delay.
[0102] Alternatively, even if the network bandwidth has been ideally allocated (meaning that the inbound and outbound traffic rates at the network bottleneck are equal), bursts may still cause instantaneous congestion queues at the micro level, so data queuing delay needs to be considered. Indicatively, studies have shown that as the number of concurrent flows N increases, the average length of the burst queue increases. The number of concurrent flows N represents the number of concurrent operations, tasks, or data flows that are performed simultaneously; the average length is Growth means that as the number of concurrent flows increases, the average number of pending tasks in the queue grows slower, growing at a square root rate. represents the switch queue length; optionally, when the application switch forwards the data packet sent by the data sending device to the data receiving device, the sending rate of the switch is obtained , sending rate Related to the port bandwidth of the switch; if the switch is used to forward multiple data streams (each data stream includes at least one data packet), the sending rate Characterizes the bandwidth allocated to the data stream to be analyzed. If multiple data streams correspond to multiple data sending devices one by one, the data stream to be analyzed can be understood as the data stream transmitted between the currently analyzed data sending device and the data receiving device; With sending rate The quotient of the delay is used as the data queuing delay, etc., which is not limited here.
[0103] The maximum queuing delay is used to represent the maximum allowed time for a data packet to wait for processing in the processing sequence.
[0104] Illustratively, the maximum queuing delay refers to the longest time a data packet waits in a queue, and is used to describe the longest waiting time a data packet may experience when a data sending device sends a data packet to a data receiving device. Optionally, the maximum queuing delay is predicted based on the time when the data packet transmission volume is the largest and the transmission is the most intensive.
[0105] In some embodiments, the delay threshold is determined based on at least two of a reference delay threshold, a data queuing delay, and a maximum queuing delay.
[0106] Optionally, the sum of the baseline delay threshold, the data queuing delay and the maximum queuing delay is used as the delay threshold, that is, the delay threshold can be implemented as the total delay; or, the sum of the baseline delay threshold and the data queuing delay is used as the delay threshold; or, the sum of the baseline delay threshold and the maximum queuing delay is used as the delay threshold; or, the sum of the data queuing delay and the maximum queuing delay is used as the delay threshold, etc.
[0107] Optionally, a weighted sum is performed on the reference delay threshold, the data queuing delay and the maximum queuing delay to obtain the delay threshold; the weighted sum is a process of summing up the three parameters after assigning preset weights.
[0108] Indicatively, the reference delay threshold corresponds to the first weight, the data queuing delay corresponds to the second weight, and the maximum queuing delay corresponds to the third weight. The product of the reference delay threshold and the first weight, the product of the data queuing delay and the second weight, and the product of the maximum queuing delay and the third weight are summed to obtain the delay threshold; or, the product of the reference delay threshold and the first weight and the product of the data queuing delay and the second weight are summed to obtain the delay threshold; or, the product of the reference delay threshold and the first weight and the product of the maximum queuing delay and the third weight are summed to obtain the delay threshold; or, the product of the data queuing delay and the second weight and the product of the maximum queuing delay and the third weight are summed to obtain the delay threshold.
[0109] Optionally, the average value of the benchmark delay threshold, the data queuing delay and the maximum queuing delay is used as the delay threshold; or, the average value of the benchmark delay threshold and the data queuing delay is used as the delay threshold; or, the average value of the benchmark delay threshold and the maximum queuing delay is used as the delay threshold; or, the average value of the data queuing delay and the maximum queuing delay is used as the delay threshold, etc.
[0110] Optionally, a weighted average is performed on the reference delay threshold, the data queuing delay and the maximum queuing delay to obtain the delay threshold.
[0111] Schematically, weighted averaging is a process of assigning preset weights to at least two of the three parameters, performing weighted summation, and then calculating the average.
[0112] Optionally, the reference delay threshold corresponds to the first weight, the data queuing delay corresponds to the second weight, and the maximum queuing delay corresponds to the third weight. The product of the reference delay threshold and the first weight and the product of the data queuing delay and the second weight are summed and averaged to obtain the delay threshold; or, the product of the reference delay threshold and the first weight and the product of the maximum queuing delay and the third weight are summed and averaged to obtain the delay threshold; or, the product of the data queuing delay and the second weight and the product of the maximum queuing delay and the third weight are summed and averaged to obtain the delay threshold; or, the product of the reference delay threshold and the first weight, the product of the data queuing delay and the second weight, and the product of the maximum queuing delay and the third weight are summed and averaged to obtain the delay threshold, etc.
[0113] After the delay threshold is determined based on at least two of the reference delay threshold, the data queuing delay and the maximum queuing delay, the delay threshold is relatively large and can reflect the delay situation with a higher standard.
[0114] It is worth noting that the above are merely illustrative examples and are not limited to the embodiments of the present application.
[0115] In some embodiments, after determining the delay threshold as the preset delay condition based on the above method, if the round-trip delay meets the preset delay condition, it means that the data sending device not only receives the congestion notification message, but also that the round-trip delay is large. Therefore, it is necessary to send data packets to the data receiving device with a second data sending strategy with a larger reduction while reducing the number of data packets sent.
[0116] In some embodiments, when there are multiple data sending devices sending data packets to a data receiving device, the multiple data sending devices may use different data sending strategies to send data packets to the data receiving device, or may use the same data sending strategy to send data packets to the data receiving device, such as the number of data packets sent by the multiple data sending devices to the data receiving device in a unit time period is the same.
[0117] Optionally, taking any one of a plurality of data sending devices as an executor of the data congestion handling method as an example, the plurality of data sending devices respectively receive feedback messages from the data receiving device based on a data packet sending process; therefore, the round-trip delays determined by the plurality of data sending devices based on the respectively received feedback messages also correspond to the data sending device.
[0118] In addition, it is possible that multiple data sending devices all receive congestion notification messages based on the data packet transmission process, or multiple data sending devices all do not receive the congestion notification message. It is also possible that some data sending devices receive the congestion notification message, while the remaining data sending devices do not receive the congestion notification message, etc. Among them, based on the congestion notification message representing the round-trip delay between the data sending device and the data receiving device, the data sending device that receives the congestion notification message represents that there is congestion in the data packet transmission process between the data sending device and the data receiving device. For example: when multiple data sending devices send data packets to the data receiving device, data sending device 1 receives the congestion notification message, which means that there is data congestion in the data packet transmission process between data sending device 1 and the data receiving device; data sending device 2 does not receive the congestion notification message, which means that there is no data congestion in the data packet transmission process between data sending device 2 and the data receiving device, etc., which are not limited here.
[0119] In addition, the preset delay condition used as a comparison with the round-trip delay can also correspond to multiple data sending devices one by one. For example: data sending device 1 corresponds to preset delay condition A, data sending device 2 corresponds to preset delay condition B, etc. If the round-trip delay and the preset delay condition are compared based on the reception of the congestion notification message, the round-trip delay determined by the data sending device that receives the congestion notification message is compared with the corresponding preset delay condition to determine the comparison result. For example: if data sending device 1 receives a congestion notification message, it means that there is data congestion between data sending device 1 and the data receiving device. Therefore, the round-trip delay determined by data sending device 1 is compared with the preset delay condition A to determine the comparison result, that is, whether the round-trip delay corresponding to data sending device 1 meets the preset delay condition A.
[0120] In some embodiments, when there are multiple data sending devices sending data packets to at least two data receiving devices, the multiple data sending devices may use different data sending strategies to send data packets to different data receiving devices, or may use the same data sending strategy to send data packets to different data receiving devices, etc. When analyzing the data congestion situation based on the data sending device, it is still determined based on the one-to-one corresponding data packet transmission relationship between the data sending device and the data receiving device, which is not elaborated here.
[0121] Step 320: When the round-trip delay does not meet the preset delay condition, a third data sending strategy is used to send a data packet to the data receiving device.
[0122] Illustratively, after receiving the congestion notification message and determining the round-trip delay, the round-trip delay is compared with the preset delay condition, and if the round-trip delay does not meet the preset delay condition, step 320 is performed to use the third data sending strategy to send a data packet to the data receiving device.
[0123] In some embodiments, when the round-trip delay does not reach the delay threshold, a third data sending strategy is used to send a data packet to the data receiving device.
[0124] The delay threshold is determined based on at least two of the baseline delay threshold, the data queuing delay and the maximum queuing delay, so the delay threshold is a constraint condition determined by a higher standard; when the data sending device receives a congestion notification message, it means that there is congestion in the data packet sending process. At this time, it is necessary to reduce the number of data packets sent by the data sending device, but the method of reduction is not clear; therefore, a delay threshold comparison process is introduced. If the round-trip delay does not reach the delay threshold, it means that although there is congestion, the round-trip delay is not too large, so the data packet can be sent by reducing a smaller number of data packets, that is, the third data sending strategy is used to send the data packet to the data receiving device.
[0125] Among them, under the third data sending strategy, the number of third data packets transmitted in a unit time period is less than the number of first data packets, and the number of third data packets is greater than the number of second data packets.
[0126] Illustratively, the third data packet number is the number of data packets transmitted in a unit time period under the third data sending strategy, the third data packet number is less than the first data packet number corresponding to the first data sending strategy, and the third data packet number is greater than the second data packet number corresponding to the second data sending strategy.
[0127] For example, under the first data sending strategy, the data sending device sends 1000 data packets to the data receiving device within a unit time period (the number of first data packets is 1000); if the data sending device receives a congestion notification message and the round-trip delay reaches the delay threshold, the second data sending strategy is adopted to send data packets with a larger number of second data packets reduced, such as the data sending device sends 500 data packets to the data receiving device within the unit time period (the number of second data packets is 500, which is 500 less than 1000 within the unit time period); if the data sending device receives the congestion notification message but the round-trip delay does not reach the delay threshold, the third data sending strategy is adopted to send data packets with a smaller number of second data packets reduced, such as the data sending device sends 800 data packets to the data receiving device within the unit time period (the number of third data packets is 800, which is 200 less than 1000 within the unit time period), etc.
[0128] That is, when the data sending device receives the congestion notification message, it does not directly reduce the number of first data packets transmitted in a unit time period based on the congestion notification message, but adjusts the reduction of data packets differentially based on the comparison relationship between the round-trip delay and the delay threshold; when the round-trip delay reaches the delay threshold, it means that the state of data congestion is more obvious, so it is chosen to reduce the number of data packets in a manner of reducing by a larger margin, so that the number of second data packets sent under the second data sending strategy is less than the number of first data packets, and the difference is large (that is, the number of packets sent is reduced by a larger margin); when the round-trip delay does not reach the delay threshold, it means that although there is data congestion, the state of data congestion is not obvious, so it is chosen to reduce the number of data packets in a manner of reducing by a smaller margin, so that the number of third data packets sent under the third data sending strategy is less than the number of first data packets, but greater than the number of second data packets, that is, the difference between the number of third data packets and the number of first data packets is small (that is, the number of packets sent is reduced by a smaller margin), etc.
[0129] It is worth noting that the above are merely illustrative examples and are not limited to the embodiments of the present application.
[0130] To summarize, the round-trip delay between the data sending device and the data receiving device is further analyzed based on the congestion notification message received, so that the number of data packets transmitted per unit time will be reduced when two conditions are met. While enriching the dimensions of obtaining network congestion status information, the method of avoiding inserting metadata may not be able to effectively and timely deal with the problem of data congestion, so as to improve the change response speed of the data transmission process through more efficiently obtained congestion notification messages and round-trip delays, improve the data packet transmission efficiency, and ensure the transmission accuracy of data packets.
[0131] In the embodiment of the present application, the content of sending data packets using different data transmission strategies when the round-trip delay meets the preset delay condition or does not meet the preset delay condition is introduced. Even if a congestion notification message is received and the number of data packets to be sent needs to be reduced, the relationship between the round-trip delay and the preset delay condition will be additionally considered, so that when the preset delay condition is met, the data packet is transmitted with a smaller number of second data packets, and the data congestion problem is promptly alleviated. When the preset delay condition is not met, the data packet is transmitted with a smaller number of third data packets but higher than the second data packet number, avoiding the problem of reduced data packet transmission efficiency due to too few data packets being transmitted, and balancing the relationship between the data congestion problem and the low transmission efficiency problem, so as to try to solve the data congestion problem while ensuring the data packet transmission efficiency.
[0132] In an optional embodiment, the second data sending strategy after the first data sending strategy is adjusted is determined according to the relationship between the round-trip delay and the delay threshold as the preset delay condition. Figure 4 As shown above Figure 2 Step 230 shown or Figure 3 The step 310 shown can also be implemented as the following steps 411 to 412; in addition, the above Figure 3 The step 320 shown may also be implemented as the following steps 421 to 422 .
[0133] Step 411: When the round-trip delay reaches a delay threshold, obtain a delay difference between the round-trip delay and the delay threshold.
[0134] The delay threshold is a preset delay condition. Optionally, the delay threshold is a preset numerical condition; or, the delay threshold is a numerical condition determined in real time; or, the delay threshold is a numerical condition determined periodically, etc.
[0135] Optionally, when the round-trip delay reaches the delay threshold serving as a preset delay condition, it means that the round-trip delay is greater than or equal to the delay threshold. Therefore, the difference between the round-trip delay and the delay threshold is obtained, that is, the delay difference is obtained. The delay difference reflects the extent to which the round-trip delay is greater than the delay threshold, and also reflects the congestion degree of the current data congestion, that is: the larger the delay difference, the greater the congestion degree of the current data congestion, and the smaller the delay difference, the smaller the congestion degree of the current data congestion.
[0136] In an optional embodiment, when the first round-trip delay corresponding to the first data sending device reaches the first delay threshold corresponding to the first data sending device, a first delay difference between the first round-trip delay and the first delay threshold is obtained.
[0137] Optionally, when there are multiple data sending devices sending data packets to a data receiving device, the multiple data sending devices respectively determine a round-trip delay at the current moment; the first data sending device is any one of the multiple data sending devices; the first round-trip delay is the round-trip delay of the first data sending device at the current moment.
[0138] Optionally, multiple data sending devices also correspond to a delay threshold respectively, such as the first data sending device corresponds to the first delay threshold; the round-trip delay is compared with the corresponding delay threshold to determine the delay difference when the round-trip delay reaches the delay threshold, such as comparing the first round-trip delay with the first delay threshold.
[0139] If multiple data sending devices all receive congestion notification messages and their respective round-trip delays meet the corresponding delay thresholds, the multiple data sending devices respectively obtain corresponding delay differences for subsequent adjustments. At this time, the delay differences corresponding to the multiple data sending devices are usually different, so the subsequent adjustment results are also usually different.
[0140] Step 412: determine a second data transmission strategy based on the delay difference as the first transmission reduction ratio, and use the second data transmission strategy to send a data packet to the data receiving device.
[0141] Illustratively, the second data sending strategy for the data sending device to send a data packet to the data receiving device is determined by the delay difference and the first data sending strategy, wherein the delay difference can be regarded as an adjustment parameter for adjusting the first data sending strategy.
[0142] In some embodiments, the delay difference is represented by a timestamp difference. The round-trip delay is information determined based on the sending timestamp and receiving timestamp corresponding to the data sending device, and the delay threshold is also information determined based on the timestamp as a measurement benchmark; therefore, the delay difference determined based on the round-trip delay and the delay threshold is also represented by a timestamp difference.
[0143] Optionally, a first data sending strategy is used to characterize the sending of 1,000 data packets in a unit time period, and the delay difference is used as the first sending reduction ratio, so as to reduce the number of data packets sent in a unit time period based on the first data sending strategy. If the delay difference is 2, the first data sending strategy is adjusted based on the delay difference as the first sending reduction ratio, and a second data sending strategy is obtained to characterize the sending of 500 data packets in a unit time period, wherein the number of first data packets is 1,000 and the number of second data packets is 500.
[0144] In an optional embodiment, the second sending window is determined based on the first sending window and the delay difference.
[0145] The second sending window is smaller than the first sending window.
[0146] Optionally, the delay difference is used as a parameter for adjusting the window size of the first sending window. In an exemplary manner, the quotient of the first sending window and the delay difference is used as the window size of the second sending window, thereby determining a second sending window that is smaller than the first sending window.
[0147] In an optional embodiment, the second data transmission rate is determined based on the first data transmission rate and the delay difference.
[0148] The second data sending rate is lower than the first data sending rate.
[0149] Optionally, the delay difference is used as a parameter for adjusting the first data transmission rate. In an exemplary embodiment, the quotient of the first data transmission rate and the delay difference is used as the second data transmission rate, thereby determining the second data transmission rate that is less than the first data transmission rate.
[0150] In an optional embodiment, at least one of a second sending window and a second data sending rate is used to send a data packet to a data receiving device.
[0151] In some embodiments, data packets are sent to the data receiving device at the second sending window and the first data sending rate.
[0152] Schematically, when a data sending device sends data packets to a data receiving device, the data sending device maintains a first data sending rate unchanged and uses a second sending window to send data packets to the data receiving device; wherein the window size of the second sending window is reduced relative to the window size of the first sending window, so that the number of second data packets sent using the second sending window and the first data sending rate is less than the number of first data packets sent using the first sending window and the first data sending rate.
[0153] In some embodiments, data packets are sent to a data receiving device at a first sending window and a second data sending rate.
[0154] Schematically, when a data sending device sends data packets to a data receiving device, the data sending device maintains a first sending window unchanged and uses a second data sending rate to send data packets to the data receiving device; wherein the second data sending rate is reduced relative to the first data sending rate, so that the number of second data packets sent using the first sending window and the second data sending rate is less than the number of first data packets sent using the first sending window and the first data sending rate.
[0155] In some embodiments, a data packet is sent to a data receiving device using a second sending window and a second data sending strategy.
[0156] Schematically, when a data sending device sends data packets to a data receiving device, the data sending device uses an adjusted second sending window and an adjusted second data sending rate to send data packets to the data receiving device; wherein the second data sending rate is reduced relative to the first data sending rate, and the window size of the second sending window is reduced relative to the window size of the first sending window, so that the number of second data packets sent using the second sending window and the second data sending rate is less than the number of first data packets sent using the first sending window and the first data sending rate.
[0157] In an optional embodiment, the first delay difference is used as the first transmission reduction ratio to determine the second data transmission strategy corresponding to the first data transmitting device, and the second data transmission strategy is used to send the data packet to the data receiving device.
[0158] Illustratively, the first delay difference is a delay difference determined by the first data sending device when there are multiple data sending devices sending data packets to a data receiving device; the first delay difference is used as a first sending reduction ratio to determine a second data sending strategy corresponding to the first data sending device, so that the first data sending device adopts the second data sending strategy determined based on the first delay difference to send data packets.
[0159] Step 421: When the round-trip delay does not meet the preset delay condition, obtain a first adjustment ratio.
[0160] In some embodiments, the first adjustment ratio is obtained when the round-trip delay does not reach a delay threshold, and the delay threshold is a preset delay condition.
[0161] Optionally, when the round-trip delay does not reach the delay threshold used as a preset delay condition, it represents that the round-trip delay is less than the delay threshold. Therefore, although the congestion notification message indicates that there is congestion in the data packet sending process, the current situation in which the round-trip delay does not reach the delay threshold indicates that the current congestion level is relatively small. Therefore, although the number of data packets sent by the data sending device needs to be reduced, no major adjustments are required.
[0162] Optionally, the first adjustment ratio is preset data used to slightly reduce the number of first data packets. Schematically, the first adjustment ratio is a decimal slightly less than 1, such as the first adjustment ratio is 0.9, 0.95, etc., in which case the first adjustment ratio can be adjusted by multiplication or the like; or the first adjustment ratio is a value greater than 1, such as the first adjustment ratio is 1.2, 1.5, 2, etc. in which case the first adjustment ratio can be adjusted by division or the like.
[0163] In an optional embodiment, the first adjustment ratio obtained by the first data sending device is the same as the adjustment ratio obtained by the second data sending device under the condition that the second round-trip delay does not meet the preset delay.
[0164] Among them, the second data sending device is a data sending device used to send data packets to the data receiving device, that is, the second data sending device is another data sending device different from the first data sending device among the multiple data sending devices; the second data sending device corresponds to the second round-trip delay, and may also correspond to the second delay threshold. If the second round-trip delay does not reach the second round-trip delay, the first data sending strategy is also adjusted through the first adjustment ratio to obtain the second data sending strategy corresponding to the second data sending device.
[0165] That is, when there are multiple data sending devices sending data packets to one data receiving device, based on the data packet transmission process between the multiple data sending devices and the data receiving device, the delay thresholds corresponding to the multiple data sending devices are determined; the multiple data sending devices can respectively correspond to the same first adjustment ratio, so as to adopt a fair speed reduction method to adjust the data packet sending situation in equal proportion.
[0166] Step 422: determine a third data transmission strategy with the first adjustment ratio as the second transmission reduction ratio, and use the third data transmission strategy to send a data packet to the data receiving device.
[0167] Illustratively, a third data sending strategy for the data sending device to send a data packet to the data receiving device is determined by the first adjustment ratio and the first data sending strategy, wherein the first adjustment ratio can be regarded as an adjustment parameter for adjusting the first data sending strategy.
[0168] In some embodiments, the first adjustment ratio is represented by a decimal less than 1, and the product of the number of first data packets sent in a unit time period under the first data sending strategy and the first adjustment ratio is used as the number of third data packets sent by the data sending device to the data receiving device under the third data sending strategy.
[0169] Optionally, the first data sending strategy is used to characterize the sending of 1000 data packets in a unit time period, and the first adjustment ratio is used as the second sending reduction ratio to reduce the number of data packets sent in a unit time period based on the first data sending strategy. If the first adjustment ratio is 0.9, the first data sending strategy is adjusted with the first adjustment ratio as the second sending reduction ratio to obtain a third data sending strategy for characterizing the sending of 900 data packets in a unit time period, wherein the number of first data packets is 1000 and the number of third data packets is 900.
[0170] In some embodiments, the first adjustment ratio is represented by a numerical value (integer or decimal) greater than 1, and the quotient of the number of first data packets sent in a unit time period under the first data sending strategy and the first adjustment ratio is used as the number of third data packets sent by the data sending device to the data receiving device under the third data sending strategy, etc., which is not limited here.
[0171] In an optional embodiment, the third sending window is determined based on the first sending window and the first adjustment ratio.
[0172] The third sending window is smaller than the first sending window and larger than the second sending window.
[0173] Optionally, the first adjustment ratio is used as a parameter for adjusting the window size of the first sending window. In an illustrative example, taking the first adjustment ratio as a decimal less than 1 as an example, the product of the first sending window and the first adjustment ratio is used as the window size of the third sending window, thereby determining a third sending window that is smaller than the first sending window and larger than the second sending window.
[0174] In an optional embodiment, the third data sending rate is determined based on the first data sending rate and the first adjustment ratio.
[0175] The third data sending rate is lower than the first data sending rate and higher than the second data sending rate.
[0176] Optionally, the first adjustment ratio is used as a parameter for adjusting the first data transmission rate. In an exemplary embodiment, the quotient of the first data transmission rate and the first adjustment ratio is used as the third data transmission rate, thereby determining the third data transmission rate that is less than the first data transmission rate and greater than the second data transmission rate.
[0177] In an optional embodiment, at least one of a third sending window and a third data sending rate is used to send a data packet to a data receiving device.
[0178] In some embodiments, a data packet is sent to a data receiving device at a third sending window and a first data sending rate.
[0179] Schematically, when a data sending device sends data packets to a data receiving device, the data sending device maintains a first data sending rate unchanged and uses a third sending window to send data packets to the data receiving device; the number of third data packets sent using the third sending window and the first data sending rate is less than the number of first data packets determined to be sent using the first sending window and the first data sending rate.
[0180] In some embodiments, a data packet is sent to a data receiving device at a first sending window and a third data sending rate.
[0181] Schematically, when a data sending device sends data packets to a data receiving device, the data sending device maintains a first sending window unchanged and uses a third data sending rate to send data packets to the data receiving device; the number of third data packets sent using the first sending window and the third data sending rate is less than the number of first data packets determined to be sent using the first sending window and the first data sending rate.
[0182] In some embodiments, a data packet is sent to a data receiving device using a third sending window and a third data sending strategy.
[0183] Schematically, when a data sending device sends data packets to a data receiving device, the data sending device uses an adjusted third sending window and an adjusted third data sending rate to send data packets to the data receiving device; the number of third data packets sent using the third sending window and the third data sending rate is less than the number of first data packets determined to be sent using the first sending window and the first data sending rate.
[0184] It is worth noting that the above are merely illustrative examples and are not limited to the embodiments of the present application.
[0185] In summary, the problem of data congestion can no longer be solved by inserting metadata into data packets through switches, nor can the data packet sending process be adjusted directly by relying solely on congestion notification messages. Instead, the round-trip delay between the data sending device and the data receiving device is continuously analyzed based on the congestion notification message received. Thus, the number of data packets transmitted per unit time is reduced only when both conditions are met. While enriching the dimensions of obtaining network congestion status information, the method of avoiding inserting metadata may not be able to effectively and timely deal with the problem of data congestion, so that the change response speed of the data transmission process is improved through more efficiently obtained congestion notification messages and round-trip delays, the data packet transmission efficiency is improved, and the accuracy of data packet transmission is guaranteed.
[0186] In an embodiment of the present application, a method for determining a second data transmission strategy and a third data transmission strategy when the round-trip delay reaches a delay threshold or does not reach the delay threshold is introduced; if the round-trip delay reaches the delay threshold as a preset delay condition, the number of first data packets can be targetedly reduced in a large-scale adjustment manner through the delay difference, and the second number of data packets can be used to send data packets. This method also helps to adjust the corresponding first data sending strategy in a targeted manner through the delay differences corresponding to different data sending devices, so that multiple data sending devices use a more appropriate second number of data packets to send data packets to a data receiving device; if the round-trip delay does not reach the delay threshold, the number of first data packets can be preset. Reduce the adjustment method is reduced in a smaller amount, and send the data packet using the third number of data packets corresponding to the third data sending strategy. This method also helps to use the first adjustment parameter of fairness through different data sending devices to adjust the corresponding first data sending strategy in a targeted manner; the phased data packet sending logic facilitates more targeted and reasonable adjustment of the data packet sending situation.
[0187] In an optional embodiment, if no congestion notification message is received within the first time period, a fourth data transmission strategy for transmitting a larger number of data packets is adopted to send data packets to the data receiving device. Figure 5 As shown above Figure 2 The illustrated step 210 may be followed by the following step 510 or step 520 .
[0188] Step 510: In response to receiving a congestion notification message within a first time period, determine a round trip delay between a data sending device and a data receiving device based on a feedback message.
[0189] The congestion notification message is used to indicate that data congestion exists in the process of a data sending device sending a data packet to a data receiving device.
[0190] In an illustrative manner, the first duration is a preset duration threshold. Optionally, the cumulative duration is counted starting from any time, and if the data sending device receives a congestion notification message when the cumulative duration does not reach the first duration, it means that there is data congestion between the data sending device and the data receiving device within the preset first duration, and therefore the round-trip delay is determined based on the feedback message fed back by the data receiving device.
[0191] Step 520: In response to not receiving a congestion notification message within the first time period, use a fourth data sending strategy to send a data packet to the data receiving device.
[0192] The number of fourth data packets transmitted under the fourth data sending strategy is greater than the number of first data packets transmitted under the first data sending strategy.
[0193] In some embodiments, the first duration is a preset duration threshold for increasing the number of data packets sent by the data sending device to the data transmission device; if the data sending device does not receive a congestion notification message within the first duration, it means that no data congestion is detected between the data sending device and the data receiving device within the first duration. At this time, the number of first data packets sent under the first data sending strategy will not cause a burden on network transmission, and therefore the number of data packets sent can be increased in a timely manner to improve data packet transmission efficiency.
[0194] In an optional embodiment, in response to not receiving a congestion notification message within the first time period, a second adjustment ratio is obtained.
[0195] Indicatively, the second adjustment ratio is a ratio for increasing the number of data packets sent by the data transmission device. Indicatively, the second adjustment ratio is a decimal slightly less than 1, and in this case, the adjustment can be made by division or the like based on the first adjustment ratio; or, the first adjustment ratio is a value greater than 1, and in this case, the adjustment can be made by multiplication or the like based on the first adjustment ratio, etc., which is not limited here.
[0196] In an optional embodiment, a fourth data sending strategy is determined based on the second adjustment ratio as the third data packet sending reduction ratio, and the fourth data sending strategy is used to send the data packet to the data receiving device.
[0197] Illustratively, the fourth data sending strategy for the data sending device to send a data packet to the data receiving device is determined by the second adjustment ratio and the first data sending strategy, wherein the second adjustment ratio can be regarded as an adjustment parameter for adjusting the first data sending strategy.
[0198] In some embodiments, the second adjustment ratio is represented by a decimal less than 1, and the quotient of the number of first data packets sent in a unit time period under the first data sending strategy and the first adjustment ratio is used as the number of fourth data packets sent by the data sending device to the data receiving device under the fourth data sending strategy.
[0199] In some embodiments, the second adjustment ratio is represented by a numerical value (integer or decimal) greater than 1, and the product of the number of first data packets sent in a unit time period under the first data sending strategy and the second adjustment ratio is used as the number of fourth data packets sent by the data sending device to the data receiving device under the fourth data sending strategy, etc., which is not limited here.
[0200] In an optional embodiment, the fourth sending window is determined based on the first sending window and the second adjustment ratio.
[0201] The fourth sending window is larger than the first sending window.
[0202] Optionally, the second adjustment ratio is used as a parameter for adjusting the window size of the second sending window. Schematically, taking the second adjustment ratio as a decimal less than 1 as an example, the quotient of the first sending window and the second adjustment ratio is used as the window size of the fourth sending window.
[0203] In an optional embodiment, the fourth data sending rate is determined based on the first data sending rate and the second adjustment ratio.
[0204] The fourth data sending strategy is lower than the first data sending rate and higher than the second data sending rate.
[0205] Optionally, the second adjustment ratio is used as a parameter for adjusting the first data transmission rate. Schematically, the quotient of the first data transmission rate and the second adjustment ratio is used as the fourth data transmission rate.
[0206] In an optional embodiment, at least one of a fourth sending window and a fourth data sending rate is used to send a data packet to a data receiving device.
[0207] In some embodiments, a data packet is sent to a data receiving device at a fourth sending window and a first data sending rate.
[0208] Illustratively, when a data sending device sends data packets to a data receiving device, the data sending device maintains a first data sending rate unchanged and uses a fourth sending window to send data packets to the data receiving device; the number of fourth data packets to be sent is determined using the fourth sending window and the first data sending rate.
[0209] In some embodiments, data packets are sent to the data receiving device at a first sending window and a fourth data sending rate.
[0210] Illustratively, when a data sending device sends data packets to a data receiving device, the data sending device maintains a first sending window unchanged and uses a fourth data sending rate to send data packets to the data receiving device; and determines a fourth number of data packets to be sent based on the first sending window and the fourth data sending rate.
[0211] In some embodiments, a data packet is sent to a data receiving device using a fourth sending window and a fourth data sending strategy.
[0212] Illustratively, when a data sending device sends data packets to a data receiving device, the data sending device uses an adjusted fourth sending window and an adjusted fourth data sending rate to send data packets to the data receiving device; and determines the fourth number of data packets to be sent using the fourth sending window and the fourth data sending rate.
[0213] It is worth noting that the above are merely illustrative examples and are not limited to the embodiments of the present application.
[0214] In an optional embodiment, in response to not receiving a congestion notification message within a second time period after the first time period, and the round-trip delay corresponding to the end time corresponding to the second time period does not meet the preset delay condition, a fifth data sending strategy is adopted to send a data packet to the data receiving device.
[0215] Illustratively, the second duration is a preset time period, and the second duration may be equal to the first duration or may be different from the first duration, which is not limited here.
[0216] Optionally, the second duration is determined based on a delay threshold as a preset delay condition. For example, the second duration is a preset multiple of the delay threshold, such as the second duration is 3 times the delay threshold, or the second duration is 1 times the delay threshold (i.e., the second duration is the delay threshold), etc., which is not limited here.
[0217] In some embodiments, if no congestion notification message is received within a first time period, and no congestion notification message is received within a second time period after the first time period, the round-trip delay at the termination time corresponding to the second time period is analyzed; and the round-trip delay at the termination time is compared with the preset delay condition.
[0218] Optionally, the round-trip delay is a delay condition determined based on the data packet, and if the congestion notification message is still not received within the second time period, the termination time corresponding to the second time period and at least one round-trip delay counted at the termination time are determined. Indicatively, a round-trip delay most recently counted at the termination time is compared with a preset delay condition, or a round-trip delay average of at least one round-trip delay counted at the termination time is compared with the preset delay condition.
[0219] Optionally, taking the preset delay condition as the delay threshold as an example, if the round-trip delay counted at the termination time does not reach the delay threshold, it means that the current data packet transmission is good, so the number of data packets sent can continue to be increased, that is, the fifth data sending strategy is adopted to send data packets to the data receiving device.
[0220] The number of fifth data packets transmitted under the fifth data sending strategy is greater than the number of fourth data packets transmitted under the fourth data sending strategy.
[0221] In some embodiments, a multiplication speed-up method is used to quickly increase the sending window and / or the data sending rate. Optionally, a multiplication speed-up method is used to determine a fifth sending window based on a fourth sending window under a fourth data sending strategy, a multiplication speed-up method is used to determine a fifth data sending rate based on a fourth data sending rate under a fourth data sending strategy, and a fifth sending window and / or a fifth data sending strategy are used to send data packets.
[0222] Schematically, multiplicative increase is a method of rapidly increasing the number of data packets sent when the network condition is good to maximize bandwidth utilization; under multiplicative increase, the number of data packets sent increases by a constant multiple in each "non-congested" stage, usually after a period of time or after receiving confirmation, that is, the number of data packets will increase exponentially.
[0223] Indicatively, in response to not receiving a congestion notification message within a second time period after the first time period, and the round trip delay corresponding to the end time corresponding to the second time period does not reach the delay threshold, after each preset number of feedback messages are received after the second time period, the number of data packets sent is multiplied by a preset multiple (such as the preset multiple is 2), thereby achieving rapid bandwidth utilization. For example: after the second time period, after each 50 feedback messages are received, the number of data packets sent is multiplied by a preset multiple (such as the preset multiple is 2), such as multiplying the number of data packets currently sent, 50, by the preset multiple 2, to send 100 data packets under the fifth data sending strategy, etc., which is not limited here.
[0224] It is worth noting that the above are merely illustrative examples and are not limited to the embodiments of the present application.
[0225] In summary, the problem of data congestion can no longer be solved by inserting metadata into data packets through switches, nor can the data packet sending process be adjusted directly by relying solely on congestion notification messages. Instead, the round-trip delay between the data sending device and the data receiving device is continuously analyzed based on the congestion notification message received. Thus, the number of data packets transmitted per unit time is reduced only when both conditions are met. While enriching the dimensions of obtaining network congestion status information, the method of avoiding inserting metadata may not be able to effectively and timely deal with the problem of data congestion, so that the change response speed of the data transmission process is improved through more efficiently obtained congestion notification messages and round-trip delays, the data packet transmission efficiency is improved, and the accuracy of data packet transmission is guaranteed.
[0226] In the embodiment of the present application, the content of increasing the number of data packets sent based on the first time length is introduced. If no congestion notification message is received within the first time length, it means that there is no data congestion problem between the data sending device and the data receiving device, so more fourth data packets can be used to send data packets between the data sending device and the data receiving device based on the first data packet number; in addition, if no congestion notification message is received within the second time length after the first time length, more fifth data packets can be used to send data packets between the data sending device and the data receiving device, so as to achieve the purpose of flexible data packet sending and facilitate more use of the current network environment to fully and efficiently achieve the purpose of data transmission.
[0227] In an optional embodiment, the above-mentioned data congestion processing method is called "a congestion control algorithm design method based on a programmable congestion control framework (PCC) of a smart network card". When a data sending device and a data receiving device perform data packet transmission, the data packet forwarded by the data sending device to the data receiving device is forwarded through a switch. The data sending device implements the data packet sending process through a sending-end network card, and the data receiving device receives the data packet through a receiving-end network card. The switch can assist in determining the congestion situation during the data packet transmission process. Schematically, as shown in FIG. Figure 6 The figure shows the architecture diagram of the flow control mechanism.
[0228] PCC is used to dynamically adjust network traffic in a programmable manner to deal with network congestion problems, thereby ensuring network performance; schematically, Figure 6 As shown, a congestion control algorithm is designed under a programmable congestion framework and written into the algorithm code 610 .
[0229] Optionally, congestion control algorithms usually involve two parts of problems, namely: a method for detecting congestion, and a method for responding to congestion.
[0230] Indicatively, in the process of solving the above two problems, two congestion feedback signals are mainly relied on, namely, CNP messages (congestion notification messages) triggered by ECN marking and RTT delay (round-trip time delay). In addition, NACK messages or timeout signals can also reduce the flow rate (that is, the number of data packets sent by the data sending device decreases). This backup mechanism allows the congestion control algorithm to run on lossy Ethernet; lossy Ethernet is a situation in which data packets are lost or damaged in the Ethernet network due to network environment, equipment failure, interference or other reasons.
[0231] The CNP message triggered by the ECN mark can also be called an ECN signal, indicating that when the queue in the switch exceeds a certain threshold (that is, the number of data packets in the queue exceeds the preset number threshold), the switch will mark the data packets with ECN marks at a certain probability in the egress queue. When the data receiving device receives the message with the ECN mark, it will return a CNP message to the data sending device.
[0232] The round-trip delay can be called the RTT signal. The NIC timestamp can be used to accurately measure the time required from the data sending device sending a data packet to receiving a feedback message (ACK) corresponding to the data packet, that is, the end-to-end round-trip delay. The data packet and the feedback message can be implemented as a one-to-one relationship or a many-to-one relationship, such as receiving a feedback message after sending multiple data packets. The feedback message usually includes an RTT signal. When multiple data packets correspond to one feedback message, the feedback message can include RTT signals corresponding to multiple data packets, which is not limited here.
[0233] Optionally, the network congestion can be more accurately determined by comparing the measured dynamic RTT with the delay threshold (Target RTT). That is, instead of selecting ECN signals or RTT signals alone, the two are combined, and the ECN signal is used as a per-hop switch signal, which can feedback congestion more promptly to effectively prevent packet loss (i.e., the congestion notification message is used as a trigger to reduce the number of data packets sent); and the RTT signal, as a more precise and fine-grained congestion signal, can more accurately estimate the congestion situation and control the end-to-end queuing delay, and the RTT signal is not affected by the randomness of the ECN signal determination (the content randomly marked with ECN as characterized above), which also improves the fairness of the algorithm.
[0234] In the process of comparing the round-trip delay with the delay threshold, the setting of the delay threshold is very critical because it determines the utilization of the network bandwidth. Optionally, the delay threshold is composed of three parts: BaseRTT, queuing delay caused by bursts, and maximum allowed queuing delay. Among them, the queuing delay caused by bursts is considered because even if the network bandwidth has been ideally allocated, it may still cause instantaneous congestion queues due to bursts at the micro level. The delay threshold composed of BaseRTT, queuing delay caused by bursts, and maximum allowed queuing delay can more comprehensively reflect the delay status and avoid the limitations that may be caused by relying solely on a single factor to analyze the delay situation.
[0235] In some embodiments, a data sending device transmits a data packet through a sending pipe 621. If the data sending device implements the data packet sending process through a deployed sending-end network card, the sending pipe 621 refers to the sending-end network card, and the sending pipe 621 has a traffic database (Rate Database, Rate DB) for managing the sending of data packets; a device receiving device transmits a data packet through a receiving pipe 622. If the data receiving device implements the data packet receiving process through a deployed receiving-end network card, the receiving pipe 622 refers to the receiving-end network card; a PCC framework is provided in each of the sending-end network card and the receiving-end network card, and the traffic rate control logic of each event can be defined in the PCC framework.
[0236] Optionally, in the PCC framework, all signals can be abstracted into a series of events. Events are the basis for the algorithm to make decisions such as status updates, flow control, and congestion management, making it easier to make more precise adjustments based on the real-time status of the network.
[0237] like Figure 6 As shown, every time the sending pipeline 621 sends a certain amount of data packets, it passes a transmission event (Transmission, TX) signal to the event sequence 630 to be converted into an event, thereby passing the corresponding transmission event to the algorithm code 610, which is used to indicate that the data sending device has sent a certain number of data packets or completed the transmission of a certain data packet, so as to serve as feedback in the congestion control algorithm for policy adjustment.
[0238] In addition, the receiving pipeline 622 can also send CNP messages, ACK messages, NACK messages or RTT signals to the event sequence 630, thereby passing the corresponding events to the algorithm code 610. Usually, event processing is usually completed through the transport layer protocol stack or congestion control algorithm. For example, the receiving end network card is responsible for receiving these messages and passing them to the upper layer of the protocol stack (such as TCP, QUIC or other congestion control mechanisms), and then generating corresponding events based on this information, thereby triggering subsequent congestion control algorithm adjustments.
[0239] At the algorithm code 610, the sending rate of the network card at the sending end is adjusted by calling different event processing functions in the algorithm, that is, the number of data packets sent is adjusted; the algorithm code 610 can be deployed at a server other than the data sending device and the data receiving device, or at the data sending device, or at the data receiving device, which is not limited here. The event processing of the algorithm code 610 in different situations is described below.
[0240] Optionally, a CNP event is triggered based on a CNP message, indicating that congestion occurs in the current network, and the CNP event is sent to the algorithm code 610; the receiving end network card can record the timestamp at this time to determine the round-trip delay, and send the round-trip delay to the algorithm code 610, so as to achieve speed reduction in combination with the round-trip delay.
[0241] Indicatively, if the round-trip delay is also greater than the delay threshold at this time, it means that the network is seriously congested. The multi-bit information of RTT at this time (multi-bit information refers to the information carried by multiple data bits or multiple data packets during network transmission and their corresponding RTT measurement results, etc.) can be used to adopt a multiplication speed reduction method to proportionally and quickly reduce the sending window and data sending rate according to the difference between the dynamic round-trip delay and the delay threshold, so as to reduce network queuing delay.
[0242] Indicatively, if the round-trip delay is less than the delay threshold at this time, it means that the network has just begun to be congested, and a fair speed reduction method is adopted to slowly reduce the sending window and the data sending rate to ensure high throughput of the network.
[0243] Indicatively, if the receiving end network card does not generate and send CNP messages for a certain period of time, the speed will be increased. When the speed is initially increased, a fair speed increase method can be used to slowly increase the sending window and data sending rate to prevent congestion again.
[0244] Indicatively, when no CNP message is received within the second time length of three consecutive delay thresholds and the latest recorded round-trip threshold is less than the delay threshold, it indicates that the network has insufficient throughput. The multiplication speed-up method is used to quickly increase the sending window and data sending rate to ensure high throughput of the network.
[0245] like Figure 6As shown, the algorithm code 610 receives the communication event sent by the event sequence 630; taking the algorithm code deployed in a cluster composed of multiple processor cores as an example, the cluster composed of multiple processor cores can interact with a context information repository (Context Database) to obtain or store context information related to policy adjustment (such as time information at the current moment, device status information of the data sending device and / or the data receiving device, etc.); then, based on the above analysis process, the first data sending strategy can be adjusted to other data sending strategies (such as the second data sending strategy, the third data sending strategy, the fourth data sending strategy, and the fifth data sending strategy), and the adjusted other data sending strategies can be sent to the data sending device (such as the sending pipe 621 of the sending end network card), so that the data sending device updates the transmission rate based on the other data sending strategies to achieve the purpose of adjusting the data packet sending amount. In addition, the adjusted other data sending strategies can also be stored in the context information repository, which is not limited here.
[0246] It is worth noting that the above algorithm chooses to use a combination of rate-based and window-based methods for congestion control; maintaining the window value is to prevent the delay of congestion feedback signals from exacerbating network congestion; the above algorithm can achieve finer-grained adjustments and faster convergence, and can also ensure the fairness of concurrent flows in the presence of multiple data sending devices.
[0247] In an optional embodiment, if Figure 7 As shown in the figure, it is a schematic diagram of many-to-one test under simple topology. Many-to-one test is a test method that measures the round-trip delay by sending multiple data packets (multi-bit information) and observes the performance of the network under high load. Many-to-one refers to the process of multiple senders sending to one receiver. For example, two-to-one refers to the process of two senders sending data packets to one receiver.
[0248] Thanks to the accurate judgment and rapid response to the network congestion status, the method 710 provided in the embodiment of the present application has demonstrated performance that exceeds that of the congestion control algorithms implemented by related technologies [such as the congestion management method in the data center network (Data Center Quantized Congestion Notification, DCQCN), the data center congestion control protocol (Swift Congestion Control, Swift)], and the bandwidth utilization rate is always close to 100%, while achieving ultra-low latency.
[0249] In an optional embodiment, if Figure 8As shown, in the long-distance communication scenario, the method 810 provided in the embodiment of the present application also shows a performance that is better than the related technology for implementing congestion control algorithms (such as DCQCN), and the bandwidth utilization rate is improved by 10%-30%. While the bandwidth utilization rate is improved, it can also maintain a lower latency.
[0250] It is worth noting that the above are merely illustrative examples and are not limited to the embodiments of the present application.
[0251] In summary, the problem of data congestion can no longer be solved by inserting metadata into data packets through switches, nor can the data packet sending process be adjusted directly by relying solely on congestion notification messages. Instead, the round-trip delay between the data sending device and the data receiving device is continuously analyzed based on the congestion notification message received. Thus, the number of data packets transmitted per unit time is reduced only when both conditions are met. While enriching the dimensions of obtaining network congestion status information, the method of avoiding inserting metadata may not be able to effectively and timely deal with the problem of data congestion, so that the change response speed of the data transmission process is improved through more efficiently obtained congestion notification messages and round-trip delays, the data packet transmission efficiency is improved, and the accuracy of data packet transmission is guaranteed.
[0252] In the embodiment of the present application, in addition to using the ECN signal, the RTT signal is additionally introduced to obtain richer network congestion status information, and the rate control is transformed into window control. Even if the congestion signal feedback is slow, it limits the data that the sending network card can inject into the network; in addition, the fixed period is adjusted once and optimized to make adjustments for each feedback message. This small-step and fast-running approach can make the response to changes in network status faster.
[0253] Fig. 9 is a structural block diagram of a data congestion processing device provided by an exemplary embodiment of the present application, such as Fig. 9 As shown, the device includes the following parts:
[0254] The receiving module 910 is used to receive a feedback message sent by the data receiving device during the process of sending a data packet to the data receiving device according to the first data sending strategy, wherein the feedback message is information fed back by the data receiving device to the data sending device based on the received data packet;
[0255] A determination module 920, configured to determine, in response to receiving a congestion notification message, a round trip delay between the data sending device and the data receiving device based on the feedback message, wherein the congestion notification message is used to indicate that there is data congestion in the process of the data sending device sending a data packet to the data receiving device;
[0256] The sending module 930 is used to send data packets to the data receiving device by adopting a second data sending strategy when the round-trip delay meets the preset delay condition; wherein the number of first data packets transmitted in a unit time period under the first data sending strategy is greater than the number of second data packets transmitted in the unit time period under the second data sending strategy.
[0257] In an optional embodiment, the sending module 930 is also used to adopt a third data sending strategy to send data packets to the data receiving device when the round-trip delay does not meet the preset delay condition; wherein, under the third data sending strategy, the number of third data packets transmitted in the unit time period is less than the number of first data packets, and the number of third data packets is greater than the number of second data packets.
[0258] In an optional embodiment, the sending module 930 is further used to adopt the second data sending strategy to send a data packet to the data receiving device when the round-trip delay reaches a delay threshold, and the preset delay condition includes the delay threshold.
[0259] In an optional embodiment, the sending module 930 is also used to obtain a benchmark delay threshold, a data queuing delay and a maximum queuing delay, wherein the benchmark delay threshold is used to characterize the minimum round-trip time between the data sending device and the data receiving device during the data transmission process; the data queuing delay is used to characterize the time a data packet waits to be processed in a processing sequence in the presence of data congestion, and the maximum queuing delay is used to characterize the maximum allowed time a data packet waits to be processed in the processing sequence; the delay threshold is determined based on at least two of the benchmark delay threshold, the data queuing delay and the maximum queuing delay.
[0260] In an optional embodiment, the sending module 930 is further used to take the sum of the benchmark delay threshold, the data queuing delay and the maximum queuing delay as the delay threshold; or, perform weighted summation on the benchmark delay threshold, the data queuing delay and the maximum queuing delay to obtain the delay threshold.
[0261] In an optional embodiment, the sending module 930 is also used to obtain the delay difference between the round-trip delay and the delay threshold when the round-trip delay reaches the delay threshold, and the delay threshold is the preset delay condition; use the delay difference as the first sending reduction ratio to determine the second data sending strategy, and use the second data sending strategy to send a data packet to the data receiving device.
[0262] In an optional embodiment, the first data sending strategy corresponds to a first sending window and a first data sending rate;
[0263] The sending module 930 is also used to determine a second sending window based on the first sending window and the delay difference, the second sending window is smaller than the first sending window; determine a second data sending rate based on the first data sending rate and the delay difference, the second data sending rate is smaller than the first data sending rate; and use at least one of the second sending window and the second data sending rate to send a data packet to the data receiving device.
[0264] In an optional embodiment, the sending module 930 is also used to send data packets to the data receiving device at the second sending window and the first data sending rate; or, to send data packets to the data receiving device at the first sending window and the second data sending rate; or, to send data packets to the data receiving device at the second sending window and the second data sending rate.
[0265] In an optional embodiment, the sending module 930 is also used to obtain a first delay difference between the first round-trip delay and the first delay threshold when the first round-trip delay corresponding to the first data sending device reaches the first delay threshold corresponding to the first data sending device; determine the second data sending strategy corresponding to the first data sending device using the first delay difference as the first sending reduction ratio; and use the second data sending strategy to send a data packet to the data receiving device.
[0266] In an optional embodiment, the sending module 930 is also used to obtain a first adjustment ratio when the round-trip delay does not meet the preset delay condition; determine the third data sending strategy using the first adjustment ratio as the second sending reduction ratio; and use the third data sending strategy to send a data packet to a data receiving device.
[0267] In an optional embodiment, the first adjustment ratio obtained by the first data sending device is the same as the adjustment ratio obtained by the second data sending device under the condition that the second round-trip delay does not meet the preset delay condition; the second data sending device is a data sending device used to send data packets to the data receiving device.
[0268] In an optional embodiment, the sending module 930 is also used to send data packets to the data receiving device using a fourth data sending strategy in response to not receiving the congestion notification message within the first time period; wherein the number of fourth data packets transmitted under the fourth data sending strategy is greater than the number of first data packets transmitted under the first data sending strategy.
[0269] In an optional embodiment, the sending module 930 is also used to obtain a second adjustment ratio in response to not receiving the congestion notification message within the first time period; determine a fourth sending window based on the first sending window and the second adjustment ratio, and the fourth sending window is larger than the first sending window; determine a fourth data sending rate based on the first data sending rate and the second adjustment ratio, and the fourth data sending rate is larger than the first data sending rate, and the first data sending strategy corresponds to the first sending window and the first data sending rate; and use at least one of the fourth sending window and the fourth data sending rate to send a data packet to the data receiving device.
[0270] In an optional embodiment, the sending module 930 is also used to send data packets to the data receiving device using a fifth data sending strategy in response to not receiving the congestion notification message within a second time period after the first time period, and the round-trip delay corresponding to the end moment of the second time period does not meet the preset delay condition; wherein the number of fifth data packets transmitted under the fifth data sending strategy is greater than the number of fourth data packets transmitted under the fourth data sending strategy.
[0271] To summarize, the round-trip delay between the data sending device and the data receiving device is further analyzed based on the congestion notification message received, so that the number of data packets transmitted per unit time will be reduced when two conditions are met. While enriching the dimensions of obtaining network congestion status information, the method of avoiding inserting metadata may not be able to effectively and timely deal with the problem of data congestion, so as to improve the change response speed of the data transmission process through more efficiently obtained congestion notification messages and round-trip delays, improve the data packet transmission efficiency, and ensure the transmission accuracy of data packets.
[0272] It should be noted that the data congestion processing device provided in the above embodiment is only illustrated by the division of the above functional modules. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the data congestion processing device provided in the above embodiment and the data congestion processing method embodiment belong to the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.
[0273] Fig.10The block diagram of the structure of an electronic device 1000 provided by an exemplary embodiment of the present application is shown. The electronic device 1000 may be a portable mobile terminal, such as a smart phone, a vehicle-mounted terminal, a tablet computer, an MP3 player (Moving Picture Experts Group Audio Layer III), an MP4 player (Moving Picture Experts Group Audio Layer IV), a laptop computer or a desktop computer. The electronic device 1000 may also be called a user device, a portable terminal, a laptop terminal, a desktop terminal or other names.
[0274] Typically, the electronic device 1000 includes a processor 1001 and a memory 1002 .
[0275] The processor 1001 may include one or more processing cores. The processor 1001 may also include a main processor and a coprocessor.
[0276] The memory 1002 may include one or more computer-readable storage media, which may be non-transitory. The memory 1002 may also include a high-speed random access memory, and a non-volatile memory, such as one or more disk storage devices, flash memory storage devices. In some embodiments, the non-transitory computer-readable storage medium in the memory 1002 is used to store at least one instruction, which is used to be executed by the processor 1001 to implement the data congestion processing method provided in the method embodiment of the present application.
[0277] In some embodiments, the electronic device 1000 further includes one or more sensors, including but not limited to: a proximity sensor, a gyroscope sensor, and a pressure sensor.
[0278] In some embodiments, the electronic device 1000 further includes other components, which can be understood by those skilled in the art. Fig.10 The structure shown in the figure does not constitute a limitation on the electronic device 1000, and the electronic device 1000 may include more or less components than those shown in the figure, or combine some components, or adopt a different component arrangement.
[0279] The embodiment of the present application also provides a computer device, which can be implemented as follows: Figure 1 The computer device includes a processor and a memory, wherein at least one instruction, at least one program, code set or instruction set is stored in the memory, and the at least one instruction, at least one program, code set or instruction set is loaded and executed by the processor to implement the data congestion processing method provided by the above-mentioned method embodiments.
[0280] An embodiment of the present application also provides a computer-readable storage medium, on which is stored at least one instruction, at least one program, code set or instruction set, and the at least one instruction, at least one program, code set or instruction set is loaded and executed by a processor to implement the data congestion processing method provided by the above-mentioned method embodiments.
[0281] The embodiments of the present application also provide a computer program product or a computer program, which includes a computer instruction stored in a computer-readable storage medium. A processor of a computer device reads the computer instruction from the computer-readable storage medium, and the processor executes the computer instruction, so that the computer device executes the data congestion processing method described in any of the above embodiments.
[0282] Optionally, the computer-readable storage medium may include: a read-only memory (ROM), a random access memory (RAM), a solid-state drive (SSD), or an optical disk. Among them, the random access memory may include a resistance random access memory (ReRAM) and a dynamic random access memory (DRAM). The serial numbers of the above embodiments of the present application are only for description and do not represent the advantages and disadvantages of the embodiments.
[0283] Those skilled in the art can understand that all or part of the steps of implementing the above embodiments can be completed by hardware, or by a program to instruct the relevant hardware to complete, and the program can be stored in a computer-readable storage medium, and the above-mentioned storage medium can be a read-only memory, a disk or an optical disk, etc. The above description is only an optional embodiment of the present application and is not intended to limit the present application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included in the protection scope of the present application.
Claims
1. A method for processing data congestion, characterized in that: The method comprises: In the process of sending a data packet to a data receiving device using a first data sending strategy, receiving a feedback message sent by the data receiving device, wherein the feedback message is information fed back by the data receiving device to the data sending device based on the received data packet; In response to receiving a congestion notification message, determining a round trip delay between the data sending device and the data receiving device based on the feedback message, wherein the congestion notification message is used to indicate that data congestion exists in a process in which the data sending device sends a data packet to the data receiving device; Determine the delay threshold based on at least two of the reference delay threshold, the data queuing delay and the maximum queuing delay; the reference delay threshold is used to characterize the minimum round-trip time between the data sending device and the data receiving device during the data transmission process; the data queuing delay is used to characterize the time that a data packet waits to be processed in the processing sequence in the presence of data congestion, and the data queuing delay is a dynamic delay determined under the influence of network traffic conditions; the maximum queuing delay is the longest time that a data packet waits in the queue; When the round-trip delay reaches the delay threshold, obtaining a delay difference between the round-trip delay and the delay threshold; The second data sending strategy is determined using the delay difference as the first sending reduction ratio, and the second data sending strategy is used to send data packets to the data receiving device; wherein the number of first data packets transmitted in a unit time period under the first data sending strategy is greater than the number of second data packets transmitted in the unit time period under the second data sending strategy.
2. The method according to claim 1, characterized in that The delay threshold is a preset delay condition, and the method further includes: When the round-trip delay does not meet the preset delay condition, a third data sending strategy is adopted to send data packets to the data receiving device; wherein, under the third data sending strategy, the number of third data packets transmitted in the unit time period is less than the number of the first data packets, and the number of the third data packets is greater than the number of the second data packets.
3. The method according to claim 1 or 2, characterized in that: The step of determining the delay threshold based on at least two of the reference delay threshold, the data queuing delay, and the maximum queuing delay comprises: The sum of the reference delay threshold, the data queuing delay and the maximum queuing delay is used as the delay threshold; or, A weighted sum is performed on the reference delay threshold, the data queuing delay, and the maximum queuing delay to obtain the delay threshold.
4. The method according to claim 1 or 2, characterized in that: The first data sending strategy corresponds to a first sending window and a first data sending rate; The method of determining a second data transmission strategy by using the delay difference as a first transmission reduction ratio, and using the second data transmission strategy to send a data packet to the data receiving device includes: Determine a second sending window based on the first sending window and the delay difference, wherein the second sending window is smaller than the first sending window; Determine a second data transmission rate based on the first data transmission rate and the delay difference, wherein the second data transmission rate is less than the first data transmission rate; At least one of the second sending window and the second data sending rate is used to send a data packet to the data receiving device.
5. The method according to claim 4, characterized in that The sending of the data packet to the data receiving device by using at least one of the second sending window and the second data sending rate comprises: sending a data packet to the data receiving device at the second sending window and the first data sending rate; or, Sending a data packet to the data receiving device at the first sending window and the second data sending rate; or, A data packet is sent to the data receiving device at the second sending window and the second data sending rate.
6. The method according to claim 1 or 2, characterized in that: The method is performed by a first data sending device; When the round-trip delay reaches the delay threshold, obtaining a delay difference between the round-trip delay and the delay threshold includes: When a first round-trip delay corresponding to the first data sending device reaches a first delay threshold corresponding to the first data sending device, obtaining a first delay difference between the first round-trip delay and the first delay threshold; The method of determining a second data transmission strategy by using the delay difference as a first transmission reduction ratio, and using the second data transmission strategy to send a data packet to the data receiving device includes: The second data sending strategy corresponding to the first data sending device is determined by taking the first delay difference as a first sending reduction ratio, and the second data sending strategy is adopted to send a data packet to the data receiving device.
7. The method according to claim 2, characterized in that When the round-trip delay does not meet the preset delay condition, adopting a third data sending strategy to send a data packet to the data receiving device includes: When the round-trip delay does not meet the preset delay condition, obtaining a first adjustment ratio; The third data sending strategy is determined by taking the first adjustment ratio as the second sending reduction ratio, and the third data sending strategy is adopted to send a data packet to a data receiving device.
8. The method according to claim 7, characterized in that The method is performed by a first data sending device; The first adjustment ratio obtained by the first data sending device is the same as the adjustment ratio obtained by the second data sending device under the condition that the second round-trip delay does not meet the preset delay condition; the second data sending device is a data sending device used to send data packets to the data receiving device.
9. The method according to claim 1 or 2, characterized in that: The method further comprises: In response to not receiving the congestion notification message within the first time period, using a fourth data sending strategy to send data packets to the data receiving device; wherein the number of fourth data packets transmitted under the fourth data sending strategy is greater than the number of first data packets transmitted under the first data sending strategy.
10. The method according to claim 9, characterized in that The first data sending strategy corresponds to a first sending window and a first data sending rate; In response to not receiving the congestion notification message within the first time period, using a fourth data sending strategy to send a data packet to the data receiving device includes: In response to not receiving the congestion notification message within the first time period, obtaining a second adjustment ratio; determining a fourth sending window based on the first sending window and the second adjustment ratio, wherein the fourth sending window is larger than the first sending window; determining a fourth data sending rate based on the first data sending rate and the second adjustment ratio, wherein the fourth data sending rate is greater than the first data sending rate; At least one of the fourth sending window and the fourth data sending rate is used to send a data packet to the data receiving device.
11. The method according to claim 9, characterized in that The delay threshold is a preset delay condition; After the method of sending a data packet to the data receiving device using a fourth data sending strategy in response to not receiving the congestion notification message within the first time period, the method further includes: In response to not receiving the congestion notification message within a second time period after the first time period, and the round-trip delay corresponding to the end time of the second time period does not meet the preset delay condition, adopting a fifth data sending strategy to send a data packet to the data receiving device; The number of fifth data packets transmitted under the fifth data sending strategy is greater than the number of fourth data packets transmitted under the fourth data sending strategy.
12. A data congestion processing device, characterized in that: The device comprises: a receiving module, configured to receive a feedback message sent by the data receiving device during the process of sending a data packet to the data receiving device using a first data sending strategy, wherein the feedback message is information fed back by the data receiving device to the data sending device based on the received data packet; a determination module, configured to determine, in response to receiving a congestion notification message, a round trip delay between the data sending device and the data receiving device based on the feedback message, wherein the congestion notification message is used to indicate that there is data congestion in the process of the data sending device sending a data packet to the data receiving device; A sending module, configured to determine a delay threshold based on at least two of a reference delay threshold, a data queuing delay, and a maximum queuing delay; the reference delay threshold is used to characterize the minimum round-trip time between the data sending device and the data receiving device during data transmission; the data queuing delay is used to characterize the time for a data packet to wait for processing in a processing sequence in the presence of data congestion, and the data queuing delay is a dynamic delay determined under the influence of network traffic conditions; the maximum queuing delay is the longest time a data packet waits in a queue; when the round-trip delay reaches the delay threshold, obtaining a delay difference between the round-trip delay and the delay threshold; determining a second data sending strategy using the delay difference as a first sending reduction ratio, and using the second data sending strategy to send data packets to the data receiving device; wherein the number of first data packets transmitted in a unit time period under the first data sending strategy is greater than the number of second data packets transmitted in the unit time period under the second data sending strategy.
13. A computer device, characterized in that: The computer device includes a processor and a memory, wherein the memory stores at least one program, and the at least one program is loaded and executed by the processor to implement the data congestion processing method according to any one of claims 1 to 11.
14. A computer-readable storage medium, characterized in that: The storage medium stores at least one program, and the at least one program is loaded and executed by the processor to implement the data congestion processing method according to any one of claims 1 to 11.
15. A computer program product, characterized in that It comprises computer instructions, which, when executed by a processor, implement the data congestion processing method as described in any one of claims 1 to 11.
Citation Information
Patent Citations
Network congestion control method and device, equipment and storage medium
CN116886622A