Network congestion data processing method, device, system and computer equipment
Through the congestion perception and control method at the data receiving end, the congestion mark and window information are updated using intermediate data packets, which solves the problem that the data receiving end cannot perceive congestion and improves the accuracy and fairness of network transmission.
Patent Information
- Application Number
- CN202210007918.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-01-05
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2042-01-05
AI Technical Summary
In traditional technologies, the data receiving end is unable to realize congestion perception and congestion control, resulting in degraded network transmission performance.
The data receiving device obtains intermediate data packets, updates the congestion mark and window information, calculates the data queue amount and load information, and generates a response data packet to adjust the congestion window of the sender.
It realizes congestion perception and control at the data receiving end, improves the accuracy and fairness of network transmission, and improves network congestion.
Smart Images

Figure CN116455819B_ABST
Abstract
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 address network congestion, the data sender can alleviate it by adjusting the congestion window. Traditionally, congestion awareness is performed by the data transfer end, while congestion control is performed by the data sender. The data sender is simply responsible for feeding back network status data calculated by the data transfer end to the data receiver. However, traditional technologies prevent the data receiver from implementing congestion awareness and congestion control. 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 realize congestion perception and congestion control by the data receiving end 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 carrying an initial congestion mark and initial window information, the intermediate data packet carrying a target congestion mark and the initial window information, the target congestion mark being obtained by updating the initial congestion mark based on a current data queue amount and queue reference information on the data transfer device;
[0007] Update historical window statistics based on the initial window information to obtain current window statistics;
[0008] 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;
[0009] Update the mark statistics corresponding to the current time period based on the target congestion mark to obtain current mark statistics;
[0010] 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;
[0011] Obtaining current load information based on the current data reception amount and the target data queue amount, and calculating target window adjustment information based on the current load information, the initial window information, and the current window statistical information;
[0012] A response data packet carrying the target window adjustment information is generated, 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 target window adjustment information.
[0013] In one embodiment, updating the mark statistics corresponding to the current time period based on the target congestion mark to obtain current mark statistics includes:
[0014] When the target congestion mark is consistent with the reference congestion mark, the mark statistical information is updated based on the target congestion mark, and the updated mark statistical information is used 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.
[0015] In one embodiment, the calculating target window adjustment information based on the current load information, the initial window information, and the current window statistical information includes:
[0016] A window ratio is obtained based on a ratio of the initial window information to the current window statistical information; and the target window adjustment information is obtained by fusing the current load information and the window ratio.
[0017] 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 historical window statistical information, the data reception volume, the number of data packet receptions, the tag statistical information, and the data queue volume 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.
[0018] In one embodiment, the intermediate data packet carries a target queue identifier corresponding to a target transit queue, and the current data queue quantity, the historical window statistical information, the data reception quantity, the number of data packet receptions, the tag statistical information, and the data queue quantity are all data corresponding to the target queue identifier, and the target transit queue is the queue in the target transit port that sends the intermediate data packet.
[0019] A network congestion data processing device, comprising:
[0020] 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 the data transfer device, the initial data packet carrying an initial congestion mark and initial window information, and the intermediate data packet carries a target congestion mark and the initial window information, 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;
[0021] A window statistics information updating module is used to update historical window statistics information based on the initial window information to obtain current window statistics information;
[0022] A data packet information updating module is used to 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;
[0023] 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;
[0024] a data queue amount calculation 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;
[0025] a window adjustment information determining module, configured to obtain current load information based on the current data reception amount and the target data queue amount, and calculate target window adjustment information based on the current load information, the initial window information, and the current window statistical information;
[0026] The response data packet generating module is used to generate a response data packet carrying the target window adjustment 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 target window adjustment information.
[0027] A method for processing network congestion data, applied to a data transfer device, comprising:
[0028] Acquire an initial data packet sent by a data sending device; the initial data packet carries an initial congestion mark and initial window information;
[0029] updating the initial congestion mark based on the current data queue amount and the queue reference information to obtain a target congestion mark;
[0030] 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;
[0031] A response data packet returned from the data receiving device and carrying target window adjustment information is sent to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information; the target window adjustment information is obtained based on the initial window information, current load information and current window statistical information, the current window statistical information is obtained by the data receiving device updating historical window statistical information based on the initial window information, the current load information is obtained by the data receiving device 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 obtained based on the queuing reference information, the current data packet reception number and the current mark statistical information, the current data packet reception number is obtained based on the data packet reception number 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.
[0032] In one embodiment, the queue reference information includes a first queue volume threshold, a second queue volume threshold, and a reference update ratio; and updating the initial congestion mark based on the current data queue volume and the queue reference information to obtain a target congestion mark includes:
[0033] When the current data queue amount is less than or equal to the first queue amount threshold, the initial congestion mark is used 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, a second mark update ratio is determined based on the current data queue amount and the 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 amount is greater than or equal to the second queue amount threshold, the reference congestion mark is used as the target congestion mark.
[0034] In one embodiment, determining the second mark update ratio based on the current data queue amount and the queue reference information includes:
[0035] 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, a second distance is obtained; and the second tag update ratio is obtained by fusing the second distance and the queue volume adjustment information.
[0036] In one embodiment, updating the initial congestion mark based on the second mark update ratio to obtain the target congestion mark includes:
[0037] 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 a reference congestion mark, and the second category of random numbers corresponds to an 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.
[0038] A network congestion data processing device, comprising:
[0039] 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 and initial window information;
[0040] A congestion mark updating module 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;
[0041] an intermediate data packet sending 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;
[0042] A response data packet sending module is used to send a response data packet returned from the data receiving device and carrying target window adjustment information to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information; the target window adjustment information is obtained based on the initial window information, current load information and current window statistical information, the current window statistical information is obtained by the data receiving device updating the historical window statistical information based on the initial window information, the current load information is obtained by the data receiving device 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 obtained based on the queuing reference information, the current data packet reception number and the current mark statistical information, the current data packet reception number is obtained based on the data packet reception number 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.
[0043] A method for processing network congestion data, applied to a data sending device, comprising:
[0044] Obtaining an initial data packet; the initial data packet carries an initial congestion mark and initial window information;
[0045] 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;
[0046] Obtain a response data packet returned by the data receiving device; the response data packet carries target window adjustment information, the target window adjustment information is obtained based on the initial window information, current load information and current window statistical information, the current window statistical information is obtained by the data receiving device updating the historical window statistical information based on the initial window information, the current load information is obtained by the data receiving device 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 obtained 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;
[0047] The current congestion window is adjusted based on the target window adjustment information to obtain a target congestion window.
[0048] In one embodiment, adjusting the current congestion window based on the target window adjustment information to obtain the target congestion window includes:
[0049] When the time interval between the current time and the adjacent congestion window adjustment time is greater than a preset time interval, the target congestion window is obtained based on the ratio of the current congestion window and the target window adjustment information; when the time interval between the current time and the adjacent congestion window adjustment time is less than or equal to the preset time interval, the current congestion window is used as the target congestion window.
[0050] In one embodiment, the initial data packet and the response data packet carry a target data flow identifier, and adjusting the current congestion window based on the target window adjustment information to obtain a target congestion window includes:
[0051] The current congestion window corresponding to the target data flow identifier is adjusted based on the target window adjustment information to obtain a target congestion window corresponding to the target data flow identifier.
[0052] A network congestion data processing device, comprising:
[0053] An initial data packet acquisition module is used to acquire an initial data packet; the initial data packet carries an initial congestion mark and initial window information;
[0054] 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;
[0055] a response data packet acquisition module, configured to acquire a response data packet returned by the data receiving device; the response data packet carries target window adjustment information, the target window adjustment information is obtained based on the initial window information, current load information, and current window statistical information, the current window statistical information is obtained by the data receiving device updating historical window statistical information based on the initial window information, the current load information is obtained by the data receiving device based on a current data reception amount and a target data queuing 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 queuing amount is obtained based on the queuing reference information, the current number of data packet receptions, and 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;
[0056] The window adjustment module is configured to adjust the current congestion window based on the target window adjustment information to obtain a target congestion window.
[0057] A network congestion data processing system, comprising:
[0058] 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 and initial window information;
[0059] 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;
[0060] a data receiving device configured to update historical window statistical information based on the initial window information to obtain current window statistical information, 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 statistical information corresponding to the current time period based on the target congestion mark to obtain the current mark statistical information, calculate the 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 statistical information to obtain the target data queue amount, obtain current load information based on the current data reception amount and the target data queue amount, calculate target window adjustment information based on the current load information, the initial window information and the current window statistical information, generate a response data packet carrying the target window adjustment information, and send the response data packet to the data sending device;
[0061] The data sending device is further configured to adjust the current congestion window based on the target window adjustment information to obtain a target congestion window.
[0062] 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.
[0063] 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.
[0064] A computer program product includes a computer program, wherein when the computer program is executed by a processor, the steps of the network congestion data processing method are implemented.
[0065] The above-mentioned network congestion data processing method, device, system, computer equipment and storage medium 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 initial window information, the intermediate data packet carries the target congestion mark and the initial window information, 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; based on the initial window information, the historical window statistical information is updated to obtain the current window statistical information; based on the intermediate data packet, the data reception amount and the number of data packet reception corresponding to the current time period are updated to obtain the current window statistical information. The system calculates the previous data reception volume and the current number of data packets received; updates the mark statistics corresponding to the current time period based on the target congestion mark to obtain the current mark statistics; 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 packets received, and the current mark statistics to obtain the target data queue volume; obtains current load information based on the current data reception volume and the target data queue volume, and calculates target window adjustment information based on the current load information, initial window information, and current window statistics; generates a response packet carrying the target window adjustment information, and sends the response packet to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information. In this way, the data transfer device only needs to update the congestion mark in the data packet and feed it back to the data receiving device. The data receiving device can then gradually infer the data queue volume on the data transfer device based on the received target congestion mark, and then calculate the current load information reflecting the current network status, thereby achieving congestion awareness. Furthermore, the data receiving device can calculate the target window adjustment information used to adjust the congestion window based on the current load information, current window statistics, and initial window information, thereby achieving congestion control. In addition, the initial window information can reflect the window size of the data sending device itself, the historical window statistics can reflect the window average of other data packets, and the current window statistics obtained based on the initial window information and the historical window statistics can reflect the window average of all data packets. The target window adjustment information calculated based on the current load information, the current window statistics and the initial window information comprehensively considers the window information of all current data packets and the current network status. The window adjustment information helps to improve the accuracy and fairness of the window adjustment, so that the window sizes between different data packets and data streams can be fair while improving network congestion. BRIEF DESCRIPTION OF THE DRAWINGS
[0066] Figure 1 This is a diagram of an application environment of a method for processing network congestion data in one embodiment;
[0067] Figure 2 1 is a flow chart of a method for processing network congestion data in one embodiment;
[0068] Figure 3 A schematic diagram of queue reference information in one embodiment;
[0069] Figure 4 A flowchart of a method for processing network congestion data in another embodiment;
[0070] Figure 5 1 is a flow chart of a method for processing network congestion data in another embodiment;
[0071] Figure 6 is a schematic diagram of a method for processing network congestion data in one embodiment;
[0072] Figure 7 A schematic diagram of a network congestion data processing system according to an embodiment;
[0073] Figure 8 1 is a timing diagram of a method for processing network congestion data in one embodiment;
[0074] Figure 9 is a schematic diagram of the structure of a data center network in one embodiment;
[0075] Figure 10A Schematic diagram of simulation results of a traditional congestion control algorithm in one embodiment;
[0076] Figure 10B is a schematic diagram of simulation results of a traditional congestion control algorithm in another embodiment;
[0077] Figure 10C Schematic diagram of simulation results of the congestion control algorithm of the present application in one embodiment;
[0078] Figure 11 Schematic diagram of simulation results of a traditional congestion control algorithm and the congestion control algorithm of the present application in one embodiment;
[0079] Figure 12 is a structural block diagram of a network congestion data processing device in one embodiment;
[0080] Figure 13 is a structural block diagram of a network congestion data processing device in another embodiment;
[0081] Figure 14 It is a structural block diagram of a network congestion data processing device in another embodiment;
[0082] Figure 15 is a diagram of the internal structure of a computer device in one embodiment;
[0083] Figure 16 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 1 In 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 initial window information, 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. The data transfer device 104 updates the initial data packet based on the target congestion mark to obtain an intermediate data packet. The intermediate data packet carries the target congestion mark and initial window information. The data transfer device 104 sends the intermediate data packet to the data receiving device 106. The data receiving device 106 updates the historical window statistics based on the initial window information to obtain current window statistics. The data receiving device 106 updates the data reception volume and the number of data packets received 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 packets received. The data receiving device 106 updates the mark statistics corresponding to the current time period based on the target congestion mark to obtain current mark statistics. The data receiving device 106 calculates the data queue size 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, thereby obtaining a target data queue size. The data receiving device 106 obtains current load information based on the current received data volume and the target data queue size, and calculates target window adjustment information based on the current load information, the initial window information, and the current window statistical information. The data receiving device 106 generates a response packet carrying the target window adjustment information and transmits the response packet to the data sending device 102 via the data transfer terminal 104. The data sending device 102 obtains the target window adjustment information from the response packet and adjusts the current congestion window based on the target window adjustment 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 initial window information, the intermediate data packet carries the target congestion mark and initial window information, and 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 and is used 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, for example, to obtain a video to be played from the data receiving device. The data packet sent by the data sending device can also be used to actively send information to the data receiving device, for example, to send an image to the data receiving device for storage.
[0096] The congestion marker is used to identify network congestion or potential congestion. The initial congestion marker is carried in the initial data packet and is the initial congestion marker. It is understood that the data sending device is generally unclear about the network status before receiving the response packet. Therefore, the initial congestion marker can be meaningless or indicate no congestion or potential congestion. In one embodiment, the congestion marker can be stored as two bits in the data packet, and the initial congestion marker can be represented by 00 or 01.
[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. It can 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] Window information describes the size of the congestion window. Initial window information describes the congestion window size used by the data sending device when generating and sending data packets. It is understood that the initial window information and initial congestion marker can be placed in the packet header or the packet body.
[0101] 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, indicating 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 and initial window information. The data transfer device can update the initial congestion marker based on its current data queue and queue reference information, and then update the initial data packet based on the updated target congestion marker, thereby obtaining an intermediate data packet. The data transfer device then sends the intermediate data packet carrying the target congestion marker and initial window information to the data receiving device, so that the data receiving device obtains the intermediate data packet.
[0102] Step S204: Update historical window statistics based on the initial window information to obtain current window statistics.
[0103] Window statistics are obtained by counting the initial window information of multiple data packets. Historical window statistics are obtained by counting the initial window information in received data packets before the initial data packet is received. For example, historical window statistics can be the arithmetic mean or weighted mean of each initial window information. Historical window statistics can reflect the average level of initial window information of each data packet received by the data transfer device at a historical time. Since data packets are related to data streams and data transmission links, historical window statistics can reflect the average window level of most data streams and data transmission links. Current window statistics are obtained by fusing the initial window information and historical window statistics. Current window statistics can reflect the average level of initial window information of each data packet received by the data transfer device from the past to the present, and can reflect the average window level of all current data streams and data transmission links.
[0104] Specifically, after receiving the initial data packet, the data transfer device can update the historical window statistics based on the initial window information, and fuse the initial window information with the historical window statistics to obtain current window statistics that incorporate the window information of all currently received data packets. When performing the fusion, the arithmetic mean of the initial window information and the historical window statistics can be calculated, or a weighted average of the initial window information and the historical window statistics can be calculated.
[0105] Step S206 : updating the data reception amount and the number of data packet reception corresponding to the current time period based on the intermediate data packet, and obtaining the current data reception amount and the current number of data packet reception.
[0106] The current time period refers to the currently used data statistics and monitoring time period. The current time period may include the time at which the intermediate data packets are received. For example, the current time period may end at the time at which the intermediate data packets are received. The length of the current time period can be set as needed, for example, to 10 μs. The data reception amount 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.
[0107] 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.
[0108] Step S208: Update the mark statistics corresponding to the current time period based on the target congestion mark to obtain current mark statistics.
[0109] 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.
[0110] 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.
[0111] Step S210 , 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.
[0112] 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.
[0113] 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.
[0114] Step S212: obtaining current load information based on the current data reception amount and the target data queue amount, and calculating target window adjustment information based on the current load information, the initial window information and the current window statistical information.
[0115] Load information describes the load on data transmission links and networks. Specifically, load information can be expressed as load rate or load volume. Current load information refers to the load information for the current time period, representing the network load for the current time period and even for the future. As you can see, a higher current load information indicates more congested network traffic.
[0116] The target window adjustment information is calculated based on the current load information, initial window information, and current window statistics. It can be understood that the target window adjustment information combines the current load information (reflecting the network load), the current window statistics (reflecting the average window size for all packets up to that point), and the initial window information (reflecting the sender's own window size). Window adjustment based on this window adjustment information helps improve network congestion while balancing the window sizes of different data flows.
[0117] Specifically, the data receiving device can calculate current load information based on the current data reception volume and the target data queue volume. For example, the current load information can be obtained by weighting the current data reception volume and the target data queue volume. Alternatively, the current network load can be obtained by weighting the current data reception volume and the target data queue volume as the current network load. The current load information can be obtained based on the current network load and a reference network load. The current network load is the actual network load, and the reference network load is the ideal network load. The current load information calculated based on the current network load and the reference network load can be used to characterize the load rate. The data receiving device can calculate the current load information based on the current data reception volume and the target data queue volume according to a custom formula or algorithm.
[0118] Furthermore, the data receiving device can calculate target window adjustment information based on the current load information, the initial window information, and the current window statistical information. For example, the data receiving device can calculate the ratio of the initial window information to the current window statistical information and obtain the target window adjustment information based on the ratio and the initial window information. Alternatively, the data receiving device can calculate the difference between the initial window information and the current window statistical information and obtain the target window adjustment information based on the difference and the initial window information. The data receiving device can calculate the current window adjustment information based on the current load information, the current window statistical information, and the initial window information according to a custom formula or algorithm.
[0119] In one embodiment, because the data receiving device continuously receives data packets, it needs to update the data reception volume, number of received data packets, and 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 acquires an intermediate data packet, it updates the data reception volume, number of received data packets, and marker statistics collected over the past 10 μs based on the intermediate data packet to obtain the current data reception volume, current number of received data packets, and current marker statistics. It 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. It then calculates the current load information based on the current data reception volume and the target data queue volume.
[0120] 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 at which 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 at which 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 the target data queue size. The data receiving device then obtains the current load information based on the most recently calculated current data reception amount and the target data queue size. The data receiving device then calculates target window adjustment information based on the current load information, initial window information, and current window statistics. The data receiving device then generates a response packet and sends the response packet to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information. In one embodiment, the length of the current time period may be set as a load information update period.
[0121] 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.
[0122] Step S214: Generate a response data packet carrying the target window adjustment 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 target window adjustment information.
[0123] 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.
[0124] Specifically, after calculating the target window adjustment information, the data receiving device can generate a response packet carrying the target window adjustment information and forward the response packet to the data sending device. The data sending device can extract the target window adjustment information from the received response packet and adjust the congestion window based on the target window adjustment information. This dynamically adjusts the congestion window based on the level of network congestion to avoid further congestion.
[0125] 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.
[0126] In the above-mentioned network congestion data processing method, after receiving the initial data packet sent by the data sending device, the data transfer device only needs to update the congestion marker in the initial data packet and feedback it 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 device and then calculate the current load information reflecting the current network status, thereby achieving congestion awareness. Furthermore, based on the current load information, current window statistics, and initial window information, the data receiving device can calculate target window adjustment information for adjusting the congestion window, thereby achieving congestion control. In addition, the initial window information can reflect the window size of the data sending device itself, the historical window statistics can reflect the average window size of other data packets, and the current window statistics obtained based on the initial window information and historical window statistics can reflect the average window size of all data packets. The target window adjustment information calculated based on the current load information, current window statistics, and initial window information comprehensively considers the window information of all current data packets and the current network status. This window adjustment information helps to improve the accuracy and fairness of window adjustment, thereby improving network congestion while achieving fairness in window sizes between different data packets and data streams.
[0127] In traditional technologies, complex software and hardware modifications are required on the data transfer end in the network so that the data transfer end in the network can calculate the data representing the network status. However, with the network congestion data processing method of the present application, there is no need to make complex software and hardware modifications on the transfer side. Only modifications need to be made to the software layer on the receiving side to achieve congestion perception and congestion control on the receiving side. Simple modifications are made to the software layer on the sending side so that the sending side can directly adjust the congestion window based on the target window adjustment information. The network congestion data processing method of the present application does not require hardware modifications on the transfer side, can directly utilize the existing transfer side, and can be directly deployed in the existing network.
[0128] In one embodiment, updating historical window statistics based on initial window information to obtain current window statistics includes:
[0129] Obtain the attention weights corresponding to the initial window information and the historical window statistical information; the attention weight corresponding to the initial window information is less than the attention weight corresponding to the historical window statistical information; based on the attention weights corresponding to the initial window information and the historical window statistical information, fuse the initial window information and the historical window statistical information to obtain the current window statistical information.
[0130] Specifically, the data transfer device can perform weighted summation of the initial window information and the historical window statistical information to obtain the current window statistical information. Since the data transfer device continuously receives data packets sent by each sending end, the data transfer device usually has received a large number of other data packets before receiving the initial data packet. The historical window statistical information obtained based on the initial window information statistics of the received data packets incorporates more window information. Therefore, when performing weighted summation after receiving the initial data packet, the attention weight corresponding to the historical window statistical information can be greater than the attention weight corresponding to the initial window information. The data transfer device can fuse the initial window information and the historical window statistical information based on the attention weights corresponding to the initial window information and the historical window statistical information to obtain the current window statistical information. Among them, the specific value of the attention weight can be set as needed.
[0131] In one embodiment, the calculation formula for the current window statistics is as follows:
[0132] W m =W m′ *(1-η)+W*η
[0133] Among them, W m Indicates the current window statistics, W m′ Represents the historical window statistical information, W represents the initial window information, η represents the attention weight corresponding to the initial window information, 1-η represents the attention weight corresponding to the historical window statistical information, η<1-η.
[0134] In the above embodiment, based on the attention weights corresponding to the initial window information and the historical window statistical information, the initial window information and the historical window statistical information are fused to obtain the current window statistical information. The attention weight corresponding to the initial window information is smaller than the attention weight corresponding to the historical window statistical information, which can improve the accuracy of the current window statistical information, thereby improving the accuracy of the target window adjustment information and improving the accuracy of the congestion window adjustment.
[0135] In one embodiment, the attention weight corresponding to the initial window information is obtained based on the ratio of the upper limit of the data packet data volume to the static network load, and the static network load is obtained based on the network static delay and the bandwidth information corresponding to the data transfer device.
[0136] Among them, the upper limit of the data packet volume refers to the maximum amount of data that a data packet can contain, which can represent the maximum length of a data packet. The static network load refers to the amount of data that the data transfer device can carry and transmit within the round-trip time of the data packet on the basis of no network congestion, that is, the amount of data that the data transfer device can carry and transmit within the static network delay. Therefore, the static network load can be obtained based on the network static delay and the bandwidth information corresponding to the data transfer device. The network static delay refers to the static network delay, that is, the length of time it takes for a data packet to travel back and forth between the sender and the receiver on the basis of no network congestion. Bandwidth information refers to the amount of data that can be transmitted by the data transfer device per unit time.
[0137] Specifically, the data receiving device can first calculate the static network load based on the network static delay and the bandwidth information corresponding to the data transfer device. For example, the product of the network static delay and bandwidth information can be used as the static network load, and the static network load can be obtained by adding a constant term to the product of the network static delay and bandwidth information. Furthermore, the data receiving device can calculate the attention weight corresponding to the initial window information based on the ratio of the packet data volume upper limit to the static network load. For example, the ratio of the packet data volume upper limit to the static network load can be used as the attention weight corresponding to the initial window information. The ratio of the static network load to the packet data volume upper limit can reflect the number of packets that the data transfer device can carry and transmit within the network static delay, that is, the number of packets that the data receiving device can receive within the network static delay. Therefore, when applied to information fusion, the attention weight derived from the ratio of the packet data volume upper limit to the static network load can enable window statistics to quickly converge to the average value of all data flow windows flowing through the data transfer device.
[0138] In one embodiment, the calculation formula for the attention weight corresponding to the initial window information is as follows:
[0139]
[0140] Where η represents the attention weight corresponding to the initial window information, MTU represents the upper limit of the data packet size, B*RTT represents the static network load, B represents the bandwidth information of the data transfer device, and RTT represents the static network delay.
[0141] In the above embodiment, the attention weight corresponding to the initial window information is obtained based on the ratio of the upper limit of the data packet data volume and the static network load. The static network load is obtained based on the network static delay and the bandwidth information corresponding to the data transfer device. Based on such attention weight, the initial window information and the historical window statistical information are integrated, so that the window statistical information can quickly converge to the average value of all data flow windows flowing through the data transfer device or the target transfer port or the target transfer queue.
[0142] 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:
[0143] 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.
[0144] The reference congestion mark may be data indicating network congestion or potential congestion. In one embodiment, two bits of data in a data packet may be used to store the congestion mark, and the reference congestion mark may be represented by 11.
[0145] 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.
[0146] In the above embodiment, the reference congestion mark can reflect whether the network is congested. The received 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.
[0147] 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.
[0148] 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:
[0149] 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.
[0150] 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.
[0151] Specifically, when the data transfer device updates the initial congestion mark, if the queue reference information includes a first queue volume threshold, a second queue volume threshold, and a reference update ratio, if the current data queue volume is less than or equal to the first queue volume threshold, the data transfer device can keep 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 the above data, the data transfer device can 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 or equal to the second queue volume threshold, the data transfer device can directly modify the initial congestion mark to the reference congestion mark.
[0152] 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.
[0153] 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 max represents the second queue threshold, P max Indicates the reference update ratio. If the data queue volume is less than or equal to 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 queue size. The initial congestion mark is updated to the target congestion mark with a probability that increases linearly with the queue size. If the queue size is greater than or equal to the first queue size threshold, the mark update rate is 1, and the initial congestion mark is updated to the target congestion mark.
[0154] The data receiving device can calculate the target data queue volume using the following formula:
[0155]
[0156]
[0157] When the target congestion mark is the reference congestion mark, N ecn =N ecn′ +1
[0158] N packet =N packet′ +1
[0159] 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.
[0160] In one embodiment, Pmax can be set to 1.0 (100%), Kmin can be set to a lower data queuing amount, for example, to 5KB or 10KB, and Kmax can be set to a higher data queuing amount, for example, to 2 to 3 times the BDP (Bandwidth-Delay Product), specifically 100KB or 150KB, etc.
[0161] 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.
[0162] It can be understood that if the current data queue volume is between the first queue volume threshold and the second queue volume threshold, the mark update ratio can also increase nonlinearly with the increase of the data queue change volume. The minimum value of the mark update ratio is zero, and the maximum value is the reference update ratio. For example, the growth rate of the mark update ratio increases with the increase of the data queue change volume. The mark update ratio can increase parabolically with the increase of the data queue change volume. Then, the data receiving device can determine the corresponding data queue change volume from the parabolic calculation formula based on the first mark update ratio, thereby obtaining the target queue volume.
[0163] In one embodiment, current load information is obtained based on the current data reception amount and the target data queue amount, including:
[0164] The current network load is obtained based on the current data reception volume and the target data queue volume; the current load information is obtained based on the reference network load corresponding to the current time period and the current network load.
[0165] The current network load refers to the amount of data actually carried, loaded, and transmitted by the data transfer device in the current network time period. The reference network load refers to the amount of data that the data transfer device can carry, load, and transmit in the current network time period. The reference network load can be determined based on the data transmission attribute information of the data transfer device. This data transmission attribute information describes the data transmission capabilities of the data transfer device and can be pre-configured based on actual needs. For example, the data transfer device can be set to transmit a maximum of Mbps of data per unit time.
[0166] 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.
[0167] In the above embodiment, the current network load is obtained based on the current data reception volume and the target data queue volume, and the current load information is obtained based on the reference network load corresponding to the current time period and the current network load, which can improve the accuracy of the current load information.
[0168] In one embodiment, the current network load is obtained based on the current data reception amount and the target data queue amount, including:
[0169] 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.
[0170] 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.
[0171] 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.
[0172] 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 current load information, thereby improving the accuracy of target window adjustment information. Ultimately, window adjustment can reduce data accumulation in the network and improve network bandwidth utilization.
[0173] In one embodiment, the current network load is obtained based on the current data reception amount and the data queue change amount, including:
[0174] 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.
[0175] 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, or 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, or 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 increase the window adjustment force during window adjustment, quickly reducing the data queue volume and data accumulation in the data transfer device.
[0176] In the above embodiment, the current network load calculated based on the current data reception amount, the data queue change amount and the target data queue amount can help to adjust the congestion window more accurately and reduce data accumulation in the network.
[0177] In one embodiment, obtaining the current network load based on the intermediate network load and the target data queue amount includes:
[0178] Obtain the attention weights corresponding to the intermediate network load and the target data queue volume; 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 weights corresponding to the intermediate network load and the target data queue volume, fuse the intermediate network load and the target data queue volume to obtain the current network load.
[0179] The attention weight represents the importance of a particular data point to the fusion result. 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.
[0180] 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.
[0181] 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. This can improve the accuracy of the current network load, thereby improving the accuracy of the current load information, and further improving the accuracy of the target window adjustment information, ultimately helping to reduce data accumulation in the network during window adjustment and improve network bandwidth utilization.
[0182] In one embodiment, the attention weight corresponding to the target data queue volume is obtained based on the ratio of the reference network load and the reference data queue volume corresponding to the data transfer device, and the difference between the reference data queue volume and the upper limit of the data queue volume corresponding to the data transfer device is less than the preset difference.
[0183] The data queue limit refers to the maximum amount of data accumulated on the data transfer device, i.e., the maximum data queue capacity on the data transfer device. If the difference between the reference data queue capacity and the data queue limit is less than the preset difference, the reference data queue capacity represents the maximum amount of data accumulated on the data transfer device.
[0184] Specifically, the data receiving device can calculate the attention weight corresponding to the target data queue volume based on the ratio of the reference network load and the reference data queue volume. For example, the ratio of the reference network load and the reference data queue volume is used as the attention weight corresponding to the target data queue volume, and the ratio of the reference network load and the reference data queue volume plus a constant term is used as the attention weight corresponding to the target data queue volume. It can be understood that if the attention weight corresponding to the target data queue volume is obtained based on the ratio of the reference network load and the reference data queue volume corresponding to the data transfer device, then when the target data queue volume is high, the penalty intensity of the target data queue volume on the current load information is the maximum load that the data transfer device can bear in the current time period. In this way, the calculated current load information can clearly indicate that the network is in an overloaded state. Then, based on the current load information, the target window adjustment information for reducing the congestion window can be calculated, so that the data sending device can quickly reduce the congestion window to alleviate the data queuing situation in the data transfer device.
[0185] In one embodiment, the calculation formula for the attention weight corresponding to the target data queue amount is as follows:
[0186]
[0187] When T is RTT, B*T=BDP,
[0188] Where γ represents the attention weight corresponding to the target data queue, B*T represents the reference network load, B represents the bandwidth of the data transfer device, and T represents the current time period. If T is the RTT, BDP = B*RTT, meaning BDP is the static network load and can also be called the bandwidth-delay product. Kmax represents the reference data queue, indicating a higher data queue.
[0189] In the above embodiment, the attention weight corresponding to the target data queue volume is obtained based on the ratio of the reference network load and the reference data queue volume corresponding to the data transfer device. The difference between the reference data queue volume and the upper limit of the data queue volume corresponding to the data transfer device is less than the preset difference. Based on such attention weight, the target data queue volume and the intermediate network load are integrated to improve the accuracy and reliability of the current network load.
[0190] In one embodiment, current load information is obtained based on a reference network load corresponding to a current time period and a current network load, including:
[0191] 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.
[0192] Bandwidth information refers to the amount of data that can be transmitted by the data transfer device in unit time.
[0193] 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.
[0194] 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.
[0195] In one embodiment, the current load information is obtained based on the ratio of the current network load to the reference network load, including:
[0196] 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.
[0197] 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.
[0198] 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.
[0199] In one embodiment, the bandwidth utilization ratio can be determined based on the task type and nature of the data transmission task. For data streams and data transmission links that require low latency, the bandwidth utilization ratio can be lower 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 higher than the preset ratio. For example, for tasks that transmit large-capacity videos, the bandwidth utilization ratio can be set to 1.
[0200] In the above embodiment, the reference network load is adjusted based on the bandwidth utilization ratio to obtain an updated network load, the current load information is obtained based on the ratio of the current network load and the updated network load, and the target window adjustment information is determined based on such current load information to adjust the window. This can prompt the network state to 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 ultimately achieve high network bandwidth utilization.
[0201] In one embodiment, the target window adjustment information is calculated based on the current load information, the initial window information, and the current window statistical information, including:
[0202] Based on the ratio of the initial window information and the current window statistics, the window ratio is obtained; and the target window adjustment information is obtained by fusing the current load information and the window ratio.
[0203] Specifically, when calculating the target window adjustment information, the data transfer device can calculate the ratio of the initial window information and the target window statistical information, calculate the ratio of the current window and the average window, obtain the window ratio, and then fuse the current load information and the window ratio to obtain the target window adjustment information. For example, the product of the current load information and the window ratio is used as the target window adjustment information.
[0204] In one embodiment, the target window adjustment information is calculated as follows:
[0205]
[0206] Among them, AR represents the target window adjustment information, which can also be called the adjustment rate. W represents the initial window information, W m Indicates the current window statistics, and L indicates the current load information.
[0207] In the above embodiment, the window ratio is obtained based on the ratio of the initial window information to the current window statistics, and the current load information and the window ratio are integrated to obtain the target window adjustment information. Thus, the target window adjustment information is an innovative indicator that combines efficiency and fairness. It not only reflects the current load status, but also reflects the relative size of the stream containing the current data packet relative to the average value of all streams. Window adjustment based on this target window adjustment information can achieve a fair state for the windows (bandwidth allocation) of all streams, while also achieving the highest utilization rate of the network bandwidth. Furthermore, by independently calculating the efficiency indicator (current load information) and the fairness indicator (the ratio of the current window to the average window), the two can be decoupled, eliminating the trade-off between efficiency and fairness in traditional solutions. Under this design, the efficiency and fairness of the network adjustment can ultimately be optimized simultaneously without restricting each other.
[0208] In one embodiment, the intermediate data packet carries the target port identifier corresponding to the target transit port. The current data queue volume, historical window statistics, data reception volume, number of data packet receptions, tag statistics, and data queue volume 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.
[0209] 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 the same data recipient 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 of the data sending device for sending data packets, the destination IP address represents the IP address of the data receiving device, and the destination port represents the receiving port of the data receiving device for receiving 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.
[0210] 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.
[0211] 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.
[0212] Different transit ports are typically independent of each other. Therefore, to improve the accuracy of load information, the data receiving device can calculate the current port-level load information based on the port-level data, calculate the current port-level window statistics based on the port-level data, and then calculate the port-level target window adjustment information based on the current port-level load information and current window statistics. Subsequently, the data sending device performs window adjustment based on the target window adjustment information, which can specifically alleviate data accumulation in the corresponding transit port and ensure fair bandwidth distribution for data flows passing through the transit port. After obtaining the intermediate data packets, the data receiving device 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 packets, obtaining the current data reception volume and the current number of data packets received. It can also 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 packets, 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 queuing reference information, the current number of data packets received, and the current tag statistics, obtaining the target data queue volume. The data receiving device can obtain the current load information 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. The data receiving device can update the historical window statistics corresponding to the target transit port based on the initial window information to obtain the current window statistics. The data receiving device can isolate and store data corresponding to different transit ports based on port identifiers, thereby allowing the data receiving device to obtain data corresponding to the target transit port based on the target port identifier and update the data corresponding to the target transit port based on intermediate data packets.
[0213] It is understood that the specific calculation process for current window statistics, current data reception volume, current number of received packets, current tag statistics, target data queue volume, and 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 data queue volume is the amount of data queued for the entire port. Port-level data is comprehensive data obtained by statistically analyzing the relevant data of all queues on the port.
[0214] If the current load information is port-level data, the current load information corresponding to all data flows under the same port may be the same, but the target window adjustment information corresponding to each data flow may be different.
[0215] In the above embodiment, the data used to calculate the target window adjustment information is port-level data. Performing window adjustment based on such target window adjustment information can further specifically adjust the data accumulation in the corresponding port, thereby achieving more accurate adjustment.
[0216] In one embodiment, the intermediate data packet carries the target queue identifier corresponding to the target transit queue. The current data queue volume, historical window statistics, data reception volume, number of data packet receptions, tag statistics, and data queue volume 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.
[0217] 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.
[0218] 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.
[0219] Specifically, the intermediate data packet may also carry a target queue identifier corresponding to the target transit queue. Different transit queues within the same transit port are typically independent of each other. Therefore, to further improve the accuracy of load information, the data receiving device may also calculate queue-level current load information based on queue-level data, calculate queue-level current window statistics based on queue-level data, and then calculate queue-level target window adjustment information based on the queue-level current load information and current window statistics. Subsequently, the data sending device performs window adjustment based on the target window adjustment information, which can specifically alleviate data accumulation in the corresponding transit queue and ensure fair bandwidth distribution for data flows passing through the transit queue. After receiving the intermediate data packet, the data receiving device may update the data reception volume and number of received packets corresponding to the target transit queue in the current time period based on the intermediate data packet, obtaining the current data reception volume and the current number of received packets. It may also update the tag statistics corresponding to the target transit queue in the current time period based on the target congestion tag carried in the intermediate data packet, obtaining the current tag 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 received packets, and the current tag statistics, obtaining the target data queue volume. The data receiving device can obtain the current load information 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. The data receiving device can update the historical window statistics corresponding to the target transit queue based on the initial window information to obtain the current window statistics. The data receiving device can isolate and store data corresponding to unused transit queues based on queue identifiers, thereby allowing the data receiving device to obtain data corresponding to the target transit queue based on the target queue identifier and update the data corresponding to the target transit queue based on intermediate data packets.
[0220] It is understood that the specific calculation process for the current window statistics, current data reception volume, current number of received data packets, current tag statistics, target data queue volume, and 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.
[0221] If the current load information is queue-level data, the current load information corresponding to all data flows under the same queue may be the same, but the target window adjustment information corresponding to each data flow may be different.
[0222] In the above embodiment, the data used to calculate the target window adjustment information is queue-level data. Performing window adjustment based on such target window adjustment information can further specifically adjust the data accumulation in the corresponding queue, thereby achieving more accurate adjustment.
[0223] In one embodiment, the current load information is calculated as follows:
[0224]
[0225] I=RxBytes+Qlen-LastQlen
[0226] RxBytes = RxBytes′ + p.size
[0227] 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 for different transit ports on a data transfer device can be the same or different, and the bandwidth utilization ratios for 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 as the amount of data (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 intermediate data packets are acquired. p.size represents the amount of data in the intermediate data packet, which may be in bytes. It is understood that when the bandwidth is full and there is no queuing, L=1.
[0228] 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. Calculating window adjustment information based on this current load information can effectively take the changing trend of network traffic into account in the adjustment range, thereby preventing under-adjustment or over-adjustment. Ultimately, it can achieve zero or low packet accumulation in the network and high network bandwidth utilization.
[0229] In one embodiment, the duration of the current time period and the measurement period can be set to the network static delay. Setting the duration of the current time period to the network static delay 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.
[0230] 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 finally the current load information that can characterize the most congested state and the comprehensive congested state on the data transmission link is calculated.
[0231] 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:
[0232] Step S402: Acquire an initial data packet sent by a data sending device; the initial data packet carries an initial congestion mark and initial window information.
[0233] 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.
[0234] 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.
[0235] 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 mark and initial window information. The data transfer device may update the initial congestion mark based on the current data queue amount and the queue reference information to obtain a target congestion mark. The data transfer device may then 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.
[0236] In step S408, a response data packet carrying the target window adjustment information returned from the data receiving device is sent to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information; the target window adjustment information is obtained based on the initial window information, the current load information and the current window statistical information, the current window statistical information is obtained by the data receiving device updating the historical window statistical information based on the initial window information, the current load information is obtained by the data receiving device 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 packets, the target data queuing amount is obtained 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 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.
[0237] Specifically, the data receiving device can 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 carried by the intermediate data packets to obtain the current mark statistics, and then 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, and obtain the current load information based on the current data reception amount and the target data queue amount. The data receiving device can update the historical window statistics based on the initial window information carried by the intermediate data packets to obtain the current window statistics, and then generate the target window adjustment information based on the current load information, the initial window information, and the current window statistics, and send the response data packet carrying the target window adjustment information to the data sending device via the data transfer device, so that the data sending device can adjust the congestion window based on the current load information.
[0238] It is understood that the specific process of generating data such as current window statistics, current mark statistics, target data queue volume, current load information, and target window adjustment information can refer to the contents of 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.
[0239] In the above-mentioned network congestion data processing method, after receiving the initial data packet sent by the data sending device, the data transfer device only needs to update the congestion marker in the initial data packet and feedback it 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 device and then calculate the current load information reflecting the current network status, thereby achieving congestion awareness. Furthermore, based on the current load information, current window statistics, and initial window information, the data receiving device can calculate target window adjustment information for adjusting the congestion window, thereby achieving congestion control. In addition, the initial window information can reflect the window size of the data sending device itself, the historical window statistics can reflect the average window size of other data packets, and the current window statistics obtained based on the initial window information and historical window statistics can reflect the average window size of all data packets. The target window adjustment information calculated based on the current load information, current window statistics, and initial window information comprehensively considers the window information of all current data packets and the current network status. This window adjustment information helps to improve the accuracy and fairness of window adjustment, thereby improving network congestion while achieving fairness in window sizes between different data packets and data streams.
[0240] 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:
[0241] 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 or equal to the second queue volume threshold, the reference congestion mark is used as the target congestion mark.
[0242] The second mark update ratio is used to indicate the probability of changing the initial congestion mark.
[0243] 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 or equal to 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.
[0244] 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.
[0245] In one embodiment, determining the second mark update ratio based on the current data queue amount and the queue reference information includes:
[0246] 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.
[0247] 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.
[0248] 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.
[0249] 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.
[0250] In one embodiment, updating the initial congestion mark based on the second mark update ratio to obtain a target congestion mark includes:
[0251] 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.
[0252] 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.
[0253] 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.
[0254] 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.
[0255] 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.
[0256] 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.
[0257] 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:
[0258] Step S502: Acquire an initial data packet; the initial data packet carries an initial congestion mark and initial window information.
[0259] 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.
[0260] 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.
[0261] Step S506, obtain the response data packet returned by the data receiving device; the response data packet carries target window adjustment information, the target window adjustment information is obtained based on the initial window information, the current load information and the current window statistical information, the current window statistical information is obtained by the data receiving device updating the historical window statistical information based on the initial window information, the current load information is obtained by the data receiving device 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 packets, the target data queuing amount is obtained 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 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.
[0262] Specifically, after receiving the intermediate data packet, the data receiving device updates relevant data used to calculate the current load information based on the intermediate data packet to thereby calculate the current load information. The data receiving device then updates historical window statistics based on the initial window information to obtain current window statistics. The target window adjustment information is then calculated based on the current load information, the initial window information, and the current window statistics. The data receiving device may generate a response packet carrying the target window adjustment information and transmit the target window adjustment information back to the data sending device via the response packet.
[0263] It can be understood that the specific generation process of data such as current window statistical information, current mark statistical information, target data queue amount, current load information, target window adjustment information, etc. can refer to the contents of the aforementioned relevant embodiments.
[0264] Step S508: Adjust the current congestion window based on the target window adjustment information to obtain a target congestion window.
[0265] Specifically, after the data sending device obtains the target window adjustment information fed back by the data receiving device, it can adjust the current congestion window based on the target window adjustment information to obtain the target congestion window. For example, the window scaling ratio can be determined based on the target window adjustment information, and the current congestion window can be adjusted based on the window scaling ratio. The window scaling ratio can be multiplied by the current congestion window. The data sending device can adjust the current congestion window based on the target window adjustment information using a custom formula or algorithm. When sending subsequent data packets, the data sending device can control the sending speed of the data packets based on the target congestion window, thereby alleviating network congestion or improving network resource utilization.
[0266] In one embodiment, the data transmitter can also set a window adjustment period and adjust the congestion window based on the period to avoid frequent updates that could affect network stability. The data transmitter monitors the congestion window update time. Once the window adjustment period is reached, it adjusts the current congestion window using the latest received target window adjustment information. If the window adjustment period has not yet been reached, the current congestion window remains unchanged.
[0267] In the above-mentioned network congestion data processing method, after receiving the initial data packet sent by the data sending device, the data transfer device only needs to update the congestion marker in the initial data packet and feedback it 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 device and then calculate the current load information reflecting the current network status, thereby achieving congestion awareness. Furthermore, based on the current load information, current window statistics, and initial window information, the data receiving device can calculate target window adjustment information for adjusting the congestion window, thereby achieving congestion control. In addition, the initial window information can reflect the window size of the data sending device itself, the historical window statistics can reflect the average window size of other data packets, and the current window statistics obtained based on the initial window information and historical window statistics can reflect the average window size of all data packets. The target window adjustment information calculated based on the current load information, current window statistics, and initial window information comprehensively considers the window information of all current data packets and the current network status. This window adjustment information helps to improve the accuracy and fairness of window adjustment, thereby improving network congestion while achieving fairness in window sizes between different data packets and data streams.
[0268] In one embodiment, adjusting the current congestion window based on the target window adjustment information to obtain the target congestion window includes:
[0269] When the time interval between the current time and the adjacent congestion window adjustment time is greater than the preset time interval, the target congestion window is obtained based on the ratio of the current congestion window and the target window adjustment information; when the time interval between the current time and the adjacent congestion window adjustment time is less than or equal to the preset time interval, the current congestion window is used as the target congestion window.
[0270] The preset time interval can be set as needed. For example, the preset time interval can be set to the network static delay. The adjacent congestion window adjustment time refers to the time when the congestion window was last adjusted. It is understood that the data transmitter can periodically adjust the congestion window, and the adjacent congestion window adjustment time can refer to the time when the congestion window was last adjusted.
[0271] Specifically, the data sending end may periodically adjust the congestion window. The data sending device only adjusts the window if the time interval between the current time and the adjacent congestion window adjustment time is greater than a preset time interval, that is, when the current time reaches the congestion window update period. In this case, the data sending device may calculate the ratio of the current congestion window to the target window adjustment information and determine the target congestion window based on this ratio. If the time interval between the current time and the adjacent congestion window adjustment time is less than or equal to the preset time interval, that is, when the current time has not reached the congestion window update period, the current congestion window remains unchanged, and the target congestion window is the current congestion window.
[0272] In one embodiment, the window adjustment may be performed according to the following formula:
[0273]
[0274] if now-updatetime≤RTT,W=W C
[0275] Wherein, now represents the current time, updatetime represents the adjacent congestion window adjustment time, RTT represents the preset time interval, that is, the preset time interval is the network static delay, W represents the target congestion window, W C Indicates the current congestion window, and AR indicates the target window adjustment information.
[0276] In the above embodiment, when the time interval between the current time and the adjacent congestion window adjustment time is greater than the preset time interval, a target congestion window is obtained based on the ratio of the current congestion window to the target window adjustment information. The sender multiplicatively adjusts the window according to the target window adjustment information, allowing all flows to quickly obtain all available bandwidth without over-adjusting and causing congestion. This allows for good adaptation to scenarios with both many and few flows, and has wider adaptability. Furthermore, because the target window adjustment information takes into account current window statistics, window adjustment based on such target window adjustment information can reduce the window size of flows larger than the average window size and increase the window size of flows smaller than the average window size. The magnitude of the adjustment is proportional to the ratio of the flow window size to the average window size, so that all flows ultimately receive fairly allocated bandwidth. Furthermore, because the target window adjustment information also takes into account current load information, window adjustment based on such target window adjustment information can gradually eliminate network congestion while maintaining high bandwidth utilization.
[0277] In one embodiment, the initial data packet and the response data packet carry a target data flow identifier, and adjusting the current congestion window based on the target window adjustment information to obtain the target congestion window includes:
[0278] The current congestion window corresponding to the target data flow identifier is adjusted based on the target window adjustment information to obtain a target congestion window corresponding to the target data flow identifier.
[0279] The data flow identifier is used to uniquely identify a data flow or data transmission link, and may include a character string consisting of at least one of letters, numbers, and symbols. The target data flow identifier refers to the data flow identifier corresponding to the initial data packet or the data transmission link.
[0280] Specifically, in a data sending device, different data streams may correspond to different congestion windows. Therefore, when adjusting the congestion window, the corresponding congestion window may be adjusted based on the corresponding target window adjustment information to achieve precise adjustment. The data sending device may determine the current congestion window corresponding to the target data stream identifier based on the target data stream identifier carried in the response data packet, and then adjust the current congestion window corresponding to the target data stream identifier based on the target window adjustment information carried in the response data packet to obtain the target congestion window corresponding to the target data stream identifier. The congestion window adjustment process may refer to the contents of the aforementioned related embodiments.
[0281] 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.
[0282] In the above embodiment, adjusting the current congestion window corresponding to the target data flow identifier based on the target window adjustment information can achieve accurate and targeted adjustment.
[0283] In one embodiment, reference Figure 6 The sender controls data flow based on the congestion window, and switches in the network probabilistically mark packets with ECN (Explicit Congestion Notification) based on the amount of data accumulated. After receiving a packet, the receiver periodically updates the load factor and calculates the average window based on the window information carried in the packet. It then calculates the adjustment rate based on the load factor, average window, and window information carried in the packet, and then sends the adjustment rate back to the sender via the acknowledgment packet. After receiving the acknowledgment packet, the sender adjusts the congestion window based on the adjustment rate. This ultimately matches the total rate of all flows to the bandwidth of the link bottleneck, and fairly distributes bandwidth to all flows.
[0284] In one embodiment, Figure 7As 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.
[0285] 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 and initial window information.
[0286] The data transfer device 704 is used to update the initial congestion mark based on the current data queue amount and the queue reference information 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.
[0287] The data receiving device 706 is used to update the historical window statistical information based on the initial window information to obtain the current window statistical information, 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 statistical information corresponding to the current time period based on the target congestion mark to obtain the current mark statistical information, calculate the 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 statistical information to obtain the target data queue amount, obtain the current load information based on the current data reception amount and the target data queue amount, calculate the target window adjustment information based on the current load information, the initial window information and the current window statistical information, generate a response data packet carrying the target window adjustment information, and send the response data packet to the data sending device.
[0288] The data sending device 702 is further configured to adjust the current congestion window based on the target window adjustment information to obtain a target congestion window.
[0289] In the aforementioned network congestion data processing system, after receiving an initial data packet from a data sending device, a data transfer device only needs to update the congestion marker in the initial 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 device and then calculate current load information reflecting the current network status, thereby achieving congestion awareness. Furthermore, based on the current load information, current window statistics, and initial window information, the data receiving device can calculate target window adjustment information for adjusting the congestion window, thereby achieving congestion control. Furthermore, the initial window information can reflect the window size of the data sending device itself, the historical window statistics can reflect the average window size of other data packets, and the current window statistics, calculated based on the initial window information and historical window statistics, can reflect the average window size of all data packets. The target window adjustment information calculated based on the current load information, current window statistics, and initial window information comprehensively considers the window information of all current data packets and the current network status. This window adjustment information helps improve the accuracy and fairness of window adjustment, thereby improving network congestion while ensuring fairness in window sizes between different data packets and data streams.
[0290] 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, achieving high bandwidth utilization, low network queuing, and fair bandwidth allocation between data flows. This solution maintains extremely low network queuing, preventing performance degradation caused by severe queuing, while maintaining near-100% bandwidth utilization and excellent data flow fairness, ensuring performance in large-scale networks.
[0291] refer to Figure 8 , the solution of this application is mainly deployed on the end-side server and network switch, and the expected goal is achieved 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, but requires customization of the ECN parameters (i.e., queuing reference information). The network congestion data processing method of this application specifically includes the following steps:
[0292] 1. When a data packet is sent from the sender, the sender must enable the ECN marking function and set the lower two bits of the TOS (Type of Service) field in the IP header of the data packet to 01 or 10. At the same time, the sender must put the current congestion window value into the cwnd (congestion window) field in the data packet header.
[0293] 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.
[0294] In one embodiment, if the current congestion window value exceeds the data range that can be expressed in the cwnd field, the sender can scale the congestion window value (e.g., divide it by 4) and then place it in the 16-bit cwnd field. Subsequently, the receiver needs to scale the data obtained from the cwnd field by the same amount before performing the corresponding data processing.
[0295] 2. When data packets are sent from the switch's outbound port, the switch probabilistically tags the data packets based on the ECN parameters according to the degree of data accumulation.
[0296] Specifically, you can refer to Figure 3 When setting ECN parameters, Pmax can be set to 1.0, or 100%, Kmin can be set to a lower value, such as 5KB or 10KB, and Kmax can be set to a higher value, for example, 2 to 3 times the BDP, specifically 100KB or 150KB. The receiver probabilistically marks the data packets with ECN based on the data accumulation height, setting the lower two bits of the TOS field in the IP packet header to 11.
[0297] 3. After the packet arrives at the receiving end, the receiving end updates the port's statistics based on the packet's ECN marking and updates the port's load rate according to periodic control. It also updates the average window of all flows based on the packet's cwnd value and calculates the adjustment rate based on the load rate.
[0298] Specifically, after receiving the data packet, the receiver updates the following counters:
[0299] RxBytes = RxBytes′ + p.size
[0300] N packet =N packet′ +1
[0301] If the packet is marked with ECN, the following counters are updated simultaneously:
[0302] N ecn =N ecn′ +1
[0303] 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.
[0304]
[0305] I=RxBytes+Qlen-LastQlen
[0306]
[0307]
[0308] After receiving the data packet, the receiver updates the average window W m , and then update the adjustment rate AR of the flow to which the data packet belongs:
[0309] W m =W m′ *(1-η)+W*η
[0310]
[0311] 4. The receiving end generates a response packet (Ack packet) and writes the adjustment rate updated in step 3 into the AH (Adjustment Header) field of the response packet header.
[0312] In one embodiment, when the receiving end sends an Ack packet, the adjustment rate AR can be scaled (e.g., magnified by 64 times) and inserted into the AH field. Specifically, the floating point number AR can be clipped to the range of 0.0 to 4.0, then magnified by 64 times to obtain AH, i.e., AH = AR * 64. This is converted to 8-bit binary and inserted into the AH field of the Ack packet.
[0313] 5. After the acknowledgment packet arrives at the sender, the sender extracts the adjustment rate AR in the AH field of the acknowledgment packet and adjusts the congestion window based on the adjustment rate AR.
[0314] Specifically, the sender can adjust the congestion window based on the following formula:
[0315]
[0316] if now-updatetime≤RTT,W=W C
[0317] This solution can provide excellent performance in handling congestion at the receiving end, meaning the congestion point is located on the switch connected to the receiving end. This solution does not require modifications to the switch hardware; only modifications to the sending and receiving software layers are required to achieve an innovative solution that outperforms existing solutions in the industry. The design, which calculates the load rate and adjustment rate based on the receiving end, does not require modifications to the switch hardware and can be supported by existing switch hardware, which generally supports ECN marking. Through this solution's load rate and adjustment rate calculation methods and the assistance of the switch, window-based control and precise window adjustment, network queuing is ultimately controlled to extremely low levels while maintaining near 100% bandwidth utilization and excellent data flow fairness.
[0318] This solution has innovated both the network congestion indicator and the speed regulation method, and ultimately can simultaneously achieve the three goals of the congestion control system, namely high bandwidth, low network accumulation and good flow fairness. In particular, we compared the performance of DCQCN (Data Center Quantized Congestion Notification, a data center quantized congestion control algorithm), HPCC (High Precision Congestion Control, a high-precision congestion control algorithm) and this solution through simulation. We conducted an 8-to-1 Incast test in a data center network similar to a Fattree (fat tree topology), 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.
[0319] 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 10CFrom 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.
[0320] The simulation results show that DCQCN's flow rate fluctuates significantly, and its rate distribution is unfair. Near the end of the process, bandwidth is significantly insufficient, and the packet backlog on the switch fluctuates 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, the switch queue backlog remains high, exceeding 250KB for a long period of time at the beginning, and subsequently fluctuates between 0 and 50KB. In contrast, the data flow window size under the control of this solution is very uniform, demonstrating excellent fairness. In terms of bandwidth (throughput), this solution maintains 100% switch bandwidth throughout, and the final flow completion time is 7000µs, a reduction of nearly 12.5% compared to the 8000µs of DCQCN and HPCC. Regarding network queue backlog, this solution's switch queue backlog fluctuates around 10KB, significantly lower than DCQCN and HPCC.
[0321] In addition, we also investigated the fairness convergence performance of different schemes. We used a set of 5 to 1 data streams, that is, one data stream from each of servers 0, 3, 4, 7, and 8 to server 15. The simulation performance results are referenced Figure 11 , Figure 11The three charts in the figure represent the fairness convergence performance of DCQCN, HPCC and this solution from left to right. The charts specifically show the changes in the windows of each data flow over time. From the simulation results, it can be seen that the fairness convergence speed and accuracy of DCQCN and HPCC are poor. In contrast, the data flow under the control of this solution converges to the fairly allocated bandwidth very quickly from the addition of new data flows, and the allocated bandwidth is also very fair, with performance significantly better than DCQCN and HPCC. Specifically, 5 flows are added at 0ms, 2ms, 4ms, 6ms, and 8ms respectively. From the simulation results of this solution, it can be seen that the added flows achieve fair bandwidth allocation with the existing flows at around 9ms, 12ms, 13ms, and 13.5ms respectively. Each time a new flow is added, the new flow and the remaining flows can be reallocated to the new fair bandwidth at the same time.
[0322] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions.
[0323] It should be understood that, although the various steps in the flowcharts involved in the various embodiments described above are displayed in sequence according to the instructions of the arrows, these steps are not necessarily executed in sequence in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order restriction on the execution of these steps, and these steps can be executed in other orders. Moreover, at least a portion of the steps in the flowcharts involved in the various embodiments described above can include multiple steps or multiple stages, and these steps or stages are not necessarily executed and completed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a portion of steps or stages in other steps.
[0324] Based on the same inventive concept, embodiments of the present application also provide a network congestion data processing device for implementing the aforementioned network congestion data processing method. The solution provided by this device is similar to the solution described in the aforementioned method. Therefore, the specific limitations of one or more network congestion data processing device embodiments provided below can be found in the aforementioned limitations of the network congestion data processing method and will not be further elaborated here.
[0325] In one embodiment, Figure 12As shown, a network congestion data processing device 1200 is provided. The device specifically includes: an intermediate data packet acquisition module 1202, a window statistical information update module 1204, a data packet information update module 1206, a tag statistical information update module 1208, a data queue amount calculation module 1210, a window adjustment information determination module 1212, and a response data packet generation module 1214, wherein:
[0326] The intermediate data packet acquisition module 1202 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 the initial congestion mark and initial window information. The intermediate data packets carry the target congestion mark and initial window information. 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.
[0327] The window statistics information updating module 1204 is used to update the historical window statistics information based on the initial window information to obtain the current window statistics information;
[0328] The data packet information updating module 1206 is configured to update the data reception amount and the number of data packet reception corresponding to the current time period based on the intermediate data packets, thereby obtaining the current data reception amount and the current number of data packet reception;
[0329] The marking statistical information updating module 1208 is 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;
[0330] The data queue amount calculation module 1210 is used 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;
[0331] The window adjustment information determination module 1212 is configured to obtain current load information based on the current data reception amount and the target data queue amount, and calculate target window adjustment information based on the current load information, the initial window information, and the current window statistical information;
[0332] The response data packet generating module 1214 is configured to generate a response data packet carrying target window adjustment 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 target window adjustment information.
[0333] The above-mentioned network congestion data processing device can realize congestion perception and congestion control by the data receiving device, and when performing window adjustment, it can improve the network congestion situation while making the window sizes between different data packets and data streams reach a fair state.
[0334] In one embodiment, the window statistical information update module is also used to obtain the attention weights corresponding to the initial window information and the historical window statistical information; the attention weight corresponding to the initial window information is less than the attention weight corresponding to the historical window statistical information; based on the attention weights corresponding to the initial window information and the historical window statistical information, the initial window information and the historical window statistical information are fused to obtain the current window statistical information.
[0335] In one embodiment, the attention weight corresponding to the initial window information is obtained based on the ratio of the upper limit of the data packet data volume to the static network load, and the static network load is obtained based on the network static delay and the bandwidth information corresponding to the data transfer device.
[0336] 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.
[0337] 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 calculation 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.
[0338] In one embodiment, the window adjustment information determination module includes:
[0339] The load information calculation unit is used to 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.
[0340] In one embodiment, the load information calculation unit is further configured to obtain a data queue variation based on a difference between a target data queue amount and a historical data queue amount; and obtain a current network load based on a current data reception amount and a data queue variation.
[0341] In one embodiment, the load information calculation unit is further configured to fuse the current data reception amount and the data queue change amount to obtain the intermediate network load; and obtain the current network load based on the intermediate network load and the target data queue amount.
[0342] In one embodiment, the load information calculation unit is also used to obtain the attention weights corresponding to the intermediate network load and the target data queue volume; 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 weights corresponding to the intermediate network load and the target data queue volume, the intermediate network load and the target data queue volume are fused to obtain the current network load.
[0343] In one embodiment, the attention weight corresponding to the target data queue volume is obtained based on the ratio of the reference network load and the reference data queue volume corresponding to the data transfer device, and the difference between the reference data queue volume and the upper limit of the data queue volume corresponding to the data transfer device is less than the preset difference.
[0344] In one embodiment, the load information calculation unit is further 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.
[0345] In one embodiment, the load information calculation 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.
[0346] In one embodiment, the window adjustment information determination module includes:
[0347] The window adjustment information calculation unit is used to obtain the window ratio based on the ratio of the initial window information and the current window statistical information; and to obtain the target window adjustment information by fusing the current load information and the window ratio.
[0348] In one embodiment, the intermediate data packet carries the target port identifier corresponding to the target transit port. The current data queue volume, historical window statistics, data reception volume, number of data packet receptions, tag statistics, and data queue volume 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.
[0349] In one embodiment, the intermediate data packet carries the target queue identifier corresponding to the target transit queue. The current data queue volume, historical window statistics, data reception volume, number of data packet receptions, tag statistics, and data queue volume 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.
[0350] In one embodiment, Figure 13As shown, a network congestion data processing device 1300 is provided. The device specifically includes: a data packet acquisition module 1302, a congestion mark update module 1304, an intermediate data packet sending module 1306 and a response data packet sending module 1308, wherein:
[0351] The data packet acquisition module 1302 is used to acquire the initial data packet sent by the data sending device; the initial data packet carries the initial congestion mark and the initial window information;
[0352] The congestion mark updating module 1304 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;
[0353] The intermediate data packet sending module 1306 is configured to 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;
[0354] The response data packet sending module 1308 is used to send the response data packet returned from the data receiving device and carrying the target window adjustment information to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information; the target window adjustment information is obtained based on the initial window information, the current load information and the current window statistical information, the current window statistical information is obtained by the data receiving device updating the historical window statistical information based on the initial window information, the current load information is obtained by the data receiving device 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 packets, the target data queuing amount is obtained 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 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.
[0355] The above-mentioned network congestion data processing device can realize congestion perception and congestion control by the data receiving device, and when performing window adjustment, it can improve the network congestion situation while making the window sizes between different data packets and data streams reach a fair state.
[0356] In one embodiment, the queue reference information includes a first queue volume threshold, a second queue volume threshold, and a reference update ratio. The congestion 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 or equal to the second queue volume threshold.
[0357] In one embodiment, the congestion mark 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 mark update ratio is obtained by fusing the second distance and the queue volume adjustment information.
[0358] In one embodiment, the congestion 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.
[0359] In one embodiment, Figure 14 As shown, a network congestion data processing device 1400 is provided, which specifically includes: an initial data packet acquisition module 1402, an initial data packet sending module 1404, a response data packet acquisition module 1406 and a window adjustment module 1408, wherein:
[0360] The initial data packet acquisition module 1402 is used to acquire an initial data packet; the initial data packet carries an initial congestion mark and initial window information;
[0361] The initial data packet sending module 1404 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;
[0362] The response data packet acquisition module 1406 is used to obtain a response data packet returned by the data receiving device; the response data packet carries target window adjustment information, the target window adjustment information is obtained based on the initial window information, the current load information and the current window statistical information, the current window statistical information is obtained by the data receiving device updating the historical window statistical information based on the initial window information, the current load information is obtained by the data receiving device 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 obtained 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 statistics corresponding to the current time period updated by the target congestion mark;
[0363] The window adjustment module 1408 is configured to adjust the current congestion window based on the target window adjustment information to obtain a target congestion window.
[0364] The above-mentioned network congestion data processing device can realize congestion perception and congestion control by the data receiving device, and when performing window adjustment, it can improve the network congestion situation while making the window sizes between different data packets and data streams reach a fair state.
[0365] In one embodiment, the window adjustment module is further configured to obtain a target congestion window based on a ratio of the current congestion window and the target window adjustment information when the time interval between the current time and the adjacent congestion window adjustment time is greater than a preset time interval; and to use the current congestion window as the target congestion window when the time interval between the current time and the adjacent congestion window adjustment time is less than or equal to the preset time interval.
[0366] 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 the target window adjustment information to obtain a target congestion window corresponding to the target data flow identifier.
[0367] 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 module 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.
[0368] 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 15As shown. The computer device includes a processor, a memory, and a network interface connected via a system bus. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and computer program in the non-volatile storage medium. The database of the computer device is used to store data such as historical window statistics, data reception volume, number of data packets received, and tag statistics. 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.
[0369] 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 16 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, a mobile cellular 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.
[0370] Those skilled in the art will understand that Figure 15 、 16 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different component arrangement.
[0371] 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.
[0372] 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.
[0373] 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.
[0374] 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, 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, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory may include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in the various embodiments provided herein may include at least one of a relational database and a non-relational database. Non-relational databases may include, but are not limited to, distributed databases based on blockchains. The processor involved in the various embodiments provided herein may be, but are not limited to, a general-purpose processor, a central processing unit, a graphics processing unit, a digital signal processor, a programmable logic unit, a data processing logic unit based on quantum computing, and the like.
[0375] 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.
[0376] 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 application. It should be noted that a person of ordinary skill in the art may make various modifications and improvements without departing from the spirit of the present application, and these modifications and improvements fall within the scope of protection of the present application. Therefore, the scope of protection of the present 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 carrying an initial congestion mark and initial window information, the intermediate data packet carrying a target congestion mark and the initial window information, the target congestion mark being obtained by updating the initial congestion mark based on a current data queue amount and queue reference information on the data transfer device; Update historical window statistics based on the initial window information to obtain current window statistics; 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 current load information based on the current data reception amount and the target data queue amount, and calculating target window adjustment information based on the current load information, the initial window information, and the current window statistical information; A response data packet carrying the target window adjustment information is generated, 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 target window adjustment information.
2. The method according to claim 1, characterized in that The updating of historical window statistical information based on the initial window information to obtain current window statistical information includes: Obtaining attention weights corresponding to the initial window information and the historical window statistical information; the attention weight corresponding to the initial window information is less than the attention weight corresponding to the historical window statistical information; Based on the attention weights corresponding to the initial window information and the historical window statistical information, the initial window information and the historical window statistical information are fused to obtain the current window statistical information.
3. The method according to claim 2, characterized in that The attention weight corresponding to the initial window information is obtained based on the ratio of the upper limit of the data packet data volume to the static network load, and the static network load is obtained based on the network static delay and the bandwidth information corresponding to the data transfer device.
4. The method according to claim 1, wherein 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.
5. The method according to claim 1, characterized in that The obtaining of current load information based on the current data reception amount and the target data queue amount includes: Obtaining a current network load based on the current data reception amount and the target data queue amount; The current load information is obtained based on the reference network load corresponding to the current time period and the current network load.
6. The method according to claim 5, characterized in that The obtaining of the current network load based on the current data reception amount and the target data queue amount includes: Obtaining a data queue change based on a difference between the target data queue amount and the historical data queue amount; The current network load is obtained based on the current data reception amount and the data queuing change amount.
7. The method according to claim 6, characterized in that The obtaining of the current network load based on the current data reception amount and the data queuing change amount includes: Combining the current data reception amount and the data queue change amount to obtain an intermediate network load; The current network load is obtained based on the intermediate network load and the target data queue amount.
8. The method according to claim 7, characterized in that The obtaining of the current network load based on the intermediate network load and the target data queue amount includes: Obtaining attention weights corresponding to the intermediate network load and the target data queue amount; the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target data queue amount; Based on the attention weights corresponding to the intermediate network load and the target data queue amount, the intermediate network load and the target data queue amount are fused to obtain the current network load.
9. The method according to claim 8, characterized in that The attention weight corresponding to the target data queue volume is obtained based on the ratio of the reference network load and the reference data queue volume corresponding to the data transfer device, and the difference between the reference data queue volume and the upper limit of the data queue volume corresponding to the data transfer device is less than the preset difference.
10. The method according to claim 5, characterized in that The obtaining the current load information based on the reference network load corresponding to the current time period and the current network load includes: Obtaining the reference network load based on the bandwidth information corresponding to the data transfer device and the current time period; The current load information is obtained based on a ratio of the current network load to the reference network load.
11. The method according to claim 10, characterized in that The obtaining the current load information based on the ratio of the current network load to the reference network load includes: Adjusting the reference network load based on the bandwidth utilization ratio to obtain an updated network load; The current load information is obtained based on a ratio of the current network load to the updated network load.
12. 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 and initial window information; 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 returned from the data receiving device and carrying target window adjustment information is sent to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information; the target window adjustment information is obtained based on the initial window information, current load information and current window statistical information, the current window statistical information is obtained by the data receiving device updating historical window statistical information based on the initial window information, the current load information is obtained by the data receiving device 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 obtained based on the queuing reference information, the current data packet reception number and the current mark statistical information, the current data packet reception number is obtained based on the data packet reception number 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.
13. 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 and initial window information; 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 target window adjustment information, the target window adjustment information is obtained based on the initial window information, current load information and current window statistical information, the current window statistical information is obtained by the data receiving device updating the historical window statistical information based on the initial window information, the current load information is obtained by the data receiving device 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 obtained 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; The current congestion window is adjusted based on the target window adjustment information to obtain a target congestion window.
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 and initial window information; 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 historical window statistical information based on the initial window information to obtain current window statistical information, 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 statistical information corresponding to the current time period based on the target congestion mark to obtain the current mark statistical information, calculate the 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 statistical information to obtain the target data queue amount, obtain current load information based on the current data reception amount and the target data queue amount, calculate target window adjustment information based on the current load information, the initial window information and the current window statistical information, generate a response data packet carrying the target window adjustment information, and send the response data packet to the data sending device; The data sending device is further configured to adjust the current congestion window based on the target window adjustment 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 the data transfer device, the initial data packet carrying an initial congestion mark and initial window information, and the intermediate data packet carries a target congestion mark and the initial window information, 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 window statistics information updating module is used to update historical window statistics information based on the initial window information to obtain current window statistics information; A data packet information updating module is used to 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; 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 calculation 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 window adjustment information determining module, configured to obtain current load information based on the current data reception amount and the target data queue amount, and calculate target window adjustment information based on the current load information, the initial window information, and the current window statistical information; The response data packet generating module is used to generate a response data packet carrying the target window adjustment 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 target window adjustment 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 and initial window information; A congestion mark updating module 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; an intermediate data packet sending 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 response data packet sending module is used to send a response data packet returned from the data receiving device and carrying target window adjustment information to the data sending device, so that the data sending device adjusts the congestion window based on the target window adjustment information; the target window adjustment information is obtained based on the initial window information, current load information and current window statistical information, the current window statistical information is obtained by the data receiving device updating the historical window statistical information based on the initial window information, the current load information is obtained by the data receiving device 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 obtained based on the queuing reference information, the current data packet reception number and the current mark statistical information, the current data packet reception number is obtained based on the data packet reception number 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.
17. A network congestion data processing device, characterized in that: The device comprises: An initial data packet acquisition module is used to acquire an initial data packet; the initial data packet carries an initial congestion mark and initial window information; an initial data packet sending module, configured to send the initial data packet to a data transfer device, so that the data transfer device 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 target window adjustment information, the target window adjustment information is obtained based on the initial window information, current load information and current window statistical information, the current window statistical information is obtained by the data receiving device updating historical window statistical information based on the initial window information, the current load information is obtained by the data receiving device 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 obtained 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; The window adjustment module is configured to adjust the current congestion window based on the target window adjustment information to obtain a target congestion window.
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 11 or 12 or 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 11 or 12 or 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 11 or 12 or 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