Method and device for controlling network transmission congestion, equipment and storage medium

By adjusting the parameters of the congestion control algorithm, the problem that traditional algorithms cannot adapt to different application needs is solved according to the application's data transmission preferences and quality requirements, and the efficiency and user experience of network transmission congestion control are improved.

CN119544614APending Publication Date: 2025-02-28DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411732997.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-28
Publication Date
2025-02-28

AI Technical Summary

Technical Problem

Traditional congestion control algorithms cannot effectively adapt to the data transmission preferences of different applications, resulting in low efficiency of network transmission congestion control and poor user experience.

Method used

By determining the application's data transmission preferences and correlating with the requirements of data transmission quality, the parameters of the congestion control algorithm are adjusted to meet the needs and preferences of different applications.

Benefits of technology

It improves the efficiency of controlling network transmission congestion, improves the performance of the application, and can better adapt to the needs and preferences of the application.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119544614A_ABST
    Figure CN119544614A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a method and device for controlling network transmission congestion, equipment and a storage medium. The method comprises: determining a data transmission preference of an application, the data transmission preference of the application being associated with a preference of a requirement for data transmission quality of the application; adjusting at least one parameter of the congestion control algorithm based on a data transmission preference of the application to adjust a data transmission quality that the congestion control algorithm can provide; and transmitting the applied data over the network using a congestion control algorithm with at least one parameter adjusted. Based on the mode, according to the embodiment of the invention, the parameters of the congestion control algorithm can be adjusted according to the data transmission preference of the application, so that the data of the application can be transmitted through the network based on the adjusted congestion control algorithm, the requirements and preferences of the application can be better adapted, the efficiency of controlling network transmission congestion is improved, and the user experience is improved. And the application performance is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Example embodiments of the present disclosure generally relate to the field of computers, and more particularly, to methods, devices, apparatuses, and computer-readable storage media for controlling network transmission congestion. Background Art

[0002] In today's digital age, the efficiency and stability of network transmission are crucial to various online services and applications. With the surge in the number of Internet users and the explosive growth of data traffic, network congestion has become an increasingly prominent problem. How to control network transmission congestion is a focus of attention. Summary of the invention

[0003] In a first aspect of the present disclosure, a method for controlling network transmission congestion is provided. The method includes: determining a data transmission preference of an application, the data transmission preference of the application being associated with a preference for a data transmission quality requirement of the application; adjusting at least one parameter of a congestion control algorithm based on the data transmission preference of the application to adjust the data transmission quality that the congestion control algorithm can provide; and transmitting data of the application through a network using the congestion control algorithm with at least one parameter adjusted.

[0004] In a second aspect of the present disclosure, a device for controlling network transmission congestion is provided. The device includes: a determination module configured to determine a data transmission preference of an application, the data transmission preference of the application being associated with a preference for a data transmission quality requirement of the application; an adjustment module configured to adjust at least one parameter of a congestion control algorithm based on the data transmission preference of the application to adjust the data transmission quality that the congestion control algorithm can provide; and a transmission module configured to use the congestion control algorithm with at least one parameter adjusted to transmit data of the application through a network.

[0005] In a third aspect of the present disclosure, an electronic device is provided. The device includes at least one processing unit; and at least one memory, the at least one memory is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit. When the instructions are executed by the at least one processing unit, the device executes the method of the first aspect.

[0006] In a fourth aspect of the present disclosure, a computer-readable storage medium is provided, wherein a computer program is stored on the computer-readable storage medium, and the computer program can be executed by a processor to implement the method of the first aspect.

[0007] It should be understood that the contents described in this content section are not intended to limit the key features or important features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. In the accompanying drawings, the same or similar reference numerals represent the same or similar elements, wherein:

[0009] Figure 1 A schematic diagram showing an example environment in which embodiments of the present disclosure can be implemented;

[0010] Figure 2 A flowchart showing a process for controlling network transmission congestion according to some embodiments of the present disclosure is shown;

[0011] Figure 3 A schematic diagram showing a corresponding relationship between throughput and latency according to some embodiments of the present disclosure;

[0012] Figure 4 A flowchart showing a process of adjusting a congestion control algorithm according to some embodiments of the present disclosure;

[0013] Figure 5 A schematic structural block diagram of an apparatus for controlling network transmission congestion according to certain embodiments of the present disclosure is shown;

[0014] Figure 6 A block diagram of an electronic device capable of implementing various embodiments of the present disclosure is shown. DETAILED DESCRIPTION

[0015] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments set forth herein. On the contrary, these embodiments are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.

[0016] It should be noted that the titles of any sections / subsections provided herein are not restrictive. Various embodiments are described throughout this article, and any type of embodiment may be included under any section / subsection. In addition, the embodiments described in any section / subsection may be combined in any manner with any other embodiments described in the same section / subsection and / or different sections / subsections.

[0017] In the description of the embodiments of the present disclosure, the term "including" and similar terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "some embodiments" should be understood as "at least some embodiments". Other explicit and implicit definitions may be included below. The terms "first", "second", etc. may refer to different or the same objects. Other explicit and implicit definitions may be included below.

[0018] The embodiments of the present disclosure may involve user data, data acquisition and / or use, etc. These aspects are subject to the corresponding laws, regulations and relevant provisions. In the embodiments of the present disclosure, all data collection, acquisition, processing, processing, forwarding, use, etc. are carried out on the premise that the user knows and confirms. Accordingly, when implementing each embodiment of the present disclosure, the type, scope of use, usage scenario, etc. of the data or information that may be involved should be informed to the user and the user's authorization should be obtained in an appropriate manner in accordance with the relevant laws and regulations. The specific notification and / or authorization method can vary according to the actual situation and application scenario, and the scope of the present disclosure is not limited in this respect.

[0019] In this specification and the embodiments, if personal information processing is involved, it will be processed on the premise of having a legal basis (such as obtaining the consent of the subject of personal information, or it is necessary to perform a contract, etc.), and will only be processed within the scope of regulations or agreements. If a user refuses to process personal information other than the necessary information for basic functions, it will not affect the user's use of basic functions.

[0020] Traditional congestion control algorithms are unaware of application needs. In order to meet application needs, relevant users need to manually adjust the congestion control algorithm to meet application needs. In addition, whether the manually adjusted congestion control algorithm can meet application needs needs to be determined based on user experience feedback. This approach not only leads to low efficiency in controlling network transmission congestion, but is also laborious and time-consuming with limited benefits. Traditional congestion control algorithms can usually only provide one or several fixed data transmission preferences. These discrete data transmission preferences often cannot meet different application needs and thus affect user experience.

[0021] The embodiment of the present disclosure proposes a scheme for controlling network transmission congestion. According to the scheme, the data transmission preference of an application is determined, and the data transmission preference of the application is associated with the preference of the data transmission quality requirement of the application; at least one parameter of a congestion control algorithm is adjusted based on the data transmission preference of the application to adjust the data transmission quality that the congestion control algorithm can provide; and the congestion control algorithm with at least one parameter adjusted is used to transmit the data of the application through the network.

[0022] Based on this approach, the embodiments of the present disclosure can adjust the parameters of the congestion control algorithm according to the data transmission preference of the application, and then based on the adjusted congestion control algorithm, the data of the application transmitted through the network can better adapt to the needs and preferences of the application, and improve the efficiency of controlling network transmission congestion and improve the performance of the application.

[0023] Example Environment

[0024] Figure 1 1 is a schematic diagram of an example environment 100 in which embodiments of the present disclosure can be implemented. Figure 1 As shown, example environment 100 may include electronic device 110 .

[0025] In the example environment 100, the electronic device 110 determines the data transmission preference of the application 120. The application 120 may be any appropriate application, such as video conferencing, online games, streaming media playback, or file transfer, etc. The application 120 may be an application on the electronic device 110 or an application on other devices, which will not be described in detail here.

[0026] In an embodiment of the present disclosure, the electronic device can adjust the parameters of the congestion control algorithm corresponding to the application 120 based on the data preference of the application 120. The congestion control algorithm is used to manage and optimize the data transmission of the application 120, and is particularly used to manage and optimize the network congestion problem during the data transmission process.

[0027] In some embodiments, the electronic device may use an adjusted congestion control algorithm to transmit data of the application 120 through the network.

[0028] In some embodiments, the electronic device 110 can be any type of mobile terminal, fixed terminal or portable terminal, including mobile phones, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, handheld computers, portable game terminals, VR / AR devices, personal communication systems (PCS) devices, personal navigation devices, personal digital assistants (PDA), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio broadcast receivers, e-book devices, game devices, or any combination of the foregoing, including accessories and peripherals of these devices or any combination thereof. In some embodiments, the electronic device 110 can also support any type of interface for the target user (such as "wearable" circuits, etc.).

[0029] The electronic device 110 may also be an independent physical server, or 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 communications, middleware services, domain name services, security services, content distribution networks, and big data and artificial intelligence platforms. The electronic device 110 may include, for example, a computing system / server, such as a mainframe, an edge computing node, a computing device in a cloud environment, and the like.

[0030] It should be understood that the structure and function of the various elements in the environment 100 are described for exemplary purposes only and do not imply any limitation on the scope of the present disclosure.

[0031] The following will continue to refer to Figures 2 to 4 Some example embodiments of the present disclosure are described.

[0032] Example Process

[0033] Figure 2 FIG. 2 is a flowchart of a process 200 for controlling network transmission congestion according to some embodiments of the present disclosure. The process 200 may be implemented at the electronic device 110. For ease of discussion, the following reference is made to Figure 1 Process 200 is described.

[0034] In block 210 , the electronic device 110 determines a data transmission preference of an application, the data transmission preference of the application being associated with a preference of a required data transmission quality of the application.

[0035] In some embodiments, the application may be any appropriate application, such as video conferencing, online gaming, streaming media playback, file transfer, large file downloading, and the like.

[0036] In some embodiments, the data transmission quality characterizes the performance and reliability of transmitting data in the network. The data transmission quality can be indicated by at least one quality indicator.

[0037] In some embodiments, the quality indicator may be any appropriate indicator that can reflect the performance and reliability of the network when transmitting data. As an example, the at least one quality indicator may include at least one of the following: throughput, latency. As another example, the quality indicator may also be any other appropriate indicator such as packet loss rate, error rate, etc.

[0038] In some embodiments, the preference for data transmission quality requirements depends on the specific requirements of the application for network transmission quality. The quality indicators indicating the data transmission quality corresponding to different applications may be the same or different. For example, the quality indicator indicating the data transmission quality corresponding to application A may be throughput, and the quality indicator indicating the data transmission quality corresponding to application B may be throughput and latency.

[0039] In some embodiments, when the quality indicators of data transmission quality corresponding to different applications are the same, the corresponding requirement preferences may also be different. For example, the quality indicators indicating the data transmission quality corresponding to application A and application B may be throughput and latency, but the requirement preference corresponding to application A may be throughput a and latency b, and the requirement preference corresponding to application B may be throughput c and latency d. In other words, different applications focus on different quality indicators. For example, the video conferencing application focuses more on low latency, while the large file download application focuses more on high throughput.

[0040] In some embodiments, the data transmission quality may be represented by a first quality indicator and a second quality indicator. It is understandable that the first quality indicator and the second quality indicator do not represent the quantity of quality indicators, but only represent that they are different quality indicators.

[0041] In some embodiments, at least one of the first preference and the second preference is related to the state of the network, that is, the transmission performance requirement of the application may change according to the change of the current state of the network. The state of the network represents the performance and operation of the network, which may be indicated by at least one network indicator, such as bandwidth, load, etc.

[0042] The following describes the process of determining the data transmission preference of an application.

[0043] In some embodiments, the data transmission preference may be determined according to the user experience function (QoE) of the application. The user experience function is an indicator used to measure the overall satisfaction of the user when using a network service or application, which may be associated with a quality indicator indicating the quality of data transmission, such as the user experience function may be associated with throughput and latency.

[0044] The user experience function may be a function related to the first quality indicator and the second quality indicator. For example, taking the first quality indicator as throughput and the second quality indicator as latency as an example, the user experience function may be expressed in the following form:

[0045] QoE=f(τ,μ)

[0046] Where τ represents throughput, μ represents delay, and f(τ,μ) represents a function related to throughput and delay.

[0047] In some embodiments, the QoE corresponding to different applications may be different.

[0048] In some embodiments, the electronic device 110 may determine the first preference of the application regarding the first quality indicator and the second preference of the application regarding the second quality indicator. For example, if the first quality indicator is throughput and the second quality indicator is latency, the electronic device 110 may determine the first preference of the application regarding throughput and the second preference of the application regarding latency. Further, the electronic device 110 may determine the data transmission preference of the application based on the first preference of the application regarding the first quality indicator and the second preference regarding the second quality indicator. Specifically, the electronic device 110 may determine the data transmission preference of the application based on the ratio of the first preference to the second preference.

[0049] In some embodiments, the data transmission preference of the application can be determined by deriving the QoE. For example, taking the first quality indicator as throughput and the second quality indicator as latency as an example, the electronic device 110 can determine the data transmission preference corresponding to the application based on the following formula:

[0050]

[0051] Among them, τ represents throughput; μ represents latency; τ0 represents the corresponding throughput in the current data transmission process; μ0 represents the corresponding latency in the current data transmission process; f represents the user experience function related to throughput and latency, that is, f(τ,μ); Indicates the application's preference for latency; Indicates the application's preference for throughput.

[0052] As an example, taking the first quality indicator as throughput and the second quality indicator as latency as an example, for the file download application, QoE can be expressed by the following expression:

[0053]

[0054] in, τ represents throughput and μ represents latency.

[0055] For the file download application, the data transmission preference corresponding to this application can be determined based on the following formula:

[0056]

[0057] in, τ represents throughput, μ represents delay, τ0 represents the corresponding throughput in the current data transmission process, μ0 represents the corresponding delay in the current data transmission process, and f represents the user experience function related to throughput and delay, that is,

[0058] As another example, taking the first quality indicator as throughput and the second quality indicator as latency as an example, for the application of real-time audio and video services, QoE can be expressed by the following expression:

[0059]

[0060] Wherein, τ represents throughput, μ represents delay, β1 and β2 are predetermined parameters. As an example, β1 may be 0.5, and β2 may be 0.3.

[0061] It should be noted that the QoE of the real-time audio and video service application can be determined based on the sum of video quality (Svideo), delay (Sdelay) and frame loss rate (Sdrop). Specifically, the process of determining video quality, delay and frame loss rate is an existing technology and will not be described in detail here.

[0062] For the real-time audio and video service application, the data transmission preference corresponding to this application can be determined based on the following formula:

[0063]

[0064] Among them, τ represents throughput, μ represents delay, τ0 represents the corresponding throughput in the current data transmission process, μ0 represents the corresponding delay in the current data transmission process, and f represents the user experience function related to throughput and delay, that is,

[0065] As another example, taking the first quality indicator as throughput and the second quality indicator as latency as an example, for the application of web browsing service, QoE can be expressed by the following expression:

[0066]

[0067] Where n represents the number of requests, ρ i represents the file size of the i-th request, τ represents the throughput, and μ represents the latency.

[0068] For the web browsing service application, the data transmission preference corresponding to this application can be determined based on the following formula:

[0069]

[0070] Where n represents the number of requests, ρ i represents the file size of the i-th request, τ0 represents the corresponding throughput in the current data transmission process, τ represents the throughput, μ represents the delay, and f represents the user experience function related to the throughput and delay, that is,

[0071] At block 220 , the electronic device 110 adjusts at least one parameter of the congestion control algorithm based on the data transmission preference of the application to adjust the data transmission quality that the congestion control algorithm can provide.

[0072] In some embodiments, the congestion control algorithm may be any appropriate series of mechanisms and algorithms for detecting and responding to network congestion in a computer network. For example, the congestion control algorithm may be a bottleneck bandwidth and round-trip delay algorithm (Bottleneck Bandwidth and RTT, BBR), a cubic algorithm (Cubic), a high bandwidth delay congestion control algorithm (Copa), etc., which will not be described in detail here.

[0073] In some embodiments, the electronic device 110 may determine the current data transmission quality of the data of the application transmitted using the congestion control algorithm. The current data transmission quality characterizes the data transmission quality of the application at the current time, and the current data transmission quality may be indicated by at least one quality indicator. As an example, the current data transmission quality may be indicated by the throughput and latency corresponding to the current time. As another example, the current data transmission quality may also be determined based on the change in the statistical value corresponding to the first quality indicator and the change in the statistical value of the second quality indicator within at least two cycles of the data of the application.

[0074] Further, the electronic device 110 may determine a first statistical value of a first quality indicator and a first statistical value of a second quality indicator within a first transmission period of the data of the application. The electronic device 110 may determine a second statistical value of the first quality indicator and a second statistical value of the second quality indicator within a second transmission period of the data of the application. The first transmission period and the second transmission period may be any appropriate transmission period, such as two adjacent transmission periods. In some embodiments, the first transmission period and the second transmission period may correspond to any appropriate duration, such as each transmission period may include a predetermined number of round trip times (RTT).

[0075] The electronic device 110 may determine the current data transmission quality based on the first statistical value of the first quality indicator, the first statistical value of the second quality indicator, the second statistical value of the first quality indicator, and the second statistical value of the second quality indicator.

[0076] Further, the electronic device 110 may determine a second statistical value of the first quality indicator and a first difference of the first statistical value of the first quality indicator. The electronic device 110 may determine a second statistical value of the second quality indicator and a second difference of the first statistical value of the second quality indicator. The electronic device 110 may determine the quality of the current data transmission based on the ratio of the first difference and the second difference.

[0077] In some embodiments, taking the first quality indicator as throughput and the second quality indicator as latency as an example, the quality of current data transmission can be determined based on the following formula:

[0078]

[0079] in, is the quality of current data transmission, τ i+1 represents the statistical value of the throughput in the i+1th transmission cycle, τ i represents the statistical value of the throughput in the i-th transmission cycle, μ i+1 represents the statistical value of the delay in the i+1th transmission cycle, μ i Indicates the statistical value of the delay in the i-th transmission cycle.

[0080] In some embodiments, the electronic device 110 may adjust at least one parameter of the congestion control algorithm to reduce the difference between the current data transmission quality and the data transmission preference of the application. The smaller the difference between the current data transmission quality and the data transmission preference of the application, the more the adjusted congestion control algorithm meets the data transmission requirements corresponding to the application.

[0081] Furthermore, the electronic device 110 may determine the corresponding value of at least one parameter by a search algorithm to minimize the difference. The search algorithm may be any appropriate algorithm, such as a binary search method, or other search algorithms, which will not be described in detail herein.

[0082] As an example, the electronic device 110 may determine the target aggressiveness based on the following formula, where the aggressiveness may reflect the preference of the application regarding a certain quality indicator (eg, throughput):

[0083]

[0084] in is the quality of current data transmission, λ is the data preference data corresponding to the application, α t The target aggressiveness is determined based on the search algorithm to minimize the difference between the current data transmission quality and the data preference data corresponding to the application.

[0085] In some embodiments, the target aggressiveness is associated with a quality indicator indicating the quality of data transmission. t ∈[0,1], when α t When the corresponding values ​​are different, the corresponding quality index values ​​are also different. t 0 indicates the most conservative mode, t 1 indicates the most conservative mode. Taking the quality indicators indicating data transmission quality including throughput and delay as an example, αt =0 means that the throughput corresponds to the minimum value, the delay corresponds to the minimum value, and α t When =1, it means that the throughput corresponds to the maximum value and the delay also corresponds to the maximum value.

[0086] Figure 3 A schematic diagram showing the corresponding relationship between throughput and delay according to some embodiments of the present disclosure is shown, wherein a curve showing the relationship between delay and throughput is shown. Specifically, Figure 3 As shown in the figure, when the delay is larger, the corresponding throughput is larger, and when the delay is smaller, the corresponding throughput is smaller. The values ​​corresponding to the aggressiveness correspond to the data points on this relationship curve. When the target aggressiveness is 1, it can correspond to point A in the curve. The delay corresponding to this data point is the largest and the throughput is the largest. When the target aggressiveness is 0, it can correspond to point B in the curve. The delay corresponding to this point is the smallest and the throughput is the smallest.

[0087] The electronic device 110 may determine at least one parameter for adjusting the congestion control algorithm based on the correspondence between the aggressiveness and the adjustable parameters corresponding to the congestion control algorithm and the target aggressiveness.

[0088] In some embodiments, at least one parameter of the congestion control algorithm is associated with at least one of the following: the growth rate of the data transmission rate, the maximum amount of data in transit. The growth rate of the data transmission rate represents how quickly the congestion control algorithm changes its transmission rate and detects the network bandwidth. The maximum amount of data in transit represents the control or tolerance of the congestion control algorithm to the maximum queue length. The electronic device 110 can accurately position the working point of the congestion control algorithm at the desired position by adjusting the growth rate of the data transmission rate and / or the maximum amount of data in transit, that is, the difference between the current data transmission quality and the data transmission preference that can be achieved is reduced.

[0089] As an example, taking the Copa algorithm in the transmission control protocol (TCP) / a transmission protocol (Quick UDP Internet Connections, QUIC) protocol as an example, at least one parameter of the Copa algorithm is adjusted according to the following formula:

[0090] δ=(0.02-0.6)*α+0.6

[0091] Among them, α is the target aggressiveness and δ is the parameter for adjusting the Copa algorithm.

[0092] As another example, taking the GCC algorithm in the web-based real-time audio and video transmission protocol (webRTC) protocol as an example, the electronic device 110 may determine to adjust at least one parameter of the algorithm based on the following formula:

[0093] β = 0.95-0.1α;

[0094] η=1.08+0.4(1.0-α);

[0095] c=1+25*(1.0-α)

[0096] Among them, β, η, and c are three parameters for adjusting this GCC algorithm, where α is the target aggressiveness and α∈[0,1]. β is the window multiplicative reduction factor, which indicates the reduction ratio of the data sending window under the network congestion state; η is the window exponential growth factor, which indicates the number of exponential increases in the data sending window for each round-trip delay under the network non-congestion state; c is the window linear growth factor, which indicates the number of linear increases in the data sending window for each round-trip delay under the network non-congestion state.

[0097] At block 230 , the electronic device 110 transmits data of the application through the network using a congestion control algorithm with at least one parameter adjusted.

[0098] As an example, taking the GCC algorithm as an example, the electronic device 110 may adopt the GCC algorithm with adjusted window multiplicative reduction factor, window exponential growth factor, and window linear growth factor to transmit application data through the network.

[0099] Figure 4 A flow chart showing a process of adjusting a congestion control algorithm according to some embodiments of the present disclosure is shown.

[0100] In block 401, the electronic device 110 may determine the QoE corresponding to the target application. The target application may be any application among application A, application B, and application C.

[0101] In block 402 , the electronic device 110 may determine a data transfer preference of a target application.

[0102] In some embodiments, this data transmission preference may be associated with a throughput preference and a latency preference.

[0103] In block 403 , the electronic device 110 may target the data transmission preference of the target application and determine, based on the current data transmission quality, to adjust at least one parameter of the congestion control algorithm.

[0104] In block 404 , the electronic device 110 may adjust the congestion control algorithm based on the at least one parameter, thereby minimizing the difference between the current data transmission quality and the data transmission preference of the target application.

[0105] Based on this approach, the embodiments of the present disclosure can adjust the parameters of the congestion control algorithm according to the data transmission preference of the application, and then based on the adjusted congestion control algorithm, the data of the application transmitted through the network can better adapt to the needs and preferences of the application, and improve the efficiency of controlling network transmission congestion and improve the performance of the application.

[0106] Example devices and equipment

[0107] The embodiments of the present disclosure also provide corresponding devices for implementing the above methods or processes. Figure 5 A schematic structural block diagram of an apparatus 500 for controlling network transmission congestion according to some embodiments of the present disclosure is shown. The apparatus 500 may be implemented as or included in the electronic device 110 discussed above. Each module / component in the apparatus 500 may be implemented by hardware, software, firmware, or any combination thereof.

[0108] like Figure 5 As shown, the device 500 includes a determination module 510, which is configured to determine the data transmission preference of the application, and the data transmission preference of the application is associated with the preference of the data transmission quality required by the application; an adjustment module 520, which is configured to adjust at least one parameter of the congestion control algorithm based on the data transmission preference of the application to adjust the data transmission quality that the congestion control algorithm can provide; and a transmission module 530, which is configured to adopt the congestion control algorithm with at least one parameter adjusted to transmit the data of the application through the network.

[0109] In some embodiments, the data transmission quality is indicated by at least one quality indicator, and the determination module is further configured to determine the data transmission preference of the application based on a first preference of the application regarding the first quality indicator and a second preference regarding the second quality indicator.

[0110] In some embodiments, at least one of the first preference and the second preference is related to a status of the network.

[0111] In some embodiments, the data transmission preference is determined based on a user experience function of the application.

[0112] In some embodiments, the adjustment module 520 is further configured to: determine the current data transmission quality of data transmitted by the application using the congestion control algorithm; and adjust at least one parameter of the congestion control algorithm to reduce the difference between the current data transmission quality and the data transmission preference of the application.

[0113] In some embodiments, the data transmission quality is indicated by at least one quality indicator, and the adjustment module 520 is further configured to: determine a first statistical value of a first quality indicator and a first statistical value of a second quality indicator within a first transmission period of the application data; determine a second statistical value of the first quality indicator and a second statistical value of the second quality indicator within a second transmission period of the application data; and determine the current data transmission quality based on the first statistical value of the first quality indicator, the first statistical value of the second quality indicator, the second statistical value of the first quality indicator, and the second statistical value of the second quality indicator.

[0114] In some embodiments, the adjustment module 520 is further configured to: determine a corresponding value of at least one parameter by a search algorithm to minimize the difference.

[0115] In some embodiments, the at least one quality indicator includes at least one of the following: throughput, latency.

[0116] In some embodiments, at least one parameter of the congestion control algorithm is associated with at least one of the following: a growth rate of a data transmission rate, and a maximum amount of in-transit data.

[0117] The units included in the device 500 can be implemented in various ways, including software, hardware, firmware, or any combination thereof. In some embodiments, one or more units can be implemented using software and / or firmware, such as machine executable instructions stored on a storage medium. In addition to or as an alternative to machine executable instructions, some or all of the units in the device 500 can be implemented at least in part by one or more hardware logic components. As an example and not limitation, exemplary types of hardware logic components that can be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), and the like.

[0118] Figure 6 1 shows a block diagram of an electronic device 600 in which one or more embodiments of the present disclosure may be implemented. It should be understood that Figure 6 The electronic device 600 shown is merely exemplary and should not constitute any limitation on the functionality and scope of the embodiments described herein. Figure 6 The electronic device 600 shown can be used to implement Figure 1 An electronic device 110 is shown.

[0119] like Figure 6As shown, the electronic device 600 is in the form of a general electronic device. The components of the electronic device 600 may include, but are not limited to, one or more processors or processing units 610, a memory 620, a storage device 630, one or more communication units 640, one or more input devices 650, and one or more output devices 660. The processing unit 610 may be an actual or virtual processor and is capable of performing various processes according to a program stored in the memory 620. In a multi-processor system, multiple processing units execute computer executable instructions in parallel to improve the parallel processing capability of the electronic device 600.

[0120] The electronic device 600 typically includes a plurality of computer storage media. Such media may be any accessible media that is accessible to the electronic device 600, including but not limited to volatile and non-volatile media, removable and non-removable media. The memory 620 may be a volatile memory (e.g., a register, a cache, a random access memory (RAM)), a non-volatile memory (e.g., a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. The storage device 630 may be a removable or non-removable medium, and may include a machine-readable medium, such as a flash drive, a disk, or any other medium, which may be capable of being used to store information and / or data (e.g., training data for training) and may be accessed within the electronic device 600.

[0121] The electronic device 600 may further include additional removable / non-removable, volatile / non-volatile storage media. Figure 6 As shown in , a disk drive for reading or writing from a removable, non-volatile disk (e.g., a "floppy disk") and an optical drive for reading or writing from a removable, non-volatile optical disk may be provided. In these cases, each drive may be connected to the bus (not shown) by one or more data media interfaces. The memory 620 may include a computer program product 625 having one or more program modules that are configured to perform various methods or actions of various embodiments of the present disclosure.

[0122] The communication unit 640 implements communication with other electronic devices through a communication medium. Additionally, the functions of the components of the electronic device 600 can be implemented with a single computing cluster or multiple computing machines that can communicate through a communication connection. Therefore, the electronic device 600 can operate in a networked environment using a logical connection with one or more other servers, a network personal computer (PC), or another network node.

[0123] The input device 650 may be one or more input devices, such as a mouse, a keyboard, a tracking ball, etc. The output device 660 may be one or more output devices, such as a display, a speaker, a printer, etc. The electronic device 600 may also communicate with one or more external devices (not shown) through the communication unit 640 as needed, such as a storage device, a display device, etc., communicate with one or more devices that allow a user to interact with the electronic device 600, or communicate with any device that allows the electronic device 600 to communicate with one or more other electronic devices (e.g., a network card, a modem, etc.). Such communication may be performed via an input / output (I / O) interface (not shown).

[0124] According to an exemplary implementation of the present disclosure, a computer-readable storage medium is provided, on which computer-executable instructions are stored, wherein the computer-executable instructions are executed by a processor to implement the method described above. According to an exemplary implementation of the present disclosure, a computer program product is also provided, which is tangibly stored on a non-transitory computer-readable medium and includes computer-executable instructions, and the computer-executable instructions are executed by a processor to implement the method described above.

[0125] Various aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of the methods, devices, equipment, and computer program products implemented according to the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer-readable program instructions.

[0126] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0127] Computer-readable program instructions can be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable data processing apparatus, or other device implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0128] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple implementations of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of a module, program segment or instruction includes one or more executable instructions for realizing the logical function of the specification. In some implementations as replacements, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be realized by a special hardware-based system that performs the function or action of the specification, or can be realized by a combination of special hardware and computer instructions.

[0129] The above descriptions of various implementations of the present disclosure are exemplary, non-exhaustive, and not limited to the disclosed implementations. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described implementations. The selection of terms used herein is intended to best explain the principles of the implementations, practical applications, or improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the various implementations disclosed herein.

Claims

1. A method for controlling network transmission congestion, comprising: determining a data transmission preference of an application, the data transmission preference of the application being associated with a preference of a required data transmission quality of the application; adjusting at least one parameter of a congestion control algorithm based on the data transmission preference of the application to adjust data transmission quality that the congestion control algorithm can provide; as well as The data of the application is transmitted through the network using the congestion control algorithm with the at least one parameter adjusted.

2. The method of claim 1 , wherein the data transmission quality is indicated by at least one quality indicator, and determining the data transmission preference of the application comprises: The data transmission preference of the application is determined based on a first preference of the application regarding a first quality indicator and a second preference regarding a second quality indicator. The method of claim 2 , wherein at least one of the first preference and the second preference is related to a status of the network. The method according to claim 2 , wherein the data transmission preference is determined according to a user experience function of the application.

5. The method of claim 1 , wherein adjusting the at least one parameter of the congestion control algorithm based on the data transmission preference of the application comprises: determining a current data transmission quality of the data of the application transmitted using the congestion control algorithm; as well as The at least one parameter of the congestion control algorithm is adjusted to reduce a difference between the current data transmission quality and the data transmission preference of the application.

6. The method of claim 5, wherein the data transmission quality is indicated by at least one quality indicator, and determining the current data transmission quality comprises: Determine a first statistical value of a first quality indicator and a first statistical value of a second quality indicator in a first transmission period of the data of the application; Determine a second statistical value of the first quality indicator and a second statistical value of the second quality indicator in a second transmission period of the data of the application; as well as The current data transmission quality is determined based on the first statistical value of the first quality indicator, the first statistical value of the second quality indicator, the second statistical value of the first quality indicator, and the second statistical value of the second quality indicator.

7. The method of claim 5, wherein adjusting the at least one parameter of the congestion control algorithm to reduce the difference comprises: The corresponding value of the at least one parameter is determined by a search algorithm so as to minimize the difference.

8. The method according to claim 2 or 5, wherein the at least one quality indicator comprises at least one of the following: throughput, delay.

9. The method according to claim 1, wherein the at least one parameter of the congestion control algorithm is associated with at least one of the following: a growth rate of a data transmission rate, and a maximum amount of in-transit data.

10. A device for controlling network transmission congestion, comprising: a determination module configured to determine a data transmission preference of an application, wherein the data transmission preference of the application is associated with a preference of a required data transmission quality of the application; an adjustment module, configured to adjust at least one parameter of a congestion control algorithm based on the data transmission preference of the application, so as to adjust the data transmission quality that can be provided by the congestion control algorithm; as well as The transmission module is configured to adopt the congestion control algorithm with the at least one parameter adjusted to transmit the data of the application through the network.

11. An electronic device, comprising: at least one processing unit; as well as At least one memory, the at least one memory being coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions causing the electronic device to perform the method according to any one of claims 1 to 9 when executed by the at least one processing unit.

12. A computer-readable storage medium having a computer program stored thereon, wherein the computer program implements the method according to any one of claims 1 to 9 when executed by a processor.