Network Congestion Control Method, Device, Electronic Device and Storage Medium

By acquiring the latency information and cumulative number of target data packets, the data transmission rate is dynamically adjusted, solving the problem of insufficient sensitivity and accuracy of bandwidth mutation in network congestion control. This achieves efficient and accurate congestion control and reduces lag in real-time data transmission.

CN116545931BActive Publication Date: 2026-05-26BEIJING DAJIA INTERNET INFORMATION TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
BEIJING DAJIA INTERNET INFORMATION TECH CO LTD
Filing Date
2023-05-09
Publication Date
2026-05-26

Smart Images

  • Figure CN116545931B_ABST
    Figure CN116545931B_ABST
Patent Text Reader

Abstract

The present disclosure relates to a network congestion control method, apparatus, electronic device, and storage medium. The method includes: obtaining target delay information of a target data packet, the cumulative number of data packets with continuously increasing delay, and a target quantity threshold; determining a data reception rate corresponding to a receiving terminal of the target data packet within a preset period when the target delay information is greater than a preset delay threshold and the cumulative number of data packets is greater than the target quantity threshold; the end time of the preset period is the reception time of the target data packet; determining a data transmission rate corresponding to a sending terminal of the target data packet based on the data reception rate, so that the sending terminal sends data packets at the data transmission rate. According to the technical solution provided by the present disclosure, congestion control can be performed efficiently and accurately.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of data transmission technology, and in particular to a network congestion control method, apparatus, electronic device, and storage medium. Background Technology

[0002] With the widespread use of online interaction, data generally needs to be transmitted over the network to achieve this online interaction. However, various problems can arise during data transmission over the network, such as fluctuations in network bandwidth. In some data transmission scenarios with high real-time requirements, such as real-time audio and video applications like video conferencing, sudden drops in network bandwidth can cause audio and video data to fail to arrive on time, resulting in buffering and affecting the user experience.

[0003] In related technologies, congestion control is generally achieved by observing latency changes through moving averages. However, the convergence speed of moving averages is not fast enough, which can still cause stuttering; and it may also lead to false judgments of bandwidth decrease. Therefore, the sensitivity and accuracy of congestion control algorithms to bandwidth changes, as well as timely and effective countermeasures, are crucial for reducing audio and video stuttering rates. Summary of the Invention

[0004] This disclosure provides a network congestion control method, apparatus, electronic device, and storage medium to at least solve the problem of how to perform efficient and accurate congestion control to avoid stuttering in real-time data transmission scenarios in related technologies. The technical solution of this disclosure is as follows:

[0005] According to a first aspect of the present disclosure, a network congestion control method is provided, comprising:

[0006] Obtain the target latency information of the target data packets, the cumulative number of data packets with continuously increasing latency, and the target number threshold;

[0007] If the target latency information is greater than a preset latency threshold and the cumulative number of data packets is greater than the target number threshold, the data receiving rate corresponding to the receiving terminal of the target data packet within a preset time period is determined; the end time of the preset time period is the receiving time of the target data packet.

[0008] Based on the data receiving rate, the data sending rate corresponding to the sending terminal of the target data packet is determined, so that the sending terminal sends the data packet according to the data sending rate.

[0009] In one possible implementation, the step of obtaining the cumulative number of data packets with continuously increasing latency includes:

[0010] Obtain the historical latency information of the previous data packet of the target data packet and the current cumulative number of data packets with continuously increasing latency;

[0011] If the target latency information is less than or equal to the historical latency information, the current cumulative number is reduced according to a preset method to obtain the cumulative number of data packets.

[0012] In one possible implementation, the method further includes:

[0013] If the target latency information is greater than the historical latency information, the cumulative number of data packets is obtained based on the current cumulative number and the preset increase number.

[0014] In one possible implementation, the step of obtaining the target quantity threshold includes:

[0015] Obtain the initial quantity threshold and the historical latency information of the previous data packet of the target data packet;

[0016] If the difference between the target delay information and the historical delay information does not reach the delay difference threshold, the initial quantity threshold is used as the target quantity threshold.

[0017] In one possible implementation, the method further includes:

[0018] When the delay difference between the target delay information and the historical delay information reaches the delay difference threshold, the target quantity threshold is obtained based on the delay difference and the initial quantity threshold.

[0019] The target quantity threshold is positively correlated with both the time delay difference and the initial quantity threshold.

[0020] In one possible implementation, determining the data transmission rate corresponding to the sending terminal of the target data packet based on the data reception rate includes:

[0021] Obtain target duration information for adjusting network congestion;

[0022] The amount of congested data is determined based on the target delay information and the data receiving rate;

[0023] Based on the congestion data volume and the target duration information, the predicted rate at which the congestion data volume is transmitted to the receiving terminal is obtained.

[0024] The difference between the data receiving rate and the predicted rate is taken as the data sending rate.

[0025] In one possible implementation, obtaining the target duration information for adjusting network congestion includes:

[0026] Obtain the service type of the service to which the target data packet belongs; the service type is used to characterize the demand level of the service to which the target data packet belongs for real-time data.

[0027] Based on the business type, the corresponding target duration information is determined; the target duration information is negatively correlated with the demand level.

[0028] In one possible implementation, obtaining the target delay information of the target data packet includes:

[0029] Extract the transmission time from the target data packet;

[0030] The target delay information of the target data packet is obtained based on the receiving time and the sending time.

[0031] According to a second aspect of the present disclosure, a network congestion control device is provided, comprising:

[0032] The information acquisition module is configured to acquire target latency information of the target data packet, the cumulative number of data packets with continuously increasing latency, and the target number threshold.

[0033] The congestion detection module is configured to determine the data reception rate of the receiving terminal of the target data packet within a preset time period when the target delay information is greater than a preset delay threshold and the cumulative number of data packets is greater than the target number threshold; the end time of the preset time period is the reception time of the target data packet.

[0034] The congestion control module is configured to determine the data transmission rate corresponding to the sending terminal of the target data packet based on the data reception rate, so that the sending terminal sends the data packet according to the data transmission rate.

[0035] In one possible implementation, the information acquisition module includes:

[0036] The historical latency and cumulative quantity acquisition unit is configured to acquire the historical latency information of the previous data packet of the target data packet and the current cumulative quantity of data packets with continuously increasing latency;

[0037] The first cumulative quantity acquisition unit is configured to reduce the current cumulative quantity according to a preset method to obtain the cumulative quantity of data packets when the target delay information is less than or equal to the historical delay information.

[0038] In one possible implementation, the information acquisition module further includes:

[0039] The second cumulative quantity acquisition unit is configured to obtain the cumulative quantity of data packets based on the current cumulative quantity and a preset increase quantity when the target delay information is greater than the historical delay information.

[0040] In one possible implementation, the information acquisition module further includes:

[0041] The initial quantity threshold and historical latency acquisition unit is configured to acquire the initial quantity threshold and the historical latency information of the previous data packet of the target data packet;

[0042] The first target quantity threshold unit is configured to use the initial quantity threshold as the target quantity threshold when the delay difference between the target delay information and the historical delay information does not reach the delay difference threshold.

[0043] In one possible implementation, the information acquisition module further includes:

[0044] The second target quantity threshold unit is configured to, when the delay difference between the target delay information and the historical delay information reaches the delay difference threshold, obtain the target quantity threshold based on the delay difference and the initial quantity threshold.

[0045] The target quantity threshold is positively correlated with both the time delay difference and the initial quantity threshold.

[0046] In one possible implementation, the congestion control module includes:

[0047] The preset duration acquisition unit is configured to acquire target duration information for adjusting network congestion.

[0048] The congestion data volume determination unit is configured to determine the congestion data volume based on the target delay information and the data receiving rate;

[0049] The prediction rate acquisition unit is configured to perform a prediction rate based on the congested data volume and the target duration information to obtain the predicted rate at which the congested data volume is transmitted to the receiving terminal.

[0050] The congestion control unit is configured to use the difference between the data reception rate and the predicted rate as the data transmission rate.

[0051] In one possible implementation, the preset duration acquisition unit includes:

[0052] The service type acquisition subunit is configured to acquire the service type of the service to which the target data packet belongs; the service type is used to characterize the demand level of the service to which the target data packet belongs for real-time data.

[0053] The preset duration acquisition subunit is configured to determine the corresponding target duration information based on the business type; the target duration information is negatively correlated with the demand level.

[0054] In one possible implementation, the information acquisition module further includes:

[0055] The transmission time acquisition unit is configured to extract the transmission time from the target data packet;

[0056] The target delay information acquisition unit is configured to obtain the target delay information of the target data packet based on the receiving time and the sending time.

[0057] According to a third aspect of the present disclosure, an electronic device is provided, comprising: a processor; and a memory for storing processor-executable instructions; wherein the processor is configured to execute the instructions to implement the method as described in any one of the first aspects above.

[0058] According to a fourth aspect of the present disclosure, a computer-readable storage medium is provided such that, when instructions in the computer-readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to perform any of the methods described in the first aspect of the present disclosure.

[0059] According to a fifth aspect of the present disclosure, a computer program product is provided, including computer instructions that, when executed by a processor, cause a computer to perform the method described in any one of the first aspects of the present disclosure.

[0060] The technical solutions provided by the embodiments of this disclosure have at least the following beneficial effects:

[0061] By combining target latency information with the cumulative number of data packets with continuously increasing latency to determine the occurrence of network congestion, it is possible to sensitively and quickly detect whether network congestion has occurred. This allows for more rapid congestion control, namely, quickly controlling the data transmission rate at the sending end, which can meet the requirements of data transmission scenarios with high real-time requirements and effectively alleviate data lag. Furthermore, by setting a congestion condition where the cumulative number of data packets with continuously increasing latency exceeds a target threshold, network jitter can be avoided from being misjudged as network congestion, making the determination of network congestion more accurate and thus achieving efficient and precise congestion control.

[0062] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this disclosure. Attached Figure Description

[0063] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure, and are not intended to unduly limit this disclosure.

[0064] Figure 1 This is a schematic diagram illustrating an application environment according to an exemplary embodiment.

[0065] Figure 2 This is a flowchart illustrating a network congestion control method according to an exemplary embodiment.

[0066] Figure 3 This is a schematic diagram of a queue model in network transmission according to an exemplary embodiment.

[0067] Figure 4 This is a schematic diagram illustrating a network congestion control process according to an exemplary embodiment.

[0068] Figure 5 This is a flowchart illustrating a method for determining the data transmission rate of a sending terminal for a target data packet based on the data reception rate, according to an exemplary embodiment.

[0069] Figure 6 This is a block diagram of a network congestion control device according to an exemplary embodiment.

[0070] Figure 7 This is a block diagram illustrating an electronic device for network congestion control according to an exemplary embodiment.

[0071] Figure 8 This is a block diagram illustrating another electronic device for network congestion control according to an exemplary embodiment. Detailed Implementation

[0072] To enable those skilled in the art to better understand the technical solutions of this disclosure, the technical solutions in the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings.

[0073] It should be noted that the terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this disclosure are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this disclosure described herein can be implemented in orders other than those illustrated or described herein. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this disclosure. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this disclosure as detailed in the appended claims.

[0074] Please see Figure 1 , Figure 1 This is a schematic diagram illustrating an application environment according to an exemplary embodiment, such as... Figure 1 As shown, the application environment may include network 01, sending terminal 02, and receiving terminal 03.

[0075] In an optional embodiment, network 01 can be used to transmit data packets sent by sending terminal 02 to receiving terminal 03. Here, network 01 can be a local area network or a public network, and can be regarded as an end-to-end transmission network between sending terminal 02 and receiving terminal 03. This disclosure does not limit the constituent entities of network 01. As an example, network 01 may include at least one server. 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 basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms.

[0076] In an optional embodiment, the transmitting terminal 02 and the receiving terminal 03 may be electronic devices including, but not limited to, smartphones, desktop computers, tablets, laptops, smart speakers, digital assistants, augmented reality (AR) / virtual reality (VR) devices, smart wearable devices, etc. Optionally, the operating system running on the electronic device may include, but is not limited to, Android, iOS, Linux, Windows, etc.

[0077] When receiving a target data packet (any data packet), the receiving terminal 03 can execute the network congestion control method of this embodiment to obtain the data transmission rate, and then transmit the data transmission rate to the sending terminal 02 so that the sending terminal 02 can send the subsequent data packets to be transmitted to the receiving terminal 03 according to the data transmission rate.

[0078] In addition, it should be noted that, Figure 1 The illustration shows only one application environment of the network congestion control method provided in this disclosure. Optionally, when the receiving terminal 03 receives the target data packet, it returns the reception time of the target data packet or the calculated target delay information to the sending terminal 02. In this way, the sending terminal 02 can obtain the target delay information and execute the network congestion control method of this embodiment. Alternatively, any network entity in network 01, such as a server that communicates directly with the sending terminal 02 or the receiving terminal 03, can perform delay monitoring to execute network congestion control.

[0079] In the embodiments described in this specification, the network 01 mentioned above can be a wired or wireless communication network, and this disclosure does not impose any restrictions.

[0080] It should be noted that the following diagram illustrates one possible sequence of steps, and it is not strictly required to follow this order. Some steps can be performed in parallel without interdependence. The user information (including but not limited to user device information, user personal information, user behavior information, etc.) and data (including but not limited to data used for display, training data, etc.) involved in this disclosure are all information and data authorized by the user or fully authorized by all parties.

[0081] Figure 2 This is a flowchart illustrating a network congestion control method according to an exemplary embodiment. Figure 2 As shown, the network congestion control method may include the following steps.

[0082] In step S201, the target latency information of the target data packet, the cumulative number of data packets with continuously increasing latency, and the target number threshold are obtained.

[0083] In the embodiments of this specification, the target latency information can refer to the time consumed from the sending to the receiving of the target data packet. The target data packet can be any data packet received by the receiving terminal within a recent period. Optionally, in application scenarios with high real-time requirements, such as real-time audio and video transmission scenarios (e.g., video conferencing), the target data packet can refer to the data packet received by the receiving terminal at the current moment, i.e., the latest data packet received in real time, to achieve real-time detection and response to network transmission status. Specifically, when it is detected that the receiving terminal has received the target data packet, the target latency information of the target data packet, the cumulative number of data packets with continuously increasing latency, and the target number threshold can be obtained.

[0084] In one example, the transmission time can be extracted from the target data packet. For instance, when the sending terminal sends the target data packet, it can carry a timestamp, which can be the corresponding transmission time. Based on this, the reception time of the target data at the receiving terminal can be obtained, and then the target delay information of the target data packet can be obtained based on the reception time and transmission time. For example, the time difference between the reception time and the transmission time can be used as the target delay information of the target data packet. Calculating the delay information of the data packet using this method of comparing reception time and transmission time can improve the efficiency of delay information acquisition, enhance sensitivity to network latency, and ensure timely processing.

[0085] In one possible implementation, the cumulative number of packets with continuously increasing latency can be obtained through the following steps, which may include: obtaining the historical latency information of the previous packet of the target packet and the current cumulative number of packets with continuously increasing latency. The historical latency information can be obtained using the same method as the target latency information described above, utilizing the reception and transmission times of the previous packet. The previous packet can refer to a packet received by the receiving terminal before receiving the target packet; that is, the receiving terminal receives the target packet immediately after receiving the previous packet. For the receiving terminal, the previous packet and the target packet are adjacent packets.

[0086] In the embodiments of this specification, a data packet with continuously increasing latency refers to a data packet whose latency shows an increasing trend compared to the latency of a preset number of previously received data packets. This preset number can be 1 or a value greater than 1, and this disclosure does not limit this. When the preset number is 1, the current cumulative number of data packets with continuously increasing latency can be used to characterize the number of data packets with an increasing latency trend compared to the previous data packet. This number can be a count of the number of data packets with a latency greater than the previous data packet. Alternatively, it can be a quantitative count of the number of all received data packets based on their respective latency. For example, if the latency of a received data packet is greater than the latency of the previous data packet, the quantitative count can be increased; if the latency of a received data packet is less than or equal to the latency of the previous data packet, the quantitative count can be decreased or left unchanged. Thus, by accumulating this quantitative count of all data packets based on latency, the current cumulative number of data packets with continuously increasing latency can be obtained.

[0087] In one example, the current cumulative number of packets with continuously increasing latency can be calculated using a counter. For instance, if the target latency is greater than the historical latency, the cumulative number of packets can be obtained based on the current cumulative number and a preset increment. For example, if the preset increment is 1, the counter can be incremented by 1 if the latency of a received packet is greater than the latency of the previously received packet, thus obtaining the cumulative number of packets corresponding to the target packet. By cumulatively counting packets with increasing latency, the cumulative number of packets can be made more accurate.

[0088] Alternatively, if the target latency information is less than or equal to the historical latency information, the current cumulative number can be reduced according to a preset method to obtain the cumulative number of data packets. The preset method can be any way of reducing the current cumulative number, and this disclosure does not limit this. As an example, the preset method could be to take a preset percentage of the current cumulative number; for example, the preset method could be to take half of the current cumulative number as the cumulative number of data packets. When a data packet with decreasing latency appears after a data packet with continuously increasing latency, it is generally difficult to accurately determine whether the network is experiencing jitter or network congestion. Choosing this method of reducing the current cumulative number can effectively balance the uncertainty of network jitter and network congestion, making the cumulative number of data packets more accurate.

[0089] Optionally, if the delay of the received data packet is less than or equal to the delay of the previous received data packet, the current cumulative count of the counter can remain unchanged, that is, the current cumulative count can be directly used as the cumulative count of data packets.

[0090] It should be noted that while the cumulative number of data packets is being acquired, the counter is also being updated simultaneously. That is, the current cumulative number of data packets in the counter is updated to the cumulative number of data packets, so that the counter count can be up-to-date.

[0091] In one possible implementation, the target quantity threshold can be preset, and based on this, the preset target quantity threshold can be obtained. This disclosure does not limit the method of setting the target quantity threshold.

[0092] In one alternative implementation, obtaining the target quantity threshold may include the following steps:

[0093] Obtain the initial quantity threshold and the historical latency information of the previous data packet of the target data packet;

[0094] If the delay difference between the target delay information and the historical delay information does not reach the delay difference threshold, the initial quantity threshold can be used as the target quantity threshold. The delay difference can be obtained by subtracting the historical delay information from the target delay information, provided the target delay information is greater than the historical delay information. The delay difference threshold can be preset, for example, based on actual real-time requirements. The delay difference threshold can be used to characterize a sharp increase in network transmission delay (a sudden and significant increase, i.e., non-linear growth). In other words, the target quantity threshold can be dynamically determined based on whether the transmission delay has increased significantly. This disclosure does not limit the delay difference threshold. In this case, the target quantity threshold can be obtained using the following formula (1).

[0095] pkt_cnt_threshold=base_threshold (1)

[0096] Where pkt_cnt_threshold represents the target quantity threshold, and base_hreshold represents the initial quantity threshold.

[0097] Alternatively, if the delay difference between the target delay information and the historical delay information reaches a delay difference threshold, the target quantity threshold can be obtained based on the delay difference and the initial quantity threshold; wherein, the target quantity threshold can be positively correlated with both the delay difference and the initial quantity threshold. As an example, in this case, the target quantity threshold can be obtained by the following formula (2).

[0098]

[0099] Where pkt_cnt_threshold represents the target quantity threshold; base_threshold represents the initial quantity threshold; q_delay represents the target latency information; last_q_delay represents the historical latency information; (q_delay-last_q_delay) represents the latency difference, and q_delay is greater than last_q_delay. M can be a positive number, for example, M=10. The value of M can be set according to the statistics or needs in the actual application, and can balance the situation of sudden increase in latency that exceeds the latency difference threshold. In this way, when the latency difference between the target latency information and the historical latency information reaches the latency difference threshold, the target quantity threshold is obtained based on the latency difference and the initial quantity threshold. That is, in the case of sudden increase in latency, the initial quantity threshold can be adjusted by the latency difference, so that the target quantity threshold can be dynamically determined to adapt to network jitter in a timely and effective manner. The target quantity threshold can be more accurate, so that the method of determining the occurrence of network transmission congestion based on the cumulative number of data packets exceeding the target quantity threshold can be more accurate.

[0100] In step S203, if the target delay information is greater than a preset delay threshold and the cumulative number of data packets is greater than a target number threshold, the data receiving rate corresponding to the receiving terminal of the target data packet within a preset time period is determined; the end time of the preset time period can be the receiving time of the target data packet.

[0101] The preset latency threshold can be a pre-set latency threshold, which can be set based on the monitoring and statistics of network transmission latency, or it can be set according to the latency requirements of different service types. This disclosure does not limit it in this regard.

[0102] In the embodiments of this specification, the transmission network between the sending terminal and the receiving terminal can be simplified to a queue model, such as... Figure 3As shown, data packets can be sent from the sending terminal into this queue model, and the transmission network can transmit the data packets in this queue model to the receiving terminal. Thus, when network congestion occurs (bandwidth decreases), the queuing delay of data packets in the queue will continuously increase. For example... Figure 3 Let 'a' be the arrival speed of the queue model, and 's' be the service speed of the queue model. Assuming both are uniform and constant, when the service speed 's' is greater than the arrival speed 'a', the queue will not accumulate, and there will be no queuing delay. However, when 's' is less than 'a', at time 't', the amount of data accumulated in the queue is (-s). Therefore, the time required to send all the data accumulated at time 't' to the receiving terminal is... Therefore, the queuing delay queue_delay(t) for data entering the queue should satisfy (assuming the data is continuous): The starting time of t can be any specified time, or it can be automatically determined periodically, or it can be the time when the queuing delay of the data packet is detected to be greater than the delay threshold.

[0103] Based on the above introduction, in network congestion scenarios, the queuing delay of each data packet increases linearly; however, if network jitter exists, the change in queuing delay will exhibit a more irregular and fluctuating state. Therefore, the change in queuing delay is actually affected by network jitter, thus requiring a reasonable method to distinguish between the changes in queuing delay caused by decreased network bandwidth and network jitter. Based on this, this disclosure uses a cumulative data packet count to determine whether a linearly increasing delay occurs, thus balancing the delay phenomenon caused by network jitter. This disclosure further combines different methods for determining the target number threshold and a dynamic method for determining the target number threshold to improve the accuracy of network congestion judgment, the details of which are described below.

[0104] In the embodiments of this specification, when the target latency information is greater than a preset latency threshold and the cumulative number of data packets is greater than a target number threshold, the data receiving rate corresponding to the receiving terminal of the target data packet within a preset time period is determined, so as to adjust the data sending rate of the sending terminal. The end time of the preset time period can be the receiving time of the target data packet, and the duration of the preset time period is not limited in this disclosure.

[0105] In one example, refer to Figure 4As shown, upon receiving the target data packet, it can be determined whether the delay difference has reached the delay difference threshold. If so, the initial quantity threshold can be increased, i.e., the initial quantity threshold can be increased using the formula (2) above to obtain the target quantity threshold; and the current cumulative quantity can be increased by 1 to update the current cumulative quantity and obtain the cumulative number of data packets. If not, the initial quantity threshold can be directly used as the target quantity threshold, as shown in the formula (1) above; further, it can be determined whether the target delay information is greater than the historical delay information. If it is greater, the current cumulative quantity can be increased by 1 to update the current cumulative quantity and obtain the cumulative number of data packets; if it is not greater, the current cumulative quantity can be halved and the halved current cumulative quantity can be used as the cumulative number of data packets.

[0106] Next, it can be determined whether the target delay information is greater than the preset delay threshold and whether the cumulative number of data packets is greater than the target number threshold. If not, the congestion process can continue to be performed on the next received data packet. If yes, it can be determined that network congestion has occurred, and network congestion control can be performed. That is, the data receiving rate of the receiving terminal of the target data packet within the preset time period can be determined to adjust the data sending rate of the sending terminal, for example, by executing step S205.

[0107] In step S205, based on the data receiving rate, the data sending rate corresponding to the sending terminal of the target data packet is determined, so that the sending terminal sends the data packet according to the data sending rate.

[0108] In the embodiments of this specification, the trend of data receiving rate can be determined. If the trend is decreasing, the current sending rate of the sending terminal can be reduced to obtain the data sending rate. If the trend is increasing or stable, the current sending rate of the sending terminal can be kept unchanged, that is, the current sending rate of the sending terminal can be directly used as the data sending rate.

[0109] By combining target latency information with the cumulative number of data packets with continuously increasing latency to determine network congestion, this method can sensitively and quickly detect network congestion, enabling faster congestion control. This involves rapidly controlling the data transmission rate at the sending end, meeting the requirements of high-real-time data transmission scenarios and effectively mitigating data lag. Furthermore, by setting a congestion condition where the cumulative number of continuously increasing latency data packets exceeds a target threshold, network jitter can be avoided from being misjudged as network congestion, making congestion identification more accurate and achieving efficient and precise congestion control. Specifically, in experiments with fluctuating bandwidth, this significantly reduces the stuttering rate of real-time audio and video interactive applications. The experimental results are as follows:

[0110] bandwidth waveform Network caching Changes in stuttering rate 0.5Mbps-1.5Mbps square wave 16KB 15%→5% 0.5Mbps-1.5Mbps sine wave 16KB 17%→5%

[0111] Among these improvements, the stuttering rate can be reduced by more than 10%, making it better suited for application scenarios with high real-time requirements.

[0112] In one possible implementation, such as Figure 5 As shown, step S205 may include:

[0113] In step S501, target duration information for adjusting network congestion is obtained.

[0114] In one possible implementation, the target duration information can be pre-set. In one example, multiple duration information can be pre-set, and one duration information can be selected from these multiple duration information as the target duration information. This selection can be done randomly or based on latency difference, etc., and this disclosure does not limit this. For the method of selection based on latency difference, the target duration information can be positively correlated with the latency difference, which can avoid aggravating transmission stuttering.

[0115] In an optional real-time approach, the service type of the target data packet can be obtained. This service type characterizes the service's demand level for real-time data. Based on the service type, the corresponding target duration information can be determined. This target duration information can be negatively correlated with the demand level; for example, the higher the demand level, the shorter the target duration. By flexibly determining the target duration information according to the different real-time requirements of different service types, the target duration information can effectively adapt to the needs of congestion handling.

[0116] In step S503, the amount of congested data is determined based on the target delay information and the data receiving rate.

[0117] In the embodiments of this specification, the amount of congested data can refer to the amount of data accumulated in the network. Based on this, the amount of congested data can be determined using the current target latency information and the data receiving rate. For example, the current target latency information and the data receiving rate can be multiplied to obtain the amount of congested data.

[0118] Optionally, the current target latency information and the data receiving rate can be multiplied to obtain a product, and then a preset weight can be multiplied on the product to obtain the amount of congested data. The preset weight can be pre-set, and this disclosure does not limit it.

[0119] In step S505, based on the congestion data volume and target duration information, the predicted rate at which the congestion data volume is transmitted to the receiving terminal is obtained.

[0120] In the embodiments of this specification, the predicted rate at which the congested data is transmitted to the receiving terminal can be obtained based on the congested data volume and target duration information. In other words, the rate required for all the congested data to reach the receiving terminal can be predicted.

[0121] In one example, the predicted rate can be obtained using the following formula (3).

[0122]

[0123] Where, deplete_rate represents the prediction rate; Δt represents the target duration information; recv_rate*q_delay represents the amount of congested data, recv_ represents the data receiving rate, and q_delay represents the target delay information.

[0124] In step S507, the difference between the data receiving rate and the predicted rate is used as the data sending rate.

[0125] In the embodiments of this specification, the data transmission rate can be obtained by the following formula (4).

[0126] send_rate=recv_rate-deplete_rate (4)

[0127] Where send_ represents the data sending rate; recv_ represents the data receiving rate; and deplete_rate represents the predicted rate.

[0128] By setting parameters to adjust network congestion, combined with target latency information and data reception rate, the data transmission rate for the sending terminal can be determined, thereby achieving end-to-end transmission latency congestion control at the data transmission source.

[0129] Figure 6 This is a block diagram illustrating a network congestion control device according to an exemplary embodiment. (Refer to...) Figure 6 The network congestion control device may include:

[0130] The information acquisition module 601 is configured to acquire target latency information of the target data packet, the cumulative number of data packets with continuously increasing latency, and the target number threshold.

[0131] The congestion detection module 603 is configured to determine the data reception rate of the receiving terminal of the target data packet within a preset time period when the target delay information is greater than a preset delay threshold and the cumulative number of data packets is greater than the target number threshold; the end time of the preset time period is the reception time of the target data packet.

[0132] The congestion control module 605 is configured to perform a data transmission rate determination based on the data reception rate of the target data packet, so that the sending terminal transmits the data packet according to the data transmission rate.

[0133] By combining target latency information with the cumulative number of data packets with continuously increasing latency to determine the occurrence of network congestion, it is possible to sensitively and quickly detect whether network congestion has occurred. This allows for more rapid congestion control, namely, quickly controlling the data transmission rate at the sending end, which can meet the requirements of data transmission scenarios with high real-time requirements and effectively alleviate data lag. Furthermore, by setting a congestion condition where the cumulative number of data packets with continuously increasing latency exceeds a target threshold, network jitter can be avoided from being misjudged as network congestion, making the determination of network congestion more accurate and thus achieving efficient and precise congestion control.

[0134] In one possible implementation, the information acquisition module 601 described above may include:

[0135] The historical latency and cumulative quantity acquisition unit is configured to acquire the historical latency information of the previous data packet of the target data packet and the current cumulative quantity of data packets with continuously increasing latency;

[0136] The first cumulative quantity acquisition unit is configured to reduce the current cumulative quantity according to a preset method to obtain the cumulative quantity of data packets when the target delay information is less than or equal to the historical delay information.

[0137] In one possible implementation, the information acquisition module 601 may further include:

[0138] The second cumulative quantity acquisition unit is configured to obtain the cumulative quantity of data packets based on the current cumulative quantity and a preset increase quantity when the target delay information is greater than the historical delay information.

[0139] In one possible implementation, the information acquisition module 601 may further include:

[0140] The initial quantity threshold and historical latency acquisition unit is configured to acquire the initial quantity threshold and the historical latency information of the previous data packet of the target data packet;

[0141] The first target quantity threshold unit is configured to use the initial quantity threshold as the target quantity threshold when the delay difference between the target delay information and the historical delay information does not reach the delay difference threshold.

[0142] In one possible implementation, the information acquisition module 601 may further include:

[0143] The second target quantity threshold unit is configured to, when the delay difference between the target delay information and the historical delay information reaches the delay difference threshold, obtain the target quantity threshold based on the delay difference and the initial quantity threshold.

[0144] The target quantity threshold is positively correlated with both the time delay difference and the initial quantity threshold.

[0145] In one possible implementation, the congestion control module 605 described above may include:

[0146] The preset duration acquisition unit is configured to acquire target duration information for adjusting network congestion.

[0147] The congestion data volume determination unit is configured to determine the congestion data volume based on the target delay information and the data receiving rate;

[0148] The prediction rate acquisition unit is configured to perform a prediction rate based on the congested data volume and the target duration information to obtain the predicted rate at which the congested data volume is transmitted to the receiving terminal.

[0149] The congestion control unit is configured to use the difference between the data reception rate and the predicted rate as the data transmission rate.

[0150] In one possible implementation, the aforementioned preset duration acquisition unit may include:

[0151] The service type acquisition subunit is configured to acquire the service type of the service to which the target data packet belongs; the service type is used to characterize the demand level of the service to which the target data packet belongs for real-time data.

[0152] The preset duration acquisition subunit is configured to determine the corresponding target duration information based on the business type; the target duration information is negatively correlated with the demand level.

[0153] In one possible implementation, the information acquisition module 601 may further include:

[0154] The transmission time acquisition unit is configured to extract the transmission time from the target data packet;

[0155] The target delay information acquisition unit is configured to obtain the target delay information of the target data packet based on the receiving time and the sending time.

[0156] Regarding the apparatus in the above embodiments, the specific manner in which each module performs its operation has been described in detail in the embodiments related to the method, and will not be elaborated upon here.

[0157] Figure 7 This is a block diagram illustrating an electronic device for network congestion control according to an exemplary embodiment. The electronic device may be a terminal, and its internal structure diagram may be as follows: Figure 7 As shown, the electronic device includes a processor, memory, network interface, display screen, and input devices connected via a system bus. The processor provides computing and control capabilities. The memory includes a non-volatile storage medium and internal memory. The non-volatile storage medium stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage medium. The network interface is used to communicate with external terminals via a network connection. When the computer program is executed by the processor, it implements a method for network congestion control. The display screen can be a liquid crystal display (LCD) or an e-ink display. The input devices can be a touch layer covering the display screen, buttons, a trackball, or a touchpad mounted on the device's casing, or an external keyboard, touchpad, or mouse.

[0158] Those skilled in the art will understand that Figure 7 The structure shown is merely a block diagram of a portion of the structure related to the present disclosure and does not constitute a limitation on the electronic device to which the present disclosure is applied. A specific electronic device may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0159] Figure 8 This is a block diagram illustrating another electronic device for network congestion control according to an exemplary embodiment. The electronic device may be a server, and its internal structure diagram may be as follows: Figure 8 As shown, the electronic device includes a processor, memory, and a network interface connected via a system bus. The processor provides computing and control capabilities. The memory includes a non-volatile storage medium and internal memory. The non-volatile storage medium stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage medium. The network interface is used to communicate with external terminals via a network connection. When the computer program is executed by the processor, it implements a method for network congestion control.

[0160] Those skilled in the art will understand that Figure 8 The structure shown is merely a block diagram of a portion of the structure related to the present disclosure and does not constitute a limitation on the electronic device to which the present disclosure is applied. A specific electronic device may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0161] In an exemplary embodiment, an electronic device is also provided, including: a processor; and a memory for storing processor-executable instructions; wherein the processor is configured to execute the instructions to implement a network congestion control method as described in the embodiments of this disclosure.

[0162] In an exemplary embodiment, a computer-readable storage medium is also provided, which, when executed by a processor of an electronic device, enables the electronic device to perform the network congestion control method of this disclosure. The computer-readable storage medium may be a ROM, random access memory (RAM), CD-ROM, magnetic tape, floppy disk, or optical data storage device, etc.

[0163] In an exemplary embodiment, a computer program product containing instructions is also provided, which, when run on a computer, causes the computer to perform the network congestion control method of the present disclosure embodiments.

[0164] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. This computer program can be stored in a non-volatile computer-readable storage medium. When executed, the computer program can include the processes of the embodiments of the above methods. Any references to memory, storage, databases, or other media used in the embodiments provided in this application can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in various forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), dual data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), RAMbus direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and RAMbus dynamic RAM (RDRAM), etc.

[0165] Other embodiments of this disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this disclosure are indicated by the following claims.

[0166] It should be understood that this disclosure is not limited to the precise structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of this disclosure is limited only by the appended claims.

Claims

1. A network congestion control method, characterized in that, include: Obtain the target latency information of the target data packets, the cumulative number of data packets with continuously increasing latency, and the target number threshold; If the target latency information is greater than a preset latency threshold and the cumulative number of data packets is greater than the target number threshold, determine the data receiving rate corresponding to the receiving terminal of the target data packet within a preset time period; The end time of the preset time period is the reception time of the target data packet; Based on the data receiving rate, the data sending rate corresponding to the sending terminal of the target data packet is determined, so that the sending terminal sends the data packet according to the data sending rate; The step of obtaining the cumulative number of data packets with continuously increasing latency includes: Obtain the historical latency information of the previous data packet of the target data packet and the current cumulative number of data packets with continuously increasing latency; If the target latency information is less than or equal to the historical latency information, the current cumulative number is reduced according to a preset method to obtain the cumulative number of data packets; If the target latency information is greater than the historical latency information, the cumulative number of data packets is obtained based on the current cumulative number and the preset increase number.

2. The method according to claim 1, characterized in that, The steps for obtaining the target quantity threshold include: Obtain the initial quantity threshold and the historical latency information of the previous data packet of the target data packet; If the difference between the target delay information and the historical delay information does not reach the delay difference threshold, the initial quantity threshold is used as the target quantity threshold.

3. The method according to claim 2, characterized in that, The method further includes: When the delay difference between the target delay information and the historical delay information reaches the delay difference threshold, the target quantity threshold is obtained based on the delay difference and the initial quantity threshold. The target quantity threshold is positively correlated with both the time delay difference and the initial quantity threshold.

4. The method according to any one of claims 1-3, characterized in that, The step of determining the data transmission rate corresponding to the sending terminal of the target data packet based on the data reception rate includes: Obtain target duration information for adjusting network congestion; The amount of congested data is determined based on the target delay information and the data receiving rate; Based on the congestion data volume and the target duration information, the predicted rate at which the congestion data volume is transmitted to the receiving terminal is obtained. The difference between the data receiving rate and the predicted rate is taken as the data sending rate.

5. The method according to claim 4, characterized in that, The acquisition of target duration information for adjusting network congestion includes: Obtain the service type of the service to which the target data packet belongs; the service type is used to characterize the demand level of the service to which the target data packet belongs for real-time data. Based on the business type, the corresponding target duration information is determined; the target duration information is negatively correlated with the demand level.

6. The method according to claim 1, characterized in that, The acquisition of target delay information for the target data packet includes: Extract the transmission time from the target data packet; The target delay information of the target data packet is obtained based on the receiving time and the sending time.

7. A network congestion control device, characterized in that, include: The information acquisition module is configured to acquire target latency information of the target data packet, the cumulative number of data packets with continuously increasing latency, and the target number threshold. The congestion detection module is configured to determine the data receiving rate of the receiving terminal of the target data packet within a preset time period when the target delay information is greater than a preset delay threshold and the cumulative number of data packets is greater than the target number threshold. The end time of the preset time period is the reception time of the target data packet; The congestion control module is configured to perform a data transmission rate determination based on the data reception rate of the target data packet, thereby enabling the sending terminal to transmit the data packet according to the data transmission rate. The information acquisition module includes: The historical latency and cumulative quantity acquisition unit is configured to acquire the historical latency information of the previous data packet of the target data packet and the current cumulative quantity of data packets with continuously increasing latency; The first cumulative quantity acquisition unit is configured to reduce the current cumulative quantity according to a preset method to obtain the cumulative quantity of data packets when the target delay information is less than or equal to the historical delay information; The second cumulative quantity acquisition unit is configured to obtain the cumulative quantity of data packets based on the current cumulative quantity and a preset increase quantity when the target delay information is greater than the historical delay information.

8. An electronic device, characterized in that, include: processor; Memory used to store the processor's executable instructions; The processor is configured to execute the instructions to implement the network congestion control method as described in any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that, When the instructions in the computer-readable storage medium are executed by the processor of the electronic device, the electronic device is enabled to perform the network congestion control method as described in any one of claims 1 to 6.

10. A computer program product, characterized in that, Includes computer instructions, which, when executed by a processor, cause the computer to perform the network congestion control method as described in any one of claims 1 to 6.