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

By passing intermediate data packets between the data transfer device and the receiving device, updating the congestion mark to calculate the network load, and adjusting the congestion window at the sending end, the high cost problem caused by complex modifications to the network transfer end in the prior art is solved, and efficient congestion control is achieved.

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

Patent Information

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

AI Technical Summary

Technical Problem

In the prior art, it takes a lot of time and cost to make complex software and hardware modifications to the network transit end to alleviate network congestion.

Method used

By passing intermediate data packets between the data transit device and the receiving device, using the target congestion mark carried by the intermediate data packet, the initial congestion mark is updated, the data queue and network load are calculated, and the reply packet is generated to adjust the congestion window of the sending end to realize congestion awareness and control.

Benefits of technology

There is no need to make complex software and hardware modifications to data transfer devices, and use existing devices to achieve congestion awareness and control, saving device deployment time and cost.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116155811B_ABST
    Figure CN116155811B_ABST
Patent Text Reader

Abstract

The present application relates to a network congestion data processing method, apparatus, system, computer equipment and storage medium, comprising: obtaining an intermediate data packet sent by a transit end and carrying a target congestion mark; the target congestion mark is obtained by updating the initial congestion mark carried by the initial data packet sent by the sending end based on the current data queue amount and queue reference information on the transit end; updating relevant data corresponding to the current time period based on the intermediate data packet to obtain the current data reception amount, the current number of data packet receptions and current mark statistical information; calculating the target data queue amount based on the queue reference information, the current number of data packet receptions and the current mark statistical information; generating a response data packet carrying current load information based on the current data reception amount, the target data queue amount and the reference network load amount, and sending the response data packet to the sending end, wherein the sending end adjusts the congestion window based on the current load information, thereby achieving congestion perception and congestion control without the need for complex modifications to the transit end.
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] To alleviate network congestion, the data sender can adjust the congestion window based on network status. Traditionally, this involves complex software and hardware modifications to the data transfer endpoints within the network. This allows them to calculate data representing the network status and ultimately feed this data back to the data sender, assisting them in adjusting the congestion window. However, these complex software and hardware modifications are time-consuming and costly. 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 save equipment deployment time and cost to address the above technical problems.

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

[0006] Obtaining an intermediate data packet sent by a data transfer device; the intermediate data packet is obtained based on an initial data packet sent by a data sending device to the data transfer device, the initial data packet carries an initial congestion mark, and the intermediate data packet carries a target congestion mark, the target congestion mark is obtained by updating the initial congestion mark based on the current data queue amount and queue reference information on the data transfer device;

[0007] Update the data reception amount and the number of data packet reception corresponding to the current time period based on the intermediate data packet to obtain the current data reception amount and the current number of data packet reception;

[0008] Update the mark statistics corresponding to the current time period based on the target congestion mark to obtain current mark statistics;

[0009] Calculate the data queue volume of the data transfer device in the current time period based on the queue reference information, the current number of received data packets and the current mark statistical information to obtain a target data queue volume;

[0010] Obtaining a current network load based on the current data reception amount and the target data queue amount, and obtaining current load information based on a reference network load corresponding to the current time period and the current network load;

[0011] A response data packet is generated based on the current load information, and the response data packet is sent to the data sending device, so that the data sending device adjusts the congestion window based on the current load information.

[0012] In one embodiment, obtaining current load information based on the reference network load corresponding to the current time period and the current network load includes:

[0013] The reference network load is obtained based on the bandwidth information corresponding to the data transfer device and the current time period; and the current load information is obtained based on the ratio of the current network load to the reference network load.

[0014] In one embodiment, obtaining the current load information based on the ratio of the current network load to the reference network load includes:

[0015] 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 a ratio of the current network load to the updated network load.

[0016] In one embodiment, the intermediate data packet carries a target port identifier corresponding to the target transit port, and the current data queue volume, the data reception volume, the number of data packet receptions, the tag statistical information, the data queue volume, and the reference network load are all data corresponding to the target port identifier, and the target transit port is the port on the data transit device that sends the intermediate data packet.

[0017] In one embodiment, the intermediate data packet carries a target queue identifier corresponding to a target transit queue, and the current data queue volume, the data reception volume, the number of data packet receptions, the tag statistical information, and the reference network load are all data corresponding to the target queue identifier. The target transit queue is the queue in the target transit port that sends the intermediate data packet.

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

[0019] An intermediate data packet acquisition module is configured to acquire an intermediate data packet sent by a data transfer device; the intermediate data packet is obtained based on an initial data packet sent by a data sending device to a data transfer device, the initial data packet carrying an initial congestion mark, and the intermediate data packet carrying a target congestion mark, the target congestion mark being obtained by updating the initial congestion mark based on the current data queue amount and queue reference information on the data transfer device;

[0020] A data volume updating module is used to update the data reception volume and the number of data packet reception corresponding to the current time period based on the intermediate data packet to obtain the current data reception volume and the current number of data packet reception;

[0021] a marking statistical information updating module, configured to update the marking statistical information corresponding to the current time period based on the target congestion mark to obtain current marking statistical information;

[0022] a data queue amount determination module, configured to calculate the data queue amount of the data transfer device in the current time period based on the queue reference information, the current number of received data packets, and the current mark statistical information, to obtain a target data queue amount;

[0023] a load information determination module, configured to obtain a current network load based on the current data reception amount and the target data queue amount, and obtain current load information based on a reference network load corresponding to the current time period and the current network load;

[0024] The response data packet sending module is used to generate a response data packet based on the current load information, and send the response data packet to the data sending device, so that the data sending device adjusts the congestion window based on the current load information.

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

[0026] Acquire an initial data packet sent by a data sending device; the initial data packet carries an initial congestion mark;

[0027] updating the initial congestion mark based on the current data queue amount and the queue reference information to obtain a target congestion mark;

[0028] updating the initial data packet based on the target congestion mark to obtain an intermediate data packet, and sending the intermediate data packet to a data receiving device;

[0029] A response data packet returned from the data receiving device and carrying current load information is sent to the data sending device, so that the data sending device adjusts the congestion window based on the current load information; the current load information is obtained by the data receiving device based on the reference network load and the current network load corresponding to the current time period, the current network load is obtained based on the current data reception amount and the target data queuing amount, the current data reception amount is obtained based on the data reception amount corresponding to the current time period updated by the intermediate data packet, the target data queuing amount is calculated based on the queuing reference information, the current number of data packet receptions and the current mark statistical information, the current number of data packet receptions is obtained based on the number of data packet receptions corresponding to the current time period updated by the intermediate data packet, and the current mark statistical information is obtained based on the mark statistical information corresponding to the current time period updated by the target congestion mark.

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

[0031] A data packet acquisition module, configured to acquire an initial data packet sent by a data sending device; the initial data packet carries an initial congestion mark;

[0032] a mark updating module, configured to update the initial congestion mark based on the current data queue amount and the queue reference information to obtain a target congestion mark;

[0033] a data packet updating module, configured to update the initial data packet based on the target congestion mark, obtain an intermediate data packet, and send the intermediate data packet to a data receiving device;

[0034] A data packet feedback module is used to send a response data packet carrying current load 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 current load information; the current load information is obtained by the data receiving device based on the reference network load and the current network load corresponding to the current time period, the current network load is obtained based on the current data reception amount and the target data queue amount, the current data reception amount is obtained based on the intermediate data packet updating the data reception amount corresponding to the current time period, the target data queue amount is calculated based on the queue reference information, the current number of data packet receptions and the current mark statistical information, the current number of data packet receptions is obtained based on the intermediate data packet updating the number of data packet receptions corresponding to the current time period, and the current mark statistical information is obtained based on the target congestion mark updating the mark statistical information corresponding to the current time period.

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

[0036] Obtaining an initial data packet; the initial data packet carries an initial congestion mark;

[0037] Sending the initial data packet to a data transfer device so that the data transfer device updates the initial data packet based on a target congestion mark to obtain an intermediate data packet, and sending the intermediate data packet to a data receiving device; the target congestion mark is obtained by updating the initial congestion mark based on a current data queue amount and queue reference information on the data transfer device;

[0038] Obtain a response data packet returned by the data receiving device; the response data packet carries current load information, the current load information is obtained by the data receiving device based on a reference network load and a current network load corresponding to a current time period, the current network load is obtained based on a current data reception amount and a target data queue amount, the current data reception amount is obtained based on updating the data reception amount corresponding to the current time period by the intermediate data packet, the target data queue amount is calculated based on the queue reference information, the current number of data packet receptions, and current mark statistical information, the current number of data packet receptions is obtained based on updating the number of data packet receptions corresponding to the current time period by the intermediate data packet, and the current mark statistical information is obtained based on updating the mark statistical information corresponding to the current time period by the target congestion mark;

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

[0040] In one embodiment, adjusting the current congestion window based on the current load information to obtain a target congestion window includes:

[0041] When the current load information is greater than the reference load information, the window adjustment parameter is determined to be a window reduction parameter, and the current congestion window is reduced based on the window reduction parameter to obtain the target congestion window; when the current load information is less than or equal to the reference load information, the window adjustment parameter is determined to be a window enlargement parameter, and the current congestion window is enlarged based on the window enlargement parameter to obtain the target congestion window.

[0042] In one embodiment, when the current load information is greater than the reference load information, determining that the window adjustment parameter is a window reduction parameter, and reducing the current congestion window based on the window reduction parameter to obtain the target congestion window includes:

[0043] When the current load information is greater than the reference load information, the window reduction parameter is generated based on the current load information; the window reduction parameter increases as the current load information increases; and the target congestion window is obtained based on the ratio of the current congestion window and the window reduction parameter.

[0044] In one embodiment, when the current load information is less than or equal to the reference load information, determining that the window adjustment parameter is a window magnification parameter, and magnifying the current congestion window based on the window magnification parameter to obtain the target congestion window includes:

[0045] When the current load information is less than or equal to the reference load information, the current network state is determined to be an underload state; based on the current network state, the historical continuous underload number is updated to obtain the current continuous underload number; the historical continuous underload number is obtained by counting the number of times the adjacent network state corresponding to the current network state is continuously in the underload state; when the current continuous underload number is less than or equal to a preset number, the current congestion window is enlarged based on a first window magnification parameter to obtain the target congestion window; when the current continuous underload number is greater than the preset number, the current congestion window is enlarged based on a second window magnification parameter to obtain the target congestion window; the first window magnification parameter is less than the second window magnification parameter.

[0046] In one embodiment, when the current load information is less than or equal to the reference load information, determining that the current network state is an underload state includes:

[0047] When the current load information is less than or equal to the reference load information, and the time interval between the current time and the adjacent congestion window adjustment time is greater than a preset time interval, it is determined that the current network state is an underload state.

[0048] In one embodiment, when the current number of consecutive underloads is less than or equal to a preset number, enlarging the current congestion window based on a first window enlargement parameter to obtain the target congestion window includes:

[0049] The first window enlargement parameter is obtained based on a ratio of a preset parameter and the current congestion window; the first window enlargement parameter decreases as the current congestion window increases; and the first window enlargement parameter and the current congestion window are combined to obtain the target congestion window.

[0050] In one embodiment, the second window enlargement parameter is determined based on the current load information, and the second window enlargement parameter decreases as the current load information increases.

[0051] 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 current load information to obtain a target congestion window includes:

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

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

[0054] An initial data packet acquisition module, configured to acquire an initial data packet; the initial data packet carries an initial congestion mark;

[0055] an initial data packet sending module, configured to send the initial data packet to a data transfer device, so that the data transfer device updates the initial data packet based on a target congestion mark to obtain an intermediate data packet, and send the intermediate data packet to a data receiving device; the target congestion mark is obtained by updating the initial congestion mark based on the current data queue amount and queue reference information on the data transfer device;

[0056] a response data packet acquisition module, configured to acquire a response data packet returned by the data receiving device; the response data packet carries current load information, the current load information being obtained by the data receiving device based on a reference network load corresponding to a current time period and the current network load, the current network load being obtained based on a current data reception amount and a target data queue amount, the current data reception amount being obtained based on an update of the data reception amount corresponding to the current time period by the intermediate data packet, the target data queue amount being calculated based on the queue reference information, the current number of data packet receptions, and current mark statistical information, the current number of data packet receptions being obtained based on an update of the number of data packet receptions corresponding to the current time period by the intermediate data packet, and the current mark statistical information being obtained based on an update of the mark statistical information corresponding to the current time period by the target congestion mark;

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

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

[0059] 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 an initial congestion mark;

[0060] A data transfer device, configured to update the initial congestion mark based on the current data queue amount and the queue reference information to obtain a target congestion mark, update the initial data packet based on the target congestion mark to obtain an intermediate data packet, and send the intermediate data packet to a data receiving device;

[0061] a data receiving device configured to update a data reception amount and a number of data packet receptions corresponding to a current time period based on the intermediate data packet to obtain a current data reception amount and a current number of data packet receptions, update mark statistics corresponding to the current time period based on the target congestion mark to obtain current mark statistics, calculate a data queue amount of the data transfer device in the current time period based on the queuing reference information, the current number of data packet receptions, and the current mark statistics to obtain a target data queue amount, obtain a current network load based on the current data reception amount and the target data queue amount, obtain current load information based on a reference network load corresponding to the current time period and the current network load, generate a response data packet based on the current load information, and send the response data packet to the data sending device;

[0062] The data sending device is further configured to adjust a current congestion window based on the current load information to obtain a target congestion window.

[0063] A computer device includes a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps of the above-mentioned network congestion data processing method when executing the computer program.

[0064] A computer-readable storage medium stores a computer program, which, when executed by a processor, implements the steps of the above-mentioned network congestion data processing method.

[0065] A computer program product includes a computer program, characterized in that when the computer program is executed by a processor, the steps of the above-mentioned network congestion data processing method are implemented.

[0066] In the above-mentioned network congestion data processing method, device, computer equipment and storage medium, a data sending device sends an initial data packet carrying an initial congestion mark to a data transfer device; the data transfer device updates the initial congestion mark based on the current data queue amount and queue reference information to obtain a target congestion mark, updates the initial data packet based on the target congestion mark to obtain an intermediate data packet, and sends the intermediate data packet to a data receiving device; the data receiving device updates the data reception amount and the number of data packet receptions corresponding to the current time period based on the intermediate data packet to obtain the current data reception amount and the current number of data packet receptions, updates the mark statistical information corresponding to the current time period based on the target congestion mark to obtain the current mark statistical information, calculates the data queue amount of the data transfer device in the current time period based on the queue reference information, the current number of data packet receptions and the current mark statistical information to obtain the target data queue amount, obtains the current network load based on the current data reception amount and the target data queue amount, obtains the current load information based on the reference network load corresponding to the current time period and the current network load, generates a reply data packet based on the current load information, and sends the reply data packet to the data sending device; the data sending device adjusts the congestion window based on the current load information. This eliminates the need for complex software and hardware modifications to data transfer devices. Instead, the data transfer device simply updates the congestion marker in the data packet and feeds it back to the data receiving device. Based on the received target congestion marker, the data receiving device can gradually infer the amount of data queued on the data transfer device. This inferred amount of data queued can then be used to calculate the current load information reflecting the current network status. Subsequently, the data receiving device can make precise window adjustments based on this current load information. Congestion awareness and congestion control can be achieved using existing data transfer equipment without complex software and hardware modifications, effectively saving equipment deployment time and costs. BRIEF DESCRIPTION OF THE DRAWINGS

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

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

[0069] Figure 3 A schematic diagram of queue reference information in one embodiment;

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

[0071] Figure 5 1 is a flow chart of a method for processing network congestion data in another embodiment;

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

[0073] Figure 7 A schematic diagram of a network congestion data processing system according to an embodiment;

[0074] Figure 8 1 is a timing diagram of a method for processing network congestion data in one embodiment;

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

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

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

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

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

[0080] Figure 12 is a structural block diagram of a network congestion data processing device in another embodiment;

[0081] Figure 13 It is a structural block diagram of a network congestion data processing device in another embodiment;

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

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

[0084] 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.

[0085] 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.

[0086] 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.

[0087] 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.

[0088] 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.

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

[0090] The network congestion data processing method provided in this application can be applied to Figure 1In the application environment shown, the data sending device 102 communicates with the data transfer device 104 via a network, and the data transfer device 104 communicates with the data receiving device 106 via a network. The data sending device 102 can obtain an initial data packet carrying an initial congestion mark and send the initial data packet to the data transfer device 104. The data transfer device 104 updates the initial congestion mark based on the current data queue volume and queue reference information to obtain a target congestion mark, and updates the initial data packet based on the target congestion mark to obtain an intermediate data packet. The data transfer device 104 sends the intermediate data packet to the data receiving device 106. The data receiving device 106 updates the data reception volume and the number of data packet receptions corresponding to the current time period based on the intermediate data packets to obtain the current data reception volume and the current number of data packet receptions, and updates the mark statistics corresponding to the current time period based on the target congestion mark to obtain the current mark statistics. The data receiving device 106 calculates the data queue volume of the data transfer device in the current time period based on the queue reference information, the current number of data packet receptions, and the current mark statistics to obtain the target data queue volume. The data receiving device 106 obtains the current network load based on the current data reception volume and the target data queue volume, and obtains current load information based on the current network load and the reference network load volume. The data receiving device 106 generates a response packet carrying the current load information and sends the response packet to the data sending device 102 via the data transfer terminal 104. The data sending device 102 obtains the current load information from the response packet and adjusts the current congestion window based on the current load information to obtain the target congestion window.

[0091] 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.

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

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

[0094] Step S202, obtain the intermediate data packet sent by the data transfer device; the intermediate data packet is obtained based on the initial data packet sent by the data sending device to the data transfer device, the initial data packet carries the initial congestion mark, and the intermediate data packet carries the target congestion mark. The target congestion mark is obtained by updating the initial congestion mark based on the current data queue amount and queue reference information on the data transfer device.

[0095] 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.

[0096] Congestion marking is used to identify network congestion or potential congestion. The initial congestion marking is carried in the initial data packet and is the initial congestion marking. It is understood that the data sending device is generally unclear about the network status before receiving the response packet. Therefore, the initial congestion marking can be meaningless or indicate that the network is not congested or has no potential congestion.

[0097] After receiving the initial data packet from the data transmitting device, the data relay device can update the initial congestion mark to obtain the target congestion mark, and then update the initial data packet based on the target congestion mark to obtain the intermediate data packet. The target congestion mark and the initial congestion mark can be the same or different. If the target congestion mark and the initial congestion mark are different, the target congestion mark may reflect current or potential network congestion.

[0098] The data transfer device can update the initial congestion mark based on its own current data queue volume and queue reference information to obtain the target congestion mark. The data queue volume refers to the amount of data accumulated on the data transfer device, which is used to characterize the degree of data accumulation on the data transfer device. For example, the data queue volume can be the height of the queue, the number of data packets in the queue, etc. The current data queue volume refers to the amount of data accumulated on the device when the data transfer device receives the initial data packet. It can be understood that the data transfer device is responsible for forwarding a large number of data packets in the network. Due to the limited capacity of the data transfer device and in order to ensure the orderliness of data forwarding, the data packets need to be queued in order in the data transfer device and sent out in an orderly manner. If the data reception volume of the data transfer device is greater than the data transmission volume, the data accumulation volume in the data transfer device will increase.

[0099] Queuing reference information is used to determine the mark update ratio corresponding to the current data queue volume, so that the data transfer device can update the initial congestion mark based on this mark update ratio. For example, the queuing reference information may include at least one queue volume threshold and mark update ratios corresponding to different data queue volume intervals. It will be understood that the queue volume threshold can divide the range of data queue volume values into different data queue volume intervals. The mark update ratio represents the probability of changing the initial congestion mark. For example, if the mark update ratio corresponding to data queue volume interval A is 50%, then if the data queue volume on the data transfer device is within data queue volume interval A, there is a 50% probability that the initial congestion mark will change. The mark update ratio corresponding to the same data queue volume interval can be a fixed value or a dynamic value that changes with the data queue volume within the interval, for example, increasing linearly with the increase in the data queue volume within the interval, or increasing non-linearly with the increase in the data queue volume within the interval. The mark update ratios corresponding to different data queue volume intervals can be the same or different.

[0100] 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 ultimately transmitted to the data receiving device via a 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 successful receipt of the initial data packet. The data sending device is the originating 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, which carries an initial congestion marker. The data transfer device can update the initial congestion marker based on its own current data queue volume and queue reference information, and update the initial data packet based on the updated target congestion marker, thereby obtaining an intermediate data packet. The data transfer device sends the intermediate data packet carrying the target congestion marker to the data receiving device, so that the data receiving device obtains the intermediate data packet.

[0101] Step S204 : updating the data reception amount and the number of data packet reception corresponding to the current time period based on the intermediate data packet to obtain the current data reception amount and the current number of data packet reception.

[0102] The current time period refers to the currently used data statistics and monitoring time period. The current time period can include the time when the intermediate data packets are received. For example, the current time period can end at the time when the intermediate data packets are received. The length of the current time period can be set as needed. The data reception volume refers to the total amount of data packets received by the data receiving device during the current time period before receiving the intermediate data packets. The number of data packets received refers to the number of data packets received by the data receiving device during the current time period before receiving the intermediate data packets.

[0103] Specifically, after obtaining the intermediate data packet, the data receiving device can update the number of data packet receptions corresponding to the current time period based on the intermediate data packet, and add one to the counted number of data packet receptions to obtain the current number of data packet receptions. The data receiving device can update the data reception amount corresponding to the current time period based on the data volume of the intermediate data packet, and add the counted number of data receptions to the data volume of the intermediate data packet to obtain the current data reception amount.

[0104] Step S206: Update the mark statistics corresponding to the current time period based on the target congestion mark to obtain current mark statistics.

[0105] The marking statistics refer to data collected by the data receiving device based on the congestion markings carried in the received data packets during the current time period. For example, the marking statistics may be data collected by collecting statistics on congestion markings that reflect current or potential network congestion.

[0106] Specifically, after acquiring the intermediate data packet, the data receiving device may update the mark statistical information corresponding to the current time period based on the target congestion mark to obtain the current mark statistical information.

[0107] Step S208 , calculating the data queue volume of the data transfer device in the current time period based on the queue reference information, the current number of received data packets and the current mark statistical information, and obtaining a target data queue volume.

[0108] Specifically, after obtaining the current number of received data packets and current tag statistics, the data receiving device can infer the data queue volume of the data transfer device in the current time period based on the queue reference information, the current number of received data packets, and the current tag statistics, as well as the degree of data accumulation in the data transfer device in the current time period, thereby obtaining a target data queue volume. For example, based on the current number of received data packets and the current tag statistics, a tag update ratio can be estimated. Based on this tag update ratio, a corresponding data queue volume can be obtained from the queue reference information or determined based on the queue reference information, thereby obtaining a target data queue volume.

[0109] It can be understood that the data receiving device and the data transfer device have pre-agreed on the queuing reference information. The data transfer device updates the initial congestion mark based on the queuing reference information and the current data queue volume. Then, the data receiving device can also restore the data queue volume on the data transfer device to the maximum extent with the help of the queuing reference information.

[0110] Step S210: obtaining the current network load based on the current data reception amount and the target data queue amount, and obtaining the current load information based on the reference network load corresponding to the current time period and the current network load.

[0111] The current network load refers to the amount of data actually carried and loaded by the data transfer device in the network during the current time period. The reference network load refers to the amount of data that the data transfer device can carry and load in the network during the current time period. The reference network load can be determined based on the data transmission attribute information of the data transfer device. The data transmission attribute information is used to describe the data transmission capability of the data transfer device. The data transmission attribute information can be manually set in advance based on actual needs, for example, setting the data transfer device to transmit a maximum of Mbits of data per unit time. The current load information refers to the load information corresponding to the current time period, and is used to represent the network load conditions and network load index for the current time period and even from the current time period to the future. It can be understood that the larger the current load information, the more congested the network.

[0112] Specifically, the data receiving device can calculate the actual data load of the data transfer device in the current time period based on the current data reception volume and the target data queue volume, and infer the current network load. For example, the current network load can be calculated as the sum of the current data reception volume and the target data queue volume, or as a weighted sum of the current data reception volume and the target data queue volume. The data receiving device can calculate the current network load based on the current data reception volume and the target data queue volume according to a custom formula or algorithm. The data receiving device can obtain a reference network load corresponding to the current time period and calculate 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 current load information can be calculated as the difference between the current network load and the reference network load, and the current load information can be obtained based on the ratio of the difference to the reference network load. The data receiving 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.

[0113] In one embodiment, because the data receiving device continuously receives data packets, it needs to update the data reception volume, the number of received data packets, and the marker statistics in real time. The data receiving device can also update the data queue volume and load information in real time. For example, once the data receiving device obtains an intermediate data packet, it updates the data reception volume, the number of received data packets, and the marker statistics collected over the past 10 μs based on the intermediate data packet to obtain the current data reception volume, the current number of received data packets, and the current marker statistics. The device then calculates the target data queue volume based on the queue reference information, the current number of received data packets, and the current marker statistics. The device then calculates the current network load based on the current data reception volume and the target data queue volume. The device then calculates the current load information based on the current network load and the reference network load.

[0114] However, to conserve computing resources, the data receiving device may not need to calculate the data queue size and load information in real time. Instead, the data receiving device may periodically calculate the data queue size and load information. For example, after receiving an intermediate data packet, if the time interval between the current time and the time when adjacent load information is determined is less than the load information update period, the data receiving device obtains the adjacent load information as the current load information, generates a response packet based on the current load information, and sends the response packet to the data sending device, so that the data sending device adjusts the congestion window based on the current load information. The adjacent load information is the load information calculated last, that is, the most recently calculated load information. If the time interval between the current time and the time when adjacent load information is determined is greater than or equal to the load information update period, the data receiving device obtains the most recently calculated number of current data packet receptions, current marker statistics, and queue reference information to calculate a target data queue size. The current network load is then calculated based on the most recently calculated current data reception and target data queue size. The latest current load information is then obtained based on the current network load and the reference network load. The data receiving device generates a response packet based on the current load information and sends the response packet to the data sending device, so that the data sending device adjusts the congestion window based on the current load information. In one embodiment, the length of the current time period may be set as a load information update period.

[0115] In one embodiment, the data receiving device can use counters to count the amount of data received, the number of received data packets, and tag statistics. If the data receiving device periodically calculates load information, it can reset the counters after each calculation to initiate the next round of data statistics. Of course, the data receiving device can also choose not to reset the counters and, when load information needs to be calculated, select the difference between the data used in the previous load calculation and the data currently calculated by the counters as the data required for the current load calculation.

[0116] Step S212: Generate a response data packet based on the current load information, and send the response data packet to the data sending device, so that the data sending device adjusts the congestion window based on the current load information.

[0117] 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.

[0118] Specifically, after obtaining the current load information, the data receiving device can generate a response data packet based on the current load information. The response data packet carries the current load information. The data receiving device returns the response data packet to the data sending device so that the data sending device adjusts the congestion window based on the current load information.

[0119] It can be understood that, 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.

[0120] In the above-mentioned network congestion data processing method, the data sending device sends an initial data packet carrying an initial congestion mark to a data transfer device; the data transfer device updates the initial congestion mark based on the current data queue amount and queue reference information to obtain a target congestion mark, updates the initial data packet based on the target congestion mark to obtain an intermediate data packet, and sends the intermediate data packet to the data receiving device; the data receiving device updates the data reception amount and the number of data packet receptions corresponding to the current time period based on the intermediate data packet to obtain the current data reception amount and the current number of data packet receptions, updates the mark statistical information corresponding to the current time period based on the target congestion mark to obtain the current mark statistical information, calculates the data queue amount of the data transfer device in the current time period based on the queue reference information, the current number of data packet receptions and the current mark statistical information to obtain the target data queue amount, obtains the current network load based on the current data reception amount and the target data queue amount, obtains the current load information based on the reference network load corresponding to the current time period and the current network load, generates a reply data packet based on the current load information, and sends the reply data packet to the data sending device; the data sending device adjusts the congestion window based on the current load information. This eliminates the need for complex software and hardware modifications to data transfer devices. Instead, the data transfer device simply updates the congestion marker in the data packet and feeds it back to the data receiving device. Based on the received target congestion marker, the data receiving device can gradually infer the amount of data queued on the data transfer device. This inferred amount of data queued can then be used to calculate the current load information reflecting the current network status. Subsequently, the data receiving device can make precise window adjustments based on this current load information. Congestion awareness and congestion control can be achieved using existing data transfer equipment without complex software and hardware modifications, effectively saving equipment deployment time and costs.

[0121] In one embodiment, the marking statistics corresponding to the current time period are updated based on the target congestion marking to obtain current marking statistics, including:

[0122] When the target congestion mark and the reference congestion mark are consistent, the mark statistics are updated based on the target congestion mark, and the updated mark statistics are used as the current mark statistics; when the target congestion mark and the reference congestion mark are inconsistent, the mark statistics are used as the current mark statistics.

[0123] The reference congestion mark may be data indicating network congestion or the existence of potential congestion.

[0124] Specifically, when updating the marker statistics, if the target congestion mark and the reference congestion mark are consistent, the data receiving device may update the marker statistics based on the target congestion mark and increment the marker statistics by one to obtain the current marker statistics. If the target congestion mark and the reference congestion mark are inconsistent, the data receiving device may not change the value of the marker statistics and directly use the marker statistics as the current marker statistics.

[0125] In the above embodiment, the reference congestion mark can reflect whether the network is congested. The reference congestion mark is counted to obtain mark statistical information. The current load information calculated based on the mark statistical information can more accurately reflect the network congestion status.

[0126] In one embodiment, the queuing reference information includes a first queuing volume threshold, a second queuing volume threshold, and a reference update ratio, and the first queuing volume threshold is smaller than the second queuing volume threshold.

[0127] The data queue volume of the data transfer device in the current time period is calculated based on the queue reference information, the current number of received data packets, and the current marking statistics, and the target data queue volume is obtained, including:

[0128] A first marking update ratio is obtained based on a ratio of current marking statistical information and the current number of data packets received; ratio adjustment information is obtained based on a ratio of a first distance and a reference update ratio; the first distance is obtained based on the difference between a first queue volume threshold and a second queue volume threshold; an initial queue volume is obtained by fusing the ratio adjustment information and the first marking update ratio; and a target data queue volume is obtained based on the initial queue volume and the first queue volume threshold.

[0129] The queue reference information includes a first queue volume threshold, a second queue volume threshold, and a reference update ratio. The specific values of the first queue volume threshold and the second queue volume threshold can be set as needed, but the first queue volume threshold is smaller than the second queue volume threshold. The reference update ratio may refer to the maximum value of the tag update ratio when the data queue volume is between the first queue volume threshold and the second queue volume threshold.

[0130] Specifically, when a data transfer device updates an initial congestion mark, if the queue reference information includes a first queue volume threshold, a second queue volume threshold, and a reference update ratio, and the current data queue volume is less than the first queue volume threshold, the data transfer device may maintain the initial congestion mark unchanged. If the current data queue volume is between the first queue volume threshold and the second queue volume threshold, the mark update ratio increases linearly with the increase in the data queue change, with the minimum value of the mark update ratio being zero and the maximum value being the reference update ratio. Based on this data, the data transfer device may determine the mark update ratio corresponding to the current data queue volume, probabilistically modify the initial congestion mark based on the mark update ratio, and probabilistically modify the initial congestion mark to the reference congestion mark according to the mark update ratio. If the current data queue volume is greater than the second queue volume threshold, the data transfer device may modify the initial congestion mark to the reference congestion mark.

[0131] With reference to the above-described congestion mark update process, the data receiving device can reversely infer and relatively accurately estimate the data queue size on the data transfer device based on current mark statistics, the current number of received data packets, and queue reference information. The data receiving device can calculate the ratio of the current mark statistics to the current number of received data packets, and based on this ratio, obtain a first mark update ratio. The first mark update ratio can represent the average or comprehensive value of the mark update ratios used by the data transfer device when updating the congestion mark in the current time period. The data receiving device can calculate the difference between a first queue size threshold and a second queue size threshold, using the difference between the first queue size threshold and the second queue size threshold as a first distance, and calculate the ratio of the first distance to a reference update ratio. Based on this ratio, it can obtain ratio adjustment information. The ratio adjustment information can represent the inverse of the rate at which the mark update ratio changes with changes in the data queue size when the data transfer device updates the congestion mark in the current time period, i.e., the rate at which the data queue size changes with changes in the mark update ratio. Because the ratio adjustment information can reflect the rate at which the data queue size changes as the marker update ratio changes, the data receiving device can combine the ratio adjustment information with the first marker update ratio and multiply the ratio adjustment information by the first marker update ratio to obtain an initial queue size. The initial queue size can reflect the change in the data queue size. Finally, the data receiving device can determine a target data queue size based on the initial queue size and the first queue size threshold. For example, the sum of the initial queue size and the first queue size threshold can be used as the target data queue size.

[0132] In one embodiment, the principle of the data transfer device updating the initial congestion mark can refer to Figure 3 The horizontal axis of the chart represents the amount of data queued on the data transfer device, and the vertical axis represents the mark update ratio. min represents the first queue threshold, K maxrepresents the second queue threshold, P max Indicates the reference update ratio. If the data queue volume is less than the first queue volume threshold, the mark update ratio is 0, that is, the initial congestion mark remains unchanged. If the data queue volume is between the first queue volume threshold and the second queue volume threshold, The mark update rate is proportional to the amount of data queued. The initial congestion mark is updated to the target congestion mark with a probability that increases linearly with the amount of data queued. If the amount of data queued exceeds the first queue threshold, the mark update rate is 1, and the initial congestion mark is updated to the target congestion mark.

[0133] The data receiving device can calculate the target data queue volume using the following formula:

[0134]

[0135]

[0136] When the target congestion mark is the reference congestion mark, N ecn =N ecn′ +1

[0137] N packet =N packet′ +1

[0138] Among them, Q len Indicates the target data queue size, K min represents the first queue threshold, K max Indicates the second queue threshold, Indicates the scale adjustment information, K max -K min represents the first distance, p represents the first mark update ratio, Indicates the initial queue size. N ecn Indicates the current marking statistics, N packet Indicates the current number of data packets received. N ecn′ Indicates the mark statistics that have been collected in the current time period before the intermediate data packets are obtained. N packet′ Indicates the number of data packets received in the current time period before intermediate data packets are obtained.

[0139] In the above embodiment, since the data transfer device determines the mark update ratio based on the data queue amount and probabilistically modifies the initial congestion mark based on the mark update ratio, the first mark update ratio obtained by the data receiving device based on the ratio of the current mark statistical information and the current number of data packets received can represent the mark update ratio used by the data transfer device. Therefore, based on the first mark update ratio, the data queue amount on the data transfer device can be gradually inferred to obtain a relatively accurate target data queue amount.

[0140] It is understood that if the current data queue size is between the first queue size threshold and the second queue size threshold, the tag update ratio may also increase nonlinearly with an increase in the data queue change, with the minimum tag update ratio being zero and the maximum being the reference update ratio. For example, the growth rate of the tag update ratio increases with an increase in the data queue change, and the tag update ratio may increase parabolically with an increase in the data queue change. Based on the first tag update ratio, the data receiving device may determine the corresponding data queue change from a parabolic calculation formula, thereby obtaining a target queue size.

[0141] In one embodiment, the current network load is obtained based on the current data reception amount and the target data queue amount, including:

[0142] Based on the difference between the target data queue volume and the historical data queue volume, the data queue change volume is obtained; based on the current data reception volume and the data queue change volume, the current network load volume is obtained.

[0143] The target data queue volume is the data queue volume calculated in the current time period, and the historical data queue volume is the data queue volume calculated in the historical time period adjacent to or near the current time period. For example, if the target data queue volume is the data queue volume calculated based on the relevant data obtained from the statistics of the time period 8:01-8:02, then the historical data queue volume can be the data queue volume calculated based on the relevant data obtained from the statistics of the time period 8:00-8:01. If the data receiving device calculates the data queue volume periodically, then the historical data queue volume is the data queue volume calculated last time. It can be understood that, to a certain extent, the historical data queue volume can also be considered as the starting data queue volume of the current time period, the target data queue volume can be considered as the ending data queue volume of the current time period, and the data queue change volume can be considered as reflecting the data queue change situation of the current time period.

[0144] Specifically, the data receiving device can obtain historical data queue volumes and, based on the difference between the target data queue volume and the historical data queue volume, determine a data queue change. The first-order difference of the data queue volume can reflect the changing trend of the network status. Because the data transfer device continuously receives and sends data packets, the data queue volume in the data transfer device will change. The change in the data queue can reflect the changing status of the network. If the data queue change decreases while the data transfer device continues to send data packets, it indicates that the network status is improving, moving towards an idle or underloaded state. If the data queue volume increases, it indicates that the network status is deteriorating, moving towards a busy or overloaded state. The data receiving device can calculate the current network load based on the current data reception volume and the data queue change. For example, the current network load can be calculated as the sum of the current data reception volume and the data queue change, or as the weighted sum of the current data reception volume and the data queue change. The data receiving device can calculate the current network load based on the current data reception volume and the data queue change according to a custom formula or algorithm.

[0145] In the above embodiment, the data queue change is calculated based on the difference between the target data queue volume and the historical data queue volume; and the current network load is calculated based on the current data reception volume and the data queue change. In this way, the current network load not only considers the zero-order information of the data queue volume, but also the first-order information of the data queue volume (i.e., the data queue change). This first-order information can perceive the trend of future changes in network status. Calculating load information based on this current network load helps improve the accuracy of the current load information. Furthermore, performing window adjustment based on this load information can reduce data accumulation in the network and improve network bandwidth utilization.

[0146] In one embodiment, the current network load is obtained based on the current data reception amount and the data queue change amount, including:

[0147] The current data reception volume and the data queue change are integrated to obtain the intermediate network load; based on the intermediate network load and the target data queue volume, the current network load is obtained.

[0148] Specifically, the data receiving device can combine the calculated current data reception volume and the data queue change to obtain an intermediate network load. For example, the sum of the current data reception volume and the data queue change can be used as the intermediate network load, and the weighted sum of the current data reception volume and the data queue change can be used as the intermediate network load. The data receiving device can directly use the intermediate network load as the current network load. However, considering that the existing data accumulation in the data transfer device 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 data queue volume. For example, the sum of the intermediate network load and the target data queue volume can be used as the current network load, and the weighted sum of the intermediate network load and the target data queue volume can be used as the current network load. It is understood that using the target data queue volume as a component of the current network load can serve as a penalty term to avoid the calculated current load information being too small when the data transfer device has a large data accumulation. The penalty term helps to gradually reduce the data queue volume and data accumulation in the data transfer device during window adjustment.

[0149] In the above embodiment, the current network load calculated based on the current data reception volume, the data queue change volume and the target data queue volume can more accurately adjust the congestion window and reduce data accumulation in the network.

[0150] In one embodiment, obtaining the current network load based on the intermediate network load and the target data queue amount includes:

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

[0152] The attention weight represents the importance of a particular piece of data to the network state. Importance indicates the extent of the data's impact on the network state. Highly important data has a higher corresponding attention weight, while lowly important data has a lower corresponding attention weight. The specific value of the attention weight can be set as needed, but the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target data queue.

[0153] Specifically, when calculating the current network load, the intermediate network load and the target data queue size have different degrees of influence on the network state. Since the intermediate network load is based on the data reception volume and data queue change statistics obtained during the current time period, it can, to a certain extent, represent the data reception and data injection volume of the data transfer device during the current time period, and can more directly reflect the actual load data volume of the data transfer device during the current time period. The target data queue size can be considered the data monitored at the last moment of the current time period, and it also has a certain degree of indirect influence on the subsequent direction of the network state. In comparison, the intermediate network load has a greater impact on and determines the current network state. Therefore, the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target data queue size. The data transfer device can obtain the attention weights corresponding to the intermediate network load and the target data queue size, respectively, and perform data weighted fusion based on the attention weights to obtain the current network load.

[0154] In one embodiment, the attention weight corresponding to the target data queue volume is determined based on the reference network load and the preset data queue volume. The difference between the preset data queue volume and the maximum data queue volume is less than a preset threshold. In other words, the preset data queue volume represents the queue height when the data accumulation is high. For example, the ratio of the reference network load to the preset data queue volume can be used as the attention weight corresponding to the target data queue volume. In other words, the product of the attention weights corresponding to the preset data queue volume and the target data queue volume is equal to the reference network load. Specifically, when the target data queue volume is high, the penalty imposed by the target data queue volume on the current load information is equal to the maximum load that the data transfer device can withstand. Therefore, the calculated current load information can indicate that the network is overloaded. When the target data queue volume is high, the data transfer device 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 the data queue situation in the data transfer device.

[0155] In the above embodiment, based on the attention weights corresponding to the intermediate network load and the target data queue volume respectively, the intermediate network load and the target data queue volume 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 data queue volume, which can improve the accuracy of the current network load. The current load information calculated based on such current network load helps to reduce data accumulation in the network during window adjustment and improve network bandwidth utilization.

[0156] In one embodiment, obtaining current load information based on the current network load and the reference network load includes:

[0157] Based on the bandwidth information corresponding to the data transfer device and the current time period, a reference network load is obtained; based on the ratio of the current network load to the reference network load, current load information is obtained.

[0158] Bandwidth information refers to the amount of data that can be transmitted by the data transfer device in unit time.

[0159] Specifically, when calculating the reference network load, the data receiving device may obtain the bandwidth information corresponding to the data transfer device and use the product of the bandwidth information corresponding to the data transfer device 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.

[0160] In the above embodiment, an accurate reference network load can be obtained based on the bandwidth information corresponding to the data transfer device and the current time period, and 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 current network status.

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

[0162] 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 a ratio of the current network load to the updated network load.

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

[0164] Specifically, the data transfer device can operate at full capacity, utilizing all bandwidth resources for data forwarding, or it can idle some bandwidth resources, reducing the amount of data sent to reduce the amount of data in the network, thereby increasing data transmission speed. Therefore, the data receiving 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 data transfer devices can be the same or different.

[0165] 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.

[0166] 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. Based on such current load information adjustment window, the network state can be gradually adjusted to the expected state, so that the bandwidth utilization of the data transfer device gradually reaches the preset bandwidth utilization ratio, and finally high network bandwidth utilization is achieved.

[0167] In one embodiment, the intermediate data packet carries the target port identifier corresponding to the target transit port. The current data queue volume, data reception volume, number of data packet receptions, tag statistics, data queue volume, and reference network load are all data corresponding to the target port identifier. The target transit port is the port on the data transit device that sends the intermediate data packet.

[0168] Among them, different transit ports are set on the data transfer device, and different transit ports can correspond to different data transmission links, and different data transmission links can also correspond to the same transit port. Different data transmission links can be used to transmit data to different data recipients, and different data transmission links can also transmit data to data recipients based on different transmission protocols. The data packets transmitted on the same data transmission link can include the same five-tuple information, and the five-tuple information 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 used by the data sending device 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 used by the data receiving device to receive data packets. The target transit port refers to the port on the data transfer device used to send initial data packets and intermediate data packets. The target transit port is the port where the initial data packet is transferred on the data transmission link.

[0169] The port identifier uniquely identifies the transit port and can include a string of at least one of letters, numbers, and symbols. The target port identifier is the port identifier corresponding to the target transit port.

[0170] Specifically, upon 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, and send the intermediate data packet obtained by updating the initial data packet through the target transfer port. The intermediate data packet can carry the target port identifier corresponding to the target transfer port.

[0171] Different transit ports are typically independent of each other. Therefore, to improve the accuracy of load information, the data receiving device can calculate current port-level load information based on port-level data. Subsequently, the data sending device can adjust the congestion window based on the current port-level load information. After the data receiving device obtains the intermediate data packet, it can update the data reception volume and number of data packets received corresponding to the target transit port in the current time period based on the intermediate data packet, thereby obtaining the current data reception volume and the current number of data packets received. The data receiving device can update the tag statistics corresponding to the target transit port in the current time period based on the target congestion tag carried in the intermediate data packet, thereby obtaining the current tag statistics. The data receiving device can calculate the data queue volume of the target transit port of the data transit device in the current time period based on the queue reference information, the current number of data packets received, and the current tag statistics, thereby obtaining the target data queue volume. The data receiving device can obtain the current network load of the target transit port of the data transit device in the current time period based on the current data reception volume and the target data queue volume, and obtain the current load information based on the reference network load and the current network load of the target transit port of the data transit device in the current time period. The data receiving device can isolate and store data corresponding to different transit ports based on the port identifier, so that the data receiving device can obtain data corresponding to the target transit port based on the target port identifier, update the data corresponding to the target transit port based on the intermediate data packet, and then calculate the current load information corresponding to the target transit port.

[0172] It is understood that the specific calculation process for the current data reception volume, the current number of received data packets, the current tag statistics, the target data queue volume, the current network load volume, the reference network load volume, and the current load information can refer to the methods described in the aforementioned relevant embodiments. The data involved in the data calculation process is all port-level data. For example, bandwidth information is the port bandwidth, and the data queue volume is the data volume queued for the entire port. Port-level data is comprehensive data obtained by statistically analyzing the relevant data of all queues on the port.

[0173] In the above embodiment, the data used to calculate the current load information is port-level data, and the calculated current load information is port-level data. Window adjustment based on such load information can specifically adjust the data accumulation in the corresponding data transmission link to achieve precise adjustment.

[0174] In one embodiment, the intermediate data packet carries the target queue identifier corresponding to the target transit queue. The current data queue volume, data reception volume, number of data packet receptions, tag statistics, and reference network load are all data corresponding to the target queue identifier. The target transit queue is the queue for sending intermediate data packets in the target transit port.

[0175] Different transit queues can be configured on the same target transit port, corresponding to different data transmission links. For example, in scenarios where multiple protocols coexist, transit queues can be used on data transit devices to isolate each protocol type and data transmission link. The target transit queue is the queue on the target transit port used to send initial and intermediate data packets.

[0176] The queue ID uniquely identifies the transit queue and can be a string of at least one of letters, numbers, and symbols. The target queue ID is the queue ID corresponding to the target transit queue.

[0177] Specifically, the intermediate data packet may also carry the target queue identifier corresponding to the target transit queue. Different transit queues in the same transit port are usually independent of each other. Therefore, in order to further improve the accuracy of the load information, the data receiving device may also calculate the current load information at the queue level based on the queue-level data. Subsequently, the data sending device may adjust the congestion window based on the current load information at the queue level. After the data receiving device obtains the intermediate data packet, the data receiving device may update the data reception volume and the number of data packet receptions corresponding to the target transit queue in the current time period based on the intermediate data packet, and obtain the current data reception volume and the current number of data packet receptions. The data receiving device may update the mark statistics corresponding to the target transit queue in the current time period based on the target congestion mark carried by the intermediate data packet, and obtain the current mark statistics. The data receiving device may calculate the data queue volume of the target transit queue in the target transit port in the current time period based on the queue reference information, the current number of data packet receptions and the current mark statistics, and obtain the target data queue volume. The data receiving device can obtain the current network load of the target transit queue at the target transit port in the current time period based on the current data reception volume and the target data queue volume, and obtain current load information based on the reference network load and current network load of the target transit queue of the data transit device in the current time period. The data receiving device can isolate and store data corresponding to unused transit queues based on queue identifiers, thereby obtaining data corresponding to the target transit queue based on the target queue identifier, updating the data corresponding to the target transit queue based on intermediate data packets, and thereby calculating the current load information corresponding to the target transit queue.

[0178] It is understood that the specific calculation process for the current data reception volume, the current number of received data packets, the current tag statistics, the target data queue volume, the current network load volume, the reference network load volume, and the current load information can refer to the methods described in the aforementioned relevant embodiments. The data involved in the data calculation process is all queue-level data, for example, bandwidth information is queue bandwidth, and data queue volume is the amount of data queued in the entire queue.

[0179] In the above embodiment, the data used to calculate the current load information is queue-level data, and the calculated current load information is queue-level data. Window adjustment based on such load information can further specifically adjust the data accumulation in the corresponding data transmission link to achieve more accurate adjustment.

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

[0181]

[0182] I=RxBytes+Qlen-LastQlen

[0183] RxBytes = RxBytes′ + p.size

[0184] L represents the current load information, also known as the load rate. I represents the intermediate network load. T represents the current time period, specifically the duration of the current time period, also known as the measurement period. B represents bandwidth information. If the current load information is port-level data, B can also be referred to as port bandwidth. If the current load information is queue-level data, B can also be referred to as queue bandwidth. Qlen represents the target data queue volume, also known as the data queue height at the time of the current measurement. LastQlen represents the historical data queue volume, also known as the data 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 data queue volume, and γ is less than 1. α represents the bandwidth utilization ratio. The bandwidth utilization ratios of different transit ports on a data transfer device can be the same or different, and the bandwidth utilization ratios of different transit queues on the same transit port can be the same or different. RxBytes represents the current data reception volume, which can be considered the number of bytes sent by the data transfer device from the last measurement to the current measurement. RxBytes′ represents the data reception volume counted for the current time period before receiving intermediate data packets. p.size represents the amount of data in the intermediate data packet, which can be expressed in bytes. It is understood that when the bandwidth is full and there is no queue, L = 1.

[0185] Current load information is a network status indicator that combines the data reception volume RxBytes, the target data queue volume Qlen, and the first-order difference of the data queue volume (Qlen - LastQlen) obtained from statistics in the current time period. This network status indicator not only accurately reflects the current status of the data transfer device, but also reflects its status change trend through the first-order difference of the data queue volume. Adjusting the congestion window based on this current load information 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 zero or low packet accumulation in the network and high network bandwidth utilization.

[0186] In one embodiment, the duration of the current time period and the measurement period can be set to the round-trip delay of data when the network is idle, i.e., the network idle RTT (Round-Trip Time). Setting the duration of the current time period to the network idle RTT allows the data receiving device to update the load rate in a timely manner, ensuring the timeliness of the load rate. In one embodiment, γ can be set to 0.2-0.4, and α can be set to 0.95-1.

[0187] It is understood that a data packet may pass through at least one data transfer device during transmission from a data transmitter to a data receiver. For example, the data transmission path within the network is: data transmitter - data transfer device 1 - data transfer device 2 - data transfer device 3 - data receiver. If data passes through multiple data transfer devices during transmission, each data transfer device can sequentially update the congestion marker carried in the received data packet based on its current data queue volume. It is understood that if the congestion marker is already the reference congestion marker, no further update is required, and the data packet can be directly transmitted. For example, if the congestion mark obtained by data transfer device 1 based on the current data queue amount and queue reference information update is still the initial congestion mark, then data transfer device 1 can pass the initial data packet to data transfer device 2. If the congestion mark obtained by data transfer device 2 based on the current data queue amount and queue reference information update is still the initial congestion mark, then data transfer device 2 can pass the initial data packet to data transfer device 3. If the congestion mark obtained by data transfer device 3 based on the current data queue amount and queue reference information update is a reference congestion mark, then data transfer device 3 can pass the data packet carrying the reference congestion mark to the data receiving device. In one embodiment, if a data packet passes through multiple data transfer devices, the target port identifier carried by the intermediate data packet obtained by the data receiving device can be unified as the port identifier corresponding to the target transfer port on the last data transfer device in the transmission path, and the target queue identifier carried by the intermediate data packet can be unified as the port identifier corresponding to the target transfer queue in the target transfer port of the last data transfer device in the transmission path. In this way, the data generated on the same data transmission link can be aggregated together, and the final calculation can obtain the current load information that characterizes the most congested state and the comprehensive congested state on the data transmission link.

[0188] In one embodiment, Figure 4 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:

[0189] Step S402: Acquire an initial data packet sent by a data sending device; the initial data packet carries an initial congestion mark.

[0190] Step S404: Update the initial congestion mark based on the current data queue amount and the queue reference information to obtain a target congestion mark.

[0191] Step S406: Update the initial data packet based on the target congestion mark to obtain an intermediate data packet, and send the intermediate data packet to the data receiving device.

[0192] Specifically, the data transmitting device may generate an initial data packet and send it to the data transfer device. The initial data packet carries an initial congestion marker. The data transfer device may update the initial congestion marker based on the current data queue volume and the queue reference information to obtain a target congestion marker. The data transfer device may then update the initial data packet based on the target congestion marker to obtain an intermediate data packet. The intermediate data packet may then be sent to the data receiving device, so that the data receiving device can reversely infer and estimate the data queue volume on the data transfer device based on the intermediate data packet.

[0193] In step S408, a response data packet returned from the data receiving device and carrying the current load information is sent to the data sending device so that the data sending device adjusts the congestion window based on the current load information; the current load information is obtained by the data receiving device based on the reference network load and the current network load corresponding to the current time period, the current network load is obtained based on the current data reception amount and the target data queue amount, the current data reception amount is obtained based on the data reception amount corresponding to the current time period updated by the intermediate data packets, the target data queue amount is calculated based on the queue reference information, the current number of data packet receptions and the current mark statistical information, the current number of data packet receptions is obtained based on the number of data packet receptions corresponding to the current time period updated by the intermediate data packets, and the current mark statistical information is obtained based on the mark statistical information corresponding to the current time period updated by the target congestion mark.

[0194] Specifically, the data receiving device can update the data reception volume and the number of data packet receptions corresponding to the current time period based on the intermediate data packets to obtain the current data reception volume and the current number of data packet receptions; update the mark statistics corresponding to the current time period based on the target congestion mark to obtain the current mark statistics; calculate the data queue volume of the data transfer device in the current time period based on the queue reference information, the current number of data packet receptions, and the current mark statistics to obtain the target data queue volume; obtain the current network load based on the current data reception volume and the target data queue volume; and obtain the current load information based on the reference network load corresponding to the current time period and the current network load. The data receiving device can generate a response data packet based on the current load information and send the response data packet to the data sending device via the data transfer device. The data sending device can then adjust the congestion window based on the current load information.

[0195] It is understood that the specific process of generating data such as current load information, current data reception volume, current number of received data packets, and current marking statistics can refer to the methods described in the aforementioned relevant embodiments. 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 a data sending device.

[0196] In the above-mentioned network congestion data processing method, the data sending device sends an initial data packet carrying an initial congestion mark to a data transfer device; the data transfer device updates the initial congestion mark based on the current data queue amount and queue reference information to obtain a target congestion mark, updates the initial data packet based on the target congestion mark to obtain an intermediate data packet, and sends the intermediate data packet to the data receiving device; the data receiving device updates the data reception amount and the number of data packet receptions corresponding to the current time period based on the intermediate data packet to obtain the current data reception amount and the current number of data packet receptions, updates the mark statistical information corresponding to the current time period based on the target congestion mark to obtain the current mark statistical information, calculates the data queue amount of the data transfer device in the current time period based on the queue reference information, the current number of data packet receptions and the current mark statistical information to obtain the target data queue amount, obtains the current network load based on the current data reception amount and the target data queue amount, obtains the current load information based on the reference network load corresponding to the current time period and the current network load, generates a reply data packet based on the current load information, and sends the reply data packet to the data sending device; the data sending device adjusts the congestion window based on the current load information. This eliminates the need for complex software and hardware modifications to data transfer devices. Instead, the data transfer device simply updates the congestion marker in the data packet and feeds it back to the data receiving device. Based on the received target congestion marker, the data receiving device can gradually infer the amount of data queued on the data transfer device. This inferred amount of data queued can then be used to calculate the current load information reflecting the current network status. Subsequently, the data receiving device can make precise window adjustments based on this current load information. Congestion awareness and congestion control can be achieved using existing data transfer equipment without complex software and hardware modifications, effectively saving equipment deployment time and costs.

[0197] In one embodiment, the queue reference information includes a first queue volume threshold, a second queue volume threshold, and a reference update ratio. Updating the initial congestion mark based on the current data queue volume and the queue reference information to obtain a target congestion mark includes:

[0198] When the current data queue volume is less than or equal to the first queue volume threshold, the initial congestion mark is used as the target congestion mark; when the current data queue volume is greater than the first queue volume threshold and less than the second queue volume threshold, the second mark update ratio is determined based on the current data queue volume and queue reference information, and the initial congestion mark is updated based on the second mark update ratio to obtain the target congestion mark; when the current data queue volume is greater than the second queue volume threshold, the reference congestion mark is used as the target congestion mark.

[0199] The second mark update ratio is used to indicate the probability of changing the initial congestion mark.

[0200] Specifically, when updating the initial congestion mark, if the current data queue volume is less than or equal to the first queue volume threshold, indicating that the amount of data accumulated in the network is relatively small and the network status is relatively good, the data transfer device maintains the initial congestion mark unchanged and uses the initial congestion mark as the target congestion mark. If the current data queue volume is greater than the first queue volume threshold and less than the second queue volume threshold, the data transfer device can determine a second mark update ratio based on the current data queue volume and queue reference information, and probabilistically update the initial congestion mark based on the second mark update ratio to obtain a target congestion mark. In this case, the target congestion mark may be the initial congestion mark or the target congestion mark. If the current data queue volume is greater than the second queue volume threshold, indicating that the amount of data accumulated in the network is relatively large and the network status is relatively poor, the data transfer device can use the reference congestion mark as the target congestion mark and modify the initial congestion mark to the reference congestion mark.

[0201] In the above embodiment, different methods are used to update the initial congestion mark for different levels of data accumulation. The initial congestion mark can be adaptively adjusted based on the network status to obtain the target congestion mark, which can reflect the network status to a certain extent.

[0202] In one embodiment, determining the second mark update ratio based on the current data queue amount and the queue reference information includes:

[0203] Based on the ratio of the reference update ratio and the first distance, queue volume adjustment information is obtained; the first distance is obtained based on the difference between the first queue volume threshold and the second queue volume threshold; based on the difference between the current data queue volume and the first queue volume threshold, the second distance is obtained; and the second tag update ratio is obtained by fusing the second distance and the queue volume adjustment information.

[0204] Specifically, when determining the second marker update ratio, the data transfer device may obtain a first distance based on the difference between the first queue volume threshold and the second queue volume threshold, calculate a ratio of the reference update ratio to the first distance, and obtain queue volume adjustment information based on the ratio. The queue volume adjustment information may indicate the rate at which the marker update ratio changes with changes in the data queue volume. The data transfer device may obtain a second distance based on the difference between the current data queue volume and the first queue volume threshold, fuse the second distance with the queue volume adjustment information, and multiply the second distance and the queue volume adjustment information to obtain the second marker update ratio.

[0205] In one embodiment, the principle of the data transfer device updating the initial congestion mark can refer to Figure 3 If the data queue volume is between the first height threshold and the second height threshold, Q1 represents the current data queue amount, P1 represents the second mark update ratio, Indicates queue adjustment information, Q1-K min Indicates the second distance.

[0206] In the above embodiment, queue size adjustment information is obtained based on the ratio of the reference update ratio to the first distance; the first distance is obtained based on the difference between the first queue size threshold and the second queue size threshold; the second distance is obtained based on the difference between the current data queue size and the first queue size threshold; and the second marker update ratio is obtained by fusing the second distance with the queue size adjustment information. The second marker update ratio increases as the current data queue size increases, thereby improving the accuracy of the second marker update ratio.

[0207] In one embodiment, updating the initial congestion mark based on the second mark update ratio to obtain a target congestion mark includes:

[0208] Based on the second mark update ratio, the random number set is divided into a first category of random numbers and a second category of random numbers, the proportion of random numbers corresponding to the first category of random numbers is the second mark update ratio, the first category of random numbers corresponds to the reference congestion mark, and the second category of random numbers corresponds to the initial congestion mark; the target random number is randomly determined from the random number set; when the target random number belongs to the first category of random numbers, the reference congestion mark is used as the target congestion mark; when the target random number belongs to the second category of random numbers, the initial congestion mark is used as the target congestion mark.

[0209] Among them, the random number set may include data with a certain quantity and a certain value. For example, the random number set includes 30 data, each of which has a specific value. The random number set may also include data whose values fall within a specific value range. For example, the random number set includes data with a value range of 0-1000.

[0210] Specifically, when updating the initial congestion mark based on the second mark update ratio, the data transfer device can divide the random number set into a first category of random numbers and a second category of random numbers based on the second mark update ratio. The proportion of random numbers in the first category of random numbers is the second mark update ratio, that is, the proportion of data belonging to the first category of random numbers to all data in the random number set is the second mark update ratio. In addition, the first category of random numbers corresponds to the reference congestion mark, and the second category of random numbers corresponds to the initial congestion mark. The data transfer device can randomly determine a target random number from the random number set. If the random number set includes data of a fixed quantity and fixed value, a random number can be directly randomly selected from the set as the target random number. If the random number set includes data with a value falling within a specific range of values, a random number can be randomly generated within the specific range of values as the target random number. If the target random number belongs to the first category of random numbers, the data transfer device can modify the initial congestion mark to the reference congestion mark. If the target random number belongs to the second category of random numbers, the data transfer device can keep the initial congestion mark unchanged and use the initial congestion mark as the target congestion mark. In this way, by updating the initial congestion mark based on the above method, the probability that the initial congestion mark is modified to the reference congestion mark can be equal to the second mark update ratio.

[0211] For example, the random number set includes natural numbers in the value range of 1-100, and the second mark update ratio is 60%. Then the first type of random numbers can include natural numbers in the value range of 1-60, and the second type of random numbers can include natural numbers in the value range of 61-100. If the data randomly drawn from the random number set is 55, 55 belongs to the first type of random number, then the data transfer device can modify the initial congestion mark to a reference congestion mark, and use the reference congestion mark as the target congestion mark.

[0212] It is understandable that the data transfer device may also adopt other methods to probabilistically update the initial congestion mark based on the second mark update ratio.

[0213] In the above embodiment, the random number set is divided into a first category of random numbers and a second category of random numbers based on the second mark update ratio. The proportion of random numbers corresponding to the first category of random numbers is equal to the second mark update ratio. The first category of random numbers corresponds to the reference congestion mark, and the second category of random numbers corresponds to the initial congestion mark. A target random number is randomly determined from the random number set. When the target random number belongs to the first category of random numbers, the reference congestion mark is used as the target congestion mark; when the target random number belongs to the second category of random numbers, the initial congestion mark is used as the target congestion mark. This update method ensures that the probability of the initial congestion mark being modified to the reference congestion mark is equal to the second mark update ratio.

[0214] In one embodiment, Figure 5 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:

[0215] Step S502: Acquire an initial data packet; the initial data packet carries an initial congestion mark.

[0216] Step S504, the initial data packet is sent to the data transfer device, so that the data transfer device updates the initial data packet based on the target congestion mark, obtains the intermediate data packet, and sends the intermediate data packet to the data receiving device; the target congestion mark is obtained by updating the initial congestion mark based on the current data queue amount and queue reference information on the data transfer device.

[0217] Specifically, the data sending device can generate an initial data packet and send the initial data packet to the data transfer device. The data transfer device can update the initial congestion mark based on the current data queue amount and queue reference information on the data transfer device to obtain the target congestion mark, update the initial data packet based on the target congestion mark, obtain the intermediate data packet, and send the intermediate data packet to the data receiving device.

[0218] Step S506, obtain the response data packet returned by the data receiving device; the response data packet carries the current load information, the current load information is obtained by the data receiving device based on the reference network load corresponding to the current time period and the current network load, the current network load is obtained based on the current data reception amount and the target data queue amount, the current data reception amount is obtained based on the data reception amount corresponding to the current time period updated by the intermediate data packet, the target data queue amount is calculated based on the queue reference information, the current number of data packet receptions and the current mark statistical information, the current number of data packet receptions is obtained based on the number of data packet receptions corresponding to the current time period updated by the intermediate data packet, and the current mark statistical information is obtained based on the mark statistical information corresponding to the current time period updated by the target congestion mark.

[0219] Specifically, after receiving the intermediate data packet, the data receiving device can update the relevant data used to calculate the current load information based on the intermediate data packet and calculate the current load information. The data receiving device can also generate a response data packet based on the current load information and feed the current load information back to the data sending device via the response data packet.

[0220] It can be understood that the specific generation process of data such as current load information, current data reception volume, current number of data packet reception and current mark statistical information can refer to the methods described in the aforementioned relevant embodiments.

[0221] Step S508: Adjust the current congestion window based on the current load information to obtain a target congestion window.

[0222] Specifically, after receiving the current load information fed back by the data receiving device, the data sending device can adjust the current congestion window based on the current load information to obtain a target congestion window. For example, a window adjustment parameter can be determined based on the current load information, and the current congestion window can be adjusted based on the window adjustment parameter. 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.

[0223] 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 load information received. If the interval does not reach the network idle RTT, the current congestion window remains unchanged.

[0224] In the above-mentioned network congestion data processing method, the data sending device sends an initial data packet carrying an initial congestion mark to a data transfer device; the data transfer device updates the initial congestion mark based on the current data queue amount and queue reference information to obtain a target congestion mark, updates the initial data packet based on the target congestion mark to obtain an intermediate data packet, and sends the intermediate data packet to the data receiving device; the data receiving device updates the data reception amount and the number of data packet receptions corresponding to the current time period based on the intermediate data packet to obtain the current data reception amount and the current number of data packet receptions, updates the mark statistical information corresponding to the current time period based on the target congestion mark to obtain the current mark statistical information, calculates the data queue amount of the data transfer device in the current time period based on the queue reference information, the current number of data packet receptions and the current mark statistical information to obtain the target data queue amount, obtains the current network load based on the current data reception amount and the target data queue amount, obtains the current load information based on the reference network load corresponding to the current time period and the current network load, generates a reply data packet based on the current load information, and sends the reply data packet to the data sending device; the data sending device adjusts the congestion window based on the current load information. This eliminates the need for complex software and hardware modifications to data transfer devices. Instead, the data transfer device simply updates the congestion marker in the data packet and feeds it back to the data receiving device. Based on the received target congestion marker, the data receiving device can gradually infer the amount of data queued on the data transfer device. This inferred amount of data queued can then be used to calculate the current load information reflecting the current network status. Subsequently, the data receiving device can make precise window adjustments based on this current load information. Congestion awareness and congestion control can be achieved using existing data transfer equipment without complex software and hardware modifications, effectively saving equipment deployment time and costs.

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

[0226] When the current load information is greater than the reference load information, the window adjustment parameter is determined to be the window reduction parameter, and the current congestion window is reduced based on the window reduction parameter to obtain the target congestion window; when the current load information is less than or equal to the reference load information, the window adjustment parameter is determined to be the window enlargement parameter, and the current congestion window is enlarged based on the window enlargement parameter to obtain the target congestion window.

[0227] The reference load information is used to determine a window adjustment parameter, which can be a window enlargement parameter or a window reduction parameter. The reference load information can be set as needed. The reference load information can be set to the load information corresponding to the desired network state. For example, the reference load information can be set to 1.

[0228] Specifically, after obtaining current load information fed back by a data receiving device, the data transmitting device can compare the current load information with reference load information, determine a window adjustment parameter based on the comparison result, and then adjust the current congestion window based on the window adjustment parameter to obtain a target congestion window. When the current load information is greater than the reference load information, indicating that the current network state is worse than the expected network state, the data transmitting device can determine the window adjustment parameter to be a window reduction parameter, reduce the current congestion window based on the window reduction parameter to obtain a target congestion window, and use the target congestion window to slow down packet transmission to alleviate network congestion. When the current load information is less than or equal to the reference load information, indicating that the current network state is similar to or better than the expected network state, the data transmitting device can determine the window adjustment parameter to be a window enlargement parameter, enlarge the current congestion window based on the window enlargement parameter to obtain a target congestion window, and use the target congestion window to accelerate packet transmission to fully utilize network bandwidth and improve bandwidth utilization. The window reduction parameter and window enlargement parameter can be data that changes dynamically based on the current load information or can be pre-set fixed data. Reducing the current congestion window based on the window reduction parameter can be done by dividing the current congestion window by the window reduction parameter or by subtracting the window reduction parameter from the current congestion window. Enlarging the current congestion window based on the window enlargement parameter can be done by multiplying the window enlargement parameter by the current congestion window or by adding the window enlargement parameter to the current congestion window.

[0229] In one embodiment, if the window adjustment parameter is determined to be a window reduction parameter based on the current load information, the current congestion window can be directly reduced based on the window reduction parameter. If the window adjustment parameter is determined to be a window enlargement parameter based on the current load information, it is necessary to further determine whether the interval time reaches the window adjustment period. If it reaches it, the current congestion window is enlarged based on the window enlargement parameter.

[0230] In the above embodiment, when the current load information is greater than the reference load information, the window adjustment parameter is quickly determined to be a window reduction parameter; when the current load information is less than or equal to the reference load information, the window adjustment parameter is quickly determined to be a window enlargement parameter, so that the current congestion window can be quickly and accurately adjusted based on the window adjustment parameter.

[0231] In one embodiment, when the current load information is greater than the reference load information, determining that the window adjustment parameter is a window reduction parameter, reducing the current congestion window based on the window reduction parameter to obtain a target congestion window includes:

[0232] When the current load information is greater than the reference load information, a window reduction parameter is generated based on the current load information; the window reduction parameter increases as the current load information increases; and a target congestion window is obtained based on a ratio of the current congestion window and the window reduction parameter.

[0233] Specifically, when reducing the current congestion window, the data sending device can dynamically determine the window reduction parameter based on the current load information, and obtain the target congestion window based on the ratio of the current congestion window and the window reduction parameter, thereby adaptively reducing the congestion window according to the current network state, further improving the accuracy of congestion window adjustment. The window reduction parameter increases as the current load information increases. That is, the greater the current load information and the worse the current network state, the larger the window reduction parameter, and the greater the reduction force on the current congestion window. The ratio of the current congestion window to the window reduction parameter can be directly used as the target congestion window, or the sum of the ratio and a preset value can be used as the target congestion window.

[0234] In one embodiment, when the current load information is greater than the reference load information, the current congestion window may be reduced according to the following formula:

[0235]

[0236] Among them, L represents the current load information, that is, the load rate, and L is used as the window reduction parameter, W C Represents the current congestion window. W represents the target congestion window, that is, the congestion window that controls the speed of data packet transmission. If the data sender adjusts the congestion window regularly, W C It indicates the congestion window of the previous cycle.

[0237] In the above embodiment, when the current load information is greater than the reference load information, a window reduction parameter is generated based on the current load information. The window reduction parameter increases as the current load information increases. The worse the network status is, the greater the adjustment force on the window is, which can quickly reduce data accumulation in the network.

[0238] In one embodiment, when the current load information is less than or equal to the reference load information, determining the window adjustment parameter as the window magnification parameter, and magnifying the current congestion window based on the window magnification parameter to obtain the target congestion window includes:

[0239] When the current load information is less than or equal to the reference load information, the current network state is determined to be an underload state; the historical continuous underload number is updated based on the current network state to obtain the current continuous underload number; the historical continuous underload number is obtained by counting the number of times the adjacent network state corresponding to the current network state is continuously in the underload state; when the current continuous underload number is less than or equal to the preset number, the current congestion window is enlarged based on the first window magnification parameter to obtain the target congestion window; when the current continuous underload number is greater than the preset number, the current congestion window is enlarged based on the second window magnification parameter to obtain the target congestion window; the first window magnification parameter is less than the second window magnification parameter.

[0240] The "underload" state indicates that the current network state has not reached the expected state and is lower than the expected state. The network can accommodate more data. The "historical consecutive underload count" refers to the number of times the network state has been underloaded before the current network state was determined. The "current consecutive underload count" refers to the number of times the network state has been underloaded since the current network state was determined. The adjacent network state corresponding to the current network state refers to the historical network state determined before the current network state was determined. The preset number can be set as needed, for example, to 3.

[0241] Specifically, when the current load information is less than or equal to the reference load information, the data sending device can determine that the current network state is underloaded and that the data packet transmission rate needs to be increased to improve bandwidth utilization. Furthermore, if the network state is underloaded multiple times consecutively, the data packet transmission rate can be further increased. Each time the data sending device determines the network state based on the load information, it can simultaneously count the number of consecutive underloads. If the current number of consecutive underloads is less than or equal to a preset number, indicating that the network is underloaded for a short period of time and has a certain data capacity, the congestion window can be slightly increased. If the current number of consecutive underloads is greater than the preset number, indicating that the network is underloaded for a long period of time and still has strong data capacity, the congestion window can be significantly increased. Therefore, if the current number of consecutive underloads is less than or equal to the preset number, the data sending device amplifies the current congestion window based on a first window amplification parameter to obtain a target congestion window. If the current number of consecutive underloads is greater than the preset number, the data sending device amplifies the current congestion window based on a second window amplification parameter to obtain a target congestion window, wherein the first window amplification parameter is less than the second window amplification parameter.

[0242] In the above embodiment, when the current number of consecutive underloads is less than or equal to a preset number, the current congestion window is enlarged based on a first window enlargement parameter. When the current number of consecutive underloads is greater than the preset number, the current congestion window is enlarged based on a second window enlargement parameter, where the first window enlargement parameter is less than the second window enlargement parameter. In this way, when the network is underloaded multiple times in a row, increasing the intensity of congestion window adjustment can improve network bandwidth utilization.

[0243] In one embodiment, when the current load information is less than or equal to the reference load information, determining that the current network state is an underload state includes:

[0244] When the current load information is less than or equal to the reference load information, and the time interval between the current time and the adjacent congestion window adjustment time is greater than the preset time interval, it is determined that the current network state is an underload state.

[0245] 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 of the last congestion window adjustment. If the data sender adjusts the congestion window periodically, the adjacent congestion window adjustment time refers to the time of the congestion window adjustment in the previous cycle.

[0246] Specifically, the data transmitter may periodically adjust the congestion window. Only when the current load information is less than or equal to the reference load information and the current time reaches the congestion window update period does the data transmitter determine that the current network state is underloaded and increment the historical consecutive underload count by 1. If the data transmitter periodically adjusts the congestion window, the historical consecutive underload count refers to the number of historical consecutive underload cycles, and the current consecutive underload count refers to the current number of consecutive underload cycles. It will be appreciated that multiple response packets may be received within the window adjustment period. In this case, it is not necessary to frequently update the congestion window based on the current load information carried by each response packet. Instead, the congestion window and the historical consecutive underload count can be maintained unchanged. Only when the time interval between the current time and the adjacent congestion window adjustment time is greater than a preset time interval, i.e., when the current time reaches the congestion window update period, is the current network state determined to be underloaded based on the most recently received current load information. If the current load information is less than or equal to the reference load information, the current network state is determined to be underloaded, and the historical consecutive underload count needs to be updated. The congestion window is then adjusted based on the updated current consecutive underload count.

[0247] In one embodiment, when the current load information is less than or equal to the reference load information, and the time interval between the current time and the adjacent congestion window adjustment time is less than or equal to a preset time interval, the current congestion window is used as the target congestion window. Specifically, if the current time has not reached the congestion window update time, even if the current load information is less than or equal to the reference load information, the current congestion window remains unchanged and is directly used as the target congestion window.

[0248] In the above embodiment, the current network state is determined to be an underload state only when the current load information is less than or equal to the reference load information and the time interval between the current time and the adjacent congestion window adjustment time is greater than the preset time interval. Determining the underload state through multiple conditions can ensure the accuracy of the underload state determination.

[0249] In one embodiment, when the current number of consecutive underloads is less than or equal to a preset number, the current congestion window is enlarged based on the first window enlargement parameter to obtain a target congestion window, including:

[0250] A first window enlargement parameter is obtained based on a ratio of a preset parameter to a current congestion window; the first window enlargement parameter decreases as the current congestion window increases; and the first window enlargement parameter and the current congestion window are fused to obtain a target congestion window.

[0251] The preset parameters can be set as needed. The preset parameters corresponding to different data transmission links can be the same or different. If different data transmission links correspond to the same preset parameters, adjusting the current congestion window based on the preset parameters can ensure fairness in adjusting the different congestion windows. Data flows with large congestion windows will see a smaller increase in congestion capacity, while data flows with small congestion windows will see a larger increase in congestion capacity. Ultimately, all data flows will share all bandwidth fairly.

[0252] Specifically, when the current number of consecutive underruns is less than or equal to a preset number, the data sending device may use the ratio of the preset parameter to the current congestion window as a first window magnification parameter. The first window magnification parameter decreases as the current congestion window increases, that is, the larger the current congestion window, the smaller the first window magnification parameter. The data sending device may combine the first window magnification parameter and the current congestion window to obtain a target congestion window, for example, using the sum of the first window magnification parameter and the current congestion window as the target congestion window.

[0253] In one embodiment, when the current number of consecutive underloads is less than or equal to a preset number, the current congestion window can be enlarged according to the following formula:

[0254]

[0255] Among them, L represents the current load information, that is, the load rate, stage represents the current number of consecutive underloads, and W C represents the current congestion window, which is the congestion window obtained after the last window adjustment. W represents the target congestion window, that is, the congestion window that controls the packet sending speed next. θ represents the preset parameter, θ / W C In one embodiment, θ can be set to 1.

[0256] In one embodiment, the second window enlargement parameter is determined based on current load information, and the second window enlargement parameter decreases as the current load information increases.

[0257] Specifically, when the current number of consecutive underloads is less than or equal to a preset number, the data sending device may determine a second window magnification parameter based on the current load information, where the second window magnification parameter decreases as the current load information increases. The data sending device may multiply the second window magnification parameter by the current congestion window to obtain a target congestion window.

[0258] In one embodiment, when the current number of consecutive underloads is greater than a preset number, the current congestion window can be enlarged according to the following formula:

[0259]

[0260] Among them, L represents the current load information, that is, the load rate, 1 / L represents the second window magnification parameter, stage represents the current number of consecutive underloads, and W C The current congestion window is the congestion window obtained after the last window adjustment. W is the target congestion window, which is the congestion window that controls the packet sending speed.

[0261] It can be understood that when the current number of consecutive underloads is less than or equal to the preset number, the congestion window is additively adjusted, and when the current number of consecutive underloads is greater than the preset number, the congestion window is multiplicatively adjusted, and the adjustment amplitude of the additive congestion window is smaller than the adjustment amplitude of the multiplicative congestion window.

[0262] In one embodiment, the initial data packet and the response data packet carry a target data flow identifier, and the current congestion window is adjusted based on the current load information to obtain the target congestion window, including:

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

[0264] Specifically, in a data sending device, different data streams can correspond to different congestion windows. Therefore, when adjusting the congestion window, the corresponding congestion window can be adjusted based on the corresponding load rate to achieve precise adjustment. The data sending device can determine the network status of the data transmission link 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 window adjustment parameter determined by the current load information to obtain the target congestion window corresponding to the target data stream identifier. The congestion window adjustment process can refer to the contents of the aforementioned relevant embodiments.

[0265] 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.

[0266] 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.

[0267] In one embodiment, reference Figure 6 The sender controls data flow based on a window, and switches in the network probabilistically mark packets with ECN (Explicit Congestion Notification) based on the amount of data accumulated. After receiving a data packet, the receiver periodically updates the load factor and sends this information back to the sender via an acknowledgment packet. Upon receiving the acknowledgment packet, the sender adjusts the congestion window based on the load factor. Ultimately, the total rate of all data flows can be matched to the bandwidth of the link bottleneck.

[0268] In one embodiment, Figure 7 As shown, a network congestion data processing system is provided, which includes a data sending device 702, a data transfer device 704 and a data receiving device 706.

[0269] The data sending device 702 is used to obtain an initial data packet and send the initial data packet to the data transfer device; the initial data packet carries an initial congestion mark;

[0270] The data transfer device 704 is configured to update the initial congestion mark based on the current data queue amount and the queue reference information to obtain a target congestion mark, update the initial data packet based on the target congestion mark, obtain an intermediate data packet, and send the intermediate data packet to the data receiving device;

[0271] The data receiving device 706 is configured to update the data reception amount and the number of data packet receptions corresponding to the current time period based on the intermediate data packets to obtain the current data reception amount and the current number of data packet receptions; update the mark statistics corresponding to the current time period based on the target congestion mark to obtain the current mark statistics; calculate the data queue amount of the data transfer device in the current time period based on the queue reference information, the current number of data packet receptions, and the current mark statistics to obtain the target data queue amount; obtain the current network load based on the current data reception amount and the target data queue amount; obtain current load information based on the current network load and the reference network load; generate a response data packet based on the current load information, and send the response data packet to the data sending device;

[0272] The data sending device 702 is further configured to adjust the current congestion window based on the current load information to obtain a target congestion window.

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

[0274] The aforementioned network congestion data processing system eliminates the need for complex software and hardware modifications to data transfer equipment. Instead, the data transfer equipment simply updates the congestion marker in the data packet and feeds it back to the data receiving device. Based on the received target congestion marker, the data receiving device can gradually infer the data queue volume on the data transfer equipment. This inferred data queue volume then calculates current load information reflecting the current network status. Subsequently, the data receiving device can make precise window adjustments based on this current load information. This eliminates the need for complex software and hardware modifications to the data transfer equipment, enabling congestion awareness and control to be achieved using existing data transfer equipment, effectively saving equipment deployment time and costs.

[0275] In one specific embodiment, the network congestion data processing method can be applied to data center networks to control the rate of data flows within the network to achieve high bandwidth utilization, low network queuing, and fair bandwidth allocation between data flows. The solution of this application can maintain extremely low network queuing, preventing performance degradation caused by severe queuing, while also ensuring performance in large-scale networks.

[0276] refer to Figure 8 , the solution of this application is deployed on both the end-side server and the network switch of the network, achieving the expected 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. On the network switch, this solution does not require modification of the switch hardware, only customization of the ECN parameters (i.e., queuing reference information). The network congestion data processing method specifically includes the following steps:

[0277] 1. When a data packet is sent from the sender, the sender needs to enable the ECN marking function and set the lower two bits of the TOS (Type of Service) field in the IP header to 01 or 10.

[0278] Among them, ETH (used to record relevant information of the Ethernet protocol), IP (used to record relevant information of the IP protocol), UDP (used to record relevant information of the UDP protocol), and Payload (payload, used to record key information) are the regular structures and regular components of the data packet.

[0279] 2. When data packets are sent from the switch's egress port, the switch probabilistically tags the data packets based on the ECN parameters according to the degree of data accumulation.

[0280] Specifically, you can refer to Figure 3When setting the ECN parameters (see Figure 4), Pmax can be set to 1.0, or 100%. Kmin can be set to a lower value, such as 5KB or 10KB. Kmax can be set to a higher value, for example, 2 to 3 times the BDP (Bandwidth-Delay Product), specifically 100KB or 150KB. The receiver probabilistically marks packets with ECN based on the data accumulation height, setting the lower two bits of the IP header's TOS field to 11.

[0281] 3. After the data packet arrives at the receiving end, the receiving end updates the port statistics according to the ECN marking of the data packet and updates the port load rate according to the periodic control.

[0282] Specifically, after receiving the data packet, the receiver updates the following counters:

[0283] RxBytes = RxBytes′ + p.size

[0284] N packet =N packet′ +1

[0285] If the packet is marked with ECN, the following counters are updated simultaneously:

[0286] N ecn =N ecn′ +1

[0287] If the time between the current time and the last load factor update exceeds T, the load factor L is updated at the same time.

[0288]

[0289] I=RxBytes+Qlen-LastQlen

[0290]

[0291]

[0292] After updating the data, the receiver can reset the counter.

[0293] 4. The receiving end generates a response packet (Ack packet) and writes the load rate updated in step 3 into the load rate header LH (Load Header) of the response packet.

[0294] 5. The response packet arrives at the sender. The sender extracts the LH of the response packet and adjusts the congestion window according to the load rate L in the LH.

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

[0296]

[0297]

[0298]

[0299] If L ≤ 1, and the current time - the congestion window update time of the previous cycle > the network idle RTT, then stage + 1. If L ≤ 1, and the current time - the congestion window update time of the previous cycle ≤ the network idle RTT, then the stage remains unchanged, W remains unchanged, and W = Wc.

[0300] In one embodiment, the load rate L calculated by the receiving end can be a floating-point number. To facilitate data transmission, the floating-point number L can be clipped to the range of 0.0 to 4.0 and then amplified by 64 times to obtain LH, i.e., LH = L * 64. In other words, the floating-point number L is converted to 8-bit binary and placed in the LH field of the response packet. Accordingly, after receiving the response packet, the sending end needs to reduce LH by 64 times to obtain the floating-point number L.

[0301] This innovative solution requires no switch hardware modifications; only software modifications on the sender and receiver sides deliver superior performance compared to existing solutions. This design, which calculates load factor on the receiver side, requires no switch hardware modifications and can be supported by existing switch hardware, which typically supports ECN marking. Through this solution's load factor calculation method and the assistance of switches, window-based control and precise window adjustment, network queuing is ultimately kept to extremely low levels while maintaining near 100% bandwidth utilization and excellent data flow fairness.

[0302] Since this solution has innovated the network congestion index and congestion window adjustment, it can achieve the best results in three dimensions: bandwidth utilization, queue accumulation, and flow fairness, ultimately 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 Fattree (fat tree topology), referring to Figure 9, 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.

[0303] Simulation performance results reference Figure 10A 、 Figure 10B 、 Figure 10C , Figure 10A is the simulation result of DCQCN, Figure 10B is the simulation result of HPCC, Figure 10C This is the simulation result of this scheme. Figure 10A 、 Figure 10B 、 Figure 10C From left to right, the flow rate / window change, bottleneck bandwidth and bottleneck queue height are shown in the figure. Figure 10A 、 Figure 10B 、 Figure 10C 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 10A 、 Figure 10B 、 Figure 10C Only the bottleneck bandwidth and bottleneck queue height of 38 switches are shown.

[0304] 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 high, exceeding 250KB for a long period, and subsequently fluctuate between 0 and 50KB. In contrast, the data flow window sizes controlled by this solution are very uniform, demonstrating excellent fairness. In terms of bandwidth (throughput), this solution consistently maintains 100% switch bandwidth, and the final flow completion time (FCT) is 7000µs, nearly 12.5% less than the 8000µs of DCQCN and HPCC. In terms of network queue backlogs, this solution's switch queue backlogs fluctuate around 10KB, significantly lower than those of DCQCN and HPCC.

[0305] It should be understood that although Figure 2 、 Figure 4 and Figure 5 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 and Figure 5 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.

[0306] In one embodiment, Figure 11 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: an intermediate data packet acquisition module 1102, a data volume update module 1104, a tag statistical information update module 1106, a data queue volume determination module 1108, a load information determination module 1110, and a response data packet sending module 1112, wherein:

[0307] The intermediate data packet acquisition module 1102 is configured to acquire intermediate data packets sent by the data transfer device. The intermediate data packets are obtained based on the initial data packets sent by the data sending device to the data transfer device. The initial data packets carry an initial congestion mark, and the intermediate data packets carry a target congestion mark. The target congestion mark is obtained by updating the initial congestion mark based on the current data queue amount and queue reference information on the data transfer device.

[0308] A data volume updating module 1104 is configured to update the data reception volume and the number of data packet reception corresponding to the current time period based on the intermediate data packets, to obtain the current data reception volume and the current number of data packet reception;

[0309] The marking statistical information updating module 1106 is configured to update the marking statistical information corresponding to the current time period based on the target congestion marking to obtain current marking statistical information;

[0310] The data queue amount determination module 1108 is configured to calculate the data queue amount of the data transfer device in the current time period based on the queue reference information, the current number of received data packets, and the current tag statistical information to obtain a target data queue amount;

[0311] A load information determination module 1110 is configured to obtain a current network load based on a current data reception amount and a target data queue amount, and obtain current load information based on a reference network load corresponding to a current time period and the current network load;

[0312] The response data packet sending module 1112 is configured to generate a response data packet based on the current load information, and send the response data packet to the data sending device, so that the data sending device adjusts the congestion window based on the current load information.

[0313] The aforementioned network congestion data processing device eliminates the need for complex software and hardware modifications to data transfer equipment. Instead, the data transfer equipment only needs to update the congestion marker in the data packet and feed it back to the data receiving device. Based on the received target congestion marker, the data receiving device can gradually infer the amount of data queued on the data transfer equipment. This inferred amount of data queued can then be used to calculate current load information reflecting the current network status. Subsequently, the data receiving device can accurately adjust its window based on this current load information. This eliminates the need for complex software and hardware modifications to the data transfer equipment, enabling congestion awareness and control to be achieved using existing data transfer equipment, effectively saving equipment deployment time and costs.

[0314] In one embodiment, the marking statistical information updating module is further used to update the marking statistical information based on the target congestion mark when the target congestion mark is consistent with the reference congestion mark, and use the updated marking statistical information as the current marking statistical information; when the target congestion mark is inconsistent with the reference congestion mark, use the marking statistical information as the current marking statistical information.

[0315] In one embodiment, the queue reference information includes a first queue volume threshold, a second queue volume threshold, and a reference update ratio, where the first queue volume threshold is less than the second queue volume threshold. The data queue volume determination module is further configured to obtain a first mark update ratio based on a ratio of current mark statistical information to a current number of received data packets; obtain ratio adjustment information based on a ratio of a first distance to the reference update ratio; the first distance being obtained based on the difference between the first queue volume threshold and the second queue volume threshold; obtain an initial queue volume by fusing the ratio adjustment information with the first mark update ratio; and obtain a target data queue volume based on the initial queue volume and the first queue volume threshold.

[0316] In one embodiment, the load information determination module includes:

[0317] The current network load determination unit is used to obtain the data queue change based on the difference between the target data queue amount and the historical data queue amount; and obtain the current network load based on the current data reception amount and the data queue change.

[0318] In one embodiment, the current network load determination unit is further configured to fuse the current data reception amount and the data queuing change amount to obtain an intermediate network load; and obtain the current network load based on the intermediate network load and the target data queuing amount.

[0319] In one embodiment, the current network load determination unit is also used to obtain the attention weights corresponding to the intermediate network load and the target data queue volume respectively; the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target data queue volume; based on the attention weight, the intermediate network load and the target data queue volume are fused to obtain the current network load.

[0320] In one embodiment, the load information determination module includes:

[0321] The load information determining unit is configured to obtain a reference network load based on the bandwidth information corresponding to the data transfer device and the current time period; and obtain current load information based on the ratio of the current network load to the reference network load.

[0322] In one embodiment, the load information determination 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.

[0323] In one embodiment, the intermediate data packet carries the target port identifier corresponding to the target transit port. The current data queue volume, data reception volume, number of data packet receptions, tag statistics, data queue volume, and reference network load are all data corresponding to the target port identifier. The target transit port is the port on the data transit device that sends the intermediate data packet.

[0324] In one embodiment, the intermediate data packet carries the target queue identifier corresponding to the target transit queue. The current data queue volume, data reception volume, number of data packet receptions, tag statistics, and reference network load are all data corresponding to the target queue identifier. The target transit queue is the queue for sending intermediate data packets in the target transit port.

[0325] In one embodiment, Figure 12 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: a data packet acquisition module 1202, a tag update module 1204, a data packet update module 1206 and a data packet feedback module 1208, wherein:

[0326] The data packet acquisition module 1202 is configured to acquire an initial data packet sent by a data sending device; the initial data packet carries an initial congestion mark;

[0327] The mark updating module 1204 is used to update the initial congestion mark based on the current data queue amount and the queue reference information to obtain a target congestion mark;

[0328] The data packet updating module 1206 is configured to update the initial data packet based on the target congestion mark, obtain an intermediate data packet, and send the intermediate data packet to the data receiving device;

[0329] The data packet feedback module 1208 is used to send the response data packet returned from the data receiving device and carrying the current load information to the data sending device, so that the data sending device adjusts the congestion window based on the current load information; the current load information is obtained by the data receiving device based on the reference network load and the current network load corresponding to the current time period, the current network load is obtained based on the current data reception amount and the target data queue amount, the current data reception amount is obtained based on the data reception amount corresponding to the current time period updated by the intermediate data packets, the target data queue amount is calculated based on the queue reference information, the current number of data packet receptions and the current mark statistical information, the current number of data packet receptions is obtained based on the number of data packet receptions corresponding to the current time period updated by the intermediate data packets, and the current mark statistical information is obtained based on the mark statistical information corresponding to the current time period updated by the target congestion mark.

[0330] The aforementioned network congestion data processing device eliminates the need for complex software and hardware modifications to data transfer equipment. Instead, the data transfer equipment only needs to update the congestion marker in the data packet and feed it back to the data receiving device. Based on the received target congestion marker, the data receiving device can gradually infer the amount of data queued on the data transfer equipment. This inferred amount of data queued can then be used to calculate current load information reflecting the current network status. Subsequently, the data receiving device can accurately adjust its window based on this current load information. This eliminates the need for complex software and hardware modifications to the data transfer equipment, enabling congestion awareness and control to be achieved using existing data transfer equipment, effectively saving equipment deployment time and costs.

[0331] In one embodiment, the queue reference information includes a first queue volume threshold, a second queue volume threshold, and a reference update ratio. The mark update module is further configured to use the initial congestion mark as the target congestion mark when the current data queue volume is less than or equal to the first queue volume threshold; determine a second mark update ratio based on the current data queue volume and the queue reference information when the current data queue volume is greater than the first queue volume threshold but less than the second queue volume threshold, and update the initial congestion mark based on the second mark update ratio to obtain the target congestion mark; and use the reference congestion mark as the target congestion mark when the current data queue volume is greater than the second queue volume threshold.

[0332] In one embodiment, the tag update module is further used to obtain queue volume adjustment information based on the ratio of the reference update ratio and the first distance; the first distance is obtained based on the difference between the first queue volume threshold and the second queue volume threshold; the second distance is obtained based on the difference between the current data queue volume and the first queue volume threshold; and the second tag update ratio is obtained by fusing the second distance and the queue volume adjustment information.

[0333] In one embodiment, the mark update module is further used to divide the random number set into a first type of random numbers and a second type of random numbers based on the second mark update ratio, the proportion of random numbers corresponding to the first type of random numbers is the second mark update ratio, the first type of random numbers correspond to the reference congestion mark, and the second type of random numbers correspond to the initial congestion mark; randomly determine the target random number from the random number set; when the target random number belongs to the first type of random number, use the reference congestion mark as the target congestion mark; when the target random number belongs to the second type of random number, use the initial congestion mark as the target congestion mark.

[0334] In one embodiment, Figure 13 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 1302, an initial data packet sending module 1304, a response data packet acquisition module 1306 and a window adjustment module 1308, wherein:

[0335] The initial data packet acquisition module 1302 is used to acquire an initial data packet; the initial data packet carries an initial congestion mark;

[0336] The initial data packet sending module 1304 is configured to send the initial data packet to the data transfer device, so that the data transfer device updates the initial data packet based on the target congestion mark, obtains an intermediate data packet, and sends the intermediate data packet to the data receiving device; the target congestion mark is obtained by updating the initial congestion mark based on the current data queue amount and queue reference information on the data transfer device;

[0337] The response packet acquisition module 1306 is used to acquire a response packet returned by the data receiving device; the response packet carries current load information, which is obtained by the data receiving device based on the reference network load corresponding to the current time period and the current network load. The current network load is obtained based on the current data reception amount and the target data queue amount. The current data reception amount is obtained based on the data reception amount corresponding to the current time period updated by intermediate data packets. The target data queue amount is calculated based on the queue reference information, the current number of received data packets, and current mark statistics. The current number of received data packets is obtained based on the number of received data packets corresponding to the current time period updated by intermediate data packets. The current mark statistics are obtained based on the mark statistics corresponding to the current time period updated by the target congestion mark.

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

[0339] The aforementioned network congestion data processing device eliminates the need for complex software and hardware modifications to data transfer equipment. Instead, the data transfer equipment only needs to update the congestion marker in the data packet and feed it back to the data receiving device. Based on the received target congestion marker, the data receiving device can gradually infer the amount of data queued on the data transfer equipment. This inferred amount of data queued can then be used to calculate current load information reflecting the current network status. Subsequently, the data receiving device can accurately adjust its window based on this current load information. This eliminates the need for complex software and hardware modifications to the data transfer equipment, enabling congestion awareness and control to be achieved using existing data transfer equipment, effectively saving equipment deployment time and costs.

[0340] In one embodiment, the window adjustment module includes:

[0341] a window reduction unit, configured to, when the current load information is greater than the reference load information, determine the window adjustment parameter as the window reduction parameter, and reduce the current congestion window based on the window reduction parameter to obtain a target congestion window;

[0342] The window enlargement unit is used to determine the window adjustment parameter as the window enlargement parameter when the current load information is less than or equal to the reference load information, and enlarge the current congestion window based on the window enlargement parameter to obtain the target congestion window.

[0343] In one embodiment, the window reduction unit is further used to generate a window reduction parameter based on the current load information when the current load information is greater than the reference load information; the window reduction parameter increases as the current load information increases; and the target congestion window is obtained based on the ratio of the current congestion window and the window reduction parameter.

[0344] In one embodiment, the window magnification unit is also used to determine that the current network state is an underload state when the current load information is less than or equal to the reference load information; update the historical continuous underload number based on the current network state to obtain the current continuous underload number; the historical continuous underload number is obtained by counting the number of times the adjacent network state corresponding to the current network state is continuously in the underload state; when the current continuous underload number is less than or equal to the preset number, magnify the current congestion window based on the first window magnification parameter to obtain the target congestion window; when the current continuous underload number is greater than the preset number, magnify the current congestion window based on the second window magnification parameter to obtain the target congestion window; the first window magnification parameter is less than the second window magnification parameter.

[0345] In one embodiment, the window enlargement unit is further configured to determine that the current network state is an underload state when the current load information is less than or equal to the reference load information and the time interval between the current time and the adjacent congestion window adjustment time is greater than a preset time interval.

[0346] In one embodiment, the window magnification unit is further used to obtain a first window magnification parameter based on a ratio of a preset parameter and a current congestion window; the first window magnification parameter decreases as the current congestion window increases; and the first window magnification parameter and the current congestion window are combined to obtain a target congestion window.

[0347] In one embodiment, the second window enlargement parameter is determined based on current load information, and the second window enlargement parameter decreases as the current load information increases.

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

[0349] 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.

[0350] 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 14 As 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 queuing reference information, data reception volume, and number of data packets received. 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.

[0351] 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 15 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.

[0352] Those skilled in the art will understand that Figure 14 、 15The 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.

[0353] 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.

[0354] 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.

[0355] 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.

[0356] 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).

[0357] 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.

[0358] 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 receiving device, the method includes: Obtaining an intermediate data packet sent by a data transfer device; the intermediate data packet is obtained based on an initial data packet sent by a data sending device to the data transfer device, the initial data packet carries an initial congestion mark, and the intermediate data packet carries a target congestion mark, the target congestion mark is obtained by updating the initial congestion mark based on the current data queue amount and queue reference information on the data transfer device; Update the data reception amount and the number of data packet reception corresponding to the current time period based on the intermediate data packet to obtain the current data reception amount and the current number of data packet reception; Update the mark statistics corresponding to the current time period based on the target congestion mark to obtain current mark statistics; Calculate the data queue volume of the data transfer device in the current time period based on the queue reference information, the current number of received data packets and the current mark statistical information to obtain a target data queue volume; Obtaining a data queue change, fusing the current data reception amount and the data queue change to obtain an intermediate network load, obtaining attention weights corresponding to the intermediate network load and the target data queue amount, respectively, where the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target data queue amount, fusing the intermediate network load and the target data queue amount based on the attention weights to obtain a current network load, and obtaining current load information based on a reference network load corresponding to the current time period and the current network load; A response data packet is generated based on the current load information, and the response data packet is sent to the data sending device, so that the data sending device adjusts the congestion window based on the current load information.

2. The method according to claim 1, characterized in that The updating of the mark statistics corresponding to the current time period based on the target congestion mark to obtain current mark statistics includes: When the target congestion mark is consistent with the reference congestion mark, updating the mark statistical information based on the target congestion mark, and using the updated mark statistical information as the current mark statistical information; When the target congestion mark is inconsistent with the reference congestion mark, the mark statistical information is used as the current mark statistical information.

3. The method according to claim 1, characterized in that The queue reference information includes a first queue volume threshold, a second queue volume threshold, and a reference update ratio, wherein the first queue volume threshold is smaller than the second queue volume threshold; The calculating the data queue amount of the data transfer device in the current time period based on the queue reference information, the current number of received data packets, and the current mark statistical information to obtain a target data queue amount includes: Obtaining a first marking update ratio based on a ratio of the current marking statistical information to the current number of received data packets; obtaining ratio adjustment information based on a ratio of a first distance and the reference update ratio, wherein the first distance is obtained based on a difference between the first queue amount threshold and the second queue amount threshold; fusing the ratio adjustment information and the first mark update ratio to obtain an initial queue size; The target data queue size is obtained based on the initial queue size and the first queue size threshold.

4. The method according to claim 1, wherein The obtaining of the data queue change includes: Based on the difference between the target data queue amount and the historical data queue amount, a data queue change amount is obtained.

5. The method according to claim 1, wherein The attention weight corresponding to the target data queue volume is determined based on the reference network load and the preset data queue volume.

6. The method according to claim 5, characterized in that The difference between the preset data queue amount and the maximum data queue amount is smaller than a preset threshold.

7. 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 an initial congestion mark; updating the initial congestion mark based on the current data queue amount and the queue reference information to obtain a target congestion mark; updating the initial data packet based on the target congestion mark to obtain an intermediate data packet, and sending the intermediate data packet to a data receiving device; A response data packet carrying current load 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 current load information; the current load information is obtained by the data receiving device based on the reference network load and the current network load corresponding to the current time period, the current network load is obtained by fusing the attention weights corresponding to the intermediate network load and the target data queue volume respectively, the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target data queue volume, the intermediate network load is obtained by fusing the current data reception volume and the data queue change volume, the current data reception volume is obtained by updating the data reception volume corresponding to the current time period based on the intermediate data packet, the target data queue volume is calculated based on the queue reference information, the current number of data packet receptions and the current mark statistical information, the current number of data packet receptions is obtained by updating the number of data packet receptions corresponding to the current time period based on the intermediate data packet, and the current mark statistical information is obtained by updating the mark statistical information corresponding to the current time period based on the target congestion mark.

8. The method according to claim 7, characterized in that The queuing reference information includes a first queuing amount threshold, a second queuing amount threshold, and a reference update ratio. The updating of the initial congestion mark based on the current data queuing amount and the queuing reference information to obtain a target congestion mark includes: When the current data queue amount is less than or equal to the first queue amount threshold, using the initial congestion mark as the target congestion mark; When the current data queue amount is greater than the first queue amount threshold and less than the second queue amount threshold, determining a second mark update ratio based on the current data queue amount and the queue reference information, and updating the initial congestion mark based on the second mark update ratio to obtain the target congestion mark; When the current data queue amount is greater than the second queue amount threshold, the reference congestion mark is used as the target congestion mark.

9. The method according to claim 8, characterized in that The determining the second mark update ratio based on the current data queue amount and the queue reference information includes: Obtaining queue size adjustment information based on a ratio of the reference update ratio to a first distance, wherein the first distance is obtained based on a difference between the first queue size threshold and the second queue size threshold; Obtaining a second distance based on a difference between the current data queue amount and the first queue amount threshold; The second distance and the queue amount adjustment information are combined to obtain the second mark update ratio.

10. The method according to claim 8, characterized in that The updating of the initial congestion mark based on the second mark update ratio to obtain the target congestion mark includes: Dividing the random number set into a first type of random numbers and a second type of random numbers based on the second mark update ratio, the proportion of random numbers corresponding to the first type of random numbers is the second mark update ratio, the first type of random numbers corresponds to a reference congestion mark, and the second type of random numbers corresponds to an initial congestion mark; randomly determining a target random number from the set of random numbers; When the target random number belongs to the first type of random numbers, using the reference congestion mark as the target congestion mark; When the target random number belongs to the second type of random numbers, the initial congestion mark is used as the target congestion mark.

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 an initial congestion mark; Sending the initial data packet to a data transfer device so that the data transfer device updates the initial data packet based on a target congestion mark to obtain an intermediate data packet, and sending the intermediate data packet to a data receiving device; the target congestion mark is obtained by updating the initial congestion mark based on a current data queue amount and queue reference information on the data transfer device; Obtain a response data packet returned by the data receiving device; the response data packet carries current load information, the current load information is obtained by the data receiving device based on the reference network load and the current network load corresponding to the current time period, the current network load is obtained by fusing the attention weights corresponding to the intermediate network load and the target data queue, the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target data queue, the intermediate network load is obtained by fusing the current data reception amount and the data queue change amount, the current data reception amount is obtained by updating the data reception amount corresponding to the current time period based on the intermediate data packet, the target data queue is calculated based on the queue reference information, the current number of data packet receptions and the current mark statistical information, the current number of data packet receptions is obtained by updating the number of data packet receptions corresponding to the current time period based on the intermediate data packet, and the current mark statistical information is obtained by updating the mark statistical information corresponding to the current time period based on the target congestion mark; The current congestion window is adjusted based on the current load 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 current load information to obtain a target congestion window includes: When the current load information is greater than the reference load information, determining that the window adjustment parameter is a window reduction parameter, and reducing the current congestion window based on the window reduction parameter to obtain the target congestion window; When the current load information is less than or equal to the reference load information, the window adjustment parameter is determined to be a window enlargement parameter, and the current congestion window is enlarged based on the window enlargement parameter to obtain the target congestion window.

13. The method according to claim 12, characterized in that When the current load information is less than or equal to the reference load information, determining the window adjustment parameter as a window magnification parameter, and magnifying the current congestion window based on the window magnification parameter to obtain the target congestion window includes: When the current load information is less than or equal to the reference load information, determining that the current network state is an underload state; Based on the current network state, the historical continuous underload number is updated to obtain the current continuous underload number; the historical continuous underload number is obtained by counting the number of times the adjacent network state corresponding to the current network state is continuously in the underload state; When the current number of consecutive underloads is less than or equal to a preset number, enlarging the current congestion window based on a first window enlargement parameter to obtain the target congestion window; When the current number of consecutive underloads is greater than a preset number, the current congestion window is enlarged based on a second window enlargement parameter to obtain the target congestion window; the first window enlargement parameter is smaller than the second window enlargement parameter.

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 an initial congestion mark; A data transfer device, configured to update the initial congestion mark based on the current data queue amount and the queue reference information to obtain a target congestion mark, update the initial data packet based on the target congestion mark to obtain an intermediate data packet, and send the intermediate data packet to a data receiving device; a data receiving device configured to update the data reception amount and the number of data packet receptions corresponding to the current time period based on the intermediate data packet to obtain the current data reception amount and the current number of data packet receptions, update the mark statistics corresponding to the current time period based on the target congestion mark to obtain the current mark statistics, calculate the data queue amount of the data transfer device in the current time period based on the queue reference information, the current number of data packet receptions, and the current mark statistics to obtain the target data queue amount, obtain the data queue variation, fuse the current data reception amount and the data queue variation to obtain the intermediate network load, obtain the attention weights corresponding to the intermediate network load and the target data queue amount, respectively, the attention weight corresponding to the intermediate network load being greater than the attention weight corresponding to the target data queue amount, fuse the intermediate network load and the target data queue amount based on the attention weights to obtain the current network load, obtain the current load information based on the reference network load corresponding to the current time period and the current network load, generate a response data packet based on the current load information, and send the response data packet to the data sending device; The data sending device is further configured to adjust a current congestion window based on the current load information to obtain a target congestion window.

15. A network congestion data processing device, characterized in that: The device comprises: An intermediate data packet acquisition module is configured to acquire an intermediate data packet sent by a data transfer device; the intermediate data packet is obtained based on an initial data packet sent by a data sending device to a data transfer device, the initial data packet carrying an initial congestion mark, and the intermediate data packet carrying a target congestion mark, the target congestion mark being obtained by updating the initial congestion mark based on the current data queue amount and queue reference information on the data transfer device; A data volume updating module is used to update the data reception volume and the number of data packet reception corresponding to the current time period based on the intermediate data packet to obtain the current data reception volume and the current number of data packet reception; a marking statistical information updating module, configured to update the marking statistical information corresponding to the current time period based on the target congestion mark to obtain current marking statistical information; a data queue amount determination module, configured to calculate the data queue amount of the data transfer device in the current time period based on the queue reference information, the current number of received data packets, and the current mark statistical information, to obtain a target data queue amount; a load information determination module configured to obtain a data queue variation, fuse the current data reception amount and the data queue variation to obtain an intermediate network load, obtain attention weights corresponding to the intermediate network load and the target data queue amount, respectively, wherein the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target data queue amount, fuse the intermediate network load and the target data queue amount based on the attention weights to obtain a current network load, and obtain current load information based on a reference network load corresponding to the current time period and the current network load; The response data packet sending module is used to generate a response data packet based on the current load information, and send the response data packet to the data sending device, so that the data sending device adjusts the congestion window based on the current load information.

16. A network congestion data processing device, characterized in that: The device comprises: A data packet acquisition module, configured to acquire an initial data packet sent by a data sending device; the initial data packet carries an initial congestion mark; a mark updating module, configured to update the initial congestion mark based on the current data queue amount and the queue reference information to obtain a target congestion mark; a data packet updating module, configured to update the initial data packet based on the target congestion mark, obtain an intermediate data packet, and send the intermediate data packet to a data receiving device; A data packet feedback module is configured to send a response data packet carrying current load 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 current load information. The current load information is obtained by the data receiving device based on a reference network load and a current network load corresponding to a current time period. The current network load is obtained by fusing the attention weights corresponding to an intermediate network load and a target data queue, respectively, with the intermediate network load and the target data queue. The attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target data queue. The intermediate network load is obtained by fusing the current data reception amount and the data queue change amount. The current data reception amount is obtained by updating the data reception amount corresponding to the current time period based on the intermediate data packet. The target data queue is calculated based on the queue reference information, the current number of data packet receptions, and current mark statistics. The current number of data packet receptions is obtained by updating the number of data packet receptions corresponding to the current time period based on the intermediate data packet. The current mark statistics are obtained by updating the mark statistics corresponding to the current time period based on the target congestion mark.

17. A network congestion data processing device, characterized in that: The device comprises: An initial data packet acquisition module, configured to acquire an initial data packet; the initial data packet carries an initial congestion mark; an initial data packet sending module, configured to send the initial data packet to a data transfer device, so that the data transfer device updates the initial data packet based on a target congestion mark to obtain an intermediate data packet, and send the intermediate data packet to a data receiving device; the target congestion mark is obtained by updating the initial congestion mark based on the current data queue amount and queue reference information on the data transfer 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 current load information, the current load information being obtained by the data receiving device based on a reference network load and a current network load corresponding to a current time period, the current network load being obtained by fusing the attention weights corresponding to an intermediate network load and a target data queue, respectively, the intermediate network load and the target data queue, the attention weight corresponding to the intermediate network load being greater than the attention weight corresponding to the target data queue, the intermediate network load being obtained by fusing the current data reception amount and a data queue change amount, the current data reception amount being obtained by updating the data reception amount corresponding to the current time period based on the intermediate data packet, the target data queue being calculated based on the queue reference information, the current number of data packet receptions, and current mark statistical information, the current number of data packet receptions being obtained by updating the number of data packet receptions corresponding to the current time period based on the intermediate data packet, and the current mark statistical information being obtained by updating the mark statistical information corresponding to the current time period based on the target congestion mark; The window adjustment module is configured to adjust the current congestion window based on the current load information to obtain a target congestion window.

18. 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 6, 7 to 10, or 11 to 13 are implemented.

19. 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 6 or 7 to 10 or 11 to 13 are implemented.

20. 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 6 or 7 to 10 or 11 to 13 are implemented.

Citation Information

Patent Citations

  • Bandwidth allocation method based on sliding window, device and system

    CN105024946A

  • Transport layer congestion control method capable of displaying and feeding back sliding average value of congestion level

    CN106911583A