Network congestion data processing method and device, computer equipment and storage medium

By entering the target adjustment state when the network is congested, updating the bandwidth upper limit and the time delay lower limit, determining the target congestion window, and transmitting data based on the target congestion window, the problem of blindly reducing the congestion window in the prior art affecting data transmission efficiency is solved, and more efficient data transmission is achieved.

CN119814661APending Publication Date: 2025-04-11TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202311309474.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-10-10
Publication Date
2025-04-11

AI Technical Summary

Technical Problem

The prior art blindly narrows the congestion window when the network is congested, affecting the data transmission efficiency.

Method used

When packet loss occurs in the bandwidth detection state, the target adjustment state is entered. By updating the bandwidth upper limit and the time delay lower limit, the target congestion window is determined, and data transmission is carried out according to the target congestion window.

Benefits of technology

It improves data transmission efficiency, flexibly deals with various packet loss situations, and avoids low data transmission efficiency caused by blindly narrowing the congestion window.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119814661A_ABST
    Figure CN119814661A_ABST
Patent Text Reader

Abstract

The invention relates to a network congestion data processing method and device, computer equipment, a storage medium and a computer program product. The embodiment of the invention can be applied to various scenes such as cloud technology, artificial intelligence, intelligent traffic, auxiliary driving and the like. The method comprises the following steps: when packet loss occurs in a data transmission link in a bandwidth detection state, entering a target adjustment state; determining an updated congestion window corresponding to the current congestion window of the data transmission link based on the current response data packet of the data transmission link; determining a target congestion window of the data transmission link from a first congestion window obtained by increasing the current congestion window based on the current response data packet and a second congestion window obtained by reducing and updating the congestion window based on a preset window adjustment parameter; and transmitting data based on the target congestion window, controlling switching of a bandwidth detection state based on a data transmission result, and exiting the target adjustment state until the in-transit data volume on the data transmission link meets a preset condition. Therefore, the data transmission efficiency can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a network congestion data processing method, apparatus, computer equipment, storage medium and computer program product. 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 in the network, due to the limited network carrying capacity, the network transmission performance will be reduced and network congestion will occur.

[0003] In traditional technology, once packet loss is detected in the network, the congestion window is usually reduced to reduce the packet sending speed. However, blindly reducing the congestion window when packet loss occurs will affect data transmission efficiency and lead to low data transmission efficiency. Summary of the invention

[0004] Based on this, it is necessary to provide a network congestion data processing method, device, computer equipment, computer-readable storage medium and computer program product that can improve data transmission efficiency in response to the above technical problems.

[0005] The present application provides a method for processing network congestion data, comprising:

[0006] When a packet loss event occurs in the data transmission link in the bandwidth detection state, the target adjustment state is entered; the bandwidth detection state is used to detect the bandwidth upper limit of the data transmission link during the data transmission process;

[0007] Based on the current response data packet of the data transmission link, the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link are updated, and based on the updated current bandwidth upper limit and the current data transmission delay lower limit, an updated congestion window corresponding to the current congestion window of the data transmission link is obtained;

[0008] Based on the current response data packet, the current congestion window is increased to obtain a first congestion window, based on a preset window adjustment parameter, the updated congestion window is reduced to obtain a second congestion window, and a target congestion window of the data transmission link is determined from the first congestion window and the second congestion window;

[0009] Data transmission is performed based on the target congestion window to obtain a target response data packet, and the switching of the bandwidth detection state is controlled based on the target response data packet until the amount of in-transit data on the data transmission link meets a preset condition, and the target adjustment state is exited.

[0010] The present application also provides a network congestion data processing device, comprising:

[0011] An entry module is used to enter a target adjustment state when a packet loss event occurs in a data transmission link in a bandwidth detection state; the bandwidth detection state is used to detect a bandwidth upper limit of the data transmission link during data transmission;

[0012] An updating module, configured to update a current bandwidth upper limit and a current data transmission delay lower limit of the data transmission link based on a current response data packet of the data transmission link, and obtain an updated congestion window corresponding to a current congestion window of the data transmission link based on the updated current bandwidth upper limit and current data transmission delay lower limit;

[0013] A determination module, configured to increase the current congestion window based on the current response data packet to obtain a first congestion window, reduce the updated congestion window based on a preset window adjustment parameter to obtain a second congestion window, and determine a target congestion window of the data transmission link from the first congestion window and the second congestion window;

[0014] A transmission module is used to transmit data based on the target congestion window, obtain a target response data packet, and control the switching of the bandwidth detection state based on the target response data packet until the amount of in-transit data on the data transmission link meets a preset condition, and then exit the target adjustment state.

[0015] In one embodiment, the next state of the bandwidth detection state is the delay detection state, and the delay detection state is used to detect the lower limit of the data transmission delay of the data transmission link with a preset congestion window during the data transmission process. The network congestion data processing device is also used to:

[0016] When switching from the delay detection state to other states, the congestion control period of the data transmission link is updated.

[0017] In one embodiment, the entry module is further configured to:

[0018] When a packet loss event occurs in the data transmission link in the bandwidth detection state, and the current congestion control cycle in the bandwidth detection state is at least the second congestion control cycle, the target adjustment state is entered.

[0019] In one embodiment, the entry module 1202 is further configured to:

[0020] When a packet loss event occurs in the data transmission link in the bandwidth detection state, and the current congestion control cycle of the bandwidth detection state is at least the second congestion control cycle, and the time interval between the current time and the last target adjustment state exit time is greater than the reference time interval, enter the target adjustment state;

[0021] The reference time interval is determined based on the data transmission delay corresponding to the packet loss event.

[0022] In one embodiment, the update module is further configured to:

[0023] Determine the current bandwidth and the current data transmission delay of the data transmission link based on the current response data packet of the data transmission link;

[0024] From the current bandwidth and the current bandwidth upper limit of the data transmission link, a maximum value is obtained as the updated current bandwidth upper limit of the data transmission link;

[0025] From the current data transmission delay and the lower limit of the current data transmission delay of the data transmission link, a minimum value is obtained as the updated lower limit of the current data transmission delay of the data transmission link.

[0026] In one embodiment, the determination module is further configured to:

[0027] Determine the current amount of non-packet-lost data based on the current response data packet, and increase the current congestion window based on the current amount of non-packet-lost data to obtain a first congestion window;

[0028] Using the preset window adjustment parameter as a reduction factor, fusing the reduction factor and the updated congestion window to obtain a second congestion window;

[0029] A minimum congestion window is obtained from the first congestion window and the second congestion window as a target congestion window of the data transmission link.

[0030] In one embodiment, the transmission module is further configured to:

[0031] determining a target data transmission delay of the data transmission link based on the target response data packet;

[0032] When the target data transmission delay is not the minimum value of the data transmission delay within the preset historical time period, switching from the bandwidth detection state to the delay detection state;

[0033] When the target data transmission delay is the minimum value of the data transmission delay within the preset historical time period, the bandwidth detection state is maintained; the bandwidth detection state is used to detect the bandwidth upper limit of the data transmission link based on the preset packet speed adjustment parameter set during the data transmission process.

[0034] In one embodiment, the network congestion data processing device is further configured to:

[0035] The target response data packet is used as the current response data packet of the data transmission link, the target congestion window is used as the current congestion window of the data transmission link, and the updated current bandwidth upper limit and current data transmission delay lower limit are used as the current bandwidth upper limit and current data transmission delay lower limit of the data transmission link;

[0036] Return the current response data packet based on the data transmission link, and update the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link until the amount of in-transit data on the data transmission link meets the preset conditions and exits the target adjustment state.

[0037] In one embodiment, the network congestion data processing device is further configured to:

[0038] determining a target data transmission delay of the data transmission link based on the target response data packet;

[0039] When the target data transmission delay is greater than or equal to the historical data transmission delay of the data transmission link, it is determined that the amount of in-transit data on the data transmission link meets a preset condition.

[0040] In one embodiment, the network congestion data processing device is further configured to:

[0041] Based on the target response data packet, the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link are updated, and based on the updated current bandwidth upper limit and the current data transmission delay lower limit, the updated in-transit data volume upper limit of the data transmission link is obtained;

[0042] When the current in-transit data volume of the data transmission link is less than the updated in-transit data volume upper limit, it is determined that the in-transit data volume on the data transmission link meets the preset condition.

[0043] In one embodiment, the network congestion data processing device is further configured to:

[0044] In the initial congestion control cycle, a filling state is entered; the filling state is used to transmit data in the data transmission link based on the continuously growing congestion window;

[0045] When the bandwidth growth rate determined based on the reply data packet in the filling state is less than the first preset threshold, switching from the filling state to the emptying state; the emptying state is used to transmit data in the data transmission link based on the continuously decreasing congestion window;

[0046] When the amount of in-transit data in the data transmission link in the draining state is less than the current congestion window of the data transmission link, switching from the draining state to the bandwidth detection state;

[0047] When the data transmission delay change rate determined based on the response data packet in the target state is less than a second preset threshold, switching from the target state to the delay detection state; the target state includes at least one of a filling state, an emptying state, and a bandwidth detection state;

[0048] After the delay detection state continues for a preset time, when the amount of data in transit on the data transmission link meets the preset conditions, it switches from the delay detection state to the filling state; when the amount of data in transit on the data transmission link does not meet the preset conditions, it switches from the delay detection state to the bandwidth detection state.

[0049] In one embodiment, the network congestion data processing device is further configured to:

[0050] Obtaining a first data query request; the first data query request carries a query condition;

[0051] Acquire data that meets the query condition as the first query result;

[0052] Sending the first query result to the first request end based on a data transmission link between the first request end corresponding to the first data query request;

[0053] During the sending process of the first query result, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the step of entering the target adjustment state is executed.

[0054] In one embodiment, the network congestion data processing device is further configured to:

[0055] Obtaining a second data query request; the second data query request carries receiving end information;

[0056] forwarding the second data query request to at least one target server based on the receiving end information;

[0057] Based on a data transmission link between the second request end corresponding to the second data query request, forwarding a second query result returned by at least one target server based on the second data query request to the second request end;

[0058] During the sending process of the second query result, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the step of entering the target adjustment state is executed.

[0059] The present application also provides a computer device, including a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps of the above-mentioned network congestion data processing method when executing the computer program.

[0060] The present application also provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, the steps of the above-mentioned network congestion data processing method are implemented.

[0061] The present application also provides a computer program product, including a computer program, which implements the steps of the above-mentioned network congestion data processing method when executed by a processor.

[0062] The above-mentioned network congestion data processing method, device, computer equipment, storage medium and computer program product enter the target adjustment state when a packet loss event occurs in the data transmission link in the bandwidth detection state; the bandwidth detection state is used to detect the bandwidth upper limit of the data transmission link during the data transmission process; based on the current response data packet of the data transmission link, the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link are updated, and based on the updated current bandwidth upper limit and the current data transmission delay lower limit, an updated congestion window corresponding to the current congestion window of the data transmission link is obtained; based on the current response data packet, the current congestion window is increased to obtain a first congestion window, based on the preset window adjustment parameter, the updated congestion window is reduced to obtain a second congestion window, and the target congestion window of the data transmission link is determined from the first congestion window and the second congestion window; data transmission is performed based on the target congestion window to obtain a target response data packet, and the switching of the bandwidth detection state is controlled based on the target response data packet until the amount of in-transit data on the data transmission link meets the preset condition, and the target adjustment state is exited. In this way, when packet loss occurs in the data transmission link, the target adjustment state is entered. In the target adjustment state, the target congestion window is determined from the first congestion window and the second congestion window. The first congestion window is a congestion window larger than the current congestion window. The first congestion window can improve the data transmission efficiency when the packet loss is not caused by network congestion. The second congestion window is a congestion window smaller than the updated congestion window corresponding to the current congestion window. The updated congestion window corresponding to the current congestion window is obtained based on the latest detected bandwidth upper limit and data transmission lower limit. The second congestion window can reduce the data transmission efficiency to alleviate the network congestion when the packet loss is caused by network congestion, thereby helping to ensure the subsequent data transmission efficiency. In the target adjustment state, the target congestion window is determined from the first congestion window and the second congestion window. Data transmission based on the target congestion window can flexibly cope with various packet loss situations, thereby improving data transmission efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0063] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the related technologies, the drawings required for use in the embodiments or the related technical descriptions are briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0064] Figure 1 An application environment diagram of a network congestion data processing method in one embodiment;

[0065] Figure 2 A schematic diagram of a flow chart of a method for processing network congestion data in one embodiment;

[0066] Figure 3 A schematic diagram of a flow chart of a method for processing network congestion data in another embodiment;

[0067] Figure 4 A schematic diagram of a flow chart of a method for processing network congestion data in another embodiment;

[0068] Figure 5 is a schematic diagram of various states of a data sending end in one embodiment;

[0069] Figure 6 is a schematic diagram of a data transmission environment in one embodiment;

[0070] Figure 7 is a schematic diagram of a data transmission environment in another embodiment;

[0071] Figure 8 A schematic diagram of a flow chart of a method for processing network congestion data in another embodiment;

[0072] Fig. 9 is a schematic diagram of a data center environment in one embodiment;

[0073] Fig.10 This is a schematic diagram of a video playback interface in one embodiment;

[0074] Fig.11 This is a schematic diagram of a navigation interface in one embodiment;

[0075] Fig.12 is a structural block diagram of a network congestion data processing device in one embodiment;

[0076] Fig.13 is an internal structure diagram of a computer device in one embodiment;

[0077] Fig.14 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0078] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0079] The embodiments of the present application can be applied to various scenarios, including but not limited to cloud technology, artificial intelligence, smart transportation, assisted driving, etc.

[0080] The network congestion data processing method provided in the embodiment of the present application can be applied to Figure 1In the application environment shown. Among them, the data sending end 102 communicates with the data receiving end 104 through the network. The data storage system can store the data that the data sending end 102 needs to process. The data storage system can be integrated on the data sending end 102, or it can be placed on the cloud or other network servers. Among them, the data sending end 102 can be a terminal, a server, or a switch. The data receiving end 104 can be a terminal, a server, or a switch. The terminal can be, but is not limited to, various personal computers, laptops, smart phones, tablet computers, Internet of Things devices and portable wearable devices. The Internet of Things devices can be smart speakers, smart TVs, smart air conditioners, smart car-mounted devices, etc. Portable wearable devices can be smart watches, smart bracelets, head-mounted devices, etc. The server can be implemented with an independent server or a server cluster consisting of multiple servers or a cloud server.

[0081] Specifically, the data transmitting end sends data to the data receiving end through the data transmission link between the data transmitting end and the data receiving end. During the data transmission process, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the data transmitting end enters the target adjustment state, wherein the bandwidth detection state is used to detect the bandwidth upper limit of the data transmission link during the data transmission process. The data transmitting end updates the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link based on the current response data packet of the data transmission link, and obtains the updated congestion window corresponding to the current congestion window of the data transmission link based on the updated current bandwidth upper limit and the current data transmission delay lower limit. The data transmitting end increases the current congestion window based on the current response data packet to obtain the first congestion window, reduces the updated congestion window based on the preset window adjustment parameter, obtains the second congestion window, and determines the target congestion window of the data transmission link from the first congestion window and the second congestion window. The data transmitting end performs data transmission based on the target congestion window, obtains the target response data packet, and controls the switching of the bandwidth detection state based on the target response data packet until the amount of in-transit data on the data transmission link meets the preset condition, and exits the target adjustment state.

[0082] In one embodiment, Figure 2 As shown, a network congestion data processing method is provided, and the method is applied to Figure 1 The data sending end in is used as an example to illustrate. Figure 2 , the network congestion data processing method comprises the following steps:

[0083] Step S202, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the target adjustment state is entered; the bandwidth detection state is used to detect the bandwidth upper limit of the data transmission link during the data transmission process.

[0084] Among them, data transmission between devices requires the use of data transmission links. For example, a TCP connection at the data sender corresponds to a data transmission link. The data transmission link is a channel for data transmission. When the data sender transmits a large amount of data, it can transmit the data in fragments and packets. The data sender transmits several data packets to the data receiver at a time. After receiving the data, the data receiver will reply to the data sender with a response data packet, and feedback the data reception status to the data sender through the response data packet.

[0085] During the data transmission process, the data transmitter adjusts the congestion window size by detecting the data capacity of the data transmission link, so as to maximize the use of the data capacity of the data transmission link to improve the data transmission efficiency. During the data transmission process, the data transmitter can detect the upper bandwidth limit and the lower limit of the data transmission delay of the data transmission link, and determine the congestion window size based on the detection results. The data transmitter can detect the upper bandwidth limit and the lower limit of the data transmission delay of the data transmission link through various data transmission states. Sending data on the data transmission link according to the detected upper bandwidth limit and lower limit of the data transmission delay can achieve the best transmission effect when the data transmission link is not blocked.

[0086] It can be understood that the bandwidth of a data transmission link refers to the amount of data that can be transmitted per unit time of the data transmission link. The bandwidth of a data transmission link can be calculated by the amount of data successfully transmitted and the transmission time taken. The data transmission delay of a data transmission link refers to the total delay from the start of data transmission by the data transmitter to the receipt of the response data packet sent by the data receiver by the data transmitter. The data transmission delay of a data transmission link is used to indicate the time required to complete a two-way interaction. The upper bandwidth limit refers to the detected bottleneck bandwidth and the maximum bandwidth. The lower limit of the data transmission delay refers to the minimum detected data transmission delay.

[0087] The bandwidth detection state is a data transmission state of the data sending end, which is used to detect the bandwidth upper limit of the data transmission link during the data transmission process. The bandwidth detection state can also be called the ProbeBW state. The bandwidth detection state can detect the bandwidth upper limit of the data transmission link by controlling the packet sending speed. For example, based on the preset parameter set, the packet sending speed is periodically changed, and each time a response data packet is received, the bandwidth of the data transmission link is calculated based on the response data packet. Once a larger bandwidth is found, the bandwidth upper limit is updated.

[0088] A packet loss event may occur when the data transmitting end is sending data to the data receiving end. A packet loss event refers to one or more data packets sent by the data transmitting end failing to reach the data receiving end. The reply data packet carries the amount of data that has been successfully transmitted. The data transmitting end can determine whether a packet loss event has occurred based on the reply data packet received. For example, the data transmitting end sends data packets 1 to 50 to the data receiving end at one time. After receiving the data, the data receiving end can feed back a reply data packet to the data transmitting end. If the data receiving end receives data packets 1 to 50, the reply data packet can carry reply information of the successful transmission of data packets 1 to 50, so that the data transmitting end can know from the reply data packet that data packets 1 to 50 have been successfully transmitted, and no packet loss event has occurred. If the data receiving end only receives data packets 1 to 40, the reply data packet can carry reply information of the successful transmission of data packets 1 to 40, so that the data transmitting end can know from the reply data packet that only data packets 1 to 40 have been successfully transmitted, and a packet loss event has occurred.

[0089] When a packet loss event occurs on the data transmission link in the bandwidth detection state, the target adjustment state is entered. The target adjustment state is used to control the congestion window of the data transmission link when a packet loss event occurs in the bandwidth detection state. The congestion window of the data transmission link is the sending window of the data transmission link at the data sending end. The congestion window of the data transmission link is used to indicate the amount of data that can be accommodated on the data transmission link.

[0090] Specifically, when the data transmitter sends data on the data transmission link, it detects the bandwidth upper limit and data transmission delay lower limit of the data transmission link through various data transmission states. The bandwidth detection state is a data transmission state of the data transmitter. In the bandwidth detection state, the data transmitter detects the bandwidth upper limit of the data transmission link during data transmission. When a packet loss event occurs in the data transmission link in the bandwidth detection state, the data transmitter enters the target adjustment state.

[0091] Step S204: based on the current response data packet of the data transmission link, update the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link, and based on the updated current bandwidth upper limit and the current data transmission delay lower limit, obtain an updated congestion window corresponding to the current congestion window of the data transmission link.

[0092] The current response data packet of the data transmission link is the response data packet currently received by the data transmitter on the data transmission link, that is, the current response data packet of the data transmission link is the response data packet most recently received by the data transmitter on the data transmission link.

[0093] The current bandwidth upper limit of the data transmission link is the bandwidth upper limit that is most recently determined for the data transmission link before the data transmitter receives the current response data packet. The current data transmission delay lower limit of the data transmission link is the data transmission delay lower limit that is most recently determined for the data transmission link before the data transmitter receives the current response data packet. The current congestion window of the data transmission link is the congestion window that is most recently used by the data transmitter on the data transmission link before the data transmitter receives the current response data packet. The congestion window of the data transmission link is used to indicate the amount of data that can be accommodated on the data transmission link. The data transmitter hopes that when there is data to be sent, there will always be as many packets as the sending window flowing in the network. The current congestion window of the data transmission link is obtained based on the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link, so as to maximize the use of the data accommodating capacity of the data transmission link.

[0094] It can be understood that the data transmitter adjusts the congestion window size by detecting the bandwidth upper limit and data transmission delay lower limit of the data transmission link. The data transmitter sends several data packets to the data receiver based on the congestion window. After receiving the data packets, the data receiver returns a response data packet to the data transmitter. After receiving the response data packet, the data transmitter updates the bandwidth upper limit and data transmission delay lower limit of the data transmission link based on the response data packet, and determines the next congestion window based on the updated bandwidth upper limit and data transmission delay lower limit.

[0095] The updated congestion window corresponding to the current congestion window is the next congestion window predicted based on the latest bandwidth upper limit and data transmission delay lower limit of the data transmission link. It can be understood that the updated congestion window corresponding to the current congestion window is the next congestion window estimated to be used after the current congestion window.

[0096] Specifically, the data transmitting end adjusts the congestion window size by detecting the bandwidth upper limit and the data transmission delay lower limit of the data transmission link. After receiving the current response data packet of the data transmission link, the data transmitting end updates the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link based on the current response data packet, and obtains the updated congestion window corresponding to the current congestion window of the data transmission link based on the updated current bandwidth upper limit and the current data transmission delay lower limit. For example, the product of the updated current bandwidth upper limit and the current data transmission delay lower limit can be used as the updated congestion window corresponding to the current congestion window; the product of the updated current bandwidth upper limit and the current data transmission delay lower limit and the preset window coefficient can be used as the updated congestion window corresponding to the current congestion window.

[0097] Step S206, based on the current response data packet, increase the current congestion window to obtain a first congestion window, based on the preset window adjustment parameters, reduce and update the congestion window to obtain a second congestion window, and determine the target congestion window of the data transmission link from the first congestion window and the second congestion window.

[0098] The preset window adjustment parameter is a pre-set window adjustment parameter used to adjust and update the congestion window.

[0099] Specifically, before entering the target adjustment state, regardless of whether a packet loss event occurs, the data transmitter usually determines the next congestion window based on the latest determined bandwidth upper limit and data transmission delay lower limit, and performs data transmission based on the next congestion window. However, if a packet loss event occurs, the data transmission link may be congested in the network, and blindly determining the next congestion window based on the latest determined bandwidth upper limit and data transmission delay lower limit is likely to cause the network to become more and more congested. Therefore, in the method of the present application, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the data transmitter enters the target adjustment state, and determines the next congestion window from each candidate congestion window in the target adjustment state.

[0100] In the target adjustment state, the data transmitter increases the current congestion window based on the current response data packet to obtain the first congestion window. The first congestion window is a candidate for the next congestion window. If the first congestion window is used as the final next congestion window, the amount of data transmitted next time can be increased. The data transmitter can increase the current congestion window based on the response information carried by the current response data packet. For example, the response information carried by the current response data packet is the amount of successfully transmitted data. The current congestion window is increased based on the amount of successfully transmitted data carried by the current response data packet to obtain the first congestion window. The first congestion window is positively correlated with the amount of successfully transmitted data carried by the current response data packet. In the target adjustment state, the data transmitter reduces the updated congestion window based on the preset window adjustment parameter to obtain the second congestion window. For example, the product of the preset window adjustment parameter and the updated congestion window can be used as the second congestion window; the difference between the updated congestion window and the sum of the preset window adjustment parameters can be used as the second congestion window. The second congestion window is a candidate for the next congestion window. If the second congestion window is used as the final next congestion window, the amount of data transmitted next time can be reduced. In the target adjustment state, the data sending end determines the target congestion window of the data transmission link from the first congestion window and the second congestion window, and uses the target congestion window as the next congestion window for data transmission.

[0101] It can be understood that in order to avoid or alleviate network congestion, the data transmitter can obtain the minimum value from the first congestion window and the second congestion window as the target congestion window. If the packet loss event is caused by network congestion, based on the current response data packet, a better bandwidth and data transmission delay cannot be detected, so the smaller congestion window of the first congestion window and the second congestion window is the second congestion window, and the second congestion window is smaller than the current congestion window. Using the second congestion window as the target congestion window can help alleviate network congestion. If the packet loss event is not caused by network congestion, based on the current response data packet, a better bandwidth and data transmission delay can be detected, so the smaller congestion window of the first congestion window and the second congestion window is the first congestion window, and the first congestion window is larger than the current congestion window. Using the first congestion window as the target congestion window can help improve data transmission efficiency.

[0102] Step S208, data transmission is performed based on the target congestion window to obtain a target response data packet, and the switching of the bandwidth detection state is controlled based on the target response data packet until the amount of in-transit data on the data transmission link meets the preset condition, and the target adjustment state is exited.

[0103] The target response data packet is the response data packet received by the data transmitter for data transmission based on the target congestion window. The amount of data in transit on the data transmission link refers to the number of data packets that are transmitted on the data transmission link but have not yet been confirmed to be received. The preset condition is a pre-set condition used to determine whether to exit the target adjustment state. If the amount of data in transit on the data transmission link meets the preset condition, it means that the data transmission link still has the capacity to accommodate data.

[0104] Specifically, after determining the target congestion window of the data transmission link in the target adjustment state, the data transmitting end performs data transmission based on the target congestion window. The data transmitting end performs data transmission based on the target congestion window, and subsequently receives a corresponding target response data packet. The data transmitting end can control the switching of the bandwidth detection state based on the target response data packet.

[0105] It can be understood that after entering the target adjustment state, the data sending end determines the next congestion window from the first congestion window and the second congestion window. After exiting the target adjustment state, the data sending end determines the next congestion window based on the updated congestion window. After entering the target adjustment state, the data sending end can detect the amount of data in transit on the data transmission link, and exit the target adjustment state when the amount of data in transit on the data transmission link meets the preset condition. For example, when the amount of data in transit on the data transmission link is less than a certain threshold, it is determined that the amount of data in transit on the data transmission link meets the preset condition.

[0106] In one embodiment, if it is detected that the buffer area of ​​the data transmission link has been emptied, it is determined that the amount of in-transit data on the data transmission link meets the preset condition. If it is detected that the buffer area of ​​the data transmission link has been emptied, it means that the data transmission link is no longer congested, and the target adjustment state can be exited at this time. It can be understood that after the data transmission link is fully loaded, the data to be transmitted will further occupy the buffer area and buffer area of ​​the data transmission link. After occupying the buffer area and buffer area of ​​the data transmission link, it is easy to cause congestion in the data transmission link and packet loss.

[0107] In the above network congestion data processing method, when packet loss occurs in the data transmission link, the target adjustment state is entered. In the target adjustment state, the target congestion window is determined from the first congestion window and the second congestion window. The first congestion window is a congestion window larger than the current congestion window. The first congestion window can improve the data transmission efficiency when the packet loss is not caused by network congestion. The second congestion window is a congestion window smaller than the updated congestion window corresponding to the current congestion window. The updated congestion window corresponding to the current congestion window is obtained based on the latest detected bandwidth upper limit and data transmission lower limit. The second congestion window can reduce the data transmission efficiency to alleviate the network congestion when the packet loss is caused by network congestion, thereby helping to ensure the subsequent data transmission efficiency. In the target adjustment state, the target congestion window is determined from the first congestion window and the second congestion window. Data transmission based on the target congestion window can flexibly cope with various packet loss situations and ultimately improve data transmission efficiency.

[0108] In one embodiment, the next state of the bandwidth detection state is the delay detection state, and the delay detection state is used to detect the lower limit of the data transmission delay of the data transmission link with a preset congestion window during the data transmission process.

[0109] The network congestion data processing method further includes: when switching from the delay detection state to other states, updating the congestion control cycle of the data transmission link.

[0110] The delay detection state is a data transmission state of the data transmitter, which is used to detect the lower limit of the data transmission delay of the data transmission link during the data transmission process. The delay detection state can also be called the ProbeRTT state.

[0111] The preset congestion window is a pre-set congestion window. The delay detection state is used to detect the lower limit of the data transmission delay of the data transmission link with the preset congestion window during the data transmission process. It can be understood that to detect the lower limit of the data transmission delay, it is necessary to ensure that the buffer area on the data transmission link is empty, and the less traffic on the data transmission link, the better. The preset congestion window can be a smaller congestion window size. In the delay detection state, data transmission based on the preset congestion window can quickly reduce the amount of in-transit data on the data transmission link. If the amount of in-transit data on the data transmission link is small, it can reflect that the data transmission link is not fully loaded. At this time, the accurate lower limit of the data transmission delay of the data transmission link can be detected. For example, the preset congestion window can be 4 data packets.

[0112] The data transmission link can be imagined as a water pipe, and the buffer and cache area on the data transmission link can be imagined as the water reservoir carried by the water pipe. To detect the upper limit of the bandwidth of the data transmission link, the water pipe must be filled up. There are a certain amount of data packets in the water reservoir, but the data transmission delay is relatively high. To detect the lower limit of the data transmission delay of the data transmission link, the water reservoir must be emptied. The less flow in the water pipe, the better, but the bandwidth is relatively low. Therefore, the data sender can detect the upper limit of the bandwidth and lower limit of the data transmission delay of the data transmission link through different data transmission states.

[0113] The data capacity of a data transmission link will change. Therefore, during the data transmission process, the data transmitter needs to continuously detect the upper bandwidth limit and lower data transmission delay limit of the data transmission link. The congestion control period of the data transmission link is used to indicate the number of times the data capacity of the data transmission link is detected. For a data transmission link, when switching from the delay detection state to other states, the data transmitter updates the congestion control period of the data transmission link.

[0114] Specifically, the next state of the bandwidth detection state is the delay detection state. When certain conditions are met, the data transmitter switches from the bandwidth detection state to the delay detection state. When certain conditions are met, the data transmitter switches from the delay detection state to other states. In order to detect the lower limit of the data transmission delay of the data transmission link, the data transmitter periodically enters the delay detection state, and updates the congestion control cycle every time it switches from the delay detection state to other states.

[0115] For example, for a certain data transmission link, if the data sending end enters the first data transmission state for the first time, it enters the first congestion control cycle; if the data sending end switches from the delay detection state to other states for the first time, it enters the second congestion control cycle; if the data sending end switches from the delay detection state to other states for the second time, it enters the third congestion control cycle.

[0116] In the above embodiment, when switching from the delay detection state to other states, the congestion control period of the data transmission link is updated in time, and the congestion control period of the data transmission link can be accurately recorded, which is helpful for subsequent data processing.

[0117] In one embodiment, Figure 3 As shown, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the target adjustment state is entered, including:

[0118] Step S302: When a packet loss event occurs in the data transmission link in the bandwidth detection state and the current congestion control cycle in the bandwidth detection state is at least the second congestion control cycle, enter the target adjustment state.

[0119] Among them, the current congestion control cycle in which the bandwidth detection state is located refers to the congestion control cycle in which the current bandwidth detection state is located. It can be understood that after switching from the delay detection state to other states, a new congestion control cycle is started until switching from the delay detection state to other states again, and the new congestion control cycle ends. The current congestion control cycle is at least the second congestion control cycle means that the current congestion control cycle is a congestion control cycle other than the first congestion control cycle.

[0120] Specifically, when a packet loss event occurs in the data transmission link in the bandwidth detection state, and the current congestion control cycle in the bandwidth detection state is at least the second congestion control cycle, the data sending end enters the target adjustment state.

[0121] In the above embodiment, when a packet loss event occurs in the data transmission link in the bandwidth detection state, and the current congestion control cycle in the bandwidth detection state is at least the second congestion control cycle, the target adjustment state is entered. That is, after the data transmitting end has detected the data carrying capacity of the data transmission link at least once, if a packet loss event occurs, the target adjustment state is entered again, which can avoid blindly entering the target adjustment state and reducing the data transmission efficiency. If the data transmitting end has detected the data carrying capacity of the data transmission link at least once, there is usually a certain amount of in-transit data on the data transmission link, and then a packet loss event occurs in the data transmission link in the bandwidth detection state, and then the target adjustment state is entered, which can increase the probability that the packet loss event is due to network congestion, so that entering the target adjustment state can effectively alleviate network congestion, thereby improving data transmission efficiency.

[0122] In one embodiment, Figure 4 As shown, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the target adjustment state is entered, including:

[0123] Step S402, when a packet loss event occurs in the data transmission link in the bandwidth detection state, and the current congestion control cycle of the bandwidth detection state is at least the second congestion control cycle, and the time interval between the current time and the last target adjustment state exit time is greater than the reference time interval, enter the target adjustment state.

[0124] The reference time interval is determined based on the data transmission delay corresponding to the packet loss event. The data transmission delay corresponding to the packet loss event is determined based on the response data packet corresponding to the packet loss event. The response data packet corresponding to the packet loss event refers to the response data packet used to determine the occurrence of the packet loss event. The reference time interval is positively correlated with the data transmission delay corresponding to the packet loss event. For example, the reference time interval is three times the data transmission delay corresponding to the packet loss event.

[0125] Specifically, when a packet loss event occurs in the data transmission link in the bandwidth detection state, and the current congestion control cycle of the bandwidth detection state is at least the second congestion control cycle, and the time interval between the current time and the last target adjustment state exit time is greater than the reference time interval, the data sending end enters the target adjustment state.

[0126] In the above embodiment, when a packet loss event occurs in the data transmission link in the bandwidth detection state, and the current congestion control cycle of the bandwidth detection state is at least the second congestion control cycle, and the time interval between the current time and the last exit time of the target adjustment state is greater than the reference time interval, the target adjustment state is entered. When the time interval between the current time and the last exit time of the target adjustment state is greater than the reference time interval, the target adjustment state is entered, which can avoid frequent entry into the target adjustment state and increase the probability that the packet loss event is due to network congestion, so that entering the target adjustment state can effectively alleviate network congestion, thereby improving data transmission efficiency.

[0127] In one embodiment, based on the current response data packet of the data transmission link, updating the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link includes:

[0128] Based on the current response data packet of the data transmission link, determine the current bandwidth and current data transmission delay of the data transmission link; obtain the maximum value from the current bandwidth and the current bandwidth upper limit of the data transmission link as the current bandwidth upper limit of the data transmission link after updating; obtain the minimum value from the current data transmission delay and the current data transmission delay lower limit of the data transmission link as the current data transmission delay lower limit after updating the data transmission link.

[0129] Specifically, after receiving the current response data packet of the data transmission link, the data transmitting end can determine the current bandwidth and current data transmission delay of the data transmission link based on the current response data packet. For example, the amount of data successfully transmitted is determined based on the current response data packet, the current data transmission delay is determined based on the sending time of the amount of data successfully transmitted and the receiving time of the current response data packet, the transmission time of the amount of data successfully transmitted is determined based on the sending time of the amount of data successfully transmitted and the sending time of the current response data packet, and the current bandwidth is determined based on the ratio of the amount of data successfully transmitted to the transmission time spent.

[0130] Furthermore, the data sending end obtains the maximum value from the current bandwidth and the current bandwidth upper limit of the data transmission link as the current bandwidth upper limit of the data transmission link after updating, and obtains the minimum value from the current data transmission delay and the current data transmission delay lower limit of the data transmission link as the current data transmission delay lower limit after updating the data transmission link.

[0131] In the above embodiment, the response information carried by the current response data packet of the data transmission link can reflect the data transmission situation. Based on the current response data packet of the data transmission link, the current bandwidth and current data transmission delay of the data transmission link can be accurately monitored. From the current bandwidth and the current bandwidth upper limit of the data transmission link, the maximum value is obtained as the current bandwidth upper limit after the data transmission link is updated, and the bandwidth upper limit of the data transmission link can be updated in time for subsequent data processing. From the current data transmission delay and the current data transmission delay lower limit of the data transmission link, the minimum value is obtained as the current data transmission delay lower limit after the data transmission link is updated, and the data transmission delay lower limit of the data transmission link can be updated in time for subsequent data processing.

[0132] In one embodiment, based on the current response data packet, the current congestion window is increased to obtain a first congestion window, based on the preset window adjustment parameter, the congestion window is reduced and updated to obtain a second congestion window, and the target congestion window of the data transmission link is determined from the first congestion window and the second congestion window, including:

[0133] The current amount of non-packet-lost data is determined based on the current response data packet, and the current congestion window is increased based on the current amount of non-packet-lost data to obtain a first congestion window; a preset window adjustment parameter is used as a reduction factor, and the reduction factor and the updated congestion window are integrated to obtain a second congestion window; from the first congestion window and the second congestion window, the minimum congestion window is obtained as the target congestion window of the data transmission link.

[0134] The current amount of non-lost packet data refers to the amount of data that is not lost at present, that is, the amount of data that is currently successfully transmitted. The current amount of non-lost packet data can be determined based on the response information carried by the current response data packet. The reduction factor is a factor used to multiply the updated congestion window to reduce the updated congestion window.

[0135] Specifically, when increasing the current congestion window based on the current response data packet, the data transmitter can determine the current amount of non-packet-lost data based on the current response data packet, and increase the current congestion window based on the current amount of non-packet-lost data to obtain a first congestion window. For example, the current amount of non-packet-lost data and the current congestion window can be added to obtain the first congestion window.

[0136] When the congestion window is reduced based on the preset window adjustment parameter, the data transmitter can use the preset window adjustment parameter as a reduction factor, merge the reduction factor and the updated congestion window, and obtain a second congestion window. For example, the reduction factor and the updated congestion window can be multiplied to obtain the second congestion window.

[0137] Finally, the data sending end obtains the smallest congestion window from the first congestion window and the second congestion window as the target congestion window of the data transmission link.

[0138] In the above embodiment, if there is no congestion on the data transmission link, it can be considered that the current amount of data without packet loss is the amount of data that the data transmission link can continue to accommodate. Based on the current amount of data without packet loss, the current congestion window is increased to obtain the first congestion window, and the first congestion window is used as the target congestion window, which can further utilize the data capacity of the data transmission link to improve the data transmission efficiency. If there is no congestion on the data transmission link, the updated congestion window will usually be larger, and the preset window adjustment parameter is used as a reduction factor to reduce the updated congestion window to obtain the second congestion window, which can avoid the second congestion window being used as the target congestion window for data transmission due to the second congestion window being too large, which causes the data transmission link to be quickly congested. If there is congestion on the data transmission link, the updated congestion window will usually not be larger than the current congestion window, and the smallest congestion window between the first congestion window and the second congestion window is the second congestion window, which is obtained by reducing the updated congestion window. Using the second congestion window as the target congestion window for data transmission can effectively alleviate the congestion on the data transmission link and avoid or reduce further packet loss events.

[0139] In one embodiment, controlling the switching of the bandwidth detection state based on the target response data packet includes:

[0140] Determine the target data transmission delay of the data transmission link based on the target response data packet; when the target data transmission delay is not the minimum value of the data transmission delay within the preset historical time period, switch from the bandwidth detection state to the delay detection state; when the target data transmission delay is the minimum value of the data transmission delay within the preset historical time period, maintain the bandwidth detection state; the bandwidth detection state is used to detect the bandwidth upper limit of the data transmission link based on the preset packet sending speed adjustment parameter set during the data transmission process.

[0141] The target data transmission delay of the data transmission link is determined based on the target response data packet of the data transmission link, and represents the most recently detected data transmission delay.

[0142] The preset historical time period refers to a period of time before the current time. The length of the preset historical time period is preset. For example, the length of the preset historical time period can be set to 10s, and the preset historical time period refers to 10s before the current time.

[0143] The bandwidth detection state is used to detect the bandwidth upper limit of the data transmission link based on the preset packet transmission speed adjustment parameter set during the data transmission process. The preset packet transmission speed adjustment parameter set includes multiple preset packet transmission speed adjustment parameters. The preset packet transmission speed adjustment parameter is a pre-set packet transmission speed adjustment parameter used to adjust the packet transmission speed. In the bandwidth detection state, the bandwidth upper limit of the data transmission link is periodically detected based on the preset packet transmission speed adjustment parameter set. That is, in the bandwidth detection state, the packet transmission speed is controlled based on each preset packet transmission speed adjustment parameter in the preset packet transmission speed adjustment parameter set in turn, and the bandwidth upper limit of the data transmission link is updated based on the response data packets received in turn.

[0144] Specifically, when the switching of the bandwidth detection state is controlled based on the target response data packet, the target data transmission delay of the data transmission link is determined based on the target response data packet, the target data transmission delay is compared with the data transmission delay detected in the preset historical time period, and whether to switch from the bandwidth detection state to the delay detection state is determined according to the comparison result. If the target data transmission delay is not the minimum value of the data transmission delay in the preset historical time period, it means that no smaller data transmission delay has been detected in a certain time period, then the data sending end switches from the bandwidth detection state to the delay detection state, and the lower limit of the data transmission delay can be quickly detected through the delay detection state. If the target data transmission delay is the minimum value of the data transmission delay in the preset historical time period, there is no need to switch to the delay detection state, the data sending end maintains the bandwidth detection state, and continues to detect the bandwidth upper limit of the data transmission link in the bandwidth detection state.

[0145] In one embodiment, the preset packet sending speed adjustment parameter set includes a first preset packet sending speed adjustment parameter, a second preset packet sending speed adjustment parameter, and a third preset packet sending speed adjustment parameter arranged in order. The first preset packet sending speed adjustment parameter is used to increase the packet sending speed, the second preset packet sending speed adjustment parameter is used to reduce the packet sending speed, and the third preset packet sending speed adjustment parameter is used to keep the packet sending speed unchanged. By sometimes increasing the packet sending speed, sometimes reducing the packet sending speed, and sometimes keeping the packet sending speed unchanged, the amount of in-transit data of the data transmission link can be flexibly adjusted, thereby accurately detecting the bandwidth upper limit of the data transmission link.

[0146] In the above embodiment, when the target data transmission delay is not the minimum value of the data transmission delay within the preset historical time period, the bandwidth detection state is switched to the delay detection state, and a better data transmission delay can be quickly detected through the delay detection state when a better data transmission delay is not detected for a period of time. When the target data transmission delay is the minimum value of the data transmission delay within the preset historical time period, the bandwidth detection state is maintained, and a better bandwidth can be continuously detected when a better data transmission delay is detected. Detecting a better bandwidth and data transmission delay helps to maximize the data capacity of the data transmission link during data transmission.

[0147] In one embodiment, the network congestion data processing method further includes:

[0148] The target response data packet is used as the current response data packet of the data transmission link, the target congestion window is used as the current congestion window of the data transmission link, and the updated current bandwidth upper limit and current data transmission delay lower limit are used as the current bandwidth upper limit and current data transmission delay lower limit of the data transmission link; the current response data packet based on the data transmission link is returned, and the steps of updating the current bandwidth upper limit and current data transmission delay lower limit of the data transmission link are executed until the amount of in-transit data on the data transmission link meets the preset conditions, and the target adjustment state is exited.

[0149] Specifically, after entering the target adjustment state, the data transmitter determines the next congestion window from the first congestion window and the second congestion window. The first congestion window is related to the current congestion window, and the target congestion window is the next congestion window of the current congestion window, that is, the current congestion window is the congestion window most recently used before the target congestion window is used. After using the target congestion window for data transmission, if it is still in the target adjustment state, the target congestion window is used as the new current congestion window of the data transmission link, and a new target congestion window is determined based on the new current congestion window. The second congestion window is related to the updated congestion window, and the updated congestion window is related to the latest bandwidth upper limit and data transmission delay lower limit. After using the target congestion window for data transmission, if it is still in the target adjustment state, the updated current bandwidth upper limit and the current data transmission delay lower limit are used as the new current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link, and the target response data packet obtained by using the target congestion window for data transmission is used as the new current response data packet of the data transmission link. Based on the new current response data packet, the current bandwidth upper limit and the current data transmission delay lower limit, a new updated congestion window of the data transmission link is obtained, and on the basis of the new updated congestion window, a new target congestion window is determined.

[0150] After entering the target adjustment state, the data transmitter updates the current response data packet, the current congestion window, the current bandwidth upper limit of the data transmission link, and the current data transmission delay lower limit each time it receives a response data packet, and re-determines the next congestion window based on the update result, and iterates continuously until the amount of in-transit data on the data transmission link meets the preset conditions, and exits the target adjustment state. After exiting the target adjustment state, the data transmitter determines the next congestion window based on the updated congestion window. For example, the updated congestion window is used as the next congestion window.

[0151] In the above embodiment, before exiting the target adjustment state, the data sending end updates the current response data packet, the current congestion window, the current bandwidth upper limit of the data transmission link and the current data transmission delay lower limit each time a response data packet is received, and the next congestion window is re-determined based on the update result. The target congestion window can always be determined based on the latest data, ensuring the accuracy of the determination of the target congestion window, thereby effectively improving the data transmission efficiency.

[0152] In one embodiment, the network congestion data processing method further includes:

[0153] A target data transmission delay of the data transmission link is determined based on a target response data packet; when the target data transmission delay is greater than or equal to a historical data transmission delay of the data transmission link, it is determined that the amount of in-transit data on the data transmission link meets a preset condition.

[0154] The target data transmission delay of the data transmission link is determined based on the target response data packet. The target data transmission delay of the data transmission link is the latest determined data transmission delay. The historical data transmission delay of the data transmission link is the previously determined data transmission delay.

[0155] Specifically, the amount of in-transit data on the data transmission link meets the preset conditions, indicating that the data transmission link still has the capacity to accommodate data. The data transmitter performs data transmission based on the target congestion window, obtains the target response data packet, determines the target data transmission delay of the data transmission link based on the target response data packet, compares the target data transmission delay of the data transmission link with the historical data transmission delay of the data transmission link, and determines whether the amount of in-transit data on the data transmission link meets the preset conditions based on the comparison result. If the target data transmission delay of the data transmission link is greater than or equal to the historical data transmission delay of the data transmission link, it means that the data transmission delay of the data transmission link is no longer detected to be decreasing, indicating that the buffer area of ​​the data transmission link has been cleared, and the data transmission link can stably transmit data. Therefore, when the target data transmission delay is greater than or equal to the historical data transmission delay of the data transmission link, the data transmitter determines that the amount of in-transit data on the data transmission link meets the preset conditions.

[0156] In the above embodiment, when it is detected that the data transmission delay of the data transmission link no longer decreases, it means that the data transmission link is no longer congested. At this time, exiting the target adjustment state can ensure data transmission efficiency. In the target adjustment state, if the network is congested, the congestion window will be reduced to transmit data to alleviate network congestion. If it is detected that the network is no longer congested, exiting the target adjustment state in time can effectively ensure data transmission efficiency.

[0157] In one embodiment, the network congestion data processing method further includes:

[0158] Based on the target response data packet, the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link are updated, and based on the updated current bandwidth upper limit and the current data transmission delay lower limit, the updated in-transit data volume upper limit of the data transmission link is obtained; when the current in-transit data volume of the data transmission link is less than the updated in-transit data volume upper limit, it is determined that the in-transit data volume on the data transmission link meets the preset conditions.

[0159] The updated upper limit of the amount of data in transit for a data transmission link refers to the most recently detected upper limit of the amount of data in transit for a data transmission link. The updated upper limit of the amount of data in transit for a data transmission link is obtained based on the most recently detected upper limit of the bandwidth of the data transmission link and the lower limit of the data transmission delay. The updated upper limit of the amount of data in transit for a data transmission link = the most recently detected upper limit of the bandwidth of the data transmission link × the lower limit of the data transmission delay.

[0160] The current in-transit data volume of the data transmission link refers to the current in-transit data volume of the data transmission link.

[0161] Specifically, the amount of in-transit data on the data transmission link meets the preset condition, indicating that the data transmission link still has the ability to accommodate data. The data transmitter performs data transmission based on the target congestion window, obtains the target response data packet, updates the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link based on the target response data packet, and obtains the updated in-transit data upper limit of the data transmission link based on the updated current bandwidth upper limit and the current data transmission delay lower limit. The data transmitter can use the product of the updated current bandwidth upper limit and the current data transmission delay lower limit as the updated in-transit data upper limit of the data transmission link. The data transmitter compares the current in-transit data of the data transmission link with the updated in-transit data upper limit, and determines whether the in-transit data on the data transmission link meets the preset condition according to the comparison result. If the current in-transit data of the data transmission link is less than the updated in-transit data upper limit, it means that the in-transit data upper limit of the data transmission link has not been reached yet, indicating that the buffer area of ​​the data transmission link has been cleared, and the data transmission link can stably transmit data. Therefore, when the current in-transit data of the data transmission link is less than the updated in-transit data upper limit, the data transmitter determines that the in-transit data on the data transmission link meets the preset condition.

[0162] In the above embodiment, when it is detected that the current amount of in-transit data of the data transmission link is less than the upper limit of the updated in-transit data amount, it means that the data transmission link is no longer congested. At this time, exiting the target adjustment state can ensure data transmission efficiency. In the target adjustment state, if the network is congested, the congestion window will be reduced to transmit data to alleviate network congestion. If it is detected that the network is no longer congested, exiting the target adjustment state in time can effectively ensure data transmission efficiency.

[0163] In one embodiment, the network congestion data processing method further includes:

[0164] In the initial congestion control cycle, the filling state is entered; the filling state is used to perform data transmission in the data transmission link based on the continuously growing congestion window; when the bandwidth growth rate determined based on the response data packet in the filling state is less than the first preset threshold, the filling state is switched to the emptying state; the emptying state is used to perform data transmission in the data transmission link based on the continuously decreasing congestion window; when the amount of in-transit data in the data transmission link in the emptying state is less than the current congestion window of the data transmission link, the emptying state is switched to the bandwidth detection state; when the data transmission delay change rate determined based on the response data packet in the target state is less than the second preset threshold, the target state is switched to the delay detection state; the target state includes at least one of the filling state, the emptying state, and the bandwidth detection state; after the delay detection state continues for a preset period of time, when the amount of in-transit data on the data transmission link meets the preset condition, the delay detection state is switched to the filling state, and when the amount of in-transit data on the data transmission link does not meet the preset condition, the delay detection state is switched to the bandwidth detection state.

[0165] Among them, the starting congestion control cycle refers to the first congestion control cycle. In the first congestion control cycle, the filling state is first entered. The filling state is a data transmission state of the data transmitter, which is used to transmit data in the data transmission link based on the continuously growing congestion window to fill the data transmission link. The filling state can also be called the Startup state. In the filling state, data transmission is performed in the data transmission link based on the continuously growing congestion window, that is, data transmission is performed in the data transmission link based on the continuously growing packet sending speed, so that the data to be transmitted can quickly fill the data transmission link and can further occupy the buffer area.

[0166] The next state of the fill state is the drain state or the delay detection state. The drain state is a data transmission state of the data transmitter, which is used to perform data transmission in the data transmission link based on the continuously decreasing congestion window to drain the buffer area of ​​the data transmission link. The drain state can also be called the drain state. In the drain state, data transmission is performed in the data transmission link based on the continuously decreasing congestion window, that is, data transmission is performed in the data transmission link based on the continuously decreasing packet sending speed, so that the data in the buffer area can be sent and the data in the buffer area can be gradually drained.

[0167] The bandwidth growth rate is used to characterize the bandwidth growth rate. In the filling state, the data transmitter will also receive a response data packet, and determine the bandwidth and data transmission delay of the data transmission link based on the response data packet. In the process of gradually filling the data transmission link, the bandwidth determined based on the response data packet will gradually increase, and the bandwidth growth rate will gradually increase. After filling the data transmission link, the bandwidth determined based on the response data packet will tend to be stable, and the bandwidth growth rate will gradually decrease and tend to be stable. When the bandwidth growth rate determined based on the response data packet in the filling state is less than the first preset threshold, the filling state is switched to the emptying state.

[0168] The next state of the empty state is the bandwidth detection state or the delay detection state. In the empty state, the data sender will also receive a response data packet and determine the bandwidth and data transmission delay of the data transmission link based on the response data packet. When the amount of in-transit data in the data transmission link in the empty state is less than the current congestion window of the data transmission link, the empty state is switched to the bandwidth detection state.

[0169] The next state of the bandwidth detection state is the delay detection state. The target state includes at least one of the filling state, the emptying state, and the bandwidth detection state. The data transmission delay change rate is used to characterize the change speed of the data transmission delay. When the data transmission delay change rate determined based on the response data packet in the target state is less than the second preset threshold, the target state is switched to the delay detection state.

[0170] The next state of the delay detection state is the bandwidth detection state or the filling state. After the delay detection state continues for a preset time, when the amount of data in transit on the data transmission link meets the preset conditions, it switches from the delay detection state to the filling state; when the amount of data in transit on the data transmission link does not meet the preset conditions, it switches from the delay detection state to the bandwidth detection state.

[0171] It can be understood that the first preset threshold, the second preset threshold, and the preset duration can be set according to actual needs.

[0172] Specifically, in the initial congestion control cycle, the data sending end first enters the filling state and starts data transmission in the filling state. When the bandwidth growth rate determined based on the response data packet in the filling state is less than the first preset threshold, it means that the bandwidth determined based on the response data packet in the filling state no longer increases significantly, indicating that the data transmission link has been filled with data to be transmitted. At this time, the data sending end switches from the filling state to the emptying state. The data sending end continues to transmit data in the emptying state. The current congestion window of the data transmission link can reflect the current upper limit of the amount of in-transit data in the data transmission link. When the amount of in-transit data in the data transmission link in the emptying state is less than the current congestion window of the data transmission link, it means that the data transmission link has not been filled with the data to be transmitted and the data in the buffer area has been cleared. At this time, the data sending end switches from the emptying state to the bandwidth detection state to further accurately detect the bandwidth upper limit of the data transmission link.

[0173] When the rate of change of the data transmission delay determined based on the response data packet in the target state is less than the second preset threshold, it means that the data transmission delay determined based on the response data packet in the target state no longer changes significantly. At this time, the data sending end switches from the target state to the delay detection state to further accurately detect the lower limit of the data transmission delay of the data transmission link.

[0174] After the delay detection state continues for a preset period of time, the data transmitter detects whether the amount of data in transit on the data transmission link meets the preset conditions. If the amount of data in transit on the data transmission link meets the preset conditions, it means that the data transmission link has not yet been filled with the data to be transmitted, and the data in the buffer area has been cleared. At this time, the delay detection state is switched to the filling state, and the data transmission efficiency is improved through the filling state. If the amount of data in transit on the data transmission link does not meet the preset conditions, it means that the data transmission link is filled with the data to be transmitted. At this time, the delay detection state is switched to the bandwidth detection state, and the bandwidth detection state is used to further accurately detect the bandwidth upper limit of the data transmission link.

[0175] In each state, the data sender can record the bandwidth upper limit and data transmission delay lower limit of the data transmission link in real time, and determine the next congestion window based on the latest bandwidth upper limit and data transmission delay lower limit.

[0176] In one embodiment, in the initial congestion control cycle, the next state of the filling state is the emptying state, the next state of the emptying state is the bandwidth detection state, and the next state of the bandwidth detection state is the delay detection state. In other congestion control cycles, the next state of the filling state is the emptying state or the delay detection state, the next state of the emptying state is the bandwidth detection state or the delay detection state, and the next state of the bandwidth detection state is the delay detection state.

[0177] In the above embodiment, by switching between the filling state, the emptying state, the bandwidth detection state, and the delay detection state, the bandwidth upper limit and the data transmission delay lower limit of the data transmission link can be continuously detected on the basis of ensuring the data transmission efficiency, so as to achieve the best transmission effect.

[0178] In a specific embodiment, reference Figure 5 The method of the present application solves the throughput collapse problem and the transmission efficiency problem of the data transmission link by introducing a new state in the BBR (Bottleneck Bandwidth and Round-trip propagation time) algorithm.

[0179] The BBR algorithm determines the bottleneck of the network by detecting the bandwidth (BW) and round-trip delay (RTT, i.e., data transmission delay) of the data transmission link, and adjusts the congestion window size of the data transmission link based on this information to achieve the best transmission efficiency. The BBR algorithm uses a model-based congestion control method that can adaptively adjust the congestion window size when the data transmission link status changes, thereby improving the throughput and response speed of data transmission.

[0180] The BBR algorithm includes Startup (filling state), Drain (draining state), ProbeBW (bandwidth detection state), and ProbeRTT (delay detection state). After the data sender and the data receiver establish a connection, the data sender enters the filling state, gradually increases the sending rate, and then calculates the bandwidth based on the received response packets (ACK packets). When it is found that the bandwidth is no longer increasing, it enters the draining state.

[0181] In order to drain the data that may be filled into the buffer in the filling state, the data sending end will enter the emptying state, during which the sending rate will be reduced. If there is data in the buffer, reducing the sending rate will reduce the data transmission delay, causing the buffer to be gradually emptied until the data transmission delay no longer decreases, and then it enters the stable stage.

[0182] In the stable phase, the bandwidth upper limit and the data transmission delay lower limit of the data transmission link are generally detected alternately. The stable phase includes the bandwidth detection state and the delay detection state. The bandwidth detection state is a positive feedback system: periodically try to increase the packet sending rate, and if the rate of receiving response packets also increases, further increase the packet sending rate. Specifically, with every 8 RTT as a cycle, in the first RTT, try to send data at a speed of 5 / 4 of the estimated bandwidth. In the second RTT, in order to empty the extra packets sent in the previous RTT, send data at a speed of 3 / 4 of the estimated bandwidth. In the remaining 6 RTTs, use the estimated bandwidth to send packets. This mechanism allows the sending rate to increase rapidly when the bandwidth increases, and it takes a certain amount of time to reduce to a stable level when the bandwidth decreases.

[0183] In addition to the bandwidth detection state, BBR also includes the delay detection state. In each state except the delay detection state, every 10 seconds, if the minimum RTT has not changed, that is, no lower RTT is found, the delay detection state is entered. The delay detection state lasts only 200 milliseconds or one RTT. During this period, the sending window of the data sender is fixed to 4 packets, that is, almost no packets are sent. The minimum RTT measured during this period is used as the new lower limit of the data transmission delay. In the delay detection state, the amount of inflights on the data transmission link will decrease rapidly. After the delay detection state continues for a period of time, it is determined whether the data transmission link is fully loaded. If it is fully loaded, it enters the bandwidth detection state. If it is not fully loaded, it enters the filling state.

[0184] Packet loss in the network may be caused by network congestion, for example, the network buffer is full and some packets have to be dropped. Packet loss in the network may also be caused by other reasons, for example, packet loss due to transmission errors. The BBR algorithm cannot distinguish between congestion packet loss and non-congestion packet loss.

[0185] The method of this application introduces a new state Shaping (target adjustment state, also called abnormal state) in the BBR algorithm. If a packet loss event occurs and the delay detection state has been entered once, and the current time from the last exit of the target adjustment state is greater than 3 current RTTs, the target adjustment state is entered. In the target adjustment state, the target congestion window is determined from the first congestion window and the second congestion window, and data transmission is performed based on the target congestion window.

[0186] The target congestion window is calculated as follows:

[0187] cwnd=min(cwnd+acked,upper_cwnd)

[0188] Wherein, cwnd+acked represents the first congestion window, upper_cwnd represents the second congestion window, and the minimum value between the first congestion window and the second congestion window is taken as the target congestion window. For cwnd+acked, cwnd represents the current congestion window, and acked represents the amount of successfully transmitted data determined according to the acknowledgment packet.

[0189] The calculation formula of the second congestion window is as follows:

[0190] upper_cwnd=target_cwnd×upper_scaling_factor

[0191] target_cwnd=cwnd_gain×BtlBw×RTprop

[0192] Among them, target_cwnd represents the updated congestion window corresponding to the current congestion window, that is, the next congestion window in the normal logic of the BBR algorithm. BtlBw represents the latest detected bandwidth upper limit, RTprop represents the latest detected data transmission delay lower limit, and cwnd_gain represents the preset window parameter in the BBR algorithm. upper_scaling_factor represents the preset window adjustment parameter, which is the reduction factor.

[0193] Furthermore, in the target adjustment state, it is determined whether the data in the buffer area of ​​the data transmission link is cleared, and if so, the target adjustment state is exited, and the time of the last exit from the target adjustment state is updated. After exiting the target adjustment state, the normal logic of the BBR algorithm is returned.

[0194] It can be understood that entering the target adjustment state does not affect the switching between various states in the BBR algorithm.

[0195] The method of this application introduces a new state in the BBR algorithm, which can reduce the congestion window to clear the buffer area when congestion packet loss occurs, and can enlarge the congestion window when non-congestion packet loss occurs. The method of this application can provide better bandwidth sharing for competing traffic and can effectively improve the throughput collapse problem of data transmission links.

[0196] In one embodiment, the network congestion data processing method further includes:

[0197] A first data query request is obtained; the first data query request carries a query condition; data meeting the query condition is obtained as a first query result; based on a data transmission link between a first request end corresponding to the first data query request, the first query result is sent to the first request end; during the sending of the first query result, when a packet loss event occurs in the data transmission link in a bandwidth detection state, a step of entering a target adjustment state is executed.

[0198] Among them, the data query request is a request for querying data. The first data query request carries a query condition. The first data query request is used to request to query data that meets the query condition. The first request end can be a device that generates the first data query request. For example, a user searches for a video in a video application of a terminal, and the terminal generates a video query request. The video query request carries the user's search term. It can be understood that the first request end is the terminal, the video query request is the first data query request, and the user's search term is the query condition. The terminal sends the video query request to the application server corresponding to the video application, and the application server obtains the video matching the user's search term as the first query result. The application server sends the first query result to the terminal, and the terminal can display the query result. The first request end can also be a device that forwards the first data query request. For example, the first request end can be a switch.

[0199] Specifically, the method of the present application can be applied to a server. The server receives a first data query request sent by a first request end, and the first data query request carries a query condition. The server queries the database for data that meets the query condition, and uses the queried data as a first query result. The server sends the first query result to the first request end based on the data transmission link between the server and the first request end. The first query result can be transmitted to the first request end in blocks. During the sending of the first query result, the server can detect the bandwidth upper limit and the data transmission delay lower limit of the data transmission link through various data transmission states, and control the data transmission speed based on the detection result. During the sending of the first query result, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the server can enter a target adjustment state.

[0200] For example, refer to Figure 6 , the terminal generates a first data query request carrying a query condition, and the terminal sends the first data query request to the server to request data from the server. The server obtains data that meets the query condition as a first query result, and returns the first query result to the terminal in response to the first data query request of the terminal. The first query result can be transmitted to the terminal in blocks in sequence. During the sending process of the first query result, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the server can enter a target adjustment state, determine a target congestion window from the first congestion window and the second congestion window, and perform data transmission based on the target congestion window, thereby controlling the switching of the bandwidth detection state. Until the amount of in-transit data on the data transmission link meets the preset conditions, the server exits the target adjustment state.

[0201] In the above embodiment, when the server sends the first query result to the first request end, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the server enters a target adjustment state. In the target adjustment state, the server determines the target congestion window from the first congestion window and the second congestion window. Data transmission based on the target congestion window can flexibly cope with various packet loss situations, thereby improving data transmission efficiency.

[0202] In one embodiment, the network congestion data processing method further includes:

[0203] A second data query request is obtained; the second data query request carries receiving end information; based on the receiving end information, the second data query request is forwarded to at least one target server; based on a data transmission link between a second request end corresponding to the second data query request, a second query result returned by at least one target server based on the second data query request is forwarded to the second request end; during the sending process of the second query result, when a packet loss event occurs in the data transmission link in the bandwidth detection state, a step of entering a target adjustment state is executed.

[0204] The second data query request carries the receiver information. The second data query request is used to query data from the receiver matching the receiver information. The receiver information is information describing the receiver and destination of the request. For example, the receiver information may be a domain name to be accessed. At least one target server is a server matching the receiver information. The second request end is a device that generates the second data query request.

[0205] For example, a user opens website A in the browser of a terminal and searches for images in website A. The terminal generates an image query request, which carries the user's search term and the domain name of website A. It can be understood that the second request end is the terminal, the image query request is a second data query request, and the user's search term is the query condition. The terminal sends the image query request to the switch, and the switch queries the corresponding IP address based on the domain name of website A. The switch sends the image query request to the target server corresponding to the queried IP address. The target server obtains the image matching the user's search term as the second query result, and the target server sends the second query result to the terminal through the switch, and the terminal can display the second query result.

[0206] Specifically, the method of the present application can be applied to a switch. The switch receives a second data query request sent by a second request end, and the second data query request carries receiving end information. Based on the receiving end information, the switch determines at least one target server and forwards the second data query request to the at least one target server. The second data query request carries a query condition. After receiving the second data query request, the target server queries the database for data that meets the query condition and uses the queried data as the second query result. At least one target server sends the second query result to the switch so that the switch sends the second query result to the second request end. The switch sends the second query result to the second request end based on the data transmission link between the switch and the second request end. The second query result can be transmitted to the first request end in blocks. In the process of sending the second query result, the switch can detect the bandwidth upper limit and the data transmission delay lower limit of the data transmission link through various data transmission states, and control the data transmission speed based on the detection result. In the process of sending the second query result, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the switch can enter the target adjustment state.

[0207] For example, refer to Figure 7 , the terminal generates a second data query request carrying the query conditions and the receiving end information, and the terminal sends the second data query request to the target server matching the receiving end information through the switch to request data from the target server. The target server obtains the data that meets the query conditions as the second query result, and returns the second query result to the terminal through the switch to respond to the second data query request of the terminal. The second query result can be transmitted to the terminal in blocks in sequence. During the sending process of the second query result, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the switch can enter the target adjustment state, determine the target congestion window from the first congestion window and the second congestion window, perform data transmission based on the target congestion window, and then control the switching of the bandwidth detection state. Until the amount of in-transit data on the data transmission link meets the preset conditions, the switch exits the target adjustment state.

[0208] In the above embodiment, when the switch forwards the second query result to the second request end, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the switch enters the target adjustment state. In the target adjustment state, the switch determines the target congestion window from the first congestion window and the second congestion window. Data transmission based on the target congestion window can flexibly cope with various packet loss situations, thereby improving data transmission efficiency.

[0209] In a specific embodiment, Figure 8 As shown, a method for processing network congestion data is provided, and the method is applied to a data sending end as an example for explanation. Figure 8, the network congestion data processing method comprises the following steps:

[0210] Step S802, when a packet loss event occurs in the data transmission link in the bandwidth detection state, and the current congestion control cycle of the bandwidth detection state is at least the second congestion control cycle, and the time interval between the current time and the last target adjustment state exit time is greater than the reference time interval, enter the target adjustment state.

[0211] Step S804, based on the current response data packet of the data transmission link, determine the current bandwidth and the current data transmission delay of the data transmission link; obtain the maximum value from the current bandwidth and the current bandwidth upper limit of the data transmission link as the current bandwidth upper limit of the data transmission link after the data transmission link is updated; obtain the minimum value from the current data transmission delay and the current data transmission delay lower limit of the data transmission link as the current data transmission delay lower limit after the data transmission link is updated.

[0212] Step S806: Based on the updated current bandwidth upper limit and the current data transmission delay lower limit, an updated congestion window corresponding to the current congestion window of the data transmission link is obtained.

[0213] Step S808, determining the current amount of non-packet-lost data based on the current response data packet, increasing the current congestion window based on the current amount of non-packet-lost data, and obtaining a first congestion window; using the preset window adjustment parameter as a reduction factor, integrating the reduction factor and the updated congestion window, and obtaining a second congestion window; and obtaining the minimum congestion window from the first congestion window and the second congestion window as the target congestion window of the data transmission link.

[0214] Step S810, data transmission is performed based on the target congestion window to obtain a target response data packet, and the switching of the bandwidth detection state is controlled based on the target response data packet until the amount of in-transit data on the data transmission link meets a preset condition, and the target adjustment state is exited.

[0215] In a specific embodiment, the method of the present application can be applied in a data center environment. Fig. 9In a data center environment with high bandwidth, low latency and limited buffer, when a terminal requests data from multiple servers storing data at the same time, and the servers respond and send data to the terminal at the same time, it is easy to cause the total size of the data packet to exceed the buffering capacity of the Ethernet switch, resulting in a catastrophic TCP throughput collapse. The terminal is connected to multiple servers through a switch. The terminal requests data from one or more servers. The data is sent from the server, passes through the switch, and reaches the terminal through the bottleneck link, forming a many-to-one model. The terminal generally requests data with a larger logical block size (such as 1MB), but in fact the data is distributed and stored on many servers in a smaller data block size (such as 32KB). The terminal sends a request to the server storing the required data block until all the data blocks of the current request are successfully received by the terminal, that is, the current request is completed, and then the next request is started. Since the data block storage locations are relatively scattered and the number of concurrent senders is large, the data transmission load may overflow the buffer of the bottleneck switch, resulting in data packet loss, accompanied by TCP timeout retransmission. At the same time, since the client is not allowed to request the next data block until all senders complete the transmission of the current data block, the network will be idle for a long time. This low link utilization phenomenon is also called throughput collapse.

[0216] Through the method of the present application, for the switch, when a packet loss event occurs in the data transmission link with the terminal in the bandwidth detection state, the switch enters the target adjustment state. In the target adjustment state, the switch determines the target congestion window from the first congestion window and the second congestion window. The first congestion window is a congestion window larger than the current congestion window. The first congestion window can improve the data transmission efficiency when the packet loss is not due to network congestion. The second congestion window is a congestion window smaller than the updated congestion window corresponding to the current congestion window. The updated congestion window corresponding to the current congestion window is obtained based on the latest detected bandwidth upper limit and data transmission lower limit. The second congestion window can reduce the data transmission efficiency to alleviate network congestion when the packet loss is due to network congestion, thereby helping to ensure the subsequent data transmission efficiency. In the target adjustment state, the target congestion window is determined from the first congestion window and the second congestion window. Data transmission based on the target congestion window can flexibly cope with various packet loss situations, thereby improving data transmission efficiency.

[0217] Through the method of the present application, for the server, when a packet loss event occurs in the data transmission link with the switch in the bandwidth detection state, the server enters the target adjustment state. In the target adjustment state, the server determines the target congestion window from the first congestion window and the second congestion window. The first congestion window is a congestion window larger than the current congestion window. The first congestion window can improve the data transmission efficiency when the packet loss is not due to network congestion. The second congestion window is a congestion window smaller than the updated congestion window corresponding to the current congestion window. The updated congestion window corresponding to the current congestion window is obtained based on the latest detected bandwidth upper limit and data transmission lower limit. The second congestion window can reduce the data transmission efficiency to alleviate network congestion when the packet loss is due to network congestion, thereby helping to ensure the subsequent data transmission efficiency. In the target adjustment state, the target congestion window is determined from the first congestion window and the second congestion window. Data transmission based on the target congestion window can flexibly respond to various packet loss situations, thereby improving data transmission efficiency.

[0218] In a specific embodiment, the method of the present application can be applied to a video data transmission scenario. Fig.10 , the user can select a video to play on the terminal. In order to play the video, the terminal needs to obtain video data from the video server. Since the video data is generally large, the video server can send the video data to the terminal in blocks. In the process of the video server sending the video data to the terminal, when a packet loss event occurs in the data transmission link with the terminal in the bandwidth detection state, the video server enters the target adjustment state. In the target adjustment state, the video server determines the target congestion window from the first congestion window and the second congestion window. The first congestion window is a congestion window larger than the current congestion window. The first congestion window can improve the data transmission efficiency when the packet loss is not caused by network congestion. The second congestion window is a congestion window smaller than the updated congestion window corresponding to the current congestion window. The updated congestion window corresponding to the current congestion window is obtained based on the latest detected bandwidth upper limit and data transmission lower limit. The second congestion window can reduce the data transmission efficiency to alleviate the network congestion when the packet loss is caused by network congestion, thereby helping to ensure the subsequent data transmission efficiency.

[0219] In a specific embodiment, the method of the present application can be applied to a navigation data transmission scenario. Fig.11, the user uses the map application on the terminal for navigation guidance. In order to provide real-time navigation guidance, the terminal needs to obtain navigation data from the map server. Since the navigation data is generally large, the map server can send the navigation data packets to the terminal. In the process of the map server sending the navigation data to the terminal, when a packet loss event occurs in the data transmission link with the terminal in the bandwidth detection state, the map server enters the target adjustment state. In the target adjustment state, the map server determines the target congestion window from the first congestion window and the second congestion window. The first congestion window is a congestion window larger than the current congestion window. The first congestion window can improve the data transmission efficiency when the packet loss is not due to network congestion. The second congestion window is a smaller congestion window than the updated congestion window corresponding to the current congestion window. The updated congestion window corresponding to the current congestion window is based on the latest detected bandwidth upper limit and data transmission lower limit. The second congestion window can reduce the data transmission efficiency to alleviate network congestion when the packet loss is due to network congestion, thereby helping to ensure the subsequent data transmission efficiency.

[0220] It is understandable that the method of the present application can also be applied to other data transmission scenarios, such as text transmission scenarios, picture transmission scenarios, audio transmission scenarios, etc.

[0221] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.

[0222] Based on the same inventive concept, the embodiment of the present application also provides a network congestion data processing device for implementing the network congestion data processing method involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in the one or more network congestion data processing device embodiments provided below can refer to the limitations of the network congestion data processing method above, and will not be repeated here.

[0223] In one embodiment, Fig.12 As shown, a network congestion data processing device is provided, including: an entry module 1202, an update module 1204, a determination module 1206 and a transmission module 1208, wherein:

[0224] Entering module 1202 is used to enter the target adjustment state when a packet loss event occurs in the data transmission link in the bandwidth detection state; the bandwidth detection state is used to detect the bandwidth upper limit of the data transmission link during the data transmission process.

[0225] The updating module 1204 is used to update the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link based on the current response data packet of the data transmission link, and obtain the updated congestion window corresponding to the current congestion window of the data transmission link based on the updated current bandwidth upper limit and the current data transmission delay lower limit.

[0226] The determination module 1206 is used to increase the current congestion window based on the current response data packet to obtain a first congestion window, reduce and update the congestion window based on a preset window adjustment parameter to obtain a second congestion window, and determine a target congestion window of the data transmission link from the first congestion window and the second congestion window.

[0227] The transmission module 1208 is used to transmit data based on the target congestion window, obtain the target response data packet, and control the switching of the bandwidth detection state based on the target response data packet until the amount of in-transit data on the data transmission link meets the preset conditions and exits the target adjustment state.

[0228] In one embodiment, the next state of the bandwidth detection state is the delay detection state, and the delay detection state is used to detect the lower limit of the data transmission delay of the data transmission link with a preset congestion window during the data transmission process. The network congestion data processing device is also used to:

[0229] When switching from the delay detection state to other states, the congestion control period of the data transmission link is updated.

[0230] In one embodiment, the entry module 1202 is further configured to:

[0231] When a packet loss event occurs in the data transmission link in the bandwidth detection state, and the current congestion control cycle in the bandwidth detection state is at least the second congestion control cycle, the target adjustment state is entered.

[0232] In one embodiment, the entry module 1202 is further configured to:

[0233] When a packet loss event occurs in the data transmission link in the bandwidth detection state, and the current congestion control cycle of the bandwidth detection state is at least the second congestion control cycle, and the time interval between the current time and the last target adjustment state exit time is greater than the reference time interval, enter the target adjustment state;

[0234] The reference time interval is determined based on the data transmission delay corresponding to the packet loss event.

[0235] In one embodiment, the update module 1204 is further configured to:

[0236] Determine the current bandwidth and the current data transmission delay of the data transmission link based on the current response data packet of the data transmission link;

[0237] From the current bandwidth and the current bandwidth upper limit of the data transmission link, a maximum value is obtained as the updated current bandwidth upper limit of the data transmission link;

[0238] From the current data transmission delay and the lower limit of the current data transmission delay of the data transmission link, a minimum value is obtained as the updated lower limit of the current data transmission delay of the data transmission link.

[0239] In one embodiment, the determination module 1206 is further configured to:

[0240] Determine the current amount of non-packet-lost data based on the current response data packet, and increase the current congestion window based on the current amount of non-packet-lost data to obtain a first congestion window;

[0241] Using the preset window adjustment parameter as a reduction factor, fusing the reduction factor and the updated congestion window to obtain a second congestion window;

[0242] A minimum congestion window is obtained from the first congestion window and the second congestion window as a target congestion window of the data transmission link.

[0243] In one embodiment, the transmission module 1208 is further configured to:

[0244] determining a target data transmission delay of the data transmission link based on the target response data packet;

[0245] When the target data transmission delay is not the minimum value of the data transmission delay within the preset historical time period, switching from the bandwidth detection state to the delay detection state;

[0246] When the target data transmission delay is the minimum value of the data transmission delay within the preset historical time period, the bandwidth detection state is maintained; the bandwidth detection state is used to detect the bandwidth upper limit of the data transmission link based on the preset packet speed adjustment parameter set during the data transmission process.

[0247] In one embodiment, the network congestion data processing device is further configured to:

[0248] The target response data packet is used as the current response data packet of the data transmission link, the target congestion window is used as the current congestion window of the data transmission link, and the updated current bandwidth upper limit and current data transmission delay lower limit are used as the current bandwidth upper limit and current data transmission delay lower limit of the data transmission link;

[0249] Return the current response data packet based on the data transmission link, and update the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link until the amount of in-transit data on the data transmission link meets the preset conditions and exits the target adjustment state.

[0250] In one embodiment, the network congestion data processing device is further configured to:

[0251] determining a target data transmission delay of the data transmission link based on the target response data packet;

[0252] When the target data transmission delay is greater than or equal to the historical data transmission delay of the data transmission link, it is determined that the amount of in-transit data on the data transmission link meets a preset condition.

[0253] In one embodiment, the network congestion data processing device is further configured to:

[0254] Based on the target response data packet, the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link are updated, and based on the updated current bandwidth upper limit and the current data transmission delay lower limit, the updated in-transit data volume upper limit of the data transmission link is obtained;

[0255] When the current in-transit data volume of the data transmission link is less than the updated in-transit data volume upper limit, it is determined that the in-transit data volume on the data transmission link meets the preset condition.

[0256] In one embodiment, the network congestion data processing device is further configured to:

[0257] In the initial congestion control cycle, a filling state is entered; the filling state is used to transmit data in the data transmission link based on the continuously growing congestion window;

[0258] When the bandwidth growth rate determined based on the reply data packet in the filling state is less than the first preset threshold, switching from the filling state to the emptying state; the emptying state is used to transmit data in the data transmission link based on the continuously decreasing congestion window;

[0259] When the amount of in-transit data in the data transmission link in the draining state is less than the current congestion window of the data transmission link, switching from the draining state to the bandwidth detection state;

[0260] When the data transmission delay change rate determined based on the response data packet in the target state is less than a second preset threshold, switching from the target state to the delay detection state; the target state includes at least one of a filling state, an emptying state, and a bandwidth detection state;

[0261] After the delay detection state continues for a preset time, when the amount of data in transit on the data transmission link meets the preset conditions, it switches from the delay detection state to the filling state; when the amount of data in transit on the data transmission link does not meet the preset conditions, it switches from the delay detection state to the bandwidth detection state.

[0262] In one embodiment, the network congestion data processing device is further configured to:

[0263] Obtaining a first data query request; the first data query request carries a query condition;

[0264] Acquire data that meets the query condition as the first query result;

[0265] Sending the first query result to the first request end based on a data transmission link between the first request end corresponding to the first data query request;

[0266] During the sending process of the first query result, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the step of entering the target adjustment state is executed.

[0267] In one embodiment, the network congestion data processing device is further configured to:

[0268] Obtaining a second data query request; the second data query request carries receiving end information;

[0269] forwarding the second data query request to at least one target server based on the receiving end information;

[0270] Based on a data transmission link between the second request end corresponding to the second data query request, forwarding a second query result returned by at least one target server based on the second data query request to the second request end;

[0271] During the sending process of the second query result, when a packet loss event occurs in the data transmission link in the bandwidth detection state, the step of entering the target adjustment state is executed.

[0272] The above-mentioned network congestion data processing device enters a target adjustment state when packet loss occurs in a data transmission link. In the target adjustment state, a target congestion window is determined from the first congestion window and the second congestion window. The first congestion window is a congestion window larger than the current congestion window. The first congestion window can improve the data transmission efficiency when the packet loss is not caused by network congestion. The second congestion window is a congestion window smaller than the updated congestion window corresponding to the current congestion window. The updated congestion window corresponding to the current congestion window is obtained based on the latest detected bandwidth upper limit and data transmission lower limit. The second congestion window can reduce the data transmission efficiency to alleviate the network congestion when the packet loss is caused by network congestion, thereby helping to ensure the subsequent data transmission efficiency. In the target adjustment state, the target congestion window is determined from the first congestion window and the second congestion window. Data transmission based on the target congestion window can flexibly cope with various packet loss situations, thereby improving data transmission efficiency.

[0273] Each module in the above network congestion data processing device can be implemented in whole or in part by software, hardware, or a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute operations corresponding to each module.

[0274] In one embodiment, a computer device is provided. The computer device may be a server, and its internal structure diagram may be as follows: Fig.13 As shown. The computer device includes a processor, a memory, an input / output interface (Input / Output, referred to as I / O) and a communication interface. Among them, the processor, the memory and the input / output interface are connected through a system bus, and the communication interface is connected to the system bus through the input / output interface. Among them, 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 the computer program in the non-volatile storage medium. The database of the computer device is used to store data such as the bandwidth upper limit and the data transmission delay lower limit of the data transmission link. The input / output interface of the computer device is used to exchange information between the processor and an external device. The communication interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, a network congestion data processing method is implemented.

[0275] In one embodiment, a computer device is provided. The computer device may be a terminal, and its internal structure diagram may be as follows: Fig.14As shown. The computer device includes a processor, a memory, an input / output interface, a communication interface, a display unit and an input device. Among them, the processor, the memory and the input / output interface are connected through a system bus, and the communication interface, the display unit and the input device are connected to the system bus through the input / output interface. Among them, 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 input / output interface of the computer device is used to exchange information between the processor and the external device. 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 implemented through WIFI, a mobile cellular network, NFC (near field communication) or other technologies. When the computer program is executed by the processor, a network congestion data processing method is implemented. The display unit of the computer device is used to form a visually visible picture, which can be a display screen, a projection device or a virtual reality imaging device. The display screen 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 set on the computer device shell, or an external keyboard, touchpad or mouse.

[0276] Those skilled in the art will understand that Fig.13 , 14 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 those shown in the figure, or combine certain components, or have a different arrangement of components.

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

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

[0279] In one embodiment, a computer program product is provided. The computer program product includes a computer program. When the computer program is executed by a processor, the steps in the above method embodiments are implemented.

[0280] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant regulations.

[0281] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed 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 the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. 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). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but are not limited to this.

[0282] The technical features of the above embodiments may 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.

[0283] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.

Claims

1. A method for processing network congestion data, characterized in that: The method comprises: When a packet loss event occurs in the data transmission link in the bandwidth detection state, the target adjustment state is entered; the bandwidth detection state is used to detect the bandwidth upper limit of the data transmission link during the data transmission process; Based on the current response data packet of the data transmission link, the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link are updated, and based on the updated current bandwidth upper limit and the current data transmission delay lower limit, an updated congestion window corresponding to the current congestion window of the data transmission link is obtained; Based on the current response data packet, the current congestion window is increased to obtain a first congestion window, based on a preset window adjustment parameter, the updated congestion window is reduced to obtain a second congestion window, and a target congestion window of the data transmission link is determined from the first congestion window and the second congestion window; Data transmission is performed based on the target congestion window to obtain a target response data packet, and the switching of the bandwidth detection state is controlled based on the target response data packet until the amount of in-transit data on the data transmission link meets a preset condition, and the target adjustment state is exited.

2. The method according to claim 1, characterized in that The next state of the bandwidth detection state is the delay detection state, and the delay detection state is used to detect the lower limit of the data transmission delay of the data transmission link with a preset congestion window during the data transmission process; The method further comprises: When switching from the delay detection state to other states, the congestion control period of the data transmission link is updated.

3. The method according to claim 2, characterized in that When a packet loss event occurs in the data transmission link in the bandwidth detection state, entering the target adjustment state includes: When a packet loss event occurs in the data transmission link in the bandwidth detection state, and the current congestion control cycle of the bandwidth detection state is at least the second congestion control cycle, the target adjustment state is entered.

4. The method according to claim 2, characterized in that: When a packet loss event occurs in the data transmission link in the bandwidth detection state, entering the target adjustment state includes: When a packet loss event occurs in the data transmission link in the bandwidth detection state, and the current congestion control cycle of the bandwidth detection state is at least the second congestion control cycle, and the time interval between the current time and the last target adjustment state exit time is greater than the reference time interval, enter the target adjustment state; The reference time interval is determined based on the data transmission delay corresponding to the packet loss event.

5. The method according to claim 1, characterized in that The updating of the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link based on the current response data packet of the data transmission link includes: Determining a current bandwidth and a current data transmission delay of the data transmission link based on a current response data packet of the data transmission link; From the current bandwidth and the current bandwidth upper limit of the data transmission link, obtaining a maximum value as the updated current bandwidth upper limit of the data transmission link; A minimum value is obtained from the current data transmission delay and the lower limit of the current data transmission delay of the data transmission link as the updated lower limit of the current data transmission delay of the data transmission link.

6. The method according to claim 1, characterized in that The method of increasing the current congestion window based on the current response data packet to obtain a first congestion window, reducing the updated congestion window based on a preset window adjustment parameter to obtain a second congestion window, and determining a target congestion window of the data transmission link from the first congestion window and the second congestion window includes: Determine a current amount of non-packet-lost data based on the current response data packet, and increase the current congestion window based on the current amount of non-packet-lost data to obtain a first congestion window; Using a preset window adjustment parameter as a reduction factor, fusing the reduction factor and the updated congestion window to obtain a second congestion window; A minimum congestion window is obtained from the first congestion window and the second congestion window as a target congestion window of the data transmission link.

7. The method according to claim 1, characterized in that The controlling the switching of the bandwidth detection state based on the target response data packet includes: Determining a target data transmission delay of the data transmission link based on the target response data packet; When the target data transmission delay is not the minimum value of the data transmission delay within a preset historical time period, switching from the bandwidth detection state to the delay detection state; When the target data transmission delay is the minimum value of the data transmission delay within a preset historical time period, the bandwidth detection state is maintained; the bandwidth detection state is used to detect the bandwidth upper limit of the data transmission link based on a preset packet speed adjustment parameter set during data transmission.

8. The method according to claim 1, characterized in that The method further comprises: Using the target response data packet as the current response data packet of the data transmission link, using the target congestion window as the current congestion window of the data transmission link, and using the updated current bandwidth upper limit and current data transmission delay lower limit as the current bandwidth upper limit and current data transmission delay lower limit of the data transmission link; The step of returning the current response data packet based on the data transmission link, updating the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link is executed until the amount of in-transit data on the data transmission link meets the preset conditions, and exiting the target adjustment state.

9. The method according to claim 1, characterized in that: The method further comprises: Determining a target data transmission delay of the data transmission link based on the target response data packet; When the target data transmission delay is greater than or equal to the historical data transmission delay of the data transmission link, it is determined that the amount of in-transit data on the data transmission link meets a preset condition.

10. The method according to claim 1, characterized in that The method further comprises: Based on the target response data packet, update the current bandwidth upper limit and the current data transmission delay lower limit of the data transmission link, and obtain the updated in-transit data volume upper limit of the data transmission link based on the updated current bandwidth upper limit and the current data transmission delay lower limit; When the current in-transit data volume of the data transmission link is less than the updated in-transit data volume upper limit, it is determined that the in-transit data volume on the data transmission link meets a preset condition.

11. The method according to claim 1, characterized in that: The method further comprises: In the initial congestion control cycle, entering a filling state; the filling state is used to perform data transmission in the data transmission link based on the continuously growing congestion window; When the bandwidth growth rate determined based on the reply data packet in the filling state is less than a first preset threshold, switching from the filling state to the emptying state; the emptying state is used to perform data transmission in the data transmission link based on a continuously decreasing congestion window; When the amount of in-transit data in the data transmission link in the draining state is less than the current congestion window of the data transmission link, switching from the draining state to the bandwidth detection state; When the data transmission delay change rate determined based on the response data packet in the target state is less than a second preset threshold, switching from the target state to the delay detection state; the target state includes at least one of the filling state, the emptying state, and the bandwidth detection state; After the delay detection state continues for a preset time, when the amount of in-transit data on the data transmission link meets a preset condition, the state is switched from the delay detection state to the filling state; when the amount of in-transit data on the data transmission link does not meet the preset condition, the state is switched from the delay detection state to the bandwidth detection state.

12. The method according to any one of claims 1 to 11, characterized in that The method further comprises: Obtaining a first data query request; the first data query request carries a query condition; Acquire data that meets the query condition as a first query result; Sending the first query result to the first request end based on a data transmission link between the first request end corresponding to the first data query request; During the sending process of the first query result, the step of entering the target adjustment state when a packet loss event occurs in the data transmission link in the bandwidth detection state is executed.

13. The method according to any one of claims 1 to 11, characterized in that The method further comprises: Obtaining a second data query request; the second data query request carries receiving end information; forwarding the second data query request to at least one target server based on the receiving end information; forwarding a second query result returned by the at least one target server based on the second data query request to the second request end based on a data transmission link between the second request end corresponding to the second data query request; During the sending process of the second query result, the step of entering the target adjustment state when a packet loss event occurs in the data transmission link in the bandwidth detection state is executed.

14. A network congestion data processing device, characterized in that: The device comprises: An entry module is used to enter a target adjustment state when a packet loss event occurs in a data transmission link in a bandwidth detection state; the bandwidth detection state is used to detect a bandwidth upper limit of the data transmission link during data transmission; An updating module, configured to update a current bandwidth upper limit and a current data transmission delay lower limit of the data transmission link based on a current response data packet of the data transmission link, and obtain an updated congestion window corresponding to a current congestion window of the data transmission link based on the updated current bandwidth upper limit and current data transmission delay lower limit; A determination module, configured to increase the current congestion window based on the current response data packet to obtain a first congestion window, reduce the updated congestion window based on a preset window adjustment parameter to obtain a second congestion window, and determine a target congestion window of the data transmission link from the first congestion window and the second congestion window; A transmission module is used to transmit data based on the target congestion window, obtain a target response data packet, and control the switching of the bandwidth detection state based on the target response data packet until the amount of in-transit data on the data transmission link meets a preset condition, and then exit the target adjustment state.

15. 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 13 are implemented.

16. A computer-readable storage medium having a computer program stored thereon, 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 13 are implemented.

17. 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 13 are implemented.

Citation Information

Cited By

  • Network optimization method and device, storage medium and computer program product

    CN121334074A