Network congestion data processing method, device, system and computer equipment

By obtaining and updating the window information of the data packet, combining the current load and historical statistical information to calculate and adjust the information, the problem of inaccurate adjustment of the congestion window in traditional methods is solved, and more accurate and fair network congestion management is achieved.

CN116155823BActive Publication Date: 2025-08-12TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111402603.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-11-19
Publication Date
2025-08-12
Estimated Expiration
2041-11-19

AI Technical Summary

Technical Problem

The traditional network congestion window adjustment method is based on transmission delay, which leads to inaccurate adjustments and cannot effectively improve network congestion and achieve fairness between data flow.

Method used

By obtaining the initial data packet of the data sending device, the historical window statistics information is updated, the current window adjustment information is calculated based on the current load information and the initial window information, the data packet is updated and sent to the receiving device. The reply packet returned by the receiving device is used to adjust the congestion window of the sending device.

Benefits of technology

Improve the accuracy and fairness of congestion window adjustment, improve network congestion situation, achieve fair state between different data packets and data flows, and achieve accurate congestion window adjustment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116155823B_ABST
    Figure CN116155823B_ABST
Patent Text Reader

Abstract

The present application relates to a network congestion data processing method, apparatus, system, computer device, and storage medium. The method comprises: obtaining an initial data packet sent by a data sending device and carrying initial window information and initial window adjustment information; updating historical window statistics based on the initial window information to obtain current window statistics; obtaining current window adjustment information based on current load information, current window statistics, and initial window information; updating the initial data packet based on the current window adjustment information to obtain an intermediate data packet, and sending the intermediate data packet to a data receiving device; the intermediate data packet carrying target window adjustment information determined based on the current window adjustment information and the initial window adjustment information; and sending a response data packet returned from the data receiving device and carrying the target window adjustment information to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information. This method can improve the accuracy of window adjustment.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a method, apparatus, system, computer equipment, and storage medium for processing network congestion data. Background Art

[0002] With the development of computer technology, more and more data is transmitted on the network, and the network environment has become more complex and changeable. If there is too much data to be transmitted on the network, due to the limited network bandwidth resources, the network transmission performance will be reduced and network congestion will occur.

[0003] Traditionally, the congestion window is adjusted based on the transmission delay of data packets in the network. However, adjusting the window based solely on transmission delay can lead to inaccurate congestion window adjustments. Summary of the Invention

[0004] Based on this, it is necessary to provide a network congestion data processing method, device, system, computer equipment and storage medium that can improve the accuracy of congestion window adjustment in response to the above technical problems.

[0005] A method for processing network congestion data, applied to a data transfer device, comprising:

[0006] Acquire an initial data packet sent by a data sending device; the initial data packet carries initial window information and initial window adjustment information;

[0007] Update historical window statistics based on the initial window information to obtain current window statistics;

[0008] Obtaining current window adjustment information based on current load information, the current window statistical information, and the initial window information;

[0009] updating the initial data packet based on the current window adjustment information to obtain an intermediate data packet, and sending the intermediate data packet to a data receiving device; wherein the intermediate data packet carries target window adjustment information determined based on the current window adjustment information and the initial window adjustment information;

[0010] The response data packet returned from the data receiving device and carrying the target window adjustment information is sent to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information.

[0011] A network congestion data processing device, comprising:

[0012] A data packet acquisition module is used to acquire an initial data packet sent by a data sending device; the initial data packet carries initial window information and initial window adjustment information;

[0013] A window statistics module is used to update historical window statistics based on the initial window information to obtain current window statistics;

[0014] a window adjustment information determining module, configured to obtain current window adjustment information based on current load information, the current window statistical information, and the initial window information;

[0015] a data packet updating module, configured to update the initial data packet based on the current window adjustment information to obtain an intermediate data packet, and send the intermediate data packet to a data receiving device; the intermediate data packet carries target window adjustment information determined based on the current window adjustment information and the initial window adjustment information;

[0016] The data packet sending module is used to send the response data packet returned from the data receiving device and carrying the target window adjustment information to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information.

[0017] A computer device includes a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the following steps are implemented:

[0018] Acquire an initial data packet sent by a data sending device; the initial data packet carries initial window information and initial window adjustment information;

[0019] Update historical window statistics based on the initial window information to obtain current window statistics;

[0020] Obtaining current window adjustment information based on current load information, the current window statistical information, and the initial window information;

[0021] updating the initial data packet based on the current window adjustment information to obtain an intermediate data packet, and sending the intermediate data packet to a data receiving device; wherein the intermediate data packet carries target window adjustment information determined based on the current window adjustment information and the initial window adjustment information;

[0022] The response data packet returned from the data receiving device and carrying the target window adjustment information is sent to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information.

[0023] A computer-readable storage medium stores a computer program, which, when executed by a processor, implements the following steps:

[0024] Acquire an initial data packet sent by a data sending device; the initial data packet carries initial window information and initial window adjustment information;

[0025] Update historical window statistics based on the initial window information to obtain current window statistics;

[0026] Obtaining current window adjustment information based on current load information, the current window statistical information, and the initial window information;

[0027] updating the initial data packet based on the current window adjustment information to obtain an intermediate data packet, and sending the intermediate data packet to a data receiving device; wherein the intermediate data packet carries target window adjustment information determined based on the current window adjustment information and the initial window adjustment information;

[0028] The response data packet returned from the data receiving device and carrying the target window adjustment information is sent to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information.

[0029] A method for processing network congestion data, applied to a data sending device, comprising:

[0030] Obtaining an initial data packet; the initial data packet carries initial window information and initial window adjustment information;

[0031] Sending the initial data packet to a data transfer device, so that the data transfer device sends the initial data packet to a data receiving device;

[0032] Obtaining a response data packet returned by the data receiving device; the response data packet carries target window adjustment information; the target window adjustment information is determined by the data transfer device based on current window adjustment information and the initial window adjustment information, the current window adjustment information is obtained based on current load information, current window statistical information, and the initial window information, and the current window statistical information is obtained by updating historical window statistical information based on the initial window information;

[0033] The current congestion window is adjusted based on the target window adjustment information to obtain a target congestion window.

[0034] A network congestion data processing device, comprising:

[0035] An initial data packet acquisition module is used to acquire an initial data packet; the initial data packet carries initial window information and initial window adjustment information;

[0036] An initial data packet sending module, configured to send the initial data packet to a data transfer device, so that the data transfer device sends the initial data packet to a data receiving device;

[0037] a response data packet acquisition module, configured to acquire a response data packet returned by the data receiving device; the response data packet carries target window adjustment information; the target window adjustment information is determined by the data transfer device based on current window adjustment information and initial window adjustment information, the current window adjustment information being obtained based on current load information, current window statistical information, and the initial window information, the current window statistical information being obtained by updating historical window statistical information based on the initial window information;

[0038] The window adjustment module is configured to adjust the current congestion window based on the target window adjustment information to obtain a target congestion window.

[0039] A computer device includes a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the following steps are implemented:

[0040] Obtaining an initial data packet; the initial data packet carries initial window information and initial window adjustment information;

[0041] Sending the initial data packet to a data transfer device, so that the data transfer device sends the initial data packet to a data receiving device;

[0042] Obtaining a response data packet returned by the data receiving device; the response data packet carries target window adjustment information; the target window adjustment information is determined by the data transfer device based on current window adjustment information and the initial window adjustment information, the current window adjustment information is obtained based on current load information, current window statistical information, and the initial window information, and the current window statistical information is obtained by updating historical window statistical information based on the initial window information;

[0043] The current congestion window is adjusted based on the target window adjustment information to obtain a target congestion window.

[0044] A computer-readable storage medium stores a computer program, which, when executed by a processor, implements the following steps:

[0045] Obtaining an initial data packet; the initial data packet carries initial window information and initial window adjustment information;

[0046] Sending the initial data packet to a data transfer device, so that the data transfer device sends the initial data packet to a data receiving device;

[0047] Obtaining a response data packet returned by the data receiving device; the response data packet carries target window adjustment information; the target window adjustment information is determined by the data transfer device based on current window adjustment information and the initial window adjustment information, the current window adjustment information is obtained based on current load information, current window statistical information, and the initial window information, and the current window statistical information is obtained by updating historical window statistical information based on the initial window information;

[0048] The current congestion window is adjusted based on the target window adjustment information to obtain a target congestion window.

[0049] A network congestion data processing system, comprising:

[0050] A data sending device, configured to obtain an initial data packet and send the initial data packet to a data transfer device; the initial data packet carries initial window information and initial window adjustment information;

[0051] a data transfer device, configured to update the initial data packet based on current window adjustment information to obtain an intermediate data packet, and send the intermediate data packet to a data receiving device; the intermediate data packet carries target window adjustment information determined based on the current window adjustment information and the initial window adjustment information, the current window adjustment information being obtained based on current load information, current window statistical information, and the initial window information, the current window statistical information being obtained by updating historical window statistical information based on the initial window information;

[0052] The data sending device is further configured to obtain a response data packet returned by the data receiving device and carrying the target window adjustment information, and adjust the congestion window based on the target window adjustment information.

[0053] The above-mentioned network congestion data processing method, device, system, computer equipment and storage medium, the data transfer device obtains the initial data packet sent by the data sending device, the initial data packet carries initial window information and initial window adjustment information, updates the historical window statistical information based on the initial window information, obtains the current window statistical information, obtains the current window adjustment information based on the current load information, the current window statistical information and the initial window information, updates the initial data packet based on the current window adjustment information, obtains the intermediate data packet, sends the intermediate data packet to the data receiving device, the intermediate data packet carries the target window adjustment information determined based on the current window adjustment information and the initial window adjustment information, the data transfer device sends the response data packet returned from the data receiving device and carrying the target window adjustment information to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information. In this way, when calculating the window adjustment information, the historical window statistics can reflect the window average of other data packets, the current window statistics can reflect the window average of all data packets, the current load information can reflect the current network status, and the initial window information can reflect the window size of the data sending device itself. The current window adjustment information calculated based on the current load information, the current window statistics and the initial window information comprehensively considers the window information of all current data packets and the current network status. The window adjustment information helps to improve the accuracy and fairness of the window adjustment, so that different data packets and data streams can achieve fairness while improving network congestion. After the data sending device receives the response data packet, it can accurately adjust the current congestion window based on the latest acquired window adjustment information. BRIEF DESCRIPTION OF THE DRAWINGS

[0054] Figure 1 This is a diagram of an application environment of a method for processing network congestion data in one embodiment;

[0055] Figure 2 1 is a flow chart of a method for processing network congestion data in one embodiment;

[0056] Figure 3 A schematic diagram of the structure of a data packet in one embodiment;

[0057] Figure 4 A flowchart of a method for processing network congestion data according to another embodiment;

[0058] Figure 5 is a schematic diagram of a method for processing network congestion data in one embodiment;

[0059] Figure 6 A schematic diagram of a flow chart of a network congestion data processing system according to an embodiment;

[0060] Figure 71 is a timing diagram of a method for processing network congestion data in one embodiment;

[0061] Figure 8 is a schematic diagram of the structure of a data center network in one embodiment;

[0062] Figure 9A Schematic diagram of simulation results of a traditional congestion control algorithm in one embodiment;

[0063] Figure 9B is a schematic diagram of simulation results of a traditional congestion control algorithm in another embodiment;

[0064] Figure 9C Schematic diagram of simulation results of the congestion control algorithm of the present application in one embodiment;

[0065] Figure 10 is a structural block diagram of a network congestion data processing device in one embodiment;

[0066] Figure 11 is a structural block diagram of a network congestion data processing device in one embodiment;

[0067] Figure 12 is a diagram of the internal structure of a computer device in one embodiment;

[0068] Figure 13 FIG. 1 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0069] In order to make the purpose, technical solutions and advantages of this application more clear, the following further describes this application in detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain this application and are not intended to limit this application.

[0070] Cloud technology refers to a hosting technology that unifies hardware, software, network and other resources within a wide area network or local area network to achieve data computing, storage, processing and sharing.

[0071] Cloud computing refers to the delivery and usage model of IT infrastructure, enabling on-demand, scalable access to required resources over the internet. In a broader sense, cloud computing refers to the delivery and usage model of services, enabling on-demand, scalable access to required services over the internet. These services can be IT-related, software-related, internet-related, or other services. Cloud computing is the product of the convergence of traditional computer and network technologies, including grid computing, distributed computing, parallel computing, utility computing, network storage technologies, virtualization, and load balancing.

[0072] Cloud computing has rapidly grown, driven by the internet, real-time data streams, the diversification of connected devices, and the growing demand for search services, social networks, mobile commerce, and open collaboration. Unlike previous parallel and distributed computing approaches, the emergence of cloud computing will fundamentally revolutionize the entire internet and enterprise management model.

[0073] Big data refers to collections of data that cannot be captured, managed, and processed within a specific timeframe using conventional software tools. These massive, rapidly growing, and diverse information assets require new processing models to enhance decision-making, insight discovery, and process optimization. With the advent of the cloud era, big data has attracted increasing attention. Big data requires specialized technologies to efficiently process large amounts of time-sensitive data. Technologies suitable for big data include massively parallel processing databases, data mining, distributed file systems, distributed databases, cloud computing platforms, the internet, and scalable storage systems.

[0074] The solution provided in the embodiments of this application involves cloud technology, which is specifically described through the following embodiments:

[0075] The network congestion data processing method provided in this application can be applied to Figure 1In the application environment shown, data sending device 102 communicates with data transfer device 104 via a network, and data transfer device 104 communicates with data receiving device 106 via a network. Data sending device 102 can obtain an initial data packet and send the initial data packet to data transfer device 104. The initial data packet carries initial window information and initial window adjustment information. Data transfer device 104 updates historical window statistics based on the initial window information to obtain current window statistics, and obtains current window adjustment information based on current load information, current window statistics, and initial window information. Data transfer device 104 updates the initial data packet based on the current window adjustment information to obtain an intermediate data packet. The intermediate data packet carries target window adjustment information determined based on the initial window adjustment information and the current window adjustment information. Data transfer device 104 sends the intermediate data packet to data receiving device 106. Data receiving device 106 generates a response data packet carrying the target window adjustment information and sends the response data packet to data sending device 102 via data transfer terminal 104. The data sending device 102 obtains the target window adjustment information from the response data packet, and adjusts the current congestion window based on the target window adjustment information to obtain the target congestion window.

[0076] The data sending device 102, data transfer device 104, and data receiving device 106 can be either terminals or servers. Terminals include, but are not limited to, various personal computers, laptops, smartphones, tablets, vehicle-mounted terminals, and portable wearable devices. Servers can be implemented as independent servers or as a server cluster or cloud server consisting of multiple servers. It is understood that there can be at least one data sending device, at least one data transfer device, and at least one data receiving device. A data sending device can send data packets to different data receiving devices, and a data receiving device can also receive data packets sent by different data sending devices. The same data packet can pass through at least one data transfer device before ultimately reaching the data receiving device.

[0077] In one embodiment, the data transfer device may be a network forwarding device such as a switch or a router.

[0078] In one embodiment, Figure 2 As shown, a network congestion data processing method is provided, which is applied to Figure 1 The data transfer device in the example is used as an example to illustrate the process, including the following steps:

[0079] Step S202: Acquire an initial data packet sent by a data sending device; the initial data packet carries initial window information and initial window adjustment information.

[0080] The initial data packet is generated and sent by the data sending device to transmit data to the data receiving device. The data packet sent by the data sending device can be used to request information from the data receiving device or to actively send information to the data receiving device.

[0081] Window information is used to describe the size of the congestion window. Initial window information is used to describe the congestion window size of the data sending device when generating and sending data packets. Window adjustment information is used to describe the adjustment factor of the congestion window. Initial window adjustment information refers to the initialized window adjustment information. An adjustment factor with no adjustment effect or minimal adjustment effect can be used as the initial window adjustment information. For example, the initial window adjustment information can be 1. When the adjustment factor is 1, it means that the original congestion window remains unchanged. It is understood that the initial window information and initial window adjustment information can be placed in the packet header or the packet body of the packet.

[0082] Specifically, after determining the data to be sent and the recipient, the data sending device can generate an initial data packet and then send the initial data packet to the network. The initial data packet is finally transmitted to the data receiving device through the data transfer device in the network. After receiving the initial data packet, the data receiving device returns a response data packet to the data sending device to indicate that the initial data packet has been successfully received. The data sending device is the starting sender of the initial data packet, the data receiving device is the destination recipient of the initial data packet, and the data transfer device is the forwarding device that the initial data packet passes through during transmission. During the data transmission process, the data transfer device in the network can receive the initial data packet sent by the data sending device. The initial data packet carries initial window information and initial window adjustment information.

[0083] In one embodiment, reference Figure 3 Before sending the initial data packet, a header for recording window information and window adjustment information can be embedded after the standard header. The length can be 32 bits. The header for recording window information and window adjustment information is as follows: Figure 3As shown in the AH (Adjustment Header), 16 bits are used to record window information, namely W, and the other 16 bits are used to record window adjustment information, namely AR (Adjustment Ratio). ETH (used to record Ethernet protocol information), IP (used to record IP protocol information), UDP (used to record UDP protocol information), and Payload (used to record key information) are the standard structure and components of a data packet. It is understood that the lengths of W and AR in the AH can be represented by 8 bits, 6 bits, etc., and the AH can be represented by 16 bits, 8 bits, etc. The AH can be located in the packet header or in the packet body. It is understood that W and AR do not need to be adjacent. In one embodiment, W can be expressed in units of 16 bytes, so the range it can express is 16*(1 to 65535) = 16 to 1048560 bytes. When the data packet is sent from the sender, W can be set to: W = CWND / 16 (CWND is in bytes and represents the actual size of the congestion window). In addition, the magnification 1 can be mapped to 512, and the AR can be initialized to 512.

[0084] Step S204: Update historical window statistics based on the initial window information to obtain current window statistics.

[0085] Window statistics are obtained by counting the initial window information of multiple data packets. Historical window statistics are obtained by counting the initial window information in received data packets before the initial data packet is received. For example, historical window statistics can be the arithmetic mean or weighted mean of each initial window information. Historical window statistics can reflect the average level of initial window information of each data packet received by the data transfer device at a historical time. Since data packets are related to data streams and data transmission links, historical window statistics can also reflect the average window level of most data streams and data transmission links. Current window statistics are obtained by fusing the initial window information and historical window statistics. Current window statistics can reflect the average level of initial window information of each data packet received by the data transfer device from the past to the present, and can reflect the average window level of all current data streams and data transmission links.

[0086] Specifically, after receiving the initial data packet, the data transfer device can update the historical window statistics based on the initial window information, and fuse the initial window information with the historical window statistics to obtain current window statistics that incorporate the initial window information of all currently received data packets. When performing the fusion, the initial window information and the historical window statistics can be calculated as an arithmetic mean, or a weighted mean, etc.

[0087] Step S206: Obtain current window adjustment information based on current load information, current window statistical information, and initial window information.

[0088] Load information describes the load on data transmission links and networks. Specifically, load information can be expressed as load rate or load volume. Current load information refers to the load information for the current time period, representing the network load for the current time period and even for the future. As you can see, a higher current load information indicates more congested network traffic.

[0089] The current window adjustment information is calculated based on the current load information, current window statistics, and initial window information. It can be understood that the current window adjustment information combines the current load information (reflecting the network load), the current window statistics (reflecting the average window size of all packets up to that point), and the initial window information (reflecting the sender's own window). Window adjustment based on this window adjustment information helps alleviate network congestion while balancing the window sizes of different data flows.

[0090] Specifically, after the data transfer device obtains the initial data packet, it can obtain current load information and calculate current window adjustment information based on the current load information, current window statistical information, and initial window information. For example, the ratio of the initial window information and the current window statistical information can be calculated, and the current window adjustment information can be obtained based on the ratio and the initial window information. The difference between the initial window information and the current window statistical information can be calculated, and the current window adjustment information can be obtained based on the difference and the initial window information. The data transfer device can calculate the current window adjustment information based on the current load information, the current window statistical information, and the initial window information according to a custom formula or algorithm.

[0091] In one embodiment, the data transfer device can obtain at least one of the following data volumes: data received, data sent, and data queue change in the current time period to calculate current load information. It will be appreciated that the data received, data sent, and data queue change can each reflect network conditions to a certain extent. For example, if the network is congested, the data transfer device will accumulate more data, resulting in a smaller amount of data that the data transfer device can receive within a certain period. Therefore, a smaller amount of data received can indicate network congestion. If the network is congested, the data transfer device will be able to send less data within a certain period. Therefore, a smaller amount of data sent can also indicate network congestion. If the network is congested, the data accumulated on the data transfer device will decrease more slowly, resulting in a smaller amount of data queue change within a certain period. Therefore, a smaller amount of data queue change can also indicate network congestion. The data transfer device can calculate current load information based on at least one of the following data volumes: data received, data sent, and data queue change, using a custom formula or algorithm. The data transfer device may also first calculate the current network load based on at least one of the following: the amount of data received, the amount of data sent, and the amount of data queued change in the current time period, and then calculate the current load information based on the current network load and the reference network load. The current network load is the actual network load, and the reference network load is the ideal network load. The current load information calculated based on the current network load and the reference network load can be used to represent the load rate.

[0092] It is understood that the data transfer device may pre-calculate the current load information before receiving the initial data packet. For example, the data transfer device may periodically calculate the load information and, after receiving the initial data packet, use the most recently calculated load information as the current load information. The data transfer device may also calculate the current load information immediately after receiving the initial data packet. For example, after receiving the initial data packet, the data transfer device may use the time period ending at the time of receipt as the current time period and calculate the load information based on the relevant data collected during the current time period as the current load information.

[0093] Step S208 , updating the initial data packet based on the current window adjustment information to obtain an intermediate data packet, and sending the intermediate data packet to the data receiving device; the intermediate data packet carries the target window adjustment information determined based on the current window adjustment information and the initial window adjustment information.

[0094] After obtaining the initial window adjustment information and the current window adjustment information, the data transfer device can determine the target window adjustment information based on the initial window adjustment information and the current window adjustment information, and replace the initial window adjustment information in the initial data packet with the target window adjustment information, thereby obtaining an intermediate data packet. For example, the data transfer device can directly replace the initial window adjustment information in the initial data packet with the current window adjustment information to obtain the intermediate data packet, and directly use the current window adjustment information as the target window adjustment information. The data transfer device can also compare the current window adjustment information with the initial window adjustment information and determine the target window adjustment information from the current window adjustment information and the initial window adjustment information based on the comparison result. The data transfer device sends the intermediate data packet carrying the target window adjustment information to the data receiving device. After receiving the intermediate data packet, the data receiving device generates a response data packet and returns the response data packet to the data sending device. The response data packet also carries the target window adjustment information.

[0095] In step S210 , a response data packet carrying target window adjustment information returned from the data receiving device is sent to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information.

[0096] The congestion window is a sliding window on the data transmitter that controls the speed at which data packets are sent. For example, the congestion window can control the number of concurrent bytes sent by the data transmitter, thereby controlling the speed at which data packets are sent based on the number of concurrent bytes.

[0097] Specifically, the data transfer device can obtain the response data packet returned by the data receiving device and forward the response data packet to the data sending device. The data sending device can extract the target window adjustment information from the obtained response packet, adjust the congestion window according to the target window adjustment information, and dynamically adjust the congestion window according to the degree of network congestion to avoid more severe congestion in the network. The data sending device can determine the window adjustment parameter based on the target window adjustment information, adjust the current congestion window based on the window adjustment parameter to obtain the target congestion window, and control the speed of subsequent data packet transmission through the target congestion window. Among them, regarding the specific process of adjusting the congestion window, reference can be made to the relevant embodiments of the network congestion data processing method applied to the data sending device.

[0098] In one embodiment, the response data packet may not carry window information, or may carry preset meaningless window information, for example, W in the response data packet is set to 0. If the data transfer device receives a data packet with W=0, it directly ignores it and does not update the window adjustment information in the data packet.

[0099] In the above-mentioned network congestion data processing method, the data transfer device obtains the initial data packet sent by the data sending device, the initial data packet carries initial window information and initial window adjustment information, updates the historical window statistical information based on the initial window information, obtains the current window statistical information, obtains the current window adjustment information based on the current load information, the current window statistical information and the initial window information, updates the initial data packet based on the current window adjustment information, obtains the intermediate data packet, sends the intermediate data packet to the data receiving device, the intermediate data packet carries the target window adjustment information determined based on the current window adjustment information and the initial window adjustment information, and the data transfer device sends the response data packet returned from the data receiving device and carrying the target window adjustment information to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information. In this way, when calculating the window adjustment information, the historical window statistics can reflect the window average of other data packets, the current window statistics can reflect the window average of all data packets, the current load information can reflect the current network status, and the initial window information can reflect the window size of the data sending device itself. The current window adjustment information calculated based on the current load information, the current window statistics and the initial window information comprehensively considers the window information of all current data packets and the current network status. The window adjustment information helps to improve the accuracy and fairness of the window adjustment, so that different data packets and data streams can achieve fairness while improving network congestion. After the data sending device receives the response data packet, it can accurately adjust the current congestion window based on the latest acquired window adjustment information.

[0100] In one embodiment, updating historical window statistics based on initial window information to obtain current window statistics includes:

[0101] Obtain the attention weights corresponding to the initial window information and the historical window statistical information; the attention weight corresponding to the initial window information is less than the attention weight corresponding to the historical window statistical information; based on the attention weights corresponding to the initial window information and the historical window statistical information, fuse the initial window information and the historical window statistical information to obtain the current window statistical information.

[0102] Specifically, the data transfer device can perform weighted summation of the initial window information and the historical window statistical information to obtain the current window statistical information. Since the data transfer device continuously receives data packets sent by each sending end, the data transfer device usually has received a large number of other data packets before receiving the initial data packet. The historical window statistical information obtained based on the initial window information statistics of the received data packets incorporates more window information. Therefore, when performing weighted summation after receiving the initial data packet, the attention weight corresponding to the historical window statistical information can be greater than the attention weight corresponding to the initial window information. The data transfer device can fuse the initial window information and the historical window statistical information based on the attention weights corresponding to the initial window information and the historical window statistical information to obtain the current window statistical information. Among them, the specific value of the attention weight can be set as needed.

[0103] In one embodiment, different transit ports can be set on the data transit device. There is a corresponding relationship between the transit port and the data flow and data transmission link. The initial data packet corresponding to a certain data transmission link can be forwarded through a specific transit port to ensure network order. Therefore, the historical window statistical information counted by the target transit port corresponding to the initial data packet can be updated based on the initial window information to obtain the current window statistical information.

[0104] In one embodiment, the calculation formula for the current window statistics is as follows:

[0105] W m =W m′ *(1-η)+W*η

[0106] Among them, W m Indicates the current window statistics, W m′ Represents the historical window statistical information, W represents the initial window information, η represents the attention weight corresponding to the initial window information, 1-η represents the attention weight corresponding to the historical window statistical information, η<1-η.

[0107] In one embodiment, the attention weight corresponding to the initial window information can be determined based on the number of data packets received by the data transfer device in a preset time period. For example, the ratio of the preset parameter and the number of data packets received in the preset time period is used as the attention weight corresponding to the initial window information. In one embodiment, the preset parameter can be 1, and the preset time period can be set to the round-trip delay of the data when the network is idle, that is, the network idle RTT (Round-Trip Time). For example, η=1 / (the number of data packets obtained within a network idle RTT). Determining the attention weight corresponding to the initial window information based on the number of data packets received within the network idle RTT can allow the window statistics to quickly converge to the average value of all data flow windows flowing through the data transfer device, and can allow the window statistics to quickly converge to the average value of all data flow windows flowing through the target transfer port of the data transfer device.

[0108] In the above embodiment, based on the attention weights corresponding to the initial window information and the historical window statistical information, the initial window information and the historical window statistical information are fused to obtain the current window statistical information. The attention weight corresponding to the initial window information is smaller than the attention weight corresponding to the historical window statistical information, which can improve the accuracy of the current window statistical information, thereby improving the accuracy of the current window adjustment information and improving the accuracy of the congestion window adjustment.

[0109] In one embodiment, current window adjustment information is obtained based on current load information, current window statistics information, and initial window information, including:

[0110] Based on the ratio of the initial window information and the current window statistical information, the window ratio is obtained; and the current window adjustment information is obtained by fusing the current load information and the window ratio.

[0111] Specifically, when calculating the current window adjustment information, the data transfer device can calculate the ratio of the initial window information and the current window statistical information, calculate the ratio of the current window and the average window, obtain the window ratio, and then fuse the current load information and the window ratio to obtain the current window adjustment information. For example, the product of the current load information and the window ratio is used as the current window adjustment information.

[0112] In one embodiment, the calculation formula for the current window adjustment information is as follows:

[0113]

[0114] PL=L*64

[0115] Among them, FAR represents the current window adjustment information, W represents the initial window information, and W mrepresents the current window statistics, and L represents the current load information, also known as the load ratio. As you can understand, since the data carried by the packet is binary, the calculated load ratio is a floating-point number. To place the load ratio in the packet, the floating-point number must be converted to its corresponding binary data. For example, if the PL length is 8 bits, the calculated load ratio L can be amplified by 64 times and the integer portion can be taken as the current load information. Other amplification factors, such as 128 times or 100 times, are also possible. The specific amplification factor can be determined based on the bit length of the PL.

[0116] In the above embodiment, the window ratio is derived based on the ratio of the initial window information to the current window statistics, and the current load information and the window ratio are integrated to obtain the current window adjustment information. Thus, the current window adjustment information is an innovative indicator of comprehensive efficiency and fairness. It not only reflects the current load status, but also reflects the relative size of the flow containing the current packet relative to the average of all flows. Window adjustment based on this current window adjustment information can achieve a fair window (bandwidth allocation) for all flows, while maximizing network bandwidth utilization.

[0117] In one embodiment, obtaining the current load information includes the following steps:

[0118] The current network load is obtained based on the data transmission volume and data queuing change of the target transit port corresponding to the initial data packet in the current time period; the target transit port is the port on the data transit device used to send data packets; the current load information is obtained based on the current network load of the target transit port in the current time period and the reference network load.

[0119] The "current time period" refers to the currently used data statistics and monitoring time period. This time period can include the current time or the most recent historical time period. For example, if port data is collected periodically at regular intervals, the current time period can be the time period of the most recent statistical collection, and the current load information is calculated using the most recent statistical data. Data statistics can be collected periodically or irregularly. The length of the current time period can be set as needed.

[0120] Different transit ports may be provided on the data transfer device. Different transit ports may correspond to different data transmission links, or different data transmission links may correspond to the same transit port. Different data transmission links may be used to transmit data to different data recipients, or different data transmission links may transmit data to data recipients based on different transmission protocols. Data packets transmitted on the same data transmission link may include the same five-tuple information, which specifically includes the source IP address, source port, destination IP address, destination port, and transport layer protocol. The source IP address represents the IP address of the data sending device, the source port represents the sending port of the data sending device used to send data packets, the destination IP address represents the IP address of the data receiving device, and the destination port represents the receiving port of the data receiving device used to receive data packets. The target transit port refers to the port on the data transfer device used to send data packets, specifically the port on the data transfer device used to send the initial data packet. The target transit port is the port where the initial data packet is transferred on the data transmission link.

[0121] The data transmission volume of the target transit port in the current time period refers to the statistical value of the data packets sent from the target transit port of the data transit device in the current time period. The data packet statistical value is obtained by counting the data packets sent from the target transit port of the data transit device in the current time period. For example, the number of bytes, bits, and data packets sent by the target transit port in the current time period can be counted.

[0122] The data queue change at the target transit port during the current time period refers to the change in the number of data packets queued at the target transit port. This data queue change is obtained by statistically analyzing the changes in the queueing of data packets at the target transit port. For example, the change in the data queue height or the change in the number of data packets can be statistically analyzed. It is understood that data transit devices are responsible for forwarding a large number of data packets in the network. Due to the limited capacity of data transit devices and to ensure the orderly forwarding of data, data packets must be queued and transmitted in an orderly manner within the data transit device. The data transit device is equipped with different transit ports, and data packets transmitted on different data transmission links must be queued and transmitted at the corresponding transit ports. Because transit ports continuously receive and transmit data packets, the amount of data queued at the target transit port will change. The change in the data queue can reflect changes in the network status. If the data queue change decreases while the data transit device continues to transmit data packets, it indicates that the network status is improving, moving towards an idle state or underloaded state. If the data queue amount increases, it indicates that the network status is deteriorating, moving towards a busy state or overloaded state.

[0123] The current network load refers to the actual amount of data carried by the target transit port in the current network time period. The reference network load refers to the amount of data that the target transit port can carry in the current network time period. The reference network load can be determined based on the port attribute information of the target transit port. Port attribute information describes the basic properties and capabilities of the port. Port attribute information can be pre-configured based on actual needs.

[0124] Specifically, after receiving the initial data packet, the data transfer device can determine the target transfer port corresponding to the initial data packet based on the specific information of the initial data packet. It can then obtain the statistically calculated data transmission volume and data queue change of the target transfer port during the current time period, and calculate the current network load based on the data transmission volume and data queue change. For example, the current network load can be calculated as the sum of the data transmission volume and data queue change, or as a weighted sum of the data transmission volume and data queue change. The data transfer device can calculate the current network load based on the data transmission volume and data queue change according to a custom formula or algorithm. Furthermore, the data transfer device also needs to obtain the reference network load of the target transfer port during the current time period, and calculate the current load information based on the current network load and the reference network load. For example, the current load information can be calculated as the ratio of the current network load to the reference network load, or the difference between the current network load and the reference network load, and the current load information can be calculated based on the ratio of the difference to the reference network load. The data transfer device can calculate the current network load based on the current network load and the reference network load according to a custom formula or algorithm.

[0125] In one embodiment, the length of the current time period can be set to the network idle RTT. Setting the current time period to the network idle RTT enables the data transfer device to update the load information in a timely manner, thereby ensuring the timeliness of the load information.

[0126] In the above embodiment, when calculating the current load information, the data sending volume can reflect the current network status of the target transit port, the data queuing change can reflect the changing trend of the network status, and the reference network load can reflect the reference network status. The current load information calculated based on the data sending volume, the data queuing change and the reference network load can reflect the comprehensive network status of the target transit port from the present to the future. The accuracy of this load information is relatively high. The current window adjustment information calculated based on such load information helps to reduce data accumulation in the network during window adjustment and improve network bandwidth utilization.

[0127] In one embodiment, the current network load is obtained based on the data transmission volume and data queue change volume of the target transit port corresponding to the initial data packet in the current time period, including:

[0128] Obtain the initial queue height and target queue height of the target transit port in the current time period; obtain the data queue change based on the difference between the initial queue height and the target queue height, and obtain the intermediate network load by fusing the data queue change and the data transmission volume; obtain the current network load based on the intermediate network load and the target queue height.

[0129] The initial queue height refers to the queue height at the target transit port at the start of the current time period. The target queue height refers to the queue height at the target transit port at the end of the current time period. The queue height reflects the amount of data in the queue.

[0130] Specifically, the data transfer device can obtain the initial queue height and target queue height of the target transfer port in the current time period, and use the difference between the initial queue height and the target queue height as the data queue change. The first-order difference of the queue height can reflect the changing trend of the port's network status. The data transfer device then merges the calculated data queue change and data transmission volume. For example, the sum of the data queue change and data transmission volume is used as the intermediate network load, and the weighted sum of the data queue change and data transmission volume is used as the intermediate network load. The data transfer device can directly use the intermediate network load as the current network load. However, considering that the existing data accumulation at the target transfer port will also affect the current and future network status, the data transfer device can further derive the current network load based on the intermediate network load and the target queue height. For example, the sum of the intermediate network load and the target queue height is used as the current network load, and the weighted sum of the intermediate network load and the target queue height is used as the current network load. It can be understood that the target queue height is regarded as a component of the current network load. The target queue height can be used as a penalty item to avoid the current load information calculated to be smaller when the target transit port has a higher queue height. The penalty item helps to gradually reduce the data queue amount in the target transit port.

[0131] In the above embodiment, the initial queue height and target queue height of the target transit port in the current time period are obtained, and the data queue variation is calculated based on the difference between the initial queue height and the target queue height. The data queue variation and the data transmission volume are then combined to obtain the intermediate network load, and the current network load is then obtained based on the intermediate network load and the target queue height. In this way, the current network load calculated based on the data queue variation, the data transmission volume, and the target queue height is highly accurate. The current window adjustment information calculated based on this current network load helps reduce data accumulation in the network during window adjustment, thereby improving network bandwidth utilization.

[0132] In one embodiment, obtaining the current network load based on the intermediate network load and the target queue height includes:

[0133] The attention weights corresponding to the intermediate network load and the target queue height are obtained respectively; the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target queue height; based on the attention weights corresponding to the intermediate network load and the target queue height respectively, the intermediate network load and the target queue height are fused to obtain the current network load.

[0134] Specifically, when calculating the current network load, the intermediate network load and target queue height have different degrees of influence on the network status of the target transit port. Since the intermediate network load is based on the data transmission volume and data queue change of the target transit port in the current time period, it can reflect the data reception status of the target transit port in the current time period and can directly reflect the actual load data volume of the target transit port in the current time period. The target queue height is the data monitored at the last moment of the current time period and also has a certain degree of indirect influence on the subsequent direction of the network status. In comparison, the intermediate network load has a greater impact on and determines the network status. Therefore, the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target queue height. The data transit device can obtain the attention weights corresponding to the intermediate network load and the target queue height, respectively, and perform data weighted fusion based on the attention weights to obtain the current network load. The specific value of the attention weight can be set as needed.

[0135] In one embodiment, the attention weight corresponding to the target queue height is determined based on the reference network load and the preset queue height. The difference between the preset queue height and the maximum queue height is less than a preset threshold. In other words, the preset queue height represents the queue height when the amount of queued data is large. For example, the ratio of the reference network load to the preset queue height can be used as the attention weight corresponding to the target queue height. In other words, the product of the attention weights corresponding to the preset queue height and the target queue height is equal to the reference network load. Specifically, when the target queue height is high, the penalty imposed by the target queue height on the current load information is equal to the maximum load that the port can withstand. Therefore, the calculated current load information can indicate that the network is overloaded. When the target queue height is high, the target transit port can receive less data, making it more susceptible to overload. Upon learning the current load information, the data transmitter can quickly reduce the congestion window to alleviate data queuing at the target transit port.

[0136] In the above embodiment, based on the attention weights corresponding to the intermediate network load and the target queue height respectively, the intermediate network load and the target queue height are fused to obtain the current network load. The attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target queue height, which can improve the accuracy of the current network load. The current window adjustment information calculated based on such current network load helps to reduce data accumulation in the network during window adjustment and improve network bandwidth utilization.

[0137] In one embodiment, current load information is obtained based on the current network load of the target transit port in the current time period and the reference network load, including:

[0138] Based on the bandwidth information corresponding to the target transit port and the current time period, a reference network load is obtained; and based on the ratio of the current network load to the reference network load, current load information is obtained.

[0139] Bandwidth information refers to the amount of data that can be transmitted by the target transit port within a unit of time.

[0140] Specifically, when calculating the reference network load, the data transfer device may obtain the bandwidth information corresponding to the target transfer port and use the product of the bandwidth information corresponding to the target transfer port and the current time period as the reference network load. When calculating the current load information, the data transfer device may calculate the ratio of the current network load to the reference network load as the current load information.

[0141] In the above embodiment, an accurate reference network load can be obtained based on the bandwidth information corresponding to the target transit port and the current time period, and the current load information can be obtained based on the ratio of the current network load and the reference network load. The current load information can more intuitively reflect the network status of the target transit port.

[0142] In one embodiment, the current load information is obtained based on the ratio of the current network load to the reference network load, including:

[0143] The reference network load is adjusted based on the bandwidth utilization ratio to obtain an updated network load; and current load information is obtained based on a ratio of the current network load and the updated network load.

[0144] The bandwidth utilization ratio is used to represent the bandwidth utilization rate of the data transfer device to the target transfer port. The bandwidth utilization ratio can be set as needed.

[0145] Specifically, each data transfer port on the data transfer device can operate at full capacity, utilizing all bandwidth resources for data forwarding, or it can idle some bandwidth resources to reduce the amount of data sent, thereby reducing the amount of data in the network and improving data transmission speed. Therefore, the data transfer device can adjust the reference network load based on the bandwidth utilization ratio to obtain an updated network load, and use the ratio of the current network load to the updated network load as the current load information. The bandwidth utilization ratios corresponding to different transfer ports on the data transfer device can be the same or different.

[0146] In one embodiment, the bandwidth utilization ratio can be determined based on the task type and nature of the data transmission task. For example, for data streams and data transmission links that require low latency, the bandwidth utilization ratio can be less than the preset ratio. For example, for real-time interactive call tasks, the bandwidth utilization ratio can be set to 0.95. For data streams and data transmission links that require high bandwidth, the bandwidth utilization ratio can be greater than the preset ratio. For example, for tasks that transmit large-capacity videos, the bandwidth utilization ratio can be set to 1.

[0147] In the above embodiment, the reference network load is adjusted based on the bandwidth utilization ratio to obtain an updated network load, and the current load information is obtained based on the ratio of the current network load and the updated network load. The current window adjustment information calculated based on such current load information can prompt the network state to be gradually adjusted to the expected state during the window adjustment, so that the bandwidth utilization in the port gradually reaches the preset bandwidth utilization ratio, and ultimately achieve high network bandwidth utilization.

[0148] In one embodiment, the current load information is calculated as follows:

[0149]

[0150] I=TxBytes+Qlen-LastQlen

[0151] Among them, L represents the current load information, which can also be called the load rate. I represents the intermediate network load. T represents the current time period, which can also be called the measurement period. B represents bandwidth information, which can also be called the port bandwidth. Qlen represents the target queue height in the current time period, which can also be considered as the queue height at the time of this measurement. LastQlen represents the initial queue height in the current time period, which can also be considered as the queue height at the time of the last measurement. Qlen and LastQlen can be expressed in bytes. γ represents the attention weight corresponding to the target queue height, and γ is less than 1. α represents the bandwidth utilization ratio. TxBytes represents the amount of data sent in the current time period, which can be considered as the number of bytes sent by the port from the last measurement to the current measurement. It can be understood that when the bandwidth is full and there is no queue, L = 1.

[0152] Data transit equipment can periodically calculate the load rate for each transit port. This load rate is a network status indicator that combines the data transmission volume TxBytes, the target queue height Qlen, and the first-order difference of the queue height (Qlen-LastQlen). Such a network status indicator can not only accurately reflect the current status of the data transit device port, but also reflect its status change trend through the first-order difference of the queue height. Congestion window adjustment based on such a load rate can effectively take the changing trend of network traffic into account in the adjustment range, thereby avoiding insufficient or excessive adjustment, and ultimately achieving no or low packet accumulation in the network and high network bandwidth utilization.

[0153] In one embodiment, the measurement period can be set to the network no-load RTT. In one embodiment, γ can be set to 0.2-0.4, and α can be set to 0.95-1.

[0154] In one embodiment, updating the initial data packet based on the current window adjustment information to obtain the intermediate data packet includes:

[0155] When the current window adjustment information is greater than the initial window adjustment information, the initial window adjustment information in the initial data packet is replaced based on the current window adjustment information to obtain an intermediate data packet, and the target window adjustment information is the current window adjustment information; when the current window adjustment information is less than or equal to the initial window adjustment information, the initial data packet is used as the intermediate data packet, and the target window adjustment information is the initial window adjustment information.

[0156] Specifically, the target window adjustment information can be determined based on a comparison result between the current window adjustment information and the initial window adjustment information. When the current window adjustment information is greater than the initial window adjustment information, the current window adjustment information is used as the target window adjustment information, and the initial window adjustment information in the initial data packet is replaced based on the current window adjustment information to obtain an intermediate data packet. When the current window adjustment information is less than or equal to the initial window adjustment information, the initial window adjustment information is used as the target window adjustment information, and the initial data packet is directly used as the intermediate data packet.

[0157] It can be understood that a data packet can pass through at least one data transfer device during transmission from a data sending end to a data receiving end. For example, the data transmission path in the network is: data sending device-data transfer device 1-data transfer device 2-data transfer device 3-data receiving device. If a data packet passes through multiple data transfer devices during the data transmission process, each data transfer device can calculate load information based on the relevant data of its respective transfer port. As the data packet passes through each data transfer device, it can always obtain the window adjustment information with the larger value by comparing data and transmit it as the target window adjustment information. For example, if the window adjustment information calculated by data transfer device 1 is greater than the initial window adjustment information, data transfer device 1 can replace the initial window adjustment information in the data packet with the calculated window adjustment information and transmit the calculated window adjustment information as the new initial window adjustment information. If the window adjustment information calculated by data transfer device 2 is greater than the window adjustment information calculated by data transfer device 1, data transfer device 2 can replace the window adjustment information calculated by data transfer device 1 in the data packet with the window adjustment information calculated by data transfer device 2 and transmit the calculated window adjustment information as the new initial window adjustment information, and so on. Ultimately, the data packet can collect the strongest adjustment demand along the way, collect the window adjustment information that can reflect the congestion status of the most congested port, and use this window adjustment information as the target window adjustment information received by the data receiving end. The target window adjustment information received by the data sender is the path bottleneck point detected by the data packet in the entire transmission path. The data sender can quickly eliminate the accumulation of data packets in the network by adjusting the window based on the window adjustment information of the most congested port.

[0158] In the above embodiment, when the current window adjustment information is greater than the initial window adjustment information, the current window adjustment information is used as the target window adjustment information. When the current window adjustment information is less than or equal to the initial window adjustment information, the initial window adjustment information is used as the target window adjustment information. This ensures that the window adjustment information that reflects the more congested network state and the stronger adjustment needs is always transmitted throughout the transmission process. Subsequently, the data transmitter can perform window adjustments based on the received target window adjustment information, quickly eliminating packet accumulation in the network.

[0159] In one embodiment, the initial data packet carries a target data flow identifier, the data transfer device includes at least one candidate transfer port corresponding to the candidate data flow identifier, and each candidate transfer port includes at least one data queue corresponding to the candidate data flow identifier.

[0160] Based on the initial window information, historical window statistics are updated to obtain current window statistics. Based on the current load information, current window statistics, and initial window information, current window adjustment information is obtained, including:

[0161] The candidate transit port corresponding to the target data flow identifier is used as the target transit port; in the target transit port, the data queue corresponding to the target data flow identifier is used as the target queue; based on the initial window information, the historical window statistical information corresponding to the target queue is updated to obtain the current window statistical information; based on the current load information, the current window statistical information and the initial window information of the target queue in the current time period, the current window adjustment information is obtained.

[0162] Among them, the data flow identifier is used to identify the data transmission link of the data packet. For example, the five-tuple information of the data packet can be used as the data flow identifier. The target data flow identifier refers to the data volume identifier corresponding to the initial data packet. The data transfer device includes at least one candidate transfer port corresponding to the candidate data flow identifier, that is, the same data transfer device can be used as a transfer device on different data transmission links at the same time, and different data transmission links can pass through the same data transfer device. Each candidate transfer port on the data transfer device includes at least one data queue corresponding to the candidate data flow identifier, that is, the same transfer port can be used as a port for data transfer on different data transmission links at the same time, and the data packets transmitted on different data transmission links can be stored in different data queues of the same port, and different traffic flows can be isolated through data queues.

[0163] Specifically, after the data transfer device obtains the initial data packet, it can determine the target transfer port corresponding to the initial data packet based on the target data flow identifier carried by the initial data packet. The data transfer device can calculate the current window statistics and current load information at the port level based on the port-level data, calculate the current window adjustment information at the port level based on the current window statistics, current load information and initial window information at the port level, and determine the target window adjustment information at the port level based on the current window adjustment information and initial window adjustment information at the port level. Subsequently, the data sending device can adjust the congestion window based on the target window adjustment information at the port level. The port-level data is comprehensive data obtained based on the relevant data statistics of all queues on the port. For example, the historical window statistics are obtained by statistically analyzing the initial window information of the data packets to be sent received by the target transfer port at a historical time. The queue height is the amount of data queued by the entire port, which is obtained by combining the queued data amounts of all queues on the same port. The bandwidth information is the port bandwidth.

[0164] Of course, after determining the target transit port corresponding to the initial data packet, the data transit device can also calculate the queue-level current window statistics and current load information based on the queue-level data, calculate the queue-level current window adjustment information based on the queue-level current window statistics, current load information, and initial window information, and determine the queue-level target window adjustment information based on the queue-level current window adjustment information and initial window adjustment information. Subsequently, the data sending device can adjust the congestion window based on the queue-level target window adjustment information. Queue-level data is obtained based on the relevant data statistics of a single queue. For example, historical window statistics are obtained by statistically analyzing the initial window information of the data packets to be sent received by the target queue at a historical time. The queue height is the amount of queued data in the queue where the data packet is located, and the bandwidth information is the queue bandwidth allocated to the queue where the data packet is located.

[0165] When calculating the current window statistics at the queue level, the data transfer device can use the candidate transfer port corresponding to the target data flow identifier as the target transfer port corresponding to the initial data packet, and use the data queue corresponding to the target data flow identifier in the target transfer port as the target queue corresponding to the initial data packet, thereby obtaining the historical window statistics corresponding to the target queue, and updating the historical window statistics based on the initial window information to obtain the current window statistics. The data transfer device can obtain the current load information of the target queue in the current time period, and obtain the current window adjustment information based on the calculated current window statistics, the obtained current load information, and the initial window information. For example, when calculating the current load information, the data transmission volume and data queuing change of the target queue in the current time period can be obtained, and the current network load can be calculated based on the obtained data transmission volume and data queuing change. The reference network load of the target queue in the current time period is obtained, and the current load information is calculated based on the current network load of the target queue in the current time period and the reference network load.

[0166] In scenarios where multiple protocols coexist, network operators can use queues to isolate each protocol type and allocate a preset bandwidth to each protocol queue. Therefore, all metrics involved in calculating window statistics and load information can be queue-level. The entire port maintains window statistics and load information for each queue. Subsequently, the data sender adjusts the congestion window based on the queue-level window adjustment information, controlling the throughput of each queue within the preset bandwidth and ensuring near-zero queue backlog.

[0167] It can be understood that the specific calculation process of the current window adjustment information and the current load information can refer to the methods described in the aforementioned relevant embodiments.

[0168] In the above embodiment, different flows are isolated through data queues, and current load information and current window adjustment information are calculated based on relevant data at the queue level. Such current window adjustment information can accurately characterize the network status corresponding to a single flow or data flow, and can accurately characterize the relative size of a single flow or data flow to the average value of all flows that have a direct impact on it. Then, the data sending device can adjust the corresponding congestion window in a targeted manner to achieve precise adjustment, ultimately achieving the goal of eliminating network congestion while maintaining high bandwidth utilization and flow fairness.

[0169] In one embodiment, Figure 4 As shown, a network congestion data processing method is provided, which is applied to Figure 1 The data sending device in the example is used as an example to illustrate, including the following steps:

[0170] Step S402: Acquire an initial data packet; the initial data packet carries initial window information and initial window adjustment information.

[0171] Step S404: Send the initial data packet to the data transfer device, so that the data transfer device sends the initial data packet to the data receiving device.

[0172] Specifically, the data sending device may generate an initial data packet and send the initial data packet to the data transfer device, and the data transfer device may forward the initial data packet to the data receiving device.

[0173] Step S406, obtain the response data packet returned by the data receiving device; the response data packet carries the target window adjustment information; the target window adjustment information is determined by the data transfer device based on the current window adjustment information and the initial window adjustment information, the current window adjustment information is obtained based on the current load information, the current window statistical information and the initial window information, and the current window statistical information is obtained by updating the historical window statistical information based on the initial window information.

[0174] Specifically, when forwarding an initial data packet, the data receiving device can obtain historical window statistics and current load information, update the historical window statistics based on the initial window information carried in the initial data packet to obtain current window statistics, calculate current window adjustment information based on the current load information, the current window statistics, and the initial window information carried in the initial data packet, and update the initial window adjustment information in the initial data packet based on the current window adjustment information. The data transfer device sends the updated initial data packet to the data receiving device. The updated initial data packet carries the target window adjustment information obtained through the data update. After receiving the initial data packet, the data receiving device can generate a response data packet and feed the response data packet back to the data sending device. The response data packet carries the target window adjustment information.

[0175] The specific generation process of the current window adjustment information, the current load information, and the current window statistical information may refer to the methods described in the aforementioned relevant embodiments.

[0176] Step S408: Adjust the current congestion window based on the target window adjustment information to obtain a target congestion window.

[0177] Specifically, after the data sending device obtains the target window adjustment information fed back by the data receiving device, it can adjust the current congestion window based on the target window adjustment information to obtain the target congestion window. For example, it can determine a window adjustment parameter based on the target window adjustment information, and then adjust the current congestion window based on the window adjustment parameter. The window adjustment parameter can be multiplied by the current congestion window, or the current congestion window can be adjusted based on the target window adjustment information using a custom formula or algorithm. When sending subsequent data packets, the data sending device can control the sending speed of the data packets based on the target congestion window, thereby alleviating network congestion or improving network resource utilization.

[0178] In one embodiment, the data transmitter can also set a window adjustment period and adjust the congestion window based on the window adjustment period to avoid frequent updates of the congestion window that affect network stability. For example, the length of the network idle RTT can be used as the window adjustment period and the window update period. The data transmitter monitors the congestion window update time. Once the interval reaches the network idle RTT, the current congestion window is adjusted using the latest received target window adjustment information. If the interval does not reach the network idle RTT, the current congestion window remains unchanged.

[0179] The above-mentioned network congestion data processing method, device, computer equipment and storage medium, the data transfer device obtains the initial data packet sent by the data sending device, the initial data packet carries initial window information and initial window adjustment information, updates the historical window statistical information based on the initial window information to obtain current window statistical information, obtains current window adjustment information based on current load information, current window statistical information and initial window information, updates the initial data packet based on the current window adjustment information corresponding to the current time period to obtain an intermediate data packet, sends the intermediate data packet to the data receiving device, the intermediate data packet carries target window adjustment information determined based on the current window adjustment information and the initial window adjustment information, the data transfer device sends the response data packet returned from the data receiving device and carrying the target window adjustment information to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information. In this way, when calculating the window adjustment information, the historical window statistics can reflect the window average of other data packets, the current window statistics can reflect the window average of all data packets, the current load information can reflect the current network status, and the initial window information can reflect the window size of the data sending device itself. The current window adjustment information calculated based on the current load information, the current window statistics and the initial window information comprehensively considers the window information of all current data packets and the current network status. The window adjustment information helps to improve the accuracy and fairness of the window adjustment, so that different data packets and data streams can achieve fairness while improving network congestion. After the data sending device receives the response data packet, it can accurately adjust the current congestion window based on the latest acquired window adjustment information.

[0180] In one embodiment, adjusting the current congestion window based on the target window adjustment information to obtain the target congestion window includes:

[0181] When the time interval between the current time and the adjacent congestion window adjustment time is greater than the preset time interval, the target congestion window is obtained based on the ratio of the current congestion window and the target window adjustment information; when the time interval between the current time and the adjacent congestion window adjustment time is less than or equal to the preset time interval, the current congestion window is used as the target congestion window.

[0182] The preset time interval can be set as needed. For example, the preset time interval can be set to the network idle RTT. The adjacent congestion window adjustment time refers to the time when the congestion window was last adjusted. It is understood that the data transmitter can periodically adjust the congestion window, and the adjacent congestion window adjustment time can refer to the time when the congestion window was last adjusted.

[0183] Specifically, the data sending end may periodically adjust the congestion window. The data sending device performs window adjustment only when the time interval between the current time and the adjacent congestion window adjustment time is greater than a preset time interval, that is, when the current time reaches the congestion window update period. At this time, the data sending device may calculate the ratio of the current congestion window to the target window adjustment information and determine the target congestion window based on this ratio. When the time interval between the current time and the adjacent congestion window adjustment time is less than or equal to the preset time interval, that is, when the current time does not reach the congestion window update period, the current congestion window remains unchanged, that is, the target congestion window is the current congestion window.

[0184] In one embodiment, the window adjustment may be performed according to the following formula:

[0185]

[0186] If now-updatetime≤network idle RTT,W=W C

[0187] Where, now represents the current time, updatetime represents the adjacent congestion window adjustment time, W represents the target congestion window, and W C Indicates the current congestion window, and AR indicates the target window adjustment information.

[0188] In one embodiment, reference Figure 5 The sender controls the data flow based on the window, and the switches in the network continuously update the average window and periodically update the port load rate. The sender inserts the window information and the initial window adjustment rate into the data packet when sending it. When forwarding the data packet, the switch in the network calculates the adjustment rate (also called the flow adjustment rate) based on the window information, the average window, and the load rate, and selectively uses the calculated adjustment rate to update the adjustment rate in the data packet. After receiving the data packet, the receiver extracts the adjustment rate and sends it back to the sender via the response packet. After receiving the response packet, the sender performs a multiplicative window adjustment based on the adjustment rate carried in the response packet, thereby matching the total rate of all flows to the bandwidth of the link bottleneck.

[0189] In the above embodiment, when the time interval between the current time and the adjacent congestion window adjustment time is greater than a preset time interval, a target congestion window is obtained based on the ratio of the current congestion window to the target window adjustment information. The sender multiplicatively adjusts the window according to the target window adjustment information, thereby quickly matching the total rate of all flows to the bandwidth of the link bottleneck. Furthermore, because the target window adjustment information takes into account current window statistics, window adjustment based on such target window adjustment information can reduce the window size of flows larger than the average window size and increase the window size of flows smaller than the average window size. The magnitude of the adjustment is proportional to the ratio of the flow window size to the average window size, thereby ultimately ensuring that all flows receive a fair share of bandwidth. Furthermore, because the target window adjustment information also takes into account current load information, window adjustment based on such target window adjustment information can gradually eliminate network congestion while maintaining high bandwidth utilization.

[0190] In one embodiment, the initial data packet and the response data packet carry a target data flow identifier, and adjusting the current congestion window based on the target window adjustment information to obtain the target congestion window includes:

[0191] The current congestion window corresponding to the target data flow identifier is adjusted based on the target window adjustment information to obtain a target congestion window corresponding to the target data flow identifier.

[0192] Specifically, in a data sending device, different data streams may correspond to different congestion windows. Therefore, when adjusting the congestion window, the corresponding congestion window may be adjusted based on the corresponding target window adjustment information to achieve precise adjustment. The data sending device may determine the current congestion window corresponding to the target data stream identifier based on the target data stream identifier carried in the response data packet, and then adjust the current congestion window corresponding to the target data stream identifier based on the target window adjustment information carried in the response data packet to obtain the target congestion window corresponding to the target data stream identifier. The congestion window adjustment process may refer to the contents of the aforementioned related embodiments.

[0193] For example, if user A sends a message on a social networking application on a terminal and requests to browse a webpage through a browser on the terminal, these messages correspond to different data flows. The message and the browsing request reach their respective recipients via different data transmission links. Generally, data packets sent by different applications on a terminal can correspond to different data flows and data transmission links.

[0194] In the above embodiment, adjusting the current congestion window corresponding to the target data flow identifier based on the window adjustment parameter can achieve accurate and targeted adjustment.

[0195] In one embodiment, Figure 6As shown, a network congestion data processing system is provided, which includes a data sending device 602, a data transfer device 604 and a data receiving device 606.

[0196] The data sending device 602 is used to obtain an initial data packet and send the initial data packet to the data transfer device; the initial data packet carries initial window information and initial window adjustment information.

[0197] The data transfer device 604 is used to update the initial data packet based on the current window adjustment information, obtain the intermediate data packet, and send the intermediate data packet to the data receiving device; the intermediate data packet carries the target window adjustment information determined based on the current window adjustment information and the initial window adjustment information, the current window adjustment information is obtained based on the current load information, the current window statistical information and the initial window information, and the current window statistical information is obtained by updating the historical window statistical information based on the initial window information.

[0198] The data sending device 602 is further configured to obtain a response data packet carrying target window adjustment information returned by the data receiving device, and adjust the congestion window based on the target window adjustment information.

[0199] It can be understood that the specific data processing process of the data sending device and the data transfer device can refer to the methods described in the aforementioned relevant embodiments.

[0200] The above-mentioned network congestion data processing system, when calculating window adjustment information, historical window statistics can reflect the window average value of other data packets, current window statistics can reflect the window average value of all data packets, and current load information can reflect the current network status of the target transit port. The current window adjustment information calculated based on the current load information, current window statistics and initial window information comprehensively considers the window average value of all data packets and the current network status. The window adjustment information helps to improve the accuracy and fairness of window adjustment, so that different data packets and data streams can achieve fairness while improving network congestion. After the data sending device receives the response data packet, it can accurately adjust the current congestion window based on the latest acquired window adjustment information.

[0201] In a specific embodiment, the network congestion data processing method can be applied to a data center network to control the rate of data flows in the network to achieve the goals of high bandwidth utilization, low network queuing, and fair bandwidth distribution between data flows.

[0202] refer to Figure 7The solution of this application is deployed on both the end-side server and the network switch of the network, achieving the desired goal through the collaboration between the end-side and the network. On the end-side server, this solution is deployed in the transport layer to control the sending rate of the data stream by adjusting the congestion window. The network congestion data processing method specifically includes the following steps:

[0203] 1. When a data packet is sent from the sender, a specific AH (Adjustment Header) adjustment rate packet header is inserted into the data packet, where W is used to record the initial window information and AR is used to record the initial window adjustment rate.

[0204] 2. When a data packet is sent from the outbound port of the switch, the switch calculates the current window adjustment rate FAR based on the port load rate PL, the current average window Wm, and the initial window information W, and compares FAR with the initial window adjustment rate AR in the packet header. If FAR>AR, AR is updated with FAR.

[0205] Specifically, switches in the network calculate FAR based on the following formula.

[0206]

[0207] PL=L*64

[0208]

[0209] I=TxBytes+Qlen-LastQlen

[0210] W m =W m′ *(1-η)+W*η

[0211] The switch port load rate L is a network status indicator that combines the amount of transmitted data (TxBytes), the queue height (Qlen), and the first-order difference of the queue height (Qlen - LastQlen). This network status indicator not only accurately reflects the current status of the data transfer device port, but also reflects its status change trend through the first-order difference of the queue height. Adjusting the congestion window based on this load rate can effectively take the changing trend of network traffic into account in the adjustment range, thereby avoiding under-adjustment or over-adjustment. Ultimately, it can achieve no or low packet accumulation in the network and high network bandwidth utilization.

[0212] If FAR>AR, then use FAR to update AR, which allows the data packet to collect the maximum adjustment rate along the path to obtain the congestion status of the bottleneck node. The data packet can effectively collect the strongest adjustment demand on the network path and reflect the congestion status of the bottleneck node of the most congested port. Adjustment based on this status can quickly eliminate data packet accumulation in the network.

[0213] Furthermore, the average window and load rate are combined when calculating the adjustment rate. The adjustment rate is an innovative indicator that combines efficiency and fairness. It not only reflects the load status of the port, but also reflects the relative size of the flow containing the current data packet to the average value of all flows. Window adjustment based on this adjustment rate can quickly achieve the optimal state in both dimensions at the same time. That is, the flow window (bandwidth allocation) reaches a fair state, while the network bandwidth achieves the highest utilization rate.

[0214] 3. After the data packet arrives at the receiving end, the receiving end extracts the AR of the data packet.

[0215] 4. The receiving end generates a response packet (Ack packet) and writes the AR extracted in step 3 into the AR area of the response packet.

[0216] 5. The acknowledgment packet arrives at the sender. The sender extracts the AR of the acknowledgment packet and adjusts the congestion window based on the AR.

[0217] Specifically, the sender can adjust the congestion window based on the following formula.

[0218]

[0219] If now-updatetime≤network idle RTT,W=W C

[0220] It's understandable that if the window size is a floating-point number, the sender extracts the adjustment rate (AR) from the packet header after receiving the response packet, maps it back to a floating-point number, and then performs window adjustment based on the mapped AR. For example, if the initial AR maps a rate of 1.0 to 512, and the AR is initialized to 512, then after receiving the AR, the sender needs to divide it by 512 and map it back to a floating-point number.

[0221] After receiving the response data packet, the sender directly multiplicatively adjusts the congestion window according to the adjustment rate without introducing a constant parameter. This adjustment method can well adapt to the scenario with a very large number of flows and quickly adjust to the optimal value.

[0222] In summary, this solution can accurately sense the congestion status in the network. Furthermore, with the help of window-based control and precise adjustment of the window, this solution is able to control network queuing at an extremely low level while maintaining close to 100% bandwidth utilization and excellent data flow fairness. It will not cause performance degradation caused by severe queuing, and it also ensures the performance of large-scale networks.

[0223] This solution can achieve the best performance in terms of bandwidth utilization, queue accumulation and flow fairness, achieving high bandwidth utilization, low queue accumulation and excellent flow fairness. In particular, we compared the performance of DCQCN (Data Center Quantized Congestion Notification, a data center quantized congestion control algorithm), HPCC (High Precision Congestion Control, a high-precision congestion control algorithm) and this solution through simulation. We conducted an 8-to-1 Incast test in a data center network similar to a Fattree (fat tree topology) and used the Figure 8 , one flow each starts from nodes 40-47 (i.e., servers 0-7) and reaches node 55. Data center networks use a three-layer topology with switch cascading. Access switches and aggregation switches are divided into different clusters. Each access switch in a cluster is connected to each aggregation switch, and each aggregation switch is connected to some core switches. Incast is a common many-to-one communication mode within data center networks. In this mode, multiple senders simultaneously respond to a client's request and send data packets. If the number of packets transmitted simultaneously exceeds the switch's cache, a large number of packets will be lost, causing timeouts. This will result in underutilization of link bandwidth and a sharp drop in throughput.

[0224] Simulation performance results reference Figure 9A 、 Figure 9B 、 Figure 9C , Figure 9A is the simulation result of DCQCN, Figure 9B is the simulation result of HPCC, Figure 9C This is the simulation result of this scheme. Figure 9A 、 Figure 9B 、 Figure 9C From left to right, the flow rate / window change, bottleneck bandwidth and bottleneck queue height are shown in the figure. Figure 9A 、 Figure 9B 、 Figure 9C Only the rate changes of data flows of some nodes are shown. For the sake of clarity, only the four flows of servers 0, 2, 4, and 6 (i.e., nodes 40, 42, 44, and 46) are selected for drawing. Regarding the bottleneck bandwidth and bottleneck queue height, since the node being hit is node 55, switches 38 and 39 are closest to node 55. Switches 38 and 39 need to aggregate data from upper-layer switches and forward it to node 55. Therefore, switches 38 and 39 can be considered the bottleneck points on the data transmission link. Figure 9A 、 Figure 9B 、 Figure 9COnly the bottleneck bandwidth and bottleneck queue height of 38 switches are shown.

[0225] The simulation results show that DCQCN's flow rate varies significantly, and its rate distribution is unfair. Near the end of the process, bandwidth is significantly insufficient, and packet backlogs on the switches fluctuate between 100KB and 500KB throughout the entire process. While the HPCC solution's data flow rate is slightly fairer than DCQCN, its switch bandwidth fluctuates significantly, resulting in throughput loss. Furthermore, switch queue backlogs initially remain relatively high, exceeding 250KB for a long period of time, and subsequently fluctuate around 30KB. In contrast, the data flow window sizes controlled by this solution are very uniform, demonstrating excellent fairness. Switch bandwidth is consistently maintained at 100%, and switch queue backlogs fluctuate around 8KB. Furthermore, this solution not only keeps switch queues very low, but also allows for the setting of a specific target bandwidth utilization, or bandwidth utilization ratio. For example, setting the bandwidth utilization ratio to 95% (i.e., setting α in the formula to 95%) completely eliminates queue backlogs.

[0226] It should be understood that although Figure 2 、 Figure 4 The steps in the flowchart are shown in sequence as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified in this document, there is no strict order restriction for the execution of these steps, and these steps can be executed in other orders. In addition, Figure 2 、 Figure 4 At least part of the steps may include multiple steps or multiple stages. These steps or stages are not necessarily performed at the same time, but can be performed at different times. The order of execution of these steps or stages is not necessarily one by one, but can be performed in turn or alternately with other steps or at least part of the steps or stages in other steps.

[0227] In one embodiment, Figure 10 As shown, a network congestion data processing device is provided. The device can be implemented as a software module or a hardware module, or a combination of both to form a part of a computer device. The device specifically includes: a data packet acquisition module 1002, a window statistics module 1004, a window adjustment information determination module 1006, a data packet update module 1008, and a data packet sending module 1010, wherein:

[0228] The data packet acquisition module 1002 is used to acquire the initial data packet sent by the data sending device; the initial data packet carries initial window information and initial window adjustment information.

[0229] The window statistics module 1004 is configured to update historical window statistics based on the initial window information to obtain current window statistics.

[0230] The window adjustment information determining module 1006 is configured to obtain current window adjustment information based on current load information, current window statistical information, and initial window information.

[0231] The data packet updating module 1008 is used to update the initial data packet based on the current window adjustment information, obtain an intermediate data packet, and send the intermediate data packet to the data receiving device; the intermediate data packet carries the target window adjustment information determined based on the current window adjustment information and the initial window adjustment information.

[0232] The data packet sending module 1010 is configured to send a response data packet carrying target window adjustment information returned from the data receiving device to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information.

[0233] The above-mentioned network congestion data processing device, when calculating the window adjustment information, the historical window statistical information can reflect the window average value of other data packets, the current window statistical information can reflect the window average value of all data packets, the current load information can reflect the current network status, and the initial window information can reflect the window size of the data sending device itself. The current window adjustment information calculated based on the current load information, the current window statistical information and the initial window information comprehensively considers the window information of all current data packets and the current network status. The window adjustment information helps to improve the accuracy and fairness of the window adjustment, so that while improving the network congestion situation, fairness can be achieved between different data packets and data streams. After the data sending device receives the response data packet, it can accurately adjust the current congestion window based on the latest acquired window adjustment information.

[0234] In one embodiment, the window statistics module is also used to obtain the attention weights corresponding to the initial window information and the historical window statistical information. The attention weight corresponding to the initial window information is less than the attention weight corresponding to the historical window statistical information. Based on the attention weights corresponding to the initial window information and the historical window statistical information, the initial window information and the historical window statistical information are fused to obtain the current window statistical information.

[0235] In one embodiment, the window adjustment information determination module is further configured to obtain a window ratio based on a ratio of the initial window information to the current window statistical information, and to fuse the current load information and the window ratio to obtain the current window adjustment information.

[0236] In one embodiment, the window adjustment information determination module includes:

[0237] The load information acquisition unit is used to obtain the current network load based on the data transmission volume and data queuing change of the target transit port corresponding to the initial data packet in the current time period. The target transit port is the port on the data transit device used to send data packets. The current load information is obtained based on the current network load of the target transit port in the current time period and the reference network load.

[0238] In one embodiment, the load information acquisition unit is also used to obtain the initial queue height and target queue height of the target transit port in the current time period, obtain the data queue change based on the difference between the initial queue height and the target queue height, fuse the data queue change and the data sending amount to obtain the intermediate network load, and obtain the current network load based on the intermediate network load and the target queue height.

[0239] In one embodiment, the load information acquisition unit is also used to obtain the attention weights corresponding to the intermediate network load and the target queue height, respectively. The attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target queue height. Based on the attention weights corresponding to the intermediate network load and the target queue height, respectively, the intermediate network load and the target queue height are fused to obtain the current network load.

[0240] In one embodiment, the load information acquisition unit is further configured to obtain a reference network load based on bandwidth information corresponding to the target transit port and the current time period, and obtain current load information based on a ratio of the current network load to the reference network load.

[0241] In one embodiment, the load information acquisition unit is further configured to adjust the reference network load based on the bandwidth utilization ratio to obtain an updated network load, and obtain current load information based on a ratio of the current network load to the updated network load.

[0242] In one embodiment, the data packet update module is also used to replace the initial window adjustment information in the initial data packet based on the current window adjustment information when the current window adjustment information is greater than the initial window adjustment information, to obtain an intermediate data packet, and the target window adjustment information is the current window adjustment information; when the current window adjustment information is less than or equal to the initial window adjustment information, the initial data packet is used as the intermediate data packet, and the target window adjustment information is the initial window adjustment information.

[0243] In one embodiment, the initial data packet carries a target data flow identifier, the data transfer device includes at least one candidate transfer port corresponding to the candidate data flow identifier, and each candidate transfer port includes at least one data queue corresponding to the candidate data flow identifier. The window statistics module is further configured to use the candidate transfer port corresponding to the target data flow identifier as the target transfer port, and in the target transfer port, use the data queue corresponding to the target data flow identifier as the target queue, update the historical window statistics corresponding to the target queue based on the initial window information, and obtain current window statistics. The window adjustment information determination module is further configured to obtain current window adjustment information based on the current load information of the target queue in the current time period, the current window statistics, and the initial window information.

[0244] In one embodiment, Figure 11 As shown, a network congestion data processing device is provided. The device can be a software module or a hardware module, or a combination of the two to form a part of a computer device. The device specifically includes: an initial data packet acquisition module 1102, an initial data packet sending module 1104, a response data packet acquisition module 1106, and a window adjustment module 1108, wherein:

[0245] The initial data packet acquisition module 1102 is used to acquire an initial data packet; the initial data packet carries initial window information and initial window adjustment information.

[0246] The initial data packet sending module 1104 is configured to send the initial data packet to the data transfer device, so that the data transfer device sends the initial data packet to the data receiving device.

[0247] The response data packet acquisition module 1106 is used to obtain the response data packet returned by the data receiving device; the response data packet carries the target window adjustment information; the target window adjustment information is determined by the data transfer device based on the current window adjustment information and the initial window adjustment information, the current window adjustment information is obtained based on the current load information, the current window statistical information and the initial window information, and the current window statistical information is obtained by updating the historical window statistical information based on the initial window information.

[0248] The window adjustment module 1108 is configured to adjust the current congestion window based on the target window adjustment information to obtain a target congestion window.

[0249] The above-mentioned network congestion data processing device, when calculating the window adjustment information, the historical window statistical information can reflect the window average value of other data packets, the current window statistical information can reflect the window average value of all data packets, the current load information can reflect the current network status, and the initial window information can reflect the window size of the data sending device itself. The current window adjustment information calculated based on the current load information, the current window statistical information and the initial window information comprehensively considers the window information of all current data packets and the current network status. The window adjustment information helps to improve the accuracy and fairness of the window adjustment, so that while improving the network congestion situation, fairness can be achieved between different data packets and data streams. After the data sending device receives the response data packet, it can accurately adjust the current congestion window based on the latest acquired window adjustment information.

[0250] In one embodiment, the window adjustment module is further configured to obtain a target congestion window based on a ratio of the current congestion window and the target window adjustment information when the time interval between the current time and the adjacent congestion window adjustment time is greater than a preset time interval, and to use the current congestion window as the target congestion window when the time interval between the current time and the adjacent congestion window adjustment time is less than or equal to the preset time interval.

[0251] In one embodiment, the initial data packet and the response data packet carry a target data flow identifier, and the window adjustment module is further configured to adjust a current congestion window corresponding to the target data flow identifier based on the target window adjustment information to obtain a target congestion window corresponding to the target data flow identifier.

[0252] The specific definition of the network congestion data processing device can be found in the definition of the network congestion data processing method above and will not be repeated here. Each module in the network congestion data processing device described above can be implemented in whole or in part through software, hardware, or a combination thereof. Each of the modules described above can be embedded in or independent of a processor in a computer device in hardware form, or can be stored in a memory in the computer device in software form, so that the processor can call and execute the corresponding operations of each module.

[0253] In one embodiment, a computer device is provided. The computer device may be a server, and its internal structure diagram may be as follows: Figure 12As shown. The computer device includes a processor, a memory, and a network interface connected via a system bus. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and computer program in the non-volatile storage medium. The database of the computer device is used to store data such as historical window statistics, data transmission volume, and data queue changes. The network interface of the computer device is used to communicate with an external terminal via a network connection. When the computer program is executed by the processor, a method for processing network congestion data is implemented.

[0254] In one embodiment, a computer device is provided. The computer device may be a terminal, and its internal structure diagram may be as follows: Figure 13 As shown. The computer device includes a processor, a memory, a communication interface, a display screen and an input device connected via a system bus. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The communication interface of the computer device is used to communicate with an external terminal in a wired or wireless manner, and the wireless manner can be achieved through WIFI, an operator network, NFC (near field communication) or other technologies. When the computer program is executed by the processor, a network congestion data processing method is implemented. The display screen of the computer device can be a liquid crystal display screen or an electronic ink display screen, and the input device of the computer device can be a touch layer covering the display screen, or a button, trackball or touchpad provided on the computer device housing, or an external keyboard, touchpad or mouse.

[0255] Those skilled in the art will understand that Figure 12 、 13 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different component arrangement.

[0256] In one embodiment, a computer device is further provided, including a memory and a processor. The memory stores a computer program, and the processor implements the steps in the above method embodiments when executing the computer program.

[0257] In one embodiment, a computer-readable storage medium is provided, storing a computer program, which implements the steps in the above-mentioned method embodiments when executed by a processor.

[0258] In one embodiment, a computer program product or computer program is provided, the computer program product or computer program including computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the steps of each of the above-described method embodiments.

[0259] Those skilled in the art will appreciate that all or part of the processes in the above-mentioned embodiment methods can be implemented by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in this application may include at least one of non-volatile and volatile memory. Non-volatile memory may include read-only memory (ROM), magnetic tape, floppy disk, flash memory or optical memory, etc. Volatile memory may include random access memory (RAM) or external cache memory. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM).

[0260] The technical features of the above embodiments can be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0261] The above-described embodiments merely represent several implementation methods of the present application. While the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the present invention. It should be noted that a person skilled in the art could make various modifications and improvements without departing from the spirit of the present application, all of which fall within the scope of protection of the present application. Therefore, the scope of protection of the present patent application shall be determined by the appended claims.

Claims

1. A method for processing network congestion data, characterized in that: Applied to a data transfer device, the method includes: Acquire an initial data packet sent by a data sending device; the initial data packet carries initial window information and initial window adjustment information; Update historical window statistics based on the initial window information to obtain current window statistics; Obtaining current window adjustment information based on current load information, the current window statistical information, and the initial window information; updating the initial data packet based on the current window adjustment information to obtain an intermediate data packet, and sending the intermediate data packet to a data receiving device; wherein the intermediate data packet carries target window adjustment information determined based on the current window adjustment information and the initial window adjustment information; The response data packet returned from the data receiving device and carrying the target window adjustment information is sent to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information.

2. The method according to claim 1, characterized in that The updating of historical window statistical information based on the initial window information to obtain current window statistical information includes: Obtaining attention weights corresponding to the initial window information and the historical window statistical information; the attention weight corresponding to the initial window information is less than the attention weight corresponding to the historical window statistical information; Based on the attention weights corresponding to the initial window information and the historical window statistical information, the initial window information and the historical window statistical information are fused to obtain the current window statistical information.

3. The method according to claim 1, characterized in that The obtaining of current window adjustment information based on the current load information, the current window statistical information, and the initial window information includes: Obtaining a window ratio based on a ratio of the initial window information to the current window statistical information; The current load information and the window ratio are integrated to obtain the current window adjustment information.

4. The method according to claim 1, wherein The acquisition of the current load information comprises the following steps: Obtaining a current network load based on a data transmission volume and a data queue change volume of a target transit port corresponding to the initial data packet in a current time period; The target transfer port is a port on the data transfer device used to send data packets; The current load information is obtained based on the current network load of the target transit port in the current time period and a reference network load.

5. The method according to claim 4, characterized in that The obtaining of the current network load based on the data transmission volume and data queue change volume of the target transit port corresponding to the initial data packet in the current time period includes: Obtaining an initial queue height and a target queue height of the target transit port in the current time period; Based on the difference between the initial queue height and the target queue height, a data queue variation is obtained, and the data queue variation and the data transmission amount are combined to obtain an intermediate network load; The current network load is obtained based on the intermediate network load and the target queue height.

6. The method according to claim 5, characterized in that The obtaining the current network load based on the intermediate network load and the target queue height includes: Obtaining attention weights corresponding to the intermediate network load and the target queue height, respectively; the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target queue height; Based on the attention weights corresponding to the intermediate network load and the target queue height respectively, the intermediate network load and the target queue height are fused to obtain the current network load.

7. The method according to claim 4, characterized in that The obtaining the current load information based on the current network load of the target transit port in the current time period and the reference network load includes: Obtaining the reference network load based on the bandwidth information corresponding to the target transit port and the current time period; The current load information is obtained based on a ratio of the current network load to the reference network load.

8. The method according to claim 7, characterized in that The obtaining the current load information based on a ratio of the current network load to the reference network load includes: Adjusting the reference network load based on the bandwidth utilization ratio to obtain an updated network load; The current load information is obtained based on a ratio of the current network load and the updated network load.

9. The method according to claim 1, characterized in that The updating of the initial data packet based on the current window adjustment information to obtain an intermediate data packet includes: When the current window adjustment information is greater than the initial window adjustment information, replacing the initial window adjustment information in the initial data packet based on the current window adjustment information to obtain the intermediate data packet, wherein the target window adjustment information is the current window adjustment information; When the current window adjustment information is less than or equal to the initial window adjustment information, the initial data packet is used as the intermediate data packet, and the target window adjustment information is the initial window adjustment information.

10. The method according to any one of claims 1 to 9, characterized in that The initial data packet carries a target data flow identifier, the data transfer device includes at least one candidate transfer port corresponding to the candidate data flow identifier, and each candidate transfer port includes at least one data queue corresponding to the candidate data flow identifier; The updating of historical window statistical information based on the initial window information to obtain current window statistical information, and obtaining current window adjustment information based on current load information, the current window statistical information, and the initial window information, includes: Using the candidate transit port corresponding to the target data flow identifier as the target transit port; In the target transit port, the data queue corresponding to the target data flow identifier is used as the target queue; Update the historical window statistical information corresponding to the target queue based on the initial window information to obtain the current window statistical information; The current window adjustment information is obtained based on the current load information of the target queue in the current time period, the current window statistical information, and the initial window information.

11. A method for processing network congestion data, characterized in that: Applied to a data sending device, the method includes: Obtaining an initial data packet; the initial data packet carries initial window information and initial window adjustment information; Sending the initial data packet to a data transfer device, so that the data transfer device sends the initial data packet to a data receiving device; Obtaining a response data packet returned by the data receiving device; the response data packet carries target window adjustment information; the target window adjustment information is determined by the data transfer device based on current window adjustment information and the initial window adjustment information, the current window adjustment information is obtained based on current load information, current window statistical information, and the initial window information, and the current window statistical information is obtained by updating historical window statistical information based on the initial window information; The current congestion window is adjusted based on the target window adjustment information to obtain a target congestion window.

12. The method according to claim 11, characterized in that The adjusting the current congestion window based on the target window adjustment information to obtain a target congestion window includes: When the time interval between the current time and the adjacent congestion window adjustment time is greater than the preset time interval, obtaining the target congestion window based on the ratio of the current congestion window and the target window adjustment information; When the time interval between the current time and the adjacent congestion window adjustment time is less than or equal to the preset time interval, the current congestion window is used as the target congestion window.

13. The method according to claim 11 or 12, characterized in that The initial data packet and the response data packet carry a target data flow identifier, and adjusting the current congestion window based on the target window adjustment information to obtain a target congestion window includes: The current congestion window corresponding to the target data flow identifier is adjusted based on the target window adjustment information to obtain a target congestion window corresponding to the target data flow identifier.

14. A network congestion data processing system, characterized in that: The system comprises: A data sending device, configured to obtain an initial data packet and send the initial data packet to a data transfer device; the initial data packet carries initial window information and initial window adjustment information; a data transfer device, configured to update the initial data packet based on current window adjustment information to obtain an intermediate data packet, and send the intermediate data packet to a data receiving device; the intermediate data packet carries target window adjustment information determined based on the current window adjustment information and the initial window adjustment information, the current window adjustment information being obtained based on current load information, current window statistical information, and the initial window information, the current window statistical information being obtained by updating historical window statistical information based on the initial window information; The data sending device is further configured to obtain a response data packet returned by the data receiving device and carrying the target window adjustment information, and adjust the congestion window based on the target window adjustment information.

15. A network congestion data processing device, characterized in that: The device comprises: A data packet acquisition module is used to acquire an initial data packet sent by a data sending device; the initial data packet carries initial window information and initial window adjustment information; A window statistics module is used to update historical window statistics based on the initial window information to obtain current window statistics; a window adjustment information determining module, configured to obtain current window adjustment information based on current load information, the current window statistical information, and the initial window information; a data packet updating module, configured to update the initial data packet based on the current window adjustment information to obtain an intermediate data packet, and send the intermediate data packet to a data receiving device; the intermediate data packet carries target window adjustment information determined based on the current window adjustment information and the initial window adjustment information; The data packet sending module is used to send the response data packet returned from the data receiving device and carrying the target window adjustment information to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information.

16. A network congestion data processing device, characterized in that: The device comprises: An initial data packet acquisition module is used to acquire an initial data packet; the initial data packet carries initial window information and initial window adjustment information; An initial data packet sending module, configured to send the initial data packet to a data transfer device, so that the data transfer device sends the initial data packet to a data receiving device; a response data packet acquisition module, configured to acquire a response data packet returned by the data receiving device; the response data packet carries target window adjustment information; the target window adjustment information is determined by the data transfer device based on current window adjustment information and initial window adjustment information, the current window adjustment information being obtained based on current load information, current window statistical information, and the initial window information, the current window statistical information being obtained by updating historical window statistical information based on the initial window information; The window adjustment module is configured to adjust the current congestion window based on the target window adjustment information to obtain a target congestion window.

17. A computer device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 10 or 11 to 13 are implemented.

18. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 10 or 11 to 13 are implemented.

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

Citation Information

Patent Citations

  • Efficient flow control in a radio network controller (RNC)

    CN101849391A

  • A TCP congestion control method and device

    CN109698797A