Congestion control method and device, electronic equipment and storage medium

By determining the link round trip time in the mobile network and adjusting the TCP congestion window value, the problem of failing to effectively consider the link round trip time in the prior art is solved, and network transmission efficiency is improved.

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

Patent Information

Application Number
CN202311319071.3
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 existing TCP congestion control algorithm fails to effectively consider the link round trip time of the mobile network, resulting in low network transmission efficiency.

Method used

By receiving the arrival time and transmission time of the acknowledgement data packet, the first link round trip time is determined; according to the comparison between the first link round trip time and the second link round trip time, the congestion window value is adjusted. The specific method includes increasing or slowing the increase rate of the congestion window value.

Benefits of technology

Taking into account the change in the link round trip time of the confirmation packet, adjust the congestion window value to slow down the increase rate of the congestion window value, thereby improving data transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119814662A_ABST
    Figure CN119814662A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a congestion control method and device, electronic equipment and a storage medium, and relates to the technical field of Internet. The congestion control method comprises the following steps: if an acknowledgement data packet is received, determining the first link round-trip time of the received acknowledgement data packet based on the arrival time of the acknowledgement data packet and the sending time of the acknowledgement data packet; if the round-trip time of the first link is less than or equal to the round-trip time of the second link of the received previous acknowledgement data packet, adding a first preset numerical value to the congestion window value of the next transmission period; if the round-trip time of the first link is greater than the round-trip time of the second link, determining an attenuation factor for a first preset value based on the round-trip time of the first link and the round-trip time of the second link; and determining an increase value for the congestion window value based on the determined attenuation factor and a first preset value, and adjusting the congestion window value. According to the congestion control method provided by the invention, the congestion window can be controlled more accurately, so that the network transmission efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of Internet, and more specifically, to a congestion control method, device, electronic device and storage medium. Background Art

[0002] With the continuous improvement of the mobile communication network environment and the further popularization of mobile terminals, mobile Internet applications have deeply penetrated into various life needs of users. The performance of mobile Internet applications depends to a large extent on the network transmission performance of the mobile Internet. However, the complex infrastructure and fragile transmission signals of the mobile network make it have a more complex transmission state than the traditional network.

[0003] At present, in order to improve network transmission performance, the Transmission Control Protocol (TCP) congestion control algorithm is usually used to control network congestion. However, this scheme is mainly studied based on traditional networks. It adapts to the network transmission status of traditional networks, but does not consider the link round-trip time of mobile networks, resulting in low network transmission efficiency. Summary of the invention

[0004] The purpose of the embodiments of the present application is to provide a congestion control method, device and electronic device. The technical solutions provided by the embodiments of the present application are as follows:

[0005] On the one hand, an embodiment of the present application provides a congestion control method, the method comprising:

[0006] If an acknowledgment data packet is received, determining a first link round trip time of the received acknowledgment data packet based on an arrival time of the acknowledgment data packet and a sending time of the acknowledgment data packet;

[0007] If the first link round trip time is less than or equal to the second link round trip time of the last received confirmation data packet, the congestion window value of the next transmission cycle is increased by a first preset value;

[0008] If the first link round trip time is greater than the second link round trip time, determining an attenuation factor for a first preset value based on the first link round trip time and the second link round trip time;

[0009] An increase value for the congestion window value is determined based on the determined attenuation factor and the first preset value, and the congestion window value is adjusted in the next transmission cycle based on the determined increase value.

[0010] On the other hand, an embodiment of the present application provides a congestion control device, including:

[0011] A first determining module, configured to determine, if a confirmation data packet is received, a first link round trip time of the received confirmation data packet based on an arrival time of the confirmation data packet and a sending time of the confirmation data packet;

[0012] An increasing module, configured to increase the congestion window value of the next transmission cycle by a first preset value if the round trip time of the first link is less than or equal to the round trip time of the second link of the last received confirmation data packet;

[0013] A second determination module, configured to determine an attenuation factor for a first preset value based on the first link round-trip time and the second link round-trip time if the first link round-trip time is greater than the second link round-trip time;

[0014] The adjustment module is used to determine an increase value for the congestion window value based on the determined attenuation factor and the first preset value, and adjust the congestion window value in the next transmission cycle based on the determined increase value.

[0015] In some possible implementations, if the congestion window value of the current transmission cycle is less than the slow start threshold, and the round-trip time of the first link is greater than the round-trip time of the second link; when the second determination module determines the attenuation factor for the first preset value based on the round-trip time of the first link and the round-trip time of the second link, it is specifically used to:

[0016] Determine the sum of the first link round trip time and the second link round trip time;

[0017] A ratio between the second link round trip time and the determined sum is determined, and the determined ratio is used as a decay factor.

[0018] In some possible implementations, if the congestion window value of the current transmission cycle is greater than or equal to the slow start threshold, and the round-trip time of the first link is greater than the round-trip time of the second link; when the second determination module determines the attenuation factor for the first preset value based on the round-trip time of the first link and the round-trip time of the second link, it is specifically used to:

[0019] determining a difference between a first link round trip time and a second link round trip time;

[0020] The preset initial growth factor is updated by the difference to obtain a first growth factor;

[0021] A ratio between the first growth factor and the congestion window value is determined to obtain a decay factor.

[0022] In some possible implementations, when the second determination module updates the preset initial growth factor by the difference to obtain the first growth factor, it is specifically used to:

[0023] The initial growth factor is updated based on the difference to obtain a second growth factor; the second growth factor is positively correlated with the square of the difference;

[0024] Determine the difference between the second preset value and the preset initial adjustment coefficient to obtain a third growth factor;

[0025] Based on a product between the third growth factor and the second growth factor, a first growth factor is determined.

[0026] In some possible implementations, an update module is further included, which is used to:

[0027] If network congestion is detected, the congestion window value of the next transmission cycle is set to the slow start threshold;

[0028] The slow start threshold is updated based on the maximum value of the first value and the second value; wherein the first value is determined based on the current window size of the sending window of the current transmission cycle or the size of the message segment sent by the sending window of the current transmission cycle; the second value is determined based on the adjustment coefficient and the number of bytes currently sent by the sending window of the current transmission cycle; the adjustment coefficient is determined based on the initial adjustment coefficient.

[0029] In some possible implementations, a third determining module is further included, which is used to:

[0030] Determine a first network throughput of the sending window in a current transmission cycle, and determine a second network throughput of the sending window in a previous transmission cycle;

[0031] Determine a ratio between the first network throughput and the second network throughput to obtain a throughput change value;

[0032] The first value and the second value are determined based on the throughput change value, the initial adjustment coefficient, the current window size, the message segment size, and the number of bytes currently sent by the sending window in the current transmission period.

[0033] In some possible implementations, when the third determination module determines the first value and the second value based on the throughput change value, the initial adjustment coefficient, the current window size, the segment size, and the number of bytes currently sent by the sending window in the current transmission period, it is specifically used to:

[0034] If the throughput change value is less than or equal to the first threshold, the current window size is used as the first value;

[0035] Determine the maximum link round trip time and the minimum link round trip time of the current transmission cycle based on the link round trip time corresponding to at least one confirmation data packet received in the sending window of the current transmission cycle;

[0036] An initial adjustment coefficient is updated based on the maximum link round trip time and the minimum link round trip time to obtain an adjustment coefficient;

[0037] The second value is determined based on the product of the adjustment coefficient and the number of bytes currently sent by the sending window.

[0038] In some possible implementations, when the third determination module determines the first value and the second value based on the throughput change value, the initial adjustment coefficient, the current window size, the segment size, and the number of bytes currently sent by the sending window in the current transmission period, it is specifically used to:

[0039] If the throughput change value is greater than the first threshold, the current window size is updated based on the message segment size to obtain an updated window size of the sending window;

[0040] Update the window size as the first value;

[0041] The second value is determined based on the product of the initial adjustment coefficient and the number of bytes currently sent by the sending window.

[0042] On the other hand, an embodiment of the present application further provides an electronic device, which includes a memory and a processor, wherein a computer program is stored in the memory, and the processor executes the computer program to implement the method provided in any optional embodiment of the present application.

[0043] On the other hand, an embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored. When the computer program is executed by a processor, the method provided in any optional embodiment of the present application is implemented.

[0044] On the other hand, an embodiment of the present application further provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, it implements the method provided in any optional embodiment of the present application.

[0045] The beneficial effects of the technical solution provided by the embodiment of the present application are as follows:

[0046] By combining the round-trip time of the first link and the round-trip time of the second link to determine an attenuation factor for a first preset value, and then determining an increase value for the congestion window value based on the determined attenuation factor and the first preset value, and adjusting the congestion window value in the next transmission cycle based on the determined increase value, the congestion window value can be adjusted based on changes in the link round-trip time of confirming the data packet, thereby slowing down the rate of increase of the congestion window value and improving data transmission efficiency.

[0047] Furthermore, if the round trip time of the first link is greater than the round trip time of the second link, the attenuation factor is determined by the round trip time of the second link in the previous transmission cycle and the round trip time of the first link in the current transmission cycle to slow down the increase rate of the congestion window value.

[0048] Furthermore, in the slow start phase and the congestion avoidance phase, the round-trip time of the first link and the round-trip time of the second link are combined, and the increase rate of the congestion window value is slowed down to different degrees by using different calculation methods for the attenuation factor. The congestion window value can be adjusted more accurately, thereby ensuring the efficiency of network transmission.

[0049] Furthermore, the congestion window value of the next transmission cycle is set to the slow start threshold. After the next transmission cycle begins to re-enter the congestion avoidance phase, the slow start threshold is updated again. If the network enters congestion again, the congestion window value is updated to the new slow start threshold. By continuously updating the slow start threshold, the update value of the congestion window value after entering congestion avoidance can be gradually adjusted, so as to more accurately control network congestion. BRIEF DESCRIPTION OF THE DRAWINGS

[0050] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in describing the embodiments of the present application are briefly introduced below.

[0051] Figure 1 A schematic diagram of an application environment of a congestion control method provided in an example;

[0052] Figure 2 A flowchart of a congestion control method provided in an embodiment of the present application;

[0053] Figure 3 A schematic diagram of a congestion control method provided for an example of the present application;

[0054] Figure 4 A schematic diagram of a congestion control method provided for an example of the present application;

[0055] Figure 5 A schematic diagram of a congestion control method provided for an example of the present application;

[0056] Figure 6 A schematic diagram of the structure of a congestion control device provided in an embodiment of the present application;

[0057] Figure 7 A schematic diagram of the structure of an electronic device applicable to an embodiment of the present application. DETAILED DESCRIPTION

[0058] The embodiments of the present application are described below in conjunction with the drawings in the present application. It should be understood that the implementation methods described below in conjunction with the drawings are exemplary descriptions for explaining the technical solutions of the embodiments of the present application and do not constitute a limitation on the technical solutions of the embodiments of the present application.

[0059] It will be understood by those skilled in the art that, unless specifically stated, the singular forms "one", "said", and "the" used herein may also include plural forms. It should be further understood that the terms "including" and "comprising" used in the embodiments of the present application refer to that the corresponding features can be implemented as the presented features, information, data, steps, operations, elements and / or components, but do not exclude the implementation as other features, information, data, steps, operations, elements, components and / or combinations thereof supported by the technical field. It should be understood that when we say that an element is "connected" or "coupled" to another element, the one element may be directly connected or coupled to the other element, or it may refer to that the one element and the other element establish a connection relationship through an intermediate element. In addition, the "connection" or "coupling" used herein may include wireless connection or wireless coupling. The term "and / or" used herein indicates at least one of the items defined by the term, for example, "A and / or B" may be implemented as "A", or as "B", or as "A and B". When describing multiple (two or more) items, if the relationship between the multiple items is not clearly defined, the multiple items may refer to one, multiple or all of the multiple items. For example, the description of "parameter A includes A1, A2, A3" can be implemented as parameter A including A1 or A2 or A3, and can also be implemented as parameter A including at least two of the three items A1, A2, A3.

[0060] The congestion control method of the present application can be implemented based on cloud technology.

[0061] Cloud computing refers to the delivery and use model of IT infrastructure, which means obtaining required resources through the network in an on-demand and easily scalable manner; in a broad sense, cloud computing refers to the delivery and use model of services, which means obtaining required services through the network in an on-demand and easily scalable manner. This service can be IT and software, Internet-related, or other services. Cloud computing is the product of the development and integration of traditional computer and network technologies such as grid computing, distributed computing, parallel computing, utility computing, network storage technologies, virtualization, and load balancing.

[0062] With the development of the Internet, real-time data streams, and the diversification of connected devices, as well as the demand for search services, social networks, mobile commerce, and open collaboration, cloud computing has developed rapidly. Different from the previous parallel distributed computing, the emergence of cloud computing will promote revolutionary changes in the entire Internet model and enterprise management model from a conceptual perspective.

[0063] Big data refers to a collection of data that cannot be captured, managed, and processed by conventional software tools within a certain time frame. It is a massive, high-growth, and diverse information asset that requires new processing models to have stronger decision-making power, insight discovery, and process optimization capabilities. With the advent of the cloud era, big data has also attracted more and more attention. Big data requires special technologies to effectively process large amounts of data within a tolerable time frame. Technologies applicable to big data include large-scale parallel processing databases, data mining, distributed file systems, distributed databases, cloud computing platforms, the Internet, and scalable storage systems.

[0064] The solution provided in the embodiments of the present application involves technologies such as congestion control, which is specifically explained through the following embodiments.

[0065] The following describes several optional embodiments to illustrate the technical solution provided by the present application and the technical effects produced by the technical solution of the present application. It should be noted that the following implementations can refer to, draw on or combine with each other, and the same terms, similar features and similar implementation steps in different implementations will not be described repeatedly.

[0066] In the specific implementation of this application, any relevant data such as data packets are involved. When the embodiments of this application are applied to specific products or technologies, the permission or consent of the object needs to be obtained, and the collection, use and processing of the relevant data need to comply with the relevant laws, regulations and standards of the relevant countries and regions. In other words, if any of the above-mentioned data related to data packets is involved in the embodiments of this application, these data need to be obtained with the authorization and consent of the object and in compliance with the relevant laws, regulations and standards of the country and region.

[0067] The congestion control method provided in the embodiment of the present application can be executed by any computer device, and optionally, can be executed by a server, wherein the server can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides cloud computing services.

[0068] Figure 1A schematic diagram of an application environment of a congestion control method provided in an embodiment of the present application. The application environment may include a network device 101 and a network device 102. The network device 101 establishes a communication connection with at least one network device 102, and the network device 101 may send a data packet to the network device 102. When the network device 101 receives a confirmation data packet returned by the network device 102, the network device 101 determines the first link round trip time of the received confirmation data packet based on the arrival time of the confirmation data packet and the sending time of the confirmation data packet; if the first link round trip time is less than or equal to the second link round trip time of the last confirmation data packet received, the congestion window value of the next transmission cycle is increased by a first preset value; if the first link round trip time is greater than the second link round trip time, an attenuation factor for the first preset value is determined based on the first link round trip time and the second link round trip time; an increase value for the congestion window value is determined based on the determined attenuation factor and the first preset value, and the congestion window value is adjusted in the next transmission cycle based on the determined increase value.

[0069] Among them, the network device 101 and the network device 102 can be a terminal or a server. The terminal can be, but is not limited to, various personal computers, laptops, smart phones, tablet computers, vehicle-mounted terminals and portable wearable devices, and the server can be implemented as an independent server or a server cluster or cloud server composed of multiple servers. It can be understood that there can be at least one of the network device 101 and the network device 102. The network device 101 can send data packets to different network devices 102, and the network device 102 can also receive data packets sent by different network devices 101.

[0070] It can be understood by technicians in this technical field that the server can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server or server cluster that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms. The terminal can be a smart phone (such as Android phones, iOS phones, etc.), a tablet computer, a laptop computer, a digital broadcast receiver, a MID (Mobile Internet Devices), a PDA (personal digital assistant), a desktop computer, a smart home appliance, a vehicle-mounted terminal (such as a vehicle-mounted navigation terminal, a vehicle-mounted computer, etc.), a smart speaker, a smart watch, etc. The terminal and the server can be directly or indirectly connected by wired or wireless communication, but are not limited to this. The embodiments of the present invention can be applied to various scenarios, including but not limited to cloud technology, artificial intelligence, smart transportation, assisted driving, etc. It can also be determined based on the actual application scenario requirements, and is not limited here.

[0071] The terminal (also referred to as a user terminal or user device) may be a smart phone, a tablet computer, a laptop computer, a desktop computer, an intelligent voice interaction device (such as an intelligent speaker), a wearable electronic device (such as a smart watch), a vehicle terminal, a smart home appliance (such as a smart TV), an AR / VR device, an aircraft, etc., but is not limited thereto. The embodiments of the present invention may be applied to various scenarios, including but not limited to cloud technology, artificial intelligence, smart transportation, assisted driving, etc.

[0072] In some possible implementations, a congestion control method is provided, which can be executed by a network device of a sender.

[0073] Figure 2 A flow chart of a congestion control method provided by an embodiment of the present application is shown. Taking the execution subject as a server as an example, the congestion control method provided by the present application may include the following steps:

[0074] Step S201: If an acknowledgment packet (ACK) is received, a first link round trip time (RTT) of the received acknowledgment packet is determined based on the arrival time of the acknowledgment packet and the sending time of the acknowledgment packet.

[0075] Specifically, the network device sends a data packet to the receiving window of the receiving network device through the sending window, and the receiving network device then returns a confirmation data packet to the sending window.

[0076] In a specific implementation process, the first link round trip time of the confirmation data packet can be obtained by subtracting the sending time of the corresponding data packet from the arrival time of the received confirmation data packet.

[0077] Step S202: if the first link round trip time is less than or equal to the second link round trip time of the last received confirmation data packet, the congestion window value of the next transmission cycle is increased by a first preset value.

[0078] Specifically, the calculation method of the second link round trip time is the same as that of the first link round trip time, which is to subtract the sending time of the corresponding data packet from the arrival time of the last confirmation data packet.

[0079] When performing data transmission, the network device determines the number of data packets that need to be sent based on the sending window. The time from the start of sending the first data packet in the sending window to the reception time of the confirmation data packet of the last data packet can be regarded as a transmission cycle.

[0080] Specifically, by comparing the first link round trip time with the second link round trip time, the change trend of the link round trip time can be determined, thereby determining the transmission status of the network data.

[0081] If the first link round trip time is less than or equal to the second link round trip time of the last received confirmation data packet, it means that the transmission of network data does not tend to be congested, and the congestion window can be adjusted according to the first preset value.

[0082] Step S203: if the first link round trip time is greater than the second link round trip time, determine an attenuation factor for a first preset value based on the first link round trip time and the second link round trip time.

[0083] The attenuation factor is used to reduce the increment of the congestion window value in the next transmission cycle.

[0084] If the round trip time of the first link is greater than the round trip time of the second link, it means that the transmission of network data tends to become congested, and the increment of the congestion window needs to be slowed down.

[0085] Specifically, the attenuation factor is used to attenuate the first preset value, thereby reducing the increment of the congestion window value in the next transmission cycle. The specific method for determining the attenuation factor will be further elaborated below.

[0086] Step S204: determining an increase value for the congestion window value based on the determined attenuation factor and the first preset value, and adjusting the congestion window value in the next transmission cycle based on the determined increase value.

[0087] Specifically, the increase value for the congestion window value may be determined based on the product of the attenuation factor and the first preset value, thereby reducing the increase in the congestion window value, that is, slowing down the increase rate of the congestion window value.

[0088] In a specific implementation process, the sum of the current congestion window value and the determined increase value may be used as the congestion window value of the next transmission cycle.

[0089] In the above embodiment, an attenuation factor for a first preset value is determined by combining the round-trip time of the first link and the round-trip time of the second link, and an increase value for the congestion window value is determined based on the determined attenuation factor and the first preset value. The congestion window value is adjusted in the next transmission cycle based on the determined increase value. The congestion window value can be adjusted based on changes in the round-trip time of the link for confirming the data packet, thereby slowing down the rate of increase of the congestion window value and improving data transmission efficiency.

[0090] In some possible implementations, if the congestion window value of the current transmission cycle is less than the slow start threshold, and the round trip time of the first link is greater than the round trip time of the second link, the network is in the slow start phase.

[0091] Step S203 determines the attenuation factor for the first preset value based on the first link round trip time and the second link round trip time, which may include:

[0092] Determine the sum of the first link round trip time and the second link round trip time;

[0093] A ratio between the second link round trip time and the determined sum is determined, and the determined ratio is used as a decay factor.

[0094] The slow start threshold (SSThresh value) is the dividing point between the slow start phase and the congestion avoidance phase in congestion control.

[0095] Specifically, if the congestion window value of the current transmission cycle is less than the slow start threshold, it means that the current transmission cycle is in the slow start phase.

[0096] Specifically, in the slow start phase, if the round trip time of the first link is less than or equal to the round trip time of the second link, the congestion window value of the next transmission cycle is increased by a first preset value. Taking the first preset value as 1 as an example, it can be calculated according to the following formula:

[0097] CWND′=CWND+1 (1)

[0098] Among them, CWND′ is the congestion window value of the next transmission cycle; CWND is the congestion window value of the current transmission cycle.

[0099] like Figure 3As shown, in the slow start phase, if the round-trip time of the first link is less than or equal to the round-trip time of the second link, the CWND increases linearly with the transmission cycle. In the S1 phase of the figure, the round-trip time of the first link is less than or equal to the round-trip time of the second link, and the CWND increases linearly.

[0100] In the specific implementation process, if the round-trip time of the first link is greater than the round-trip time of the second link, it means that the round-trip time of the link is increasing. At this time, the sending rate should be reduced compared with the previous transmission cycle. At this time, the attenuation factor can be determined according to the following formula:

[0101]

[0102] Among them, RTT last RTT is the round-trip time of the second link in the previous transmission cycle. current is the first link round trip time of the current transmission cycle; ∝ is the attenuation factor.

[0103] CWND′=CWND+1×∝ (3)

[0104] Among them, CWND′ is the congestion window value of the next transmission cycle; CWND is the congestion window value of the current transmission cycle; ∝ is the attenuation factor.

[0105] like Figure 4 As shown, if the round-trip time of the first link is greater than the round-trip time of the second link, the attenuation factor is determined by the round-trip time of the second link in the previous transmission cycle and the round-trip time of the first link in the current transmission cycle to slow down the rate of increase of the congestion window value. In the figure, the round-trip time of the first link in the S1 stage and the S3 stage are both less than or equal to the round-trip time of the second link, and the CWND increases linearly; in the S2 stage and the S4 stage, the round-trip time of the first link is greater than the round-trip time of the second link, and the rate of increase of the congestion window value is smaller than the first preset value.

[0106] In some possible implementations, if the congestion window value of the current transmission cycle is greater than or equal to the slow start threshold, and the round trip time of the first link is greater than the round trip time of the second link, the network is in the congestion avoidance phase.

[0107] Step S203 determines an attenuation factor for a first preset value based on the first link round trip time and the second link round trip time, including:

[0108] (1) Determine the difference between the first link round trip time and the second link round trip time.

[0109] Specifically, it can be calculated by the following formula:

[0110] diff=RTT current -RTT last (4)

[0111] Wherein, diff represents the difference between the round-trip time of the first link and the round-trip time of the second link; RTT last RTT is the round-trip time of the second link in the previous transmission cycle. current It is the first link round trip time of the current transmission cycle.

[0112] (2) The preset initial growth factor is updated by the difference to obtain a first growth factor.

[0113] Specifically, updating the preset initial growth factor by the difference to obtain the first growth factor may include:

[0114] A. Update the initial growth factor based on the difference to obtain a second growth factor.

[0115] Among them, the second growth factor is positively correlated with the square of the difference.

[0116] The second growth factor can be calculated based on the following formula:

[0117] x1=x0+10×diff+0.3×diff 2 (5)

[0118] Wherein, x2 is the second growth factor, x0 is the initial growth factor, and diff represents the difference between the round-trip time of the first link and the round-trip time of the second link;

[0119] Taking the initial growth factor as 1 as an example, the above formula can be:

[0120] x2=1+10×diff+0.3×diff 2 (6)

[0121] B. Determine the difference between the second preset value and the preset initial adjustment coefficient to obtain a third growth factor.

[0122] Specifically, the second preset value may be 1, and the preset initial adjustment coefficient y may be 0.67.

[0123] C. Determine the first growth factor based on the product of the third growth factor and the second growth factor.

[0124] Specifically, the first growth factor can be calculated based on the following formula:

[0125] x1=2×(1-y0)×x2 (7)

[0126] Among them, x1 is the first growth factor, x2 is the second growth factor, and y0 is the initial adjustment coefficient.

[0127] (3) Determine the ratio between the first growth factor and the congestion window value to obtain the attenuation factor.

[0128] Specifically, the attenuation factor can be calculated as follows:

[0129]

[0130] Among them, x1 is the first growth factor, CWND is the congestion window value of the current transmission cycle; ∝ is the attenuation factor.

[0131] Specifically, the congestion window value of the next transmission cycle can be calculated in combination with the above formula (3).

[0132] like Figure 5 As shown, if the congestion window value in the current transmission cycle is greater than or equal to the slow start threshold, the congestion avoidance phase, i.e., the S5 phase in the figure, is entered. The attenuation factor of this phase is determined by combining the round-trip time of the first link and the round-trip time of the second link to further slow down the rate of increase of the congestion window value.

[0133] In the above embodiment, in the slow start phase and the congestion avoidance phase, the round-trip time of the first link and the round-trip time of the second link are combined, and the increase rate of the congestion window value is slowed down to different degrees by using different calculation methods for the attenuation factor. The congestion window value can be adjusted more accurately, thereby ensuring the efficiency of network transmission.

[0134] The above embodiment describes the congestion control solution in the congestion avoidance phase. The following will further describe the congestion control solution in the network congestion phase in conjunction with the embodiment.

[0135] In some possible implementations, the following further includes:

[0136] (1) If network congestion is detected, the congestion window value of the next transmission cycle is set to the slow start threshold.

[0137] Specifically, when no confirmation data packet is received within a preset time period, or a preset number of confirmation data packets are received consecutively, for example, three consecutive confirmation data packets are received, it can be considered that network congestion occurs, and the increase of the congestion window should be controlled more cautiously.

[0138] In a specific implementation process, after the congestion window value of the next transmission cycle is set to the slow start threshold, the next transmission cycle begins to re-enter the congestion avoidance phase.

[0139] (2) The slow start threshold is updated based on the maximum value of the first value and the second value.

[0140] Among them, the first value is determined based on the current window size of the sending window in the current transmission cycle or the size of the message segment sent by the sending window in the current transmission cycle; the second value is determined based on the adjustment coefficient and the number of bytes currently sent by the sending window in the current transmission cycle; the adjustment coefficient is determined based on the initial adjustment coefficient.

[0141] In the specific implementation process, the slow start threshold can be updated based on the following formula:

[0142] SSThresh=max(S1,S2) (9)

[0143] Here, S1 represents the first value; S2 represents the second value.

[0144] Specifically, the congestion window value of the next transmission cycle is set to the slow start threshold. After the next transmission cycle begins to re-enter the congestion avoidance phase, the slow start threshold is updated. If the network enters congestion again, the congestion window value is updated to the new slow start threshold. By continuously updating the slow start threshold, the update value of the congestion window value after entering congestion avoidance can be gradually adjusted, so as to more accurately control network congestion.

[0145] Specifically, the manner of determining the first value and the second value depends on the change of the network throughput. The manner of determining the first value and the second value will be further described below.

[0146] In some possible implementations, before updating the slow start threshold based on the maximum value of the first value and the second value, the method further includes:

[0147] (1) determining a first network throughput of the sending window in a current transmission cycle, and determining a second network throughput of the sending window in a previous transmission cycle;

[0148] (2) determining a ratio between the first network throughput and the second network throughput to obtain a throughput change value;

[0149] (3) Determine the first value and the second value based on the throughput change value, the initial adjustment coefficient, the current window size, the segment size, and the number of bytes currently sent by the sending window in the current transmission period.

[0150] In the specific implementation process, the determination method of the first value and the second value changes with the ratio between the first network throughput and the second network throughput. When the throughput change value is less than or equal to the first threshold, the second value is updated; if the throughput change value is greater than the first threshold, the first value is updated.

[0151] Specifically, determining the first value and the second value based on the throughput change value, the initial adjustment coefficient, the current window size, the message segment size, and the number of bytes currently sent by the sending window in the current transmission period may include:

[0152] (1) If the throughput change value is less than or equal to the first threshold, the current window size is used as the first value.

[0153] That is, if the ratio between the first network throughput Throughput1 and the second network throughput Throughput2 is less than the first threshold, the first value S1 is the current window size SegWin.

[0154] The first threshold may be 0.33.

[0155] (2) Determine the maximum link round trip time and the minimum link round trip time of the current transmission cycle based on the link round trip time corresponding to at least one confirmation data packet received in the sending window of the current transmission cycle.

[0156] Specifically, by comparing the link round-trip time corresponding to each confirmation data packet, the maximum link round-trip time RTT can be determined. max and minimum link round trip time RTT min .

[0157] (3) The initial adjustment coefficient is updated based on the maximum link round-trip time and the minimum link round-trip time to obtain the adjustment coefficient.

[0158] Specifically, based on the maximum link round-trip time RTT max and minimum link round trip time RTT min Update the initial adjustment coefficient to obtain the adjustment coefficient, which can be calculated based on the following formula:

[0159]

[0160] Among them, RTT max Indicates the maximum link round trip time; RTT min represents the minimum link round trip time; y represents the adjustment coefficient.

[0161] (4) Determine a second value based on the product of the adjustment coefficient and the number of bytes currently sent by the sending window.

[0162] Specifically, it can be calculated based on the following formula:

[0163] S2=bytesInFlight×y×1.25 (11)

[0164] Among them, bytesInFlight represents the number of bytes currently sent by the sending window; y represents the adjustment coefficient.

[0165] In some possible implementations, determining the first value and the second value based on the throughput change value, the initial adjustment coefficient, the current window size, the segment size, and the number of bytes currently sent in the sending window of the current transmission period may include:

[0166] (1) If the throughput change value is greater than the first threshold, the current window size is updated based on the segment size to obtain an updated window size of the sending window.

[0167] That is, if the ratio of the first network throughput Throughput1 to the second network throughput Throughput2 is greater than the first threshold, the current window size is updated based on the segment size to obtain an updated window size of the sending window, which can be calculated based on the following formula:

[0168] SegWin1=25×Segmentsize (12)

[0169] Among them, SegWin1 represents the update window size of the sending window; Segmentsize represents the size of the message segment sent by the sending window.

[0170] (2) Update the window size as the first value.

[0171] Specifically, at this time, S1=SegWin1.

[0172] (3) Determine a second value based on the product of the initial adjustment coefficient and the number of bytes currently sent by the sending window.

[0173] Specifically, it can be calculated based on the following formula:

[0174] S2=bytesInFlight×y0×1.25 (13)

[0175] That is, the first value S1 is calculated based on the following formula:

[0176]

[0177] That is, when the ratio between the first network throughput Throughput1 and the second network throughput Throughput2 is greater than the first threshold, the first value S1 is SegWin1=25×Segmentsize; when the ratio between the first network throughput Throughput1 and the second network throughput Throughput2 is less than or equal to the first threshold, the first value S1 is SegWin0=0.67.

[0178] The second value S2 is calculated based on the following formula:

[0179]

[0180] In order to more clearly explain the congestion control method of the present application, the congestion control method of the present application will be further explained below with reference to examples.

[0181] In one example, the congestion control method of the present application may include the following steps:

[0182] Slow start phase:

[0183] Determine whether the congestion window value in the current transmission cycle is less than the slow start threshold. If the congestion window value in the current transmission cycle is less than the slow start threshold, the current network is in the slow start stage.

[0184] If the first link round trip time is less than or equal to the second link round trip time of the last received confirmation data packet, the congestion window value of the next transmission cycle is increased by a first preset value; for example, the congestion window value of the current transmission cycle can be increased by 1 to obtain the congestion window value of the next transmission cycle;

[0185] If the round trip time of the first link is greater than the round trip time of the second link, determine the sum of the round trip time of the first link and the round trip time of the second link, then determine the ratio between the round trip time of the second link and the determined sum, and use the determined ratio as the attenuation factor; based on the product of the attenuation factor and a preset value, determine the increment of the congestion window value for the current transmission cycle, and obtain the congestion window value for the next transmission cycle;

[0186] Congestion avoidance phase:

[0187] If the congestion window value in the current transmission period is greater than or equal to the slow start threshold, the current network is in the congestion avoidance phase;

[0188] If the round-trip time of the first link is greater than the round-trip time of the second link, determine the difference between the round-trip time of the first link and the round-trip time of the second link; update the initial growth factor based on the difference to obtain a second growth factor; the second growth factor is positively correlated with the square of the difference; determine the difference between the second preset value and the preset initial adjustment coefficient to obtain a third growth factor; determine the first growth factor based on the product of the third growth factor and the second growth factor; determine the ratio between the first growth factor and the congestion window value to obtain the attenuation factor; determine the increment of the congestion window value for the current transmission cycle based on the product of the attenuation factor and the preset value to obtain the congestion window value for the next transmission cycle;

[0189] Network congestion stage:

[0190] If no confirmation data packet is received within a preset time period, or a preset number of confirmation data packets are received consecutively, it is determined that network congestion occurs;

[0191] The congestion window value of the next transmission cycle is set to the slow start threshold;

[0192] Determine a first network throughput of the sending window in a current transmission cycle, and determine a second network throughput of the sending window in a previous transmission cycle; determine a ratio between the first network throughput and the second network throughput to obtain a throughput change value;

[0193] If the throughput change value is less than or equal to the first threshold, the current window size is used as the first value; based on the link round-trip time corresponding to at least one confirmation data packet received by the sending window in the current transmission period, the maximum link round-trip time and the minimum link round-trip time of the current transmission period are determined; based on the maximum link round-trip time and the minimum link round-trip time, the initial adjustment coefficient is updated to obtain the adjustment coefficient; based on the product of the adjustment coefficient and the number of bytes currently sent by the sending window, the second value is determined; based on the maximum value of the first value and the second value, the slow start threshold is updated;

[0194] If the throughput change value is greater than the first threshold, the current window size is updated based on the segment size to obtain an updated window size of the sending window; the updated window size is used as the first value; the second value is determined based on the product of the initial adjustment coefficient and the number of bytes currently sent by the sending window; and the slow start threshold is updated based on the maximum value between the first value and the second value.

[0195] The above-mentioned congestion control method determines an attenuation factor for a first preset value by combining the round-trip time of the first link and the round-trip time of the second link, and then determines an increase value for the congestion window value based on the determined attenuation factor and the first preset value, and adjusts the congestion window value in the next transmission cycle based on the determined increase value. The congestion window value can be adjusted based on the change in the link round-trip time of the confirmed data packet, slowing down the increase rate of the congestion window value, thereby improving data transmission efficiency.

[0196] Furthermore, if the round trip time of the first link is greater than the round trip time of the second link, the attenuation factor is determined by the round trip time of the second link in the previous transmission cycle and the round trip time of the first link in the current transmission cycle to slow down the increase rate of the congestion window value.

[0197] Furthermore, in the slow start phase and the congestion avoidance phase, the round-trip time of the first link and the round-trip time of the second link are combined, and the increase rate of the congestion window value is slowed down to different degrees by using different calculation methods for the attenuation factor. The congestion window value can be adjusted more accurately, thereby ensuring the efficiency of network transmission.

[0198] Furthermore, the congestion window value of the next transmission cycle is set to the slow start threshold. After the next transmission cycle begins to re-enter the congestion avoidance phase, the slow start threshold is updated again. If the network enters congestion again, the congestion window value is updated to the new slow start threshold. By continuously updating the slow start threshold, the update value of the congestion window value after entering congestion avoidance can be gradually adjusted, so as to more accurately control network congestion.

[0199] like Figure 6 As shown, in some possible implementations, a congestion control device is provided, including:

[0200] A first determining module 601 is used to determine, if a confirmation data packet is received, a first link round trip time of the received confirmation data packet based on the arrival time of the confirmation data packet and the sending time of the confirmation data packet;

[0201] An increasing module 602 is configured to increase the congestion window value of the next transmission cycle by a first preset value if the first link round trip time is less than or equal to the second link round trip time of the last received confirmation data packet;

[0202] A second determination module 603 is configured to determine an attenuation factor for a first preset value based on the first link round trip time and the second link round trip time if the first link round trip time is greater than the second link round trip time;

[0203] The adjustment module 604 is configured to determine an increase value for the congestion window value based on the determined attenuation factor and the first preset value, and adjust the congestion window value in the next transmission cycle based on the determined increase value.

[0204] In some possible implementations, if the congestion window value of the current transmission cycle is less than the slow start threshold, and the round-trip time of the first link is greater than the round-trip time of the second link; when the second determination module 603 determines the attenuation factor for the first preset value based on the round-trip time of the first link and the round-trip time of the second link, it is specifically used to:

[0205] Determine the sum of the first link round trip time and the second link round trip time;

[0206] A ratio between the second link round trip time and the determined sum is determined, and the determined ratio is used as a decay factor.

[0207] In some possible implementations, if the congestion window value of the current transmission cycle is greater than or equal to the slow start threshold, and the round-trip time of the first link is greater than the round-trip time of the second link; the second determination module 603 determines the attenuation factor for the first preset value based on the round-trip time of the first link and the round-trip time of the second link, specifically for:

[0208] determining a difference between a first link round trip time and a second link round trip time;

[0209] The preset initial growth factor is updated by the difference to obtain a first growth factor;

[0210] A ratio between the first growth factor and the congestion window value is determined to obtain a decay factor.

[0211] In some possible implementations, when the second determining module 603 updates the preset initial growth factor by the difference to obtain the first growth factor, it is specifically configured to:

[0212] The initial growth factor is updated based on the difference to obtain a second growth factor; the second growth factor is positively correlated with the square of the difference;

[0213] Determine the difference between the second preset value and the preset initial adjustment coefficient to obtain a third growth factor;

[0214] Based on a product between the third growth factor and the second growth factor, a first growth factor is determined.

[0215] In some possible implementations, an update module is further included, which is used to:

[0216] If network congestion is detected, the congestion window value of the next transmission cycle is set to the slow start threshold;

[0217] The slow start threshold is updated based on the maximum value of the first value and the second value; wherein the first value is determined based on the current window size of the sending window of the current transmission cycle or the size of the message segment sent by the sending window of the current transmission cycle; the second value is determined based on the adjustment coefficient and the number of bytes currently sent by the sending window of the current transmission cycle; the adjustment coefficient is determined based on the initial adjustment coefficient.

[0218] In some possible implementations, a third determining module is further included, which is used to:

[0219] Determine a first network throughput of the sending window in a current transmission cycle, and determine a second network throughput of the sending window in a previous transmission cycle;

[0220] Determine a ratio between the first network throughput and the second network throughput to obtain a throughput change value;

[0221] The first value and the second value are determined based on the throughput change value, the initial adjustment coefficient, the current window size, the message segment size, and the number of bytes currently sent by the sending window in the current transmission period.

[0222] In some possible implementations, when the third determination module determines the first value and the second value based on the throughput change value, the initial adjustment coefficient, the current window size, the segment size, and the number of bytes currently sent by the sending window in the current transmission period, it is specifically used to:

[0223] If the throughput change value is less than or equal to the first threshold, the current window size is used as the first value;

[0224] Determine the maximum link round trip time and the minimum link round trip time of the current transmission cycle based on the link round trip time corresponding to at least one confirmation data packet received in the sending window of the current transmission cycle;

[0225] An initial adjustment coefficient is updated based on the maximum link round trip time and the minimum link round trip time to obtain an adjustment coefficient;

[0226] The second value is determined based on the product of the adjustment coefficient and the number of bytes currently sent by the sending window.

[0227] In some possible implementations, when the third determination module determines the first value and the second value based on the throughput change value, the initial adjustment coefficient, the current window size, the segment size, and the number of bytes currently sent by the sending window in the current transmission period, it is specifically used to:

[0228] If the throughput change value is greater than the first threshold, the current window size is updated based on the message segment size to obtain an updated window size of the sending window;

[0229] Update the window size as the first value;

[0230] The second value is determined based on the product of the initial adjustment coefficient and the number of bytes currently sent by the sending window.

[0231] The above-mentioned congestion control device determines an attenuation factor for a first preset value by combining the round-trip time of the first link and the round-trip time of the second link, and then determines an increase value for the congestion window value based on the determined attenuation factor and the first preset value, and adjusts the congestion window value in the next transmission cycle based on the determined increase value. The congestion window value can be adjusted based on changes in the link round-trip time of confirming the data packet, slowing down the rate of increase of the congestion window value, thereby improving data transmission efficiency.

[0232] Furthermore, if the round trip time of the first link is greater than the round trip time of the second link, the attenuation factor is determined by the round trip time of the second link in the previous transmission cycle and the round trip time of the first link in the current transmission cycle to slow down the increase rate of the congestion window value.

[0233] Furthermore, in the slow start phase and the congestion avoidance phase, the round-trip time of the first link and the round-trip time of the second link are combined, and the increase rate of the congestion window value is slowed down to different degrees by using different calculation methods for the attenuation factor. The congestion window value can be adjusted more accurately, thereby ensuring the efficiency of network transmission.

[0234] Furthermore, the congestion window value of the next transmission cycle is set to the slow start threshold. After the next transmission cycle begins to re-enter the congestion avoidance phase, the slow start threshold is updated again. If the network enters congestion again, the congestion window value is updated to the new slow start threshold. By continuously updating the slow start threshold, the update value of the congestion window value after entering congestion avoidance can be gradually adjusted, so as to more accurately control network congestion.

[0235] The device of the embodiments of the present application can execute the method provided by the embodiments of the present application, and the implementation principles are similar. The actions performed by each module in the device of each embodiment of the present application correspond to the steps in the method of each embodiment of the present application. For the detailed functional description of each module of the device, please refer to the description in the corresponding method shown in the previous text, which will not be repeated here.

[0236] An embodiment of the present application provides an electronic device, including a memory, a processor, and a computer program stored in the memory. When the processor executes the computer program stored in the memory, the method in any optional embodiment of the present application can be implemented.

[0237] Figure 7 FIG. 1 is a schematic diagram showing a structure of an electronic device to which an embodiment of the present invention is applicable. Figure 7 As shown, the electronic device may be a server or a user terminal, and the electronic device may be used to implement the method provided in any embodiment of the present invention.

[0238] like Figure 7 As shown in FIG. , the electronic device 700 may mainly include at least one processor 701 ( Figure 7 ), memory 702, communication module 703 and input / output interface 704 and other components. Optionally, the components can be connected and communicated through bus 705. It should be noted that Figure 7 The structure of the electronic device 700 shown in the figure is merely illustrative and does not constitute a limitation on the electronic device to which the method provided in the embodiment of the present application is applicable.

[0239] The memory 702 may be used to store an operating system and an application program, etc. The application program may include a computer program that implements the method shown in the embodiment of the present invention when called by the processor 701, and may also include a program for implementing other functions or services. The memory 702 may be a ROM (Read Only Memory) or other types of static storage devices that can store static information and instructions, a RAM (Random Access Memory) or other types of dynamic storage devices that can store information and computer programs, or an EEPROM (Electrically Erasable Programmable Read Only Memory), a CD-ROM (Compact Disc Read Only Memory) or other optical disk storage, optical disk storage (including compressed optical disk, laser disk, optical disk, digital versatile disk, Blu-ray disk, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto.

[0240] The processor 701 is connected to the memory 702 via the bus 705, and implements the corresponding functions by calling the application program stored in the memory 702. Among them, the processor 701 can be a CPU (Central Processing Unit), a general processor, a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof, which can implement or execute various exemplary logic blocks, modules and circuits described in conjunction with the disclosure of the present invention. The processor 701 can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, etc.

[0241] The electronic device 700 can be connected to the network through the communication module 703 (which may include but is not limited to components such as a network interface) to communicate with other devices (such as a user terminal or a server, etc.) through the network to achieve data interaction, such as sending data to other devices or receiving data from other devices. Among them, the communication module 703 may include a wired network interface and / or a wireless network interface, etc., that is, the communication module may include at least one of a wired communication module or a wireless communication module.

[0242] The electronic device 700 can be connected to the required input / output devices, such as a keyboard, a display device, etc., through the input / output interface 704. The electronic device 70 itself can have a display device, and can also be connected to other display devices through the interface 704. Optionally, a storage device, such as a hard disk, can also be connected through the interface 704, so that data in the electronic device 700 can be stored in the storage device, or data in the storage device can be read, and data in the storage device can also be stored in the memory 702. It can be understood that the input / output interface 704 can be a wired interface or a wireless interface. Depending on the actual application scenario, the device connected to the input / output interface 704 can be a component of the electronic device 700, or it can be an external device connected to the electronic device 700 when needed.

[0243] The bus 705 for connecting the components may include a path to transmit information between the above components. The bus 705 may be a PCI (Peripheral Component Interconnect) bus or an EISA (Extended Industry Standard Architecture) bus, etc. According to different functions, the bus 705 may be divided into an address bus, a data bus, a control bus, etc.

[0244] Optionally, for the solution provided in the embodiment of the present invention, the memory 702 can be used to store a computer program for executing the solution of the present invention, and run by the processor 701. When the processor 701 runs the computer program, the action of the method or device provided in the embodiment of the present invention is implemented.

[0245] Based on the same principle as the method provided in the embodiment of the present application, the embodiment of the present application provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the corresponding content of the aforementioned method embodiment can be implemented.

[0246] An embodiment of the present application also provides a computer program product, which includes a computer program. When the computer program is executed by a processor, the corresponding content of the aforementioned method embodiment can be implemented.

[0247] It should be noted that the terms "first", "second", "third", "fourth", "1", "2", etc. (if any) in the specification and claims of this application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the numbers used in this way can be interchangeable where appropriate, so that the embodiments of the application described herein can be implemented in an order other than the illustrated or written description.

[0248] It should be understood that, although each operation step is indicated by arrows in the flowchart of the embodiment of the present application, the implementation order of these steps is not limited to the order indicated by the arrows. Unless clearly stated herein, in some implementation scenarios of the embodiment of the present application, the implementation steps in each flowchart can be performed in other orders according to demand. In addition, some or all of the steps in each flowchart may include multiple sub-steps or multiple stages based on actual implementation scenarios. Some or all of these sub-steps or stages may be executed at the same time, and each sub-step or stage in these sub-steps or stages may also be executed at different times respectively. In different scenarios of execution time, the execution order of these sub-steps or stages may be flexibly configured according to demand, and the embodiment of the present application does not limit this.

[0249] The above is only an optional implementation method for some implementation scenarios of the present application. It should be pointed out that for ordinary technicians in this technical field, without departing from the technical concept of the solution of the present application, other similar implementation methods based on the technical ideas of the present application are also within the protection scope of the embodiments of the present application.

Claims

1. A congestion control method, characterized in that: The method comprises: If a confirmation data packet is received, determining a first link round trip time of the received confirmation data packet based on the arrival time of the confirmation data packet and the sending time of the confirmation data packet; If the first link round trip time is less than or equal to the second link round trip time of the last received confirmation data packet, the congestion window value of the next transmission cycle is increased by a first preset value; If the first link round trip time is greater than the second link round trip time, determining an attenuation factor for the first preset value based on the first link round trip time and the second link round trip time; An increase value for the congestion window value is determined based on the determined attenuation factor and the first preset value, and the congestion window value is adjusted in the next transmission cycle based on the determined increase value.

2. The method according to claim 1, characterized in that If the congestion window value in the current transmission period is less than the slow start threshold, and the round trip time of the first link is greater than the round trip time of the second link; The determining of the attenuation factor for the first preset value based on the first link round-trip time and the second link round-trip time includes: Determine the sum of the first link round trip time and the second link round trip time; A ratio between the second link round trip time and the determined sum is determined, and the determined ratio is used as the attenuation factor.

3. The method according to claim 1, characterized in that If the congestion window value in the current transmission period is greater than or equal to the slow start threshold, and the round trip time of the first link is greater than the round trip time of the second link; The determining of the attenuation factor for the first preset value based on the first link round-trip time and the second link round-trip time includes: Determine a difference between the first link round trip time and the second link round trip time; The preset initial growth factor is updated by using the difference to obtain a first growth factor; The ratio between the first growth factor and the congestion window value is determined to obtain the attenuation factor.

4. The method according to claim 3, characterized in that The updating of the preset initial growth factor by using the difference to obtain the first growth factor includes: The initial growth factor is updated based on the difference to obtain a second growth factor; the second growth factor is positively correlated with the square of the difference; Determine the difference between the second preset value and the preset initial adjustment coefficient to obtain a third growth factor; The first growth factor is determined based on a product between the third growth factor and the second growth factor.

5. The method according to claim 4, characterized in that Also includes: If network congestion is detected, the congestion window value of the next transmission cycle is set to the slow start threshold; The slow start threshold is updated based on the maximum value of the first value and the second value; wherein the first value is determined based on the current window size of the sending window in the current transmission cycle or the size of the message segment sent by the sending window in the current transmission cycle; the second value is determined based on the adjustment coefficient and the number of bytes currently sent by the sending window in the current transmission cycle; and the adjustment coefficient is determined based on the initial adjustment coefficient.

6. The method according to claim 5, characterized in that Before updating the slow start threshold based on the maximum value of the first value and the second value, the method further includes: Determine a first network throughput of the sending window in a current transmission cycle, and determine a second network throughput of the sending window in a previous transmission cycle; Determine a ratio between the first network throughput and the second network throughput to obtain a throughput change value; The first value and the second value are determined based on the throughput change value, the initial adjustment coefficient, the current window size, the segment size, and the number of bytes currently sent by the sending window in the current transmission period.

7. The method according to claim 6, characterized in that The determining the first value and the second value based on the throughput change value, the initial adjustment coefficient, the current window size, the message segment size, and the number of bytes currently sent by the sending window in the current transmission period includes: If the throughput change value is less than or equal to a first threshold, taking the current window size as the first value; Determine the maximum link round trip time and the minimum link round trip time of the current transmission cycle based on the link round trip time corresponding to at least one confirmation data packet received in the sending window of the current transmission cycle; Update the initial adjustment coefficient based on the maximum link round-trip time and the minimum link round-trip time to obtain the adjustment coefficient; The second value is determined based on the product of the adjustment coefficient and the number of bytes currently sent by the sending window.

8. The method according to claim 6, characterized in that The determining the first value and the second value based on the throughput change value, the initial adjustment coefficient, the current window size, the message segment size, and the number of bytes currently sent by the sending window in the current transmission period includes: If the throughput change value is greater than the first threshold, updating the current window size based on the message segment size to obtain an updated window size of the sending window; Using the update window size as the first value; The second value is determined based on the product of the initial adjustment coefficient and the number of bytes currently sent by the sending window.

9. A congestion control device, characterized in that: The device comprises: A first determining module, configured to determine, if a confirmation data packet is received, a first link round trip time of the received confirmation data packet based on an arrival time of the confirmation data packet and a sending time of the confirmation data packet; An increasing module, configured to increase the congestion window value of the next transmission cycle by a first preset value if the round trip time of the first link is less than or equal to the round trip time of the second link of the last received confirmation data packet; A second determining module, configured to determine, if the round trip time of the first link is greater than the round trip time of the second link, an attenuation factor for the first preset value based on the round trip time of the first link and the round trip time of the second link; An adjustment module is used to determine an increase value for the congestion window value based on the determined attenuation factor and the first preset value, and adjust the congestion window value in the next transmission cycle based on the determined increase value.

10. An electronic device, characterized in that: The electronic device comprises a memory and a processor, wherein a computer program is stored in the memory, and the processor executes the computer program to implement the method according to any one of claims 1 to 8.

11. A computer-readable storage medium, characterized in that: The storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 8 is implemented.

12. A computer program product, characterized in that The computer product comprises a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 8 is implemented.

Citation Information

Cited By

  • Multi-channel switching method for intelligent water meter communication

    CN120358541A