Network congestion data processing method, device, system and computer equipment
By calculating the network load amount and updating the data packet load information in the data transfer device, the problem of inaccurate network congestion judgment in traditional methods is solved, and more accurate congestion window adjustment is achieved to reduce network congestion.
Patent Information
- Application Number
- CN202111408075.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-11-19
- Publication Date
- 2025-08-08
- Estimated Expiration
- 2041-11-19
AI Technical Summary
In the prior art, the network congestion is judged based on transmission delay, resulting in inaccurate adjustment of the congestion window.
By acquiring the initial data packet of the data sending device, the current network load is calculated using the data sending amount and data queue change of the target transit port, the packet load information is updated in combination with the reference network load, and the congestion window is adjusted through the reply packet of the data receiving device.
It improves the accuracy of network congestion judgment, realizes accurate adjustment of congestion windows, and reduces network data accumulation.
Smart Images

Figure CN116155824B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to a method, apparatus, computer equipment, and storage medium for processing network congestion data. Background Art
[0002] With the development of computer technology, more and more data is transmitted on the network, and the network environment has become more complex and changeable. If there is too much data to be transmitted on the network, due to the limited network bandwidth resources, the network transmission performance will be reduced and network congestion will occur.
[0003] Traditionally, network congestion is determined based on the transmission delay of data packets. If the transmission delay is excessive or packet loss occurs, congestion is confirmed, and the congestion window is adjusted accordingly. However, judging network congestion based solely on transmission delay provides insufficient information, leading to inaccurate congestion determinations and, consequently, inaccurate congestion window adjustments. Summary of the Invention
[0004] Based on this, it is necessary to provide a network congestion data processing method, device, computer equipment and storage medium that can improve the accuracy of network congestion judgment in response to the above technical problems.
[0005] A method for processing network congestion data, characterized in that it is applied to a data transfer device, and the method comprises:
[0006] Acquire an initial data packet sent by a data sending device; the initial data packet carries initial load information;
[0007] Obtaining a current network load based on a data transmission volume and a data queue change volume of a target transit port corresponding to the initial data packet in a current time period; the target transit port is a port on the data transit device used to send data packets;
[0008] Obtaining current load information based on the current network load of the target transit port in the current time period and a reference network load;
[0009] updating the initial data packet based on the current load information to obtain an intermediate data packet, and sending the intermediate data packet to a data receiving device; the intermediate data packet carries target load information determined based on the current load information and the initial load information;
[0010] The response data packet returned from the data receiving device and carrying the target load information is sent to the data sending device, so that the data sending device adjusts the congestion window based on the target load information.
[0011] A network congestion data processing device, comprising:
[0012] An initial data packet acquisition module, configured to acquire an initial data packet sent by a data sending device; the initial data packet carries initial load information;
[0013] a current network load determination module, configured to obtain the current network load based on the data transmission volume and data queue change volume of the target transit port corresponding to the initial data packet in the current time period; the target transit port is a port on the data transit device used to send data packets;
[0014] a current load information determining module, configured to obtain current load information based on a current network load of the target transit port in the current time period and a reference network load;
[0015] a data packet updating module, configured to update the initial data packet based on the current load information to obtain an intermediate data packet, and send the intermediate data packet to a data receiving device; the intermediate data packet carries target load information determined based on the current load information and the initial load information;
[0016] The response data packet sending module is used to send the response data packet returned from the data receiving device and carrying the target load information to the data sending device, so that the data sending device adjusts the congestion window based on the target load information.
[0017] A computer device includes a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the following steps are implemented:
[0018] Acquire an initial data packet sent by a data sending device; the initial data packet carries initial load information;
[0019] Obtaining the current network load based on the data transmission volume and data queue change volume of the target transit port corresponding to the initial data packet in the current time period; the target transit port is a port on the data transit device used to send data packets;
[0020] Obtaining current load information based on the current network load of the target transit port in the current time period and a reference network load;
[0021] updating the initial data packet based on the current load information to obtain an intermediate data packet, and sending the intermediate data packet to a data receiving device; the intermediate data packet carries target load information determined based on the current load information and the initial load information;
[0022] The response data packet returned from the data receiving device and carrying the target load information is sent to the data sending device, so that the data sending device adjusts the congestion window based on the target load information.
[0023] A computer-readable storage medium stores a computer program, which, when executed by a processor, implements the following steps:
[0024] Acquire an initial data packet sent by a data sending device; the initial data packet carries initial load information;
[0025] Obtaining the current network load based on the data transmission volume and data queue change volume of the target transit port corresponding to the initial data packet in the current time period; the target transit port is a port on the data transit device used to send data packets;
[0026] Obtaining current load information based on the current network load of the target transit port in the current time period and a reference network load;
[0027] updating the initial data packet based on the current load information to obtain an intermediate data packet, and sending the intermediate data packet to a data receiving device; the intermediate data packet carries target load information determined based on the current load information and the initial load information;
[0028] The response data packet returned from the data receiving device and carrying the target load information is sent to the data sending device, so that the data sending device adjusts the congestion window based on the target load information.
[0029] A method for processing network congestion data, applied to a data sending device, comprising:
[0030] Obtaining an initial data packet; the initial data packet carries initial payload information;
[0031] Sending the initial data packet to a data transfer device, so that the data transfer device sends the initial data packet to a data receiving device;
[0032] Obtaining a response data packet returned by the data receiving device; the response data packet carries target load information, the target load information being determined by the data transfer device based on current load information and the initial load information, the current load information being obtained based on a data transmission volume, a data queue change volume, and a reference network load volume of a target transfer port corresponding to the initial data packet in a current time period, the target transfer port being a port on the data transfer device used to send data packets;
[0033] A window adjustment parameter is determined based on a comparison result of the target load information and the reference load information, and a current congestion window is adjusted based on the window adjustment parameter to obtain a target congestion window.
[0034] A network congestion data processing device, comprising:
[0035] A first data packet acquisition module is configured to acquire an initial data packet, wherein the initial data packet carries initial payload information;
[0036] A data packet sending module, configured to send the initial data packet to a data transfer device, so that the data transfer device sends the initial data packet to a data receiving device;
[0037] a second data packet acquisition module, configured to acquire a response data packet returned by the data receiving device; the response data packet carries target load information, the target load information being determined by the data transfer device based on current load information and the initial load information, the current load information being obtained based on a data transmission volume, a data queue change, and a reference network load of a target transfer port corresponding to the initial data packet in a current time period, the target transfer port being a port on the data transfer device used to send data packets;
[0038] The congestion window adjustment module is configured to determine a window adjustment parameter based on a comparison result between the target load information and the reference load information, and adjust the current congestion window based on the window adjustment parameter to obtain a target congestion window.
[0039] A computer device includes a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the following steps are implemented:
[0040] Obtaining an initial data packet; the initial data packet carries initial payload information;
[0041] Sending the initial data packet to a data transfer device, so that the data transfer device sends the initial data packet to a data receiving device;
[0042] Obtaining a response data packet returned by the data receiving device; the response data packet carries target load information, the target load information being determined by the data transfer device based on current load information and the initial load information, the current load information being obtained based on a data transmission volume, a data queue change volume, and a reference network load volume of a target transfer port corresponding to the initial data packet in a current time period, the target transfer port being a port on the data transfer device used to send data packets;
[0043] A window adjustment parameter is determined based on a comparison result of the target load information and the reference load information, and a current congestion window is adjusted based on the window adjustment parameter to obtain a target congestion window.
[0044] A computer-readable storage medium stores a computer program, which, when executed by a processor, implements the following steps:
[0045] Obtaining an initial data packet; the initial data packet carries initial payload information;
[0046] Sending the initial data packet to a data transfer device, so that the data transfer device sends the initial data packet to a data receiving device;
[0047] Obtaining a response data packet returned by the data receiving device; the response data packet carries target load information, the target load information being determined by the data transfer device based on current load information and the initial load information, the current load information being obtained based on a data transmission volume, a data queue change volume, and a reference network load volume of a target transfer port corresponding to the initial data packet in a current time period, the target transfer port being a port on the data transfer device used to send data packets;
[0048] A window adjustment parameter is determined based on a comparison result of the target load information and the reference load information, and a current congestion window is adjusted based on the window adjustment parameter to obtain a target congestion window.
[0049] A network congestion data processing system, comprising:
[0050] A data sending device, configured to obtain an initial data packet and send the initial data packet to a data transfer device; the initial data packet carries initial load information;
[0051] A data transfer device is configured to update the initial data packet based on current load information to obtain an intermediate data packet, and send the intermediate data packet to a data receiving device; the intermediate data packet carries target load information determined based on the current load information and the initial load information, the current load information being obtained based on a data transmission volume, a data queue change, and a reference network load of a target transfer port corresponding to the initial data packet in a current time period; the target transfer port being a port on the data transfer device used to send data packets;
[0052] The data sending device is further used to obtain a response data packet returned by the data receiving device and carrying the target load information, determine a window adjustment parameter based on a comparison result of the target load information and reference load information, and adjust the current congestion window based on the window adjustment parameter to obtain a target congestion window.
[0053] The above-mentioned network congestion data processing method, device, system, computer equipment and storage medium, the data transfer device obtains the initial data packet sent by the data sending device, the initial data packet carries initial load information, obtains the current network load based on the data sending amount and data queuing change amount of the target transfer port corresponding to the initial data packet in the current time period, obtains the current load information based on the current network load and reference network load of the target transfer port in the current time period, updates the initial data packet based on the current load information to obtain an intermediate data packet, sends the intermediate data packet to the data receiving device, the intermediate data packet carries target load information determined based on the initial load information and the current load information, the data transfer device obtains the response data packet returned by the data receiving device and carrying the target load information, and sends the response data packet to the data sending device, so that the data sending device adjusts the congestion window based on the target load information. In this way, when calculating the current load information, the data sending volume can reflect the current network status of the target transit port, the data queuing change can reflect the changing trend of the network status, and the reference network load can reflect the reference network status. The current load information calculated based on the data sending volume, data queuing change and reference network load can reflect the comprehensive network status of the target transit port from the present to the future. The accuracy of this load information is relatively high, which helps to improve the accuracy of network congestion judgment. After the data sending device receives the response data packet, it can accurately adjust the current congestion window based on the latest acquired load information. BRIEF DESCRIPTION OF THE DRAWINGS
[0054] Figure 1 This is a diagram of an application environment of a method for processing network congestion data in one embodiment;
[0055] Figure 2 1 is a flow chart of a method for processing network congestion data in one embodiment;
[0056] Figure 3 A schematic diagram of the structure of a data packet in one embodiment;
[0057] Figure 4 A flowchart of a method for processing network congestion data according to another embodiment;
[0058] Figure 5 A schematic diagram of a flow chart of a network congestion data processing system according to an embodiment;
[0059] Figure 6 1 is a timing diagram of a method for processing network congestion data in one embodiment;
[0060] Figure 7 is a schematic diagram of the structure of a data center network in one embodiment;
[0061] Figure 8A Schematic diagram of simulation results of a traditional congestion control algorithm in one embodiment;
[0062] Figure 8B is a schematic diagram of simulation results of a traditional congestion control algorithm in another embodiment;
[0063] Figure 8C Schematic diagram of simulation results of the congestion control algorithm of the present application in one embodiment;
[0064] Figure 9 is a structural block diagram of a network congestion data processing device in one embodiment;
[0065] Figure 10 is a structural block diagram of a network congestion data processing device in one embodiment;
[0066] Figure 11 is a diagram of the internal structure of a computer device in one embodiment;
[0067] Figure 12 FIG. 1 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION
[0068] 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.
[0069] 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.
[0070] 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.
[0071] 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.
[0072] 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.
[0073] 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 and send it to the data transfer device 104. The initial data packet carries initial load information. The data transfer device 104 determines the current network load based on the data transmission volume and data queue change of the target transfer port corresponding to the initial data packet in the current time period, and determines the current load information based on the current network load of the target transfer port in the current time period and the reference network load. The data transfer device 104 updates the initial data packet based on the current load information to obtain an intermediate data packet. The intermediate data packet carries target load information determined based on the initial load information and the current load information. The data transfer device 104 sends the intermediate data packet to the data receiving device 106. The data receiving device 106 generates a response data packet carrying the target load information and sends the response data packet to the data sending device 102 via the data transfer terminal 104. The data sending device 102 obtains target load information from the response data packet, determines a window adjustment parameter based on a comparison result of the target load information and the reference load information, and adjusts the current congestion window based on the window adjustment parameter to obtain a target congestion window.
[0074] 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.
[0075] In one embodiment, the data transfer device may be a network forwarding device such as a switch or a router.
[0076] In one embodiment, Figure 2 As shown, a network congestion data processing method is provided, which is applied to Figure 1 The data transfer device in the example is used as an example to illustrate the process, including the following steps:
[0077] Step S202: Acquire an initial data packet sent by a data sending device; the initial data packet carries initial load information.
[0078] Among them, the initial data packet is a data packet generated and sent by the data sending device, which 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, and can also be used to actively send information to the data receiving device. Load information is used to describe the load conditions of the data transmission link and the network. The load information can be specifically expressed by load rate and load amount. The initial data packet carries initial load information, which is initialized load information. The initial load information is used to characterize the network load conditions that are completely idle or very idle. For example, the initial load information can be 0, which means that the network is in a completely idle state. The initial load information can be placed in the header part of the data packet, or in the body part of the data packet.
[0079] 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 through the data transfer device in the network. After receiving the initial data packet, the data receiving device returns a response data packet to the data sending device to indicate that the initial data packet has been successfully received. The data sending device is the 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 the initial payload information.
[0080] Step S204, obtaining the current network load based on the data transmission volume and data queue change of the target transit port corresponding to the initial data packet in the current time period; the target transit port is the port on the data transit device used to send data packets.
[0081] The "current time period" refers to the currently used data statistics and monitoring time period. This time period can include the current time or the most recent historical time period. For example, if port data is collected periodically at regular intervals, the current time period can be the time period of the most recent statistical collection, and the current load information is calculated using the most recent statistical data. Data statistics can be collected periodically or irregularly. The length of the current time period can be set as needed.
[0082] Different transit ports are provided on the data transfer device. Different transit ports may correspond to different data transmission links, or different data transmission links may correspond to the same transit port. Different data transmission links may be used to transmit data to different data recipients, or different data transmission links may transmit data to data recipients based on different transmission protocols. Data packets transmitted on the same data transmission link may include the same five-tuple information, which specifically includes the source IP address, source port, destination IP address, destination port, and transport layer protocol. The source IP address represents the IP address of the data sending device, the source port represents the sending port of the data sending device used to send data packets, the destination IP address represents the IP address of the data receiving device, and the destination port represents the receiving port of the data receiving device used to receive data packets. The target transit port refers to the port on the data transfer device used to send the initial data packet, and the target transit port is the port where the initial data packet is transferred on the data transmission link.
[0083] Data transmission volume refers to the number of packets sent from the target transit port of a data transfer device. Packet statistics are calculated based on the number of packets sent from the target transit port of a data transfer device. For example, the number of bytes, bits, and packets sent by the target transit port can be counted.
[0084] The data queue change refers to the change in the number of data packets queued at the target transit port. This change is obtained by statistically analyzing the change in the queueing of data packets at the target transit port. For example, the change in the data queue height or the change in the number of data packets can be calculated. It is understood that data transit devices are responsible for forwarding a large number of data packets in the network. Due to the limited capacity of data transit devices and to ensure the orderly forwarding of data, data packets must be queued and transmitted in an orderly manner within the data transit devices. Data transit devices are equipped with different transit ports, and data packets transmitted on different data transmission links must be queued and transmitted at the corresponding transit ports. Because transit ports continuously receive and transmit data packets, the amount of data queued at the target transit port will change. The change in the data queue can reflect changes in the network status. If the data queue change decreases while the data transit device continues to transmit data packets, it indicates that the network status is improving, moving towards an idle or underloaded state. If the data queue increase, it indicates that the network status is deteriorating, moving towards a busy or overloaded state.
[0085] The current network load refers to the amount of data actually borne and loaded by the target transit port in the network during the current time period.
[0086] Specifically, after the data transfer device obtains the initial data packet, it can determine the target transfer port corresponding to the initial data packet based on the specific information of the initial data packet, and then obtain the data transmission volume and data queue change amount obtained by statistics of the target transfer port in the current time period, and calculate the current network load based on the data transmission volume and data queue change amount. For example, the current network load can be calculated as the sum of the data transmission volume and the data queue change amount, or as the weighted sum of the data transmission volume and the data queue change amount. The data transfer device can calculate the current network load based on the data transmission volume and the data queue change amount according to a custom formula or algorithm.
[0087] Step S206 , obtaining current load information based on the current network load of the target transit port in the current time period and the reference network load.
[0088] The reference network load refers to the amount of data that the target transit port can handle in the current network time period. The reference network load can be determined based on the target transit port's port attribute information. Port attribute information describes the port's basic properties and capabilities. Port attribute information can be pre-configured based on actual needs.
[0089] Current load information refers to the load information corresponding to the current time period, which is used to represent the network load situation from the current time period to the future. The larger the current load information, the more congested the network is.
[0090] Specifically, the data transfer device also needs to obtain the reference network load of the target transfer port in the current time period and calculate the current load information based on the current network load and the reference network load. For example, the current load information may be calculated as the ratio of the current network load to the reference network load, or the current load information may be obtained based on the difference between the current network load and the reference network load and the ratio of the difference to the reference network load. The data transfer device may calculate the current network load based on the current network load and the reference network load according to a custom formula or algorithm.
[0091] It is understood that the data transfer device may pre-calculate the current load information before receiving the initial data packet. For example, the data transfer device may periodically calculate the load information and, after receiving the initial data packet, use the most recently calculated load information as the current load information. The data transfer device may also calculate the current load information immediately after receiving the initial data packet. For example, after receiving the initial data packet, the data transfer device may use the time period ending at the time of receipt as the current time period and calculate the load information based on the relevant data collected during the current time period as the current load information.
[0092] Step S208 , updating the initial data packet based on the current load information to obtain an intermediate data packet, and sending the intermediate data packet to the data receiving device; the intermediate data packet carries target load information determined based on the current load information and the initial load information.
[0093] Specifically, after obtaining the current load information and the initial load information, the data transfer device can determine the target load information based on the current load information and the initial load information, and replace the initial load information in the initial data packet with the target load information, thereby obtaining an intermediate data packet. For example, the data transfer device can directly replace the initial load information in the initial data packet with the current load information to obtain the intermediate data packet, directly using the current load information as the target load information. The data transfer device can also compare the current load information with the initial load information and determine the target load information from the current load information and the initial load information based on the comparison result. The data transfer device sends the intermediate data packet carrying the target load information to the data receiving device. After receiving the intermediate data packet, the data receiving device generates a response data packet and returns the response data packet to the data sending device. The response data packet also carries the target load information.
[0094] In step S210 , a response data packet carrying target load information returned from the data receiving device is sent to the data sending device, so that the data sending device adjusts the congestion window based on the target load information.
[0095] 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.
[0096] Specifically, the data transfer device can obtain the response data packet returned by the data receiving device and forward the response data packet to the data sending device. The data sending device can extract the target load information from the obtained response packet, adjust the congestion window based on the target load information, and dynamically adjust the congestion window according to the degree of network congestion to avoid more severe network congestion. The data sending device can determine the window adjustment parameter based on the target load information, adjust the current congestion window based on the window adjustment parameter to obtain the target congestion window, and control the speed of subsequent data packet transmission using the target congestion window. Regarding the specific process of adjusting the congestion window, please refer to the relevant embodiments of the network congestion data processing method applied to the data sending device.
[0097] In the above-mentioned network congestion data processing method, the data transfer device obtains the initial data packet sent by the data sending device, the initial data packet carries initial load information, obtains the current network load based on the data sending volume and data queuing change of the target transfer port corresponding to the initial data packet in the current time period, obtains the current load information based on the current network load and reference network load of the target transfer port in the current time period, updates the initial data packet based on the current load information to obtain an intermediate data packet, sends the intermediate data packet to the data receiving device, the intermediate data packet carries target load information determined based on the initial load information and the current load information, the data transfer device obtains the response data packet returned by the data receiving device and carrying the target load information, and sends the response data packet to the data sending device, so that the data sending device adjusts the congestion window based on the target load information. In this way, when calculating the current load information, the data sending volume can reflect the current network status of the target transit port, the data queuing change can reflect the changing trend of the network status, and the reference network load can reflect the reference network status. The current load information calculated based on the data sending volume, data queuing change and reference network load can reflect the comprehensive network status of the target transit port from the present to the future. The accuracy of this load information is relatively high, which helps to improve the accuracy of network congestion judgment. After the data sending device receives the response data packet, it can accurately adjust the current congestion window based on the latest acquired load information.
[0098] In one embodiment, the current network load is obtained based on the data transmission volume and data queue change volume of the target transit port corresponding to the initial data packet in the current time period, including:
[0099] Obtain the initial queue height and target queue height of the target transit port in the current time period; obtain the data queue change based on the difference between the initial queue height and the target queue height, and obtain the intermediate network load by fusing the data queue change and the data transmission volume; obtain the current network load based on the intermediate network load and the target queue height.
[0100] The initial queue height refers to the queue height at the target transit port at the start of the current time period. The target queue height refers to the queue height at the target transit port at the end of the current time period. The queue height reflects the amount of data in the queue.
[0101] Specifically, the data transfer device can obtain the initial queue height and target queue height of the target transfer port in the current time period, and use the difference between the initial queue height and the target queue height as the data queue change. The first-order difference of the queue height can reflect the changing trend of the port's network status. The data transfer device then merges the calculated data queue change and data transmission volume. For example, the sum of the data queue change and data transmission volume is used as the intermediate network load, and the weighted sum of the data queue change and data transmission volume is used as the intermediate network load. The data transfer device can directly use the intermediate network load as the current network load. However, considering that the existing data accumulation at the target transfer port will also affect the current and future network status, the data transfer device can further derive the current network load based on the intermediate network load and the target queue height. For example, the sum of the intermediate network load and the target queue height is used as the current network load, and the weighted sum of the intermediate network load and the target queue height is used as the current network load. It can be understood that the target queue height is regarded as a component of the current network load. The target queue height can be used as a penalty item to avoid the current load information calculated to be smaller when the target transit port has a higher queue height. The penalty item helps to gradually reduce the data queue amount in the target transit port.
[0102] In the above embodiment, the initial queue height and target queue height of the target transit port in the current time period are obtained, and the data queue variation is calculated based on the difference between the initial queue height and the target queue height. The data queue variation and the data transmission volume are then combined to obtain the intermediate network load, and the current network load is then calculated based on the intermediate network load and the target queue height. In this way, the current network load calculated based on the data queue variation, the data transmission volume, and the target queue height can more accurately adjust the congestion window and reduce data accumulation in the network.
[0103] In one embodiment, obtaining the current network load based on the intermediate network load and the target queue height includes:
[0104] The attention weights corresponding to the intermediate network load and the target queue height are obtained respectively; the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target queue height; based on the attention weights, the intermediate network load and the target queue height are fused to obtain the current network load.
[0105] The attention weight represents the importance of a piece of data to the network state. Importance indicates the extent of the data's impact on the network state. Highly important data has a higher corresponding attention weight, while lowly important data has a lower corresponding attention weight. The specific value of the attention weight can be set as needed, but the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target queue height.
[0106] Specifically, when calculating the current network load, the intermediate network load and target queue height have different degrees of influence on the network status of the target transit port. Since the intermediate network load is based on the data transmission volume and data queue change of the target transit port in the current time period, it can represent the data reception volume of the target transit port in the current time period and can directly reflect the actual load data volume of the target transit port in the current time period. The target queue height is the data monitored at the last moment of the current time period and also has a certain degree of indirect influence on the subsequent direction of the network status. In comparison, the intermediate network load has a greater impact on the network status and determines the degree of influence. Therefore, the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target queue height. The data transit device can obtain the attention weights corresponding to the intermediate network load and the target queue height respectively, and perform data weighted fusion based on the attention weights to obtain the current network load.
[0107] In one embodiment, the attention weight corresponding to the target queue height is determined based on the reference network load and the preset queue height. The difference between the preset queue height and the maximum queue height is less than a preset threshold. In other words, the preset queue height represents the queue height when the amount of queued data is large. For example, the ratio of the reference network load to the preset queue height can be used as the attention weight corresponding to the target queue height. In other words, the product of the attention weights corresponding to the preset queue height and the target queue height is equal to the reference network load. Specifically, when the target queue height is high, the penalty imposed by the target queue height on the current load information is equal to the maximum load that the port can withstand. Therefore, the calculated current load information can indicate that the network is overloaded. When the target queue height is high, the target transit port can receive less data, making it more susceptible to overload. Upon learning the current load information, the data transmitter can quickly reduce the congestion window to alleviate data queuing at the target transit port.
[0108] In the above embodiment, based on the attention weights corresponding to the intermediate network load and the target queue height respectively, the intermediate network load and the target queue height are fused to obtain the current network load. The attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target queue height, which can improve the accuracy of the current network load and thereby improve the accuracy of the congestion window adjustment.
[0109] In one embodiment, the current load information is obtained based on the current network load of the target transit port in the current time period and the reference network load, including:
[0110] Based on the bandwidth information corresponding to the target transit port and the current time period, a reference network load is obtained; and based on the ratio of the current network load to the reference network load, current load information is obtained.
[0111] Bandwidth information refers to the amount of data that can be transmitted by the target transit port within a unit of time.
[0112] Specifically, when calculating the reference network load, the data transfer device may obtain the bandwidth information corresponding to the target transfer port and use the product of the bandwidth information corresponding to the target transfer port and the current time period as the reference network load. When calculating the current load information, the data transfer device may calculate the ratio of the current network load to the reference network load as the current load information.
[0113] In the above embodiment, an accurate reference network load can be obtained based on the bandwidth information corresponding to the target transit port and the current time period, and the current load information can be obtained based on the ratio of the current network load and the reference network load. The current load information can more intuitively reflect the network status of the target transit port.
[0114] In one embodiment, the current load information is obtained based on the ratio of the current network load to the reference network load, including:
[0115] The reference network load is adjusted based on the bandwidth utilization ratio to obtain an updated network load; and current load information is obtained based on a ratio of the current network load and the updated network load.
[0116] The bandwidth utilization ratio is used to represent the bandwidth utilization rate of the data transfer device to the target transfer port. The bandwidth utilization ratio can be set as needed.
[0117] Specifically, each data transfer port on the data transfer device can operate at full capacity, utilizing all bandwidth resources for data forwarding, or it can idle some bandwidth resources to reduce the amount of data sent, thereby reducing the amount of data in the network and improving data transmission speed. Therefore, the data transfer device can adjust the reference network load based on the bandwidth utilization ratio to obtain an updated network load, and use the ratio of the current network load to the updated network load as the current load information. The bandwidth utilization ratios corresponding to different transfer ports on the data transfer device can be the same or different.
[0118] In one embodiment, the bandwidth utilization ratio can be determined based on the task type and nature of the data transmission task. For example, for data streams and data transmission links that require low latency, the bandwidth utilization ratio can be less than the preset ratio. For example, for real-time interactive call tasks, the bandwidth utilization ratio can be set to 0.95. For data streams and data transmission links that require high bandwidth, the bandwidth utilization ratio can be greater than the preset ratio. For example, for tasks that transmit large-capacity videos, the bandwidth utilization ratio can be set to 1.
[0119] In the above embodiment, the reference network load is adjusted based on the bandwidth utilization ratio to obtain an updated network load, and the current load information is obtained based on the ratio of the current network load and the updated network load. Controlling the congestion window based on such current load information can prompt the network state to be gradually adjusted to the expected state, so that the bandwidth utilization in the port gradually reaches the preset bandwidth utilization ratio, and ultimately achieve high network bandwidth utilization.
[0120] In one embodiment, the current load information is calculated as follows:
[0121]
[0122] I=TxBytes+Qlen-LastQlen
[0123] Among them, L represents the current load information, which can also be called the load rate. I represents the intermediate network load. T represents the current time period, which can also be called the measurement period. B represents bandwidth information, which can also be called the port bandwidth. Qlen represents the target queue height in the current time period, which can also be considered as the queue height at the time of this measurement. LastQlen represents the initial queue height in the current time period, which can also be considered as the queue height at the time of the last measurement. Qlen and LastQlen can be expressed in bytes. γ represents the attention weight corresponding to the target queue height, and γ is less than 1. α represents the bandwidth utilization ratio. TxBytes represents the amount of data sent in the current time period, which can be considered as the number of bytes sent by the port from the last measurement to the current measurement. It can be understood that when the bandwidth is full and there is no queue, L = 1.
[0124] Data transit equipment can periodically calculate the load rate for each transit port. This load rate is a network status indicator that combines the data transmission volume TxBytes, the target queue height Qlen, and the first-order difference of the queue height (Qlen-LastQlen). Such a network status indicator can not only accurately reflect the current status of the data transit device port, but also reflect its status change trend through the first-order difference of the queue height. Congestion window adjustment based on such a load rate can effectively take the changing trend of network traffic into account in the adjustment range, thereby avoiding insufficient or excessive adjustment, and ultimately achieving no or low packet accumulation in the network and high network bandwidth utilization.
[0125] In one embodiment, the measurement period can be set to the round-trip delay of data when the network is idle, i.e., the network idle RTT (Round-Trip Time). Setting the measurement period to the network idle RTT allows the data transfer device to update the load factor in a timely manner, ensuring the timeliness of the load factor. In one embodiment, γ can be set to 0.2-0.4, and α can be set to 0.95-1.
[0126] In one embodiment, the initial data packet carries a target data flow identifier, the data transfer device includes at least one candidate transfer port corresponding to the candidate data flow identifier, and each candidate transfer port includes at least one data queue corresponding to the candidate data flow identifier.
[0127] Based on the data transmission volume and data queue change of the target transit port corresponding to the initial data packet in the current time period, the current network load is obtained. Based on the current network load of the target transit port in the current time period and the reference network load, the current load information is obtained, including:
[0128] The candidate transit port corresponding to the target data flow identifier is used as the target transit port; in the target transit port, the data queue corresponding to the target data flow identifier is used as the target queue; based on the data sending volume and data queuing change of the target queue in the current time period, the current network load is obtained; based on the current network load of the target queue in the current time period and the reference network load, the current load information is obtained.
[0129] Among them, the data flow identifier is used to identify the data transmission link of the data packet. For example, the five-tuple information of the data packet can be used as the data flow identifier. The target data flow identifier refers to the data volume identifier corresponding to the initial data packet. The data transfer device includes at least one candidate transfer port corresponding to the candidate data flow identifier, that is, the same data transfer device can be used as a transfer device on different data transmission links at the same time, and different data transmission links can pass through the same data transfer device. Each candidate transfer port on the data transfer device includes at least one data queue corresponding to the candidate data flow identifier, that is, the same transfer port can be used as a port for data transfer on different data transmission links at the same time, and the data packets transmitted on different data transmission links can be stored in different data queues of the same port, and different traffic flows can be isolated through data queues.
[0130] Specifically, after the data transfer device obtains the initial data packet, it can determine the target transfer port corresponding to the initial data packet based on the target data flow identifier carried in the initial data packet. The data transfer device can calculate the current load information at the port level based on the port-level data, and determine the target load information at the port level based on the current load information and the initial load information at the port level. Subsequently, the data sending device can adjust the congestion window based on the target load information at the port level. Port-level data is comprehensive data obtained by statistics based on the relevant data of all queues on the port. For example, the queue height is the amount of data queued by the entire port, which is obtained by combining the queued data volume of all queues on the same port. The bandwidth information is the port bandwidth.
[0131] Of course, after determining the target transit port corresponding to the initial data packet, the data transit device can also calculate the current queue-level load information based on the queue-level data, and determine the queue-level target load information based on the current queue-level load information and the initial load information. Subsequently, the data sending device can adjust the congestion window based on the queue-level target load information. Queue-level data is obtained based on the relevant data statistics of a single queue. For example, the queue height is the queued data volume of the queue where the data packet is located, and the bandwidth information is the queue bandwidth allocated to the queue where the data packet is located.
[0132] When calculating queue-level current load information, the data transit device can use the candidate transit port corresponding to the target data flow identifier as the target transit port for the initial data packet. At the target transit port, the data queue corresponding to the target data flow identifier is used as the target queue for the initial data packet. The data transmission volume and data queue change for the target queue in the current time period are then obtained. The current network load is calculated based on the obtained data transmission volume and data queue change. The reference network load for the target queue in the current time period is obtained. Current load information is calculated based on the current network load and reference network load for the target queue in the current time period. In scenarios where multiple protocols run / coexist, network operators can use queues to isolate each protocol traffic type and allocate a preset bandwidth to each queue. Therefore, all metrics involved in the load information calculation process can be queue-level, and the entire port needs to maintain load information for each queue. Subsequently, the data transmitter adjusts the congestion window based on the load information to control the throughput of each queue within the preset bandwidth, while also keeping queue accumulation close to zero.
[0133] It can be understood that the specific calculation process of the current load information can refer to the methods described in the aforementioned relevant embodiments.
[0134] In the above embodiment, different traffic flows are isolated through data queues, and current load information is calculated based on relevant data at the queue level. Such current load information can accurately characterize the network status corresponding to a single traffic flow or data stream, and then the data sending device can adjust the corresponding congestion window in a targeted manner to achieve precise adjustment.
[0135] In one embodiment, the initial data packet is updated based on the current load information to obtain the intermediate data packet, including:
[0136] When the current load information is greater than the initial load information, the initial load information in the initial data packet is replaced based on the current load information to obtain an intermediate data packet, and the target load information is the current load information; when the current load information is less than or equal to the initial load information, the initial data packet is used as the intermediate data packet, and the target load information is the initial load information.
[0137] Specifically, the target load information can be determined based on the comparison result between the current load information and the initial load information. When the current load information is greater than the initial load information, the current load information is used as the target load information. When the current load information is less than or equal to the initial load information, the initial load information is used as the target load information. Since the initial load information can represent the completely idle or very idle network load situation, the larger the load information, the busier and more congested the network. Therefore, when the current load information is greater than the initial load information, it indicates that the network state is worse than the initial state. The initial load information in the initial data packet is then replaced with the current load information, and the current load information is ultimately fed back to the data sender, so that the data sender can accurately and timely adjust the congestion window based on the current load information.
[0138] It can be understood that a data packet can pass through at least one data transfer device during transmission from a data sending end to a data receiving end. For example, the data transmission path in the network is: data sending device - data transfer device 1 - data transfer device 2 - data transfer device 3 - data receiving device. If the data transmission passes through multiple data transfer devices, each data transfer device can calculate load information based on the relevant data of its own transfer port. In the process of passing through each data transfer device, the data packet can always obtain the load information with a larger value as the target load information by comparing the data. For example, if the load information calculated by data transfer device 1 is greater than the initial load information, then data transfer device 1 can replace the initial load information in the data packet with the calculated load information, and pass the calculated load information as the new initial load information. If the load information calculated by data transfer device 2 is greater than the load information calculated by data transfer device 1, then data transfer device 2 can replace the load information in the data packet calculated by data transfer device 1 with the load information calculated by data transfer device 2, and continue to pass the load information calculated by data transfer device 2 as the new initial load information, and so on. Ultimately, the data packet collects load information about the most congested port along the way, using this information as the target load information received by the data receiver. The target load information received by the data transmitter is the bottleneck point detected along the entire transmission path. By adjusting the window based on this load information, the data transmitter can quickly eliminate packet accumulation in the network.
[0139] In one embodiment, the initial load information can be set to 0. Since the current network load and the reference network load are theoretically non-negative numbers, the current load information calculated based on the current network load and the reference network load is also theoretically non-negative. Rather than directly using the current load information as the target load information, the target load information is determined based on a comparison between the actual calculated current load information and the initial load information. This provides protection for the target load information to be non-negative, preventing obviously erroneous data from being fed back to the data sending device, potentially causing the data sending device to make incorrect window adjustments.
[0140] In the above embodiment, when the current load information is greater than the initial load information, the current load information is used as the target load information; when the current load information is less than or equal to the initial load information, the initial load information is used as the target load information. This can ensure that the load information reflecting the more congested network status is always transmitted during the entire transmission process.
[0141] In one embodiment, the initial data packet, the intermediate data packet and the response data packet all include a sending information carrying field and a response information carrying field, the initial load information is located in the sending information carrying field of the initial data packet, the target load information is located in the sending information carrying field of the intermediate data packet, and the target load information is located in the response information carrying field of the response data packet.
[0142] The Transmit Information Bearer field is used to record forward load information, that is, the load information collected along the way from the data transmitter to the data receiver. The Reply Information Bearer field is used to record reverse load information, that is, the load information that the reply packet intends to feedback from the data receiver to the data transmitter. The Reply Information Bearer field is not used for initial packets, and the Transmit Information Bearer field is not used for reply packets.
[0143] Specifically, the initial data packet, intermediate data packets, and reply data packets all include a transmission information carrying field and a reply information carrying field. The initial data packet and the intermediate data packets are located on the forward transmission path, and the initial payload information and the target payload information can be placed in the transmission information carrying field of the initial data packet and the intermediate data packets. The reply data packet is located on the reverse transmission path, and the target payload information can be placed in the reply information carrying field of the reply data packet.
[0144] refer to Figure 3 Before sending the initial data packet, a 16-bit header can be embedded after the standard header to record the load rate. Figure 3The LH (Load Header) is initialized to 0x0000. This location is used to collect the load rate of the most congested port in the packet's path. The upper 8 bits of the LH (FL) are used to collect the load rate of the packet's forward link, while the lower 8 bits (BL) are used to send the reply packet carrying the received FL back to the sender. ETH (used to record Ethernet protocol information), IP (used to record IP protocol information), UDP (used to record UDP protocol information), and Payload (used to record key information) are the common structure and components of a data packet.
[0145] Because the data carried in the data packet is binary, the calculated load ratio is a floating-point number. To incorporate the load ratio into the data packet, the floating-point number must be converted to its corresponding binary data. For example, if the FL is 8 bits long, the calculated load ratio can be amplified by 64 times and the integer portion taken as the current load information. Other amplification factors, such as 128 or 100, are also possible. The specific amplification factor can be determined based on the FL bit length. It is understood that after receiving the load information, the data sender needs to reduce it by the same factor to obtain the actual load ratio.
[0146] In the above embodiment, when a data packet is transmitted forward, the payload information is placed in the transmission information carrying field, and when a response packet is fed back in reverse, the payload information is placed in the response information carrying field, thereby avoiding data confusion.
[0147] In one embodiment, Figure 4 As shown, a network congestion data processing method is provided, which is applied to Figure 1 The data sending device in the example is used as an example to illustrate, including the following steps:
[0148] Step S402: Acquire an initial data packet; the initial data packet carries initial payload information.
[0149] Step S404: Send the initial data packet to the data transfer device, so that the data transfer device sends the initial data packet to the data receiving device.
[0150] Specifically, the data sending device may generate an initial data packet and send the initial data packet to the data transfer device, and the data transfer device may forward the initial data packet to the data receiving device.
[0151] Step S406, obtain the response data packet returned by the data receiving device; the response data packet carries target load information, and the target load information is determined by the data transfer device based on the current load information and the initial load information. The current load information is based on the data sending volume, data queuing change and reference network load of the target transfer port corresponding to the initial data packet in the current time period. The target transfer port is the port on the data transfer device used to send data packets.
[0152] Specifically, when forwarding an initial data packet, the data transfer device can calculate current load information based on the data transmission volume, data queue change, and reference network load of the target transfer port corresponding to the initial data packet during the current time period, and update the initial load information in the initial data packet based on the current load information. The data transfer device transmits the updated initial data packet to the data receiving device. The updated initial data packet carries the target load information obtained through the data update. After receiving the initial data packet, the data receiving device can generate a response data packet and feed it back to the data sending device. The response data packet carries the target load information.
[0153] The specific generation process of the target load information and the current load information may refer to the methods described in the aforementioned relevant embodiments.
[0154] Step S408 : determining a window adjustment parameter based on a comparison result of the target load information and the reference load information, and adjusting the current congestion window based on the window adjustment parameter to obtain a target congestion window.
[0155] The reference load information is used to determine a window adjustment parameter, which can be a window enlargement parameter or a window reduction parameter. The reference load information can be set as needed. The reference load information can be set to the load information corresponding to the desired network state. For example, the reference load information can be set to 1.
[0156] Specifically, after receiving the target load information fed back by the data receiving device, the data sending device can compare the target load information with the reference load information, determine a window adjustment parameter based on the comparison result, and then adjust the current congestion window based on the window adjustment parameter to obtain a target congestion window. When 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.
[0157] In one embodiment, the data transmitter can also set a window adjustment period and adjust the congestion window based on the window adjustment period to avoid frequent updates of the congestion window that affect network stability. For example, the network idle RTT can be used as the window adjustment period and the window update period. The data transmitter monitors the congestion window update time. Once the interval reaches the network idle RTT, the current congestion window is adjusted using the latest target load information received. If the interval does not reach the network idle RTT, the current congestion window remains unchanged.
[0158] In the above-mentioned network congestion data processing method, the data transfer device obtains the initial data packet sent by the data sending device, the initial data packet carries initial load information, obtains the current network load based on the data sending volume and data queuing change of the target transfer port corresponding to the initial data packet in the current time period, obtains the current load information based on the current network load and reference network load of the target transfer port in the current time period, updates the initial data packet based on the current load information to obtain an intermediate data packet, sends the intermediate data packet to the data receiving device, the intermediate data packet carries target load information determined based on the initial load information and the current load information, the data transfer device obtains the response data packet returned by the data receiving device and carrying the target load information, and sends the response data packet to the data sending device, so that the data sending device adjusts the congestion window based on the target load information. In this way, when calculating the current load information, the data sending volume can reflect the current network status of the target transit port, the data queuing change can reflect the changing trend of the network status, and the reference network load can reflect the reference network status. The current load information calculated based on the data sending volume, data queuing change and reference network load can reflect the comprehensive network status of the target transit port from the present to the future. The accuracy of this load information is relatively high, which helps to improve the accuracy of network congestion judgment. After the data sending device receives the response data packet, it can accurately adjust the current congestion window based on the latest acquired load information.
[0159] In one embodiment, determining a window adjustment parameter based on a comparison result of target load information and reference load information, and adjusting the current congestion window based on the window adjustment parameter to obtain a target congestion window includes:
[0160] When the target load information is greater than the reference load information, the window adjustment parameter is determined to be the window reduction parameter, and the current congestion window is reduced based on the window reduction parameter to obtain the target congestion window; when the target load information is less than or equal to the reference load information, the window adjustment parameter is determined to be the window enlargement parameter, and the current congestion window is enlarged based on the window enlargement parameter to obtain the target congestion window.
[0161] Specifically, when the target load information is greater than the reference load information, indicating that the current network state is worse than the expected network state, the data sending device can determine the window adjustment parameter as a window reduction parameter. Based on the window reduction parameter, the current congestion window is reduced to obtain a target congestion window. The target congestion window is used to slow down packet transmission and alleviate network congestion. When the target load information is less than or equal to the reference load information, indicating that the current network state is similar to or better than the expected network state, the data sending device can determine the window adjustment parameter as a window enlargement parameter. Based on the window enlargement parameter, the current congestion window is enlarged to obtain a target congestion window. The target congestion window is used to speed up packet transmission and fully utilize network bandwidth and improve bandwidth utilization. The window reduction parameter and the window enlargement parameter can be data that changes dynamically based on the target load information or can be pre-set fixed data. Reducing the current congestion window based on the window reduction parameter can be done by dividing the current congestion window by the window reduction parameter or by subtracting the window reduction parameter from the current congestion window. Enlarging the current congestion window based on the window enlargement parameter can be done by multiplying the window enlargement parameter by the current congestion window or by adding the window enlargement parameter to the current congestion window.
[0162] In the above embodiment, when the target load information is greater than the reference load information, the window adjustment parameter is quickly determined to be a window reduction parameter; when the target load information is less than or equal to the reference load information, the window adjustment parameter is quickly determined to be a window enlargement parameter, so that the current congestion window can be quickly adjusted based on the window adjustment parameter.
[0163] In one embodiment, when the target load information is greater than the reference load information, determining that the window adjustment parameter is a window reduction parameter, and reducing the current congestion window based on the window reduction parameter to obtain the target congestion window includes:
[0164] When the target load information is greater than the reference load information, a window reduction parameter is generated based on the target load information; the window reduction parameter increases as the target load information increases; and a target congestion window is obtained based on a ratio of the current congestion window and the window reduction parameter.
[0165] Specifically, when reducing the current congestion window, the data sending device can dynamically determine the window reduction parameter based on the target load information, and obtain the target congestion window based on the ratio of the current congestion window and the window reduction parameter, thereby adaptively reducing the congestion window according to the current network state, further improving the accuracy of congestion window adjustment. The window reduction parameter increases as the target load information increases. That is, the larger the target load information, the worse the current network state, the larger the window reduction parameter, and the greater the reduction force on the current congestion window. The ratio of the current congestion window to the window reduction parameter can be directly used as the target congestion window, or the sum of the ratio and a preset value can be used as the target congestion window.
[0166] In one embodiment, when the target load information is greater than the reference load information, the current congestion window may be reduced according to the following formula:
[0167] If L>1,
[0168] Among them, L represents the load rate, and L is used as the window reduction parameter, W C Represents the current congestion window. W represents the target congestion window, that is, the congestion window that controls the speed of data packet transmission. If the data sender adjusts the congestion window regularly, W C It indicates the congestion window of the previous cycle.
[0169] In the above embodiment, when the target load information is greater than the reference load information, a window reduction parameter is generated based on the target load information. The window reduction parameter increases as the target load information increases. The worse the network status is, the greater the adjustment force on the window is, which can quickly reduce data accumulation in the network.
[0170] In one embodiment, when the target load information is less than or equal to the reference load information, determining the window adjustment parameter as the window magnification parameter, and magnifying the current congestion window based on the window magnification parameter to obtain the target congestion window includes:
[0171] When the target load information is less than or equal to the reference load information, the current network state is determined to be an underload state; the historical continuous underload number is updated based on the current network state to obtain the current continuous underload number; the historical continuous underload number is obtained by counting the number of times the adjacent network state corresponding to the current network state is continuously in the underload state; when the current continuous underload number is less than or equal to the preset number, the current congestion window is enlarged based on the first window magnification parameter to obtain the target congestion window; when the current continuous underload number is greater than the preset number, the current congestion window is enlarged based on the second window magnification parameter to obtain the target congestion window; the first window magnification parameter is less than the second window magnification parameter.
[0172] The underload status indicates that the current network status has not reached the expected state and is lower than the expected state. The network can accommodate more data. The historical consecutive underload count refers to the number of times the network status has been underloaded before the current network status was determined. The current consecutive underload count refers to the number of times the network status has been underloaded since the current network status was determined. The adjacent network status corresponding to the current network status refers to the historical network status determined before the current network status was determined.
[0173] Specifically, when the target load information is less than or equal to the reference load information, the data sending device can determine that the current network state is underloaded and that the data packet transmission rate needs to be increased to improve bandwidth utilization. Furthermore, if the network state is underloaded multiple times consecutively, the data packet transmission rate can be further increased. Each time the data sending device determines the network state based on the load information, it can simultaneously count the number of consecutive underloads. If the current number of consecutive underloads is less than or equal to a preset number, indicating that the network is underloaded for a short period of time and has a certain data capacity, the congestion window can be slightly increased. If the current number of consecutive underloads is greater than the preset number, indicating that the network is underloaded for a long period of time and still has strong data capacity, the congestion window can be significantly increased. Therefore, if the current number of consecutive underloads is less than or equal to the preset number, the data sending device amplifies the current congestion window based on a first window amplification parameter to obtain a target congestion window. If the current number of consecutive underloads is greater than the preset number, the data sending device amplifies the current congestion window based on a second window amplification parameter to obtain a target congestion window, wherein the first window amplification parameter is less than the second window amplification parameter. The preset number can be set as needed, for example, set to 3.
[0174] In the above embodiment, when the current number of consecutive underloads is less than or equal to a preset number, the current congestion window is enlarged based on a first window enlargement parameter. When the current number of consecutive underloads is greater than the preset number, the current congestion window is enlarged based on a second window enlargement parameter, where the first window enlargement parameter is less than the second window enlargement parameter. In this way, when the network is underloaded multiple times in a row, increasing the intensity of congestion window adjustment can improve network bandwidth utilization.
[0175] In one embodiment, when the target load information is less than or equal to the reference load information, determining that the current network state is an underload state includes:
[0176] When the target load information is less than or equal to the reference load information, and the time interval between the current time and the adjacent congestion window adjustment time is greater than the preset time interval, it is determined that the current network state is an underload state.
[0177] The preset time interval can be set as needed. For example, the preset time interval can be set to the network idle RTT. The adjacent congestion window adjustment time refers to the time of the last congestion window adjustment. If the data sender adjusts the congestion window periodically, the adjacent congestion window adjustment time refers to the time of the congestion window adjustment in the previous cycle.
[0178] Specifically, the data transmitter may periodically adjust the congestion window. Only when the target load information is less than or equal to the reference load information and the current time reaches the congestion window update period does the data transmitter determine that the current network state is underloaded and increment the historical consecutive underload count by 1. If the data transmitter periodically adjusts the congestion window, the historical consecutive underload count refers to the number of historical consecutive underload cycles, and the current consecutive underload count refers to the current number of consecutive underload cycles. It will be appreciated that multiple response packets may be received within the window adjustment period. In this case, it is not necessary to frequently update the congestion window based on the target load information carried in each response packet. The congestion window and the historical consecutive underload count can be maintained unchanged. Only when the time interval between the current time and the adjacent congestion window adjustment time is greater than a preset time interval, i.e., when the current time reaches the congestion window update period, is the current network state determined to be underloaded based on the latest received target load information? If the target load information is less than or equal to the reference load information, the current network state is determined to be underloaded, and the historical consecutive underload count needs to be updated. The congestion window is then adjusted based on the updated current consecutive underload count.
[0179] In one embodiment, when the target load information is less than or equal to the reference load information, and the time interval between the current time and the adjacent congestion window adjustment time is less than or equal to a preset time interval, the current congestion window is used as the target congestion window. Specifically, if the current time has not reached the congestion window update time, even if the target load information is less than or equal to the reference load information, the current congestion window remains unchanged and is directly used as the target congestion window.
[0180] In the above embodiment, the current network state is determined to be an underload state only when the target load information is less than or equal to the reference load information and the time interval between the current time and the adjacent congestion window adjustment time is greater than the preset time interval. Determining the underload state through multiple conditions can ensure the accuracy of the underload state determination.
[0181] In one embodiment, when the current number of consecutive underloads is less than or equal to a preset number, the current congestion window is enlarged based on the first window enlargement parameter to obtain a target congestion window, including:
[0182] A first window enlargement parameter is obtained based on a ratio of a preset parameter to a current congestion window; the first window enlargement parameter decreases as the current congestion window increases; and the first window enlargement parameter and the current congestion window are fused to obtain a target congestion window.
[0183] The preset parameters can be set as needed. The preset parameters corresponding to different data transmission links can be the same or different. If different data transmission links correspond to the same preset parameters, adjusting the current congestion window based on the preset parameters can ensure fairness in adjusting the different congestion windows. Data flows with large congestion windows will see a smaller increase in congestion capacity, while data flows with small congestion windows will see a larger increase in congestion capacity. Ultimately, all data flows will share all bandwidth fairly.
[0184] Specifically, when the current number of consecutive underruns is less than or equal to a preset number, the data sending device may use the ratio of the preset parameter to the current congestion window as a first window magnification parameter. The first window magnification parameter decreases as the current congestion window increases, that is, the larger the current congestion window, the smaller the first window magnification parameter. The data sending device may combine the first window magnification parameter and the current congestion window to obtain a target congestion window, for example, using the sum of the first window magnification parameter and the current congestion window as the target congestion window.
[0185] In one embodiment, when the current number of consecutive underloads is less than or equal to a preset number, the current congestion window can be enlarged according to the following formula:
[0186] If L≤1, stage≤3,
[0187] Among them, L represents the load rate, stage represents the current number of consecutive underloads, and W C represents the current congestion window, which is the congestion window obtained after the last window adjustment. W represents the target congestion window, that is, the congestion window that controls the packet sending speed next. θ represents the preset parameter, θ / W C Indicates the first window magnification parameter.
[0188] In one embodiment, the second window magnification parameter is determined based on the target load information, and the second window magnification parameter decreases as the target load information increases.
[0189] Specifically, when the current number of consecutive underloads is less than or equal to a preset number, the data sending device may determine a second window magnification parameter based on the target load information, where the second window magnification parameter decreases as the target load information increases. The data sending device may multiply the second window magnification parameter by the current congestion window to obtain a target congestion window.
[0190] In one embodiment, when the current number of consecutive underloads is greater than a preset number, the current congestion window can be enlarged according to the following formula:
[0191] If L≤1, stage>3,
[0192] Among them, L represents the load rate, 1 / L represents the second window magnification parameter, stage represents the current number of consecutive underloads, and W C The current congestion window is the congestion window obtained after the last window adjustment. W is the target congestion window, which is the congestion window that controls the packet sending speed.
[0193] It can be understood that when the current number of consecutive underloads is less than or equal to the preset number, the congestion window is additively adjusted, and when the current number of consecutive underloads is greater than the preset number, the congestion window is multiplicatively adjusted, and the adjustment amplitude of the additive congestion window is smaller than the adjustment amplitude of the multiplicative congestion window.
[0194] 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 window adjustment parameter to obtain the target congestion window includes:
[0195] The current congestion window corresponding to the target data flow identifier is adjusted based on the window adjustment parameter to obtain a target congestion window corresponding to the target data flow identifier.
[0196] Specifically, in a data sending device, different data streams can correspond to different congestion windows. Therefore, when adjusting the congestion window, the corresponding congestion window can be adjusted based on the corresponding load rate to achieve precise adjustment. The data sending device can determine the network status of the data transmission link corresponding to the target data stream identifier based on the target data stream identifier carried in the response data packet, and then adjust the current congestion window corresponding to the target data stream identifier based on the window adjustment parameter determined based on the target load information to obtain the target congestion window corresponding to the target data stream identifier. The congestion window adjustment process can refer to the contents of the aforementioned relevant embodiments.
[0197] For example, user A sending a conversation message on a social application and user A requesting to browse a web page through a browser correspond to different data flows. The conversation message and the browsing request reach their respective data recipients through different data transmission links.
[0198] In the above embodiment, adjusting the current congestion window corresponding to the target data flow identifier based on the window adjustment parameter can achieve accurate and targeted adjustment.
[0199] In one embodiment, Figure 5As shown, a network congestion data processing system is provided, which includes a data sending device 502, a data transfer device 504 and a data receiving device 506.
[0200] The data sending device 502 is used to obtain an initial data packet and send the initial data packet to the data transfer device; the initial data packet carries initial load information.
[0201] The data transfer device 504 is used to update the initial data packet based on the current load information, obtain the intermediate data packet, and send the intermediate data packet to the data receiving device; the intermediate data packet carries the target load information determined based on the current load information and the initial load information. The current load information is based on the data sending volume, data queuing change and reference network load of the target transfer port corresponding to the initial data packet in the current time period. The target transfer port is the port on the data transfer device used to send data packets.
[0202] The data sending device 502 is also used to obtain a response data packet carrying target load information returned by the data receiving device, determine a window adjustment parameter based on a comparison result of the target load information and the reference load information, adjust the current congestion window based on the window adjustment parameter, and obtain a target congestion window.
[0203] It can be understood that the specific data processing process of the data sending device and the data transfer device can refer to the methods described in the aforementioned relevant embodiments.
[0204] In the above-mentioned network congestion data processing system, when calculating the current load information, the data sending volume can reflect the current network status of the target transit port, the data queuing change can reflect the changing trend of the network status, and the reference network load can reflect the reference network status. Therefore, the current load information calculated based on the data sending volume, the data queuing change and the reference network load can reflect the comprehensive network status of the target transit port from the present to the future. The accuracy of this load information is relatively high, which helps to improve the accuracy of network congestion judgment. After the data sending device receives the response data packet, it can accurately adjust the current congestion window based on the latest acquired load information.
[0205] In a specific embodiment, the network congestion data processing method can be applied to a data center network. Figure 6 The solution of this application is deployed on both the end-side server and the network switch of the network, achieving the desired goal through the collaboration between the end-side and the network. On the end-side server, this solution is deployed in the transport layer to control the sending rate of the data stream by adjusting the congestion window. The network congestion data processing method specifically includes the following steps:
[0206] 1. When a data packet is sent from the sender, a specific LH (Load Header) load rate header is inserted into the data packet, in which the forward load rate FL and the reverse load rate BL are initialized to 0.
[0207] 2. When a data packet is sent from the outbound port of the switch, the switch detects the port load rate PL and the data packet's FL. If PL>FL, FL is updated with PL.
[0208] 3. After the data packet arrives at the receiving end, the receiving end extracts the FL of the data packet.
[0209] 4. The receiving server generates a response packet (Ack packet) and writes the extracted FL into the BL area of the response packet.
[0210] Specifically, switches in the network periodically update the load rate PL of the port based on the following formula.
[0211]
[0212] I=TxBytes+Qlen-LastQlen
[0213] PL=L*64
[0214] 5. The acknowledgment packet arrives at the sender. The sender extracts the BL of the acknowledgment packet and adjusts the congestion window based on the BL.
[0215] Specifically, the sender can adjust the congestion window based on the following formula.
[0216] L=BL / 64
[0217] If L>1,
[0218] If L≤1, stage≤3,
[0219] If L≤1, stage>3,
[0220] If L ≤ 1, and the current time - the congestion window update time of the previous cycle > the network idle RTT, then stage + 1. If L ≤ 1, and the current time - the congestion window update time of the previous cycle ≤ the network idle RTT, then the stage remains unchanged, W remains unchanged, and W = Wc.
[0221] Through this solution's load rate calculation method and the assistance of switches, we can accurately perceive network congestion. Furthermore, through this solution's window adjustment method, we can control network queuing to an extremely low level while maintaining near 100% bandwidth utilization and excellent data flow fairness.
[0222] This solution can achieve the best performance in terms of bandwidth utilization, queue accumulation and flow fairness, achieving high bandwidth utilization, low queue accumulation and excellent flow fairness. In particular, we compared the performance of DCQCN (Data Center Quantized Congestion Notification, a data center quantized congestion control algorithm), HPCC (High Precision Congestion Control, a high-precision congestion control algorithm) and this solution through simulation. We conducted an 8-to-1 Incast test in a data center network similar to a Fattree (fat tree topology) and used the Figure 7 , 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.
[0223] Simulation performance results reference Figure 8A 、 Figure 8B 、 Figure 8C , Figure 8A is the simulation result of DCQCN, Figure 8B is the simulation result of HPCC, Figure 8C This is the simulation result of this scheme. Figure 8A 、 Figure 8B 、 Figure 8C From left to right, the flow rate / window change, bottleneck bandwidth and bottleneck queue height are shown in the figure. Figure 8A 、 Figure 8B 、 Figure 8C 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 8A 、 Figure 8B 、 Figure 8COnly the bottleneck bandwidth and bottleneck queue height of 38 switches are shown.
[0224] From the simulation results, we can see that the flow rate of DCQCN varies greatly, and the rate distribution is unfair. The bandwidth is obviously insufficient near the end, and the switch packet accumulation fluctuates between 100KB and 500KB throughout the process. The data flow rate of the HPCC solution is slightly fairer than that of DCQCN, but its switch bandwidth fluctuates significantly, resulting in a loss of throughput. At the same time, the switch queue accumulation remains above 250KB for a long time at the beginning, which is still relatively high, and then fluctuates around 30KB. In contrast, the data flow window size under the control of this solution is very uniform and the fairness is very good. At the same time, the switch bandwidth is maintained at 100%, and the switch queue accumulation fluctuates around 10KB. Through the network congestion data processing method of the present application, while eliminating congestion (packet accumulation) in the data network, it is possible to maintain high network bandwidth utilization and fairness between data flows.
[0225] It should be understood that although Figure 2 、 Figure 4 The steps in the flowchart are shown in sequence as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified in this document, there is no strict order restriction for the execution of these steps, and these steps can be executed in other orders. In addition, Figure 2 、 Figure 4 At least part of the steps may include multiple steps or multiple stages. These steps or stages are not necessarily performed at the same time, but can be performed at different times. The order of execution of these steps or stages is not necessarily one by one, but can be performed in turn or alternately with other steps or at least part of the steps or stages in other steps.
[0226] In one embodiment, Figure 9 As shown, a network congestion data processing device is provided. The device can be a software module or a hardware module, or a combination of the two to form a part of a computer device. The device specifically includes: an initial data packet acquisition module 902, a current network load determination module 904, a current load information determination module 906, a data packet update module 908, and a response data packet sending module 910, wherein:
[0227] The initial data packet acquisition module 902 is used to acquire the initial data packet sent by the data sending device; the initial data packet carries initial load information;
[0228] Current network load determination module 904 is configured to determine the current network load based on the data transmission volume and data queue change of the target transit port corresponding to the initial data packet in the current time period; the target transit port is the port on the data transit device used to send data packets;
[0229] A current load information determination module 906 is configured to obtain current load information based on the current network load of the target transit port in the current time period and the reference network load;
[0230] The data packet updating module 908 is configured to update the initial data packet based on the current load information, obtain an intermediate data packet, and send the intermediate data packet to the data receiving device; the intermediate data packet carries target load information determined based on the current load information and the initial load information;
[0231] The response data packet sending module 910 is configured to send the response data packet carrying the target load information returned from the data receiving device to the data sending device, so that the data sending device adjusts the congestion window based on the target load information.
[0232] The above-mentioned network congestion data processing device, when calculating the current load information, the data sending volume can reflect the current network status of the target transit port, the data queuing change can reflect the changing trend of the network status, and the reference network load can reflect the reference network status. The current load information calculated based on the data sending volume, the data queuing change and the reference network load can reflect the comprehensive network status of the target transit port from the present to the future. The accuracy of this load information is relatively high, which helps to improve the accuracy of network congestion judgment. After the data sending device receives the response data packet, it can accurately adjust the current congestion window based on the latest acquired load information.
[0233] In one embodiment, the current network load determination module is also used to obtain the initial queue height and target queue height of the target transit port in the current time period; based on the difference between the initial queue height and the target queue height, the data queue change is obtained, and the intermediate network load is obtained by fusing the data queue change and the data sending amount; and the current network load is obtained based on the intermediate network load and the target queue height.
[0234] In one embodiment, the current network load determination module is also used to obtain the attention weights corresponding to the intermediate network load and the target queue height respectively; the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target queue height; based on the attention weight, the intermediate network load and the target queue height are fused to obtain the current network load.
[0235] In one embodiment, the current load information determination module is further configured to obtain a reference network load based on bandwidth information corresponding to the target transit port and the current time period; and obtain current load information based on a ratio of the current network load to the reference network load.
[0236] In one embodiment, the current load information determination module is further configured to adjust the reference network load based on the bandwidth utilization ratio to obtain an updated network load; and obtain the current load information based on a ratio of the current network load to the updated network load.
[0237] In one embodiment, the initial data packet carries a target data flow identifier, the data transfer device includes at least one candidate transfer port corresponding to the candidate data flow identifier, and each candidate transfer port includes at least one data queue corresponding to the candidate data flow identifier. The current network load determination module is further configured to use the candidate transfer port corresponding to the target data flow identifier as the target transfer port; in the target transfer port, use the data queue corresponding to the target data flow identifier as the target queue; and obtain the current network load based on the data transmission volume and data queue change of the target queue in the current time period. The current load information determination module is further configured to obtain current load information based on the current network load of the target queue in the current time period and a reference network load.
[0238] In one embodiment, the current load information determination module is also used to replace the initial load information in the initial data packet based on the current load information to obtain an intermediate data packet when the current load information is greater than the initial load information, and the target load information is the current load information; when the current load information is less than or equal to the initial load information, the initial data packet is used as the intermediate data packet, and the target load information is the initial load information.
[0239] In one embodiment, the initial data packet, the intermediate data packet and the response data packet all include a sending information carrying field and a response information carrying field, the initial load information is located in the sending information carrying field of the initial data packet, the target load information is located in the sending information carrying field of the intermediate data packet, and the target load information is located in the response information carrying field of the response data packet.
[0240] In one embodiment, Figure 10 As shown, a network congestion data processing device is provided. The device can be a software module or a hardware module, or a combination of the two to form a part of a computer device. The device specifically includes: a first data packet acquisition module 1002, a data packet sending module 1004, a second data packet acquisition module 1006 and a congestion window adjustment module 1008, wherein:
[0241] The first data packet acquisition module 1002 is configured to acquire an initial data packet; the initial data packet carries initial payload information.
[0242] The data packet sending module 1004 is configured to send the initial data packet to the data transfer device, so that the data transfer device sends the initial data packet to the data receiving device.
[0243] The second data packet acquisition module 1006 is used to obtain the response data packet returned by the data receiving device; the response data packet carries target load information, and the target load information is determined by the data transfer device based on the current load information and the initial load information. The current load information is based on the data sending volume, data queuing change and reference network load of the target transfer port corresponding to the initial data packet in the current time period. The target transfer port is the port on the data transfer device used to send data packets.
[0244] The congestion window adjustment module 1008 is configured to determine a window adjustment parameter based on a comparison result between the target load information and the reference load information, and adjust the current congestion window based on the window adjustment parameter to obtain a target congestion window.
[0245] The above-mentioned network congestion data processing device, when calculating the current load information, the data sending volume can reflect the current network status of the target transit port, the data queuing change can reflect the changing trend of the network status, and the reference network load can reflect the reference network status. The current load information calculated based on the data sending volume, the data queuing change and the reference network load can reflect the comprehensive network status of the target transit port from the present to the future. The accuracy of this load information is relatively high, which helps to improve the accuracy of network congestion judgment. After the data sending device receives the response data packet, it can accurately adjust the current congestion window based on the latest acquired load information.
[0246] In one embodiment, the congestion window adjustment module includes:
[0247] a window reduction unit, configured to, when the target load information is greater than the reference load information, determine the window adjustment parameter as the window reduction parameter, and reduce the current congestion window based on the window reduction parameter to obtain a target congestion window;
[0248] The window enlargement unit is configured to, when the target load information is less than or equal to the reference load information, determine the window adjustment parameter as the window enlargement parameter, and enlarge the current congestion window based on the window enlargement parameter to obtain the target congestion window.
[0249] In one embodiment, the window reduction unit is also used to generate a window reduction parameter based on the target load information when the target load information is greater than the reference load information; the window reduction parameter increases as the target load information increases; and the target congestion window is obtained based on the ratio of the current congestion window and the window reduction parameter.
[0250] In one embodiment, the window magnification unit is also used to determine that the current network state is an underload state when the target load information is less than or equal to the reference load information; update the historical continuous underload number based on the current network state to obtain the current continuous underload number; the historical continuous underload number is obtained by counting the number of times the adjacent network state corresponding to the current network state is continuously in the underload state; when the current continuous underload number is less than or equal to the preset number, magnify the current congestion window based on the first window magnification parameter to obtain the target congestion window; when the current continuous underload number is greater than the preset number, magnify the current congestion window based on the second window magnification parameter to obtain the target congestion window; the first window magnification parameter is less than the second window magnification parameter.
[0251] In one embodiment, the window enlargement unit is further configured to determine that the current network state is an underload state when the target load information is less than or equal to the reference load information and the time interval between the current time and the adjacent congestion window adjustment time is greater than a preset time interval.
[0252] In one embodiment, the window magnification unit is further used to obtain a first window magnification parameter based on a ratio of a preset parameter and a current congestion window; the first window magnification parameter decreases as the current congestion window increases; and the first window magnification parameter and the current congestion window are combined to obtain a target congestion window.
[0253] In one embodiment, the second window magnification parameter is determined based on the target load information, and the second window magnification parameter decreases as the target load information increases.
[0254] In one embodiment, the initial data packet and the response data packet carry a target data flow identifier. The congestion window adjustment module is further configured to adjust a current congestion window corresponding to the target data flow identifier based on the window adjustment parameter to obtain a target congestion window corresponding to the target data flow identifier.
[0255] The specific definition of the network congestion data processing device can be found in the definition of the network congestion data processing method above and will not be repeated here. Each module in the network congestion data processing device described above can be implemented in whole or in part through software, hardware, or a combination thereof. Each of the modules described above can be embedded in or independent of a processor in a computer device in hardware form, or can be stored in a memory in the computer device in software form, so that the processor can call and execute the corresponding operations of each module.
[0256] 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 11As 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 congestion window and reference load information. 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.
[0257] 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 12 As shown. The computer device includes a processor, a memory, a communication interface, a display screen and an input device connected via a system bus. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The communication interface of the computer device is used to communicate with an external terminal in a wired or wireless manner, and the wireless manner can be achieved through WIFI, an operator network, NFC (near field communication) or other technologies. When the computer program is executed by the processor, a network congestion data processing method is implemented. The display screen of the computer device can be a liquid crystal display screen or an electronic ink display screen, and the input device of the computer device can be a touch layer covering the display screen, or a button, trackball or touchpad provided on the computer device housing, or an external keyboard, touchpad or mouse.
[0258] Those skilled in the art will understand that Figure 11 、 12 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.
[0259] 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.
[0260] 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.
[0261] 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.
[0262] Those skilled in the art will appreciate that all or part of the processes in the above-mentioned embodiment methods can be implemented by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in this application may include at least one of non-volatile and volatile memory. Non-volatile memory may include read-only memory (ROM), magnetic tape, floppy disk, flash memory or optical memory, etc. Volatile memory may include random access memory (RAM) or external cache memory. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM).
[0263] 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.
[0264] The above-described embodiments merely represent several implementation methods of the present application. While the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the present invention. It should be noted that a person skilled in the art could make various modifications and improvements without departing from the spirit of the present application, all of which fall within the scope of protection of the present application. Therefore, the scope of protection of the present patent application shall be determined by the appended claims.
Claims
1. A method for processing network congestion data, characterized in that: Applied to a data transfer device, the method includes: Acquire an initial data packet sent by a data sending device; the initial data packet carries initial load information; Obtaining a current network load based on a data transmission volume and a data queue change volume of a target transit port corresponding to the initial data packet in a current time period, including: obtaining an initial queue height and a target queue height of the target transit port in the current time period, obtaining a data queue change volume based on a difference between the initial queue height and the target queue height, fusing the data queue change volume and the data transmission volume to obtain an intermediate network load volume, and obtaining the current network load volume based on the intermediate network load volume and the target queue height; the target transit port is a port on the data transit device used to send data packets; Obtaining current load information based on the current network load of the target transit port in the current time period and a reference network load; updating the initial data packet based on the current load information to obtain an intermediate data packet, and sending the intermediate data packet to a data receiving device; the intermediate data packet carries target load information determined based on the current load information and the initial load information; The response data packet returned from the data receiving device and carrying the target load information is sent to the data sending device, so that the data sending device adjusts the congestion window based on the target load information.
2. The method according to claim 1, characterized in that The initial queue height is the queue height in the target transit port at the start time of the current time period, and the target queue height is the queue height in the target transit port at the end time of the current time period.
3. The method according to claim 1, characterized in that The obtaining the current network load based on the intermediate network load and the target queue height includes: Obtaining attention weights corresponding to the intermediate network load and the target queue height, respectively; the attention weight corresponding to the intermediate network load is greater than the attention weight corresponding to the target queue height; Based on the attention weight, the intermediate network load and the target queue height are fused to obtain the current network load.
4. The method according to claim 1, wherein The obtaining of current load information based on the current network load of the target transit port in the current time period and the reference network load includes: Obtaining the reference network load based on the bandwidth information corresponding to the target transit port and the current time period; The current load information is obtained based on a ratio of the current network load to the reference network load.
5. The method according to claim 4, characterized in that The obtaining the current load information based on a ratio of the current network load to the reference network load includes: Adjusting the reference network load based on the bandwidth utilization ratio to obtain an updated network load; The current load information is obtained based on a ratio of the current network load and the updated network load.
6. The method according to any one of claims 1 to 5, characterized in that The initial data packet carries a target data flow identifier, the data transfer device includes at least one candidate transfer port corresponding to the candidate data flow identifier, and each candidate transfer port includes at least one data queue corresponding to the candidate data flow identifier; The obtaining of the current network load based on the data transmission amount and the data queuing change amount of the target transit port corresponding to the initial data packet in the current time period, and the obtaining of the current load information based on the current network load and the reference network load of the target transit port in the current time period include: Using the candidate transit port corresponding to the target data flow identifier as the target transit port; In the target transit port, the data queue corresponding to the target data flow identifier is used as the target queue; Obtaining the current network load based on the data transmission volume and data queuing change volume of the target queue in the current time period; The current load information is obtained based on the current network load of the target queue in the current time period and the reference network load.
7. The method according to any one of claims 1 to 5, characterized in that The updating of the initial data packet based on the current load information to obtain an intermediate data packet includes: When the current load information is greater than the initial load information, replacing the initial load information in the initial data packet based on the current load information to obtain the intermediate data packet, wherein the target load information is the current load information; When the current load information is less than or equal to the initial load information, the initial data packet is used as the intermediate data packet, and the target load information is the initial load information.
8. The method according to any one of claims 1 to 5, characterized in that The initial data packet, the intermediate data packet and the response data packet all include a sending information carrying field and a response information carrying field, the initial load information is located in the sending information carrying field of the initial data packet, the target load information is located in the sending information carrying field of the intermediate data packet, and the target load information is located in the response information carrying field of the response data packet.
9. A method for processing network congestion data, characterized in that: Applied to a data sending device, the method includes: Obtaining an initial data packet; the initial data packet carries initial payload information; Sending the initial data packet to a data transfer device, so that the data transfer device sends the initial data packet to a data receiving device; Obtaining a response data packet returned by the data receiving device; the response data packet carries target load information, the target load information is determined by the data transfer device based on current load information and the initial load information, the current load information being obtained based on the current network load of the target transfer port corresponding to the initial data packet in the current time period and a reference network load; the current network load being obtained based on a difference between an initial queue height and a target queue height of the target transfer port in the current time period, obtaining a data queue variation, fusing the data queue variation and a data transmission volume of the target transfer port in the current time period to obtain an intermediate network load, obtained based on the intermediate network load and the target queue height; the target transfer port being a port on the data transfer device used to send data packets; A window adjustment parameter is determined based on a comparison result of the target load information and the reference load information, and a current congestion window is adjusted based on the window adjustment parameter to obtain a target congestion window.
10. The method according to claim 9, characterized in that The determining of a window adjustment parameter based on a comparison result of the target load information and the reference load information, and adjusting the current congestion window based on the window adjustment parameter to obtain a target congestion window, includes: When the target load information is greater than the reference load information, determining that the window adjustment parameter is a window reduction parameter, and reducing the current congestion window based on the window reduction parameter to obtain the target congestion window; When the target load information is less than or equal to the reference load information, the window adjustment parameter is determined to be a window enlargement parameter, and the current congestion window is enlarged based on the window enlargement parameter to obtain the target congestion window.
11. The method according to claim 10, characterized in that When the target load information is greater than the reference load information, determining that the window adjustment parameter is a window reduction parameter, and reducing the current congestion window based on the window reduction parameter to obtain the target congestion window, includes: When the target load information is greater than the reference load information, generating the window reduction parameter based on the target load information; the window reduction parameter increases as the target load information increases; The target congestion window is obtained based on a ratio of the current congestion window and the window reduction parameter.
12. The method according to claim 10, characterized in that When the target load information is less than or equal to the reference load information, determining that the window adjustment parameter is a window magnification parameter, and magnifying the current congestion window based on the window magnification parameter to obtain the target congestion window, includes: When the target load information is less than or equal to the reference load information, determining that the current network state is an underload state; Based on the current network state, the historical continuous underload number is updated to obtain the current continuous underload number; the historical continuous underload number is obtained by counting the number of times the adjacent network state corresponding to the current network state is continuously in the underload state; When the current number of consecutive underloads is less than or equal to a preset number, enlarging the current congestion window based on a first window enlargement parameter to obtain the target congestion window; When the current number of consecutive underloads is greater than a preset number, the current congestion window is enlarged based on a second window enlargement parameter to obtain the target congestion window; the first window enlargement parameter is smaller than the second window enlargement parameter.
13. The method according to claim 12, characterized in that When the target load information is less than or equal to the reference load information, determining that the current network state is an underload state includes: When the target load information is less than or equal to the reference load information, and the time interval between the current time and the adjacent congestion window adjustment time is greater than a preset time interval, it is determined that the current network state is an underload state.
14. The method according to claim 12, characterized in that When the current number of consecutive underloads is less than or equal to a preset number, enlarging the current congestion window based on a first window enlargement parameter to obtain the target congestion window includes: obtaining the first window enlargement parameter based on a ratio of a preset parameter to a current congestion window; wherein the first window enlargement parameter decreases as the current congestion window increases; The first window magnification parameter and the current congestion window are fused to obtain the target congestion window.
15. The method according to claim 12, characterized in that The second window enlargement parameter is determined based on the target load information, and the second window enlargement parameter decreases as the target load information increases.
16. The method according to any one of claims 9 to 15, characterized in that The initial data packet and the response data packet carry a target data flow identifier, and the adjusting the current congestion window based on the window adjustment parameter to obtain a target congestion window includes: The current congestion window corresponding to the target data flow identifier is adjusted based on the window adjustment parameter to obtain a target congestion window corresponding to the target data flow identifier.
17. A network congestion data processing system, characterized in that: The system comprises: A data sending device, configured to obtain an initial data packet and send the initial data packet to a data transfer device; the initial data packet carries initial load information; A data transfer device, configured to update the initial data packet based on current load information to obtain an intermediate data packet, and send the intermediate data packet to a data receiving device; the intermediate data packet carries target load information determined based on the current load information and the initial load information, the current load information being obtained based on a current network load of a target transfer port corresponding to the initial data packet in a current time period and a reference network load; the current network load being obtained based on a data queue variation obtained by a difference between an initial queue height and a target queue height of the target transfer port in the current time period, and an intermediate network load being obtained by fusing the data queue variation with a data transmission volume of the target transfer port in the current time period, the intermediate network load being obtained based on the intermediate network load and the target queue height; the target transfer port being a port on the data transfer device for sending data packets; The data sending device is further used to obtain a response data packet returned by the data receiving device and carrying the target load information, determine a window adjustment parameter based on a comparison result of the target load information and reference load information, and adjust the current congestion window based on the window adjustment parameter to obtain a target congestion window.
18. A network congestion data processing device, characterized in that: The device comprises: An initial data packet acquisition module, configured to acquire an initial data packet sent by a data sending device; the initial data packet carries initial load information; a current network load determination module, configured to obtain the current network load based on the data transmission volume and data queue variation of the target transit port corresponding to the initial data packet in the current time period, comprising: obtaining the initial queue height and target queue height of the target transit port in the current time period, obtaining the data queue variation based on the difference between the initial queue height and the target queue height, fusing the data queue variation and the data transmission volume to obtain an intermediate network load, and obtaining the current network load based on the intermediate network load and the target queue height; the target transit port is a port on a data transit device used to send data packets; a current load information determining module, configured to obtain current load information based on a current network load of the target transit port in the current time period and a reference network load; a data packet updating module, configured to update the initial data packet based on the current load information to obtain an intermediate data packet, and send the intermediate data packet to a data receiving device; the intermediate data packet carries target load information determined based on the current load information and the initial load information; The response data packet sending module is used to send the response data packet returned from the data receiving device and carrying the target load information to the data sending device, so that the data sending device adjusts the congestion window based on the target load information.
19. A network congestion data processing device, characterized in that: The device comprises: A first data packet acquisition module is configured to acquire an initial data packet, wherein the initial data packet carries initial payload information; A data packet sending module, configured to send the initial data packet to a data transfer device, so that the data transfer device sends the initial data packet to a data receiving device; a second data packet acquisition module configured to acquire a response data packet returned by the data receiving device; the response data packet carries target load information, the target load information being determined by the data transfer device based on current load information and the initial load information, the current load information being obtained based on a current network load of a target transfer port corresponding to the initial data packet in a current time period and a reference network load; the current network load being obtained based on a data queue variation obtained by merging the data queue variation with a data transmission volume of the target transfer port in the current time period, and an intermediate network load being obtained based on the intermediate network load and the target queue height; the target transfer port being a port on the data transfer device used to send data packets; The congestion window adjustment module is configured to determine a window adjustment parameter based on a comparison result between the target load information and the reference load information, and adjust the current congestion window based on the window adjustment parameter to obtain a target congestion window.
20. 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 8 or 9 to 16 are implemented.
21. 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 8 or 9 to 16 are implemented.
22. 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 8 or 9 to 16 are implemented.
Citation Information
Patent Citations
Method for controlling fluid based on router virtual display load feedback in high-speed network
CN101075960A
Transport layer congestion control method capable of displaying and feeding back sliding average value of congestion level
CN106911583A