A system and method for implementing bandwidth allocation based on weight according to AIMD
By adjusting the congestion window through the AIMD-based fluid model and the upper-layer controller module, the problem of inflexible modification of link switch equipment in the existing technology is solved, and precise bandwidth allocation is achieved in different network buffer queue environments, which is suitable for multi-path transmission and multi-tenant link sharing.
Patent Information
- Application Number
- CN202310454179.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-04-25
- Publication Date
- 2025-10-17
- Estimated Expiration
- 2043-04-25
AI Technical Summary
Existing congestion control algorithms have difficulty in accurately dividing bandwidth according to specified weights on links with large network buffer capacity, and the link switch equipment is not flexible to modify.
An AIMD-based system is used to model the network link buffer queue through the fluid model module. Combined with the upper-layer controller module and the congestion control algorithm module, the congestion control window of each flow is adjusted according to the link buffer queue depth and flow weight parameters to achieve weighted bandwidth allocation.
Under different link buffer queue types and depths, the bandwidth usage ratio of each flow is precisely converged to user expectations. It is highly adaptable and easy to deploy, suitable for scenarios such as multipath transmission and multi-tenant link sharing.
Smart Images

Figure CN116527587B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application belongs to the field of computer network transmission layer optimization, and particularly relates to a system and method for realizing bandwidth allocation based on weight. BACKGROUND
[0002] With the continuous evolution of computer networks, congestion control algorithms, as an important part of controlling network connection transmission rate to avoid network flow mutual occupation of bandwidth leading to link congestion, have been continuously explored in academia and industry since the 1980s. So far, the Linux system kernel has more than 15 different congestion control algorithms built-in for selection. In the process of flow regulation, the purpose of these algorithms is often to make different flows share the same link bottleneck and divide the bandwidth of the link bottleneck equally to ensure fairness between flows. However, absolute fairness is not the ideal way of division in some scenarios. With the continuous evolution of networks, the demand for unequal bandwidth allocation to different flows according to weight has emerged, such as service classification of multi-tenant in shared networks, bandwidth allocation between different paths in multi-path transmission protocol, etc.
[0003] To meet this demand, academia and industry have proposed a variety of different solutions, which can be mainly divided into link solutions and end system solutions. The weight-based bandwidth division implemented in the network link is often realized through the queues on the switch. These solutions achieve different dequeue rates and packet loss mechanisms by giving different queues on the programmable switch different queuing scheduling strategies, so that the link exhibits different bandwidths to different flows, thereby affecting the bandwidth allocation between flows. However, the link solution still ultimately needs to rely on the connection on the end system to respond to the network feedback to provide fairness guarantee, and when the flow weight parameter changes, a large number of link switch device parameters may need to be modified, which lacks flexibility.
[0004] Most of the existing congestion control algorithms are based on the AIMD (Additive Increase, Multiplicative Decrease) mechanism, that is, when the link is smooth, AI (Additive Increase) is used to gradually and slowly adjust the sending rate to detect the current network bandwidth bottleneck, and when events such as packet loss occur to indicate link congestion, MD (Multiplicative Decrease) is used to quickly reduce the sending rate to eliminate the existing congestion and avoid the continuation of congestion. Most of the existing weight-based congestion control algorithms are also based on this mechanism to achieve weight-based bandwidth allocation, but the design of the congestion window increment and decrement does not take into account the influence of the cache queue on the link device on the algorithm, making it difficult to achieve the purpose of precise division of bandwidth according to the specified weight on the link with large network buffer capacity in current practice. SUMMARY
[0005] In response to the shortcomings of the existing technology, the present invention aims to provide a system and method for allocating bandwidth by weight based on AIMD, which can effectively provide accurate bandwidth allocation for multiple flows based on weights, avoid modifications to link switch equipment, and adapt to the current situation of network links with deep buffer queues.
[0006] To achieve the above objectives, the present invention adopts the following technical solutions: a system for implementing weighted bandwidth allocation based on AIMD, comprising a fluid model module, an upper-layer controller module, and a congestion control algorithm module connected in sequence, wherein the fluid model module is used to model the buffer queue in a network link currently running the congestion control algorithm (WCC); the upper-layer controller module is used to record the bandwidth ratios that different flows need to ultimately converge to, and under the guidance of the fluid model module, determines the weight parameters set for each flow in the congestion control algorithm (WCC) based on the link buffer queue depth of the current network and the bandwidth ratios that different flows need to converge to; the congestion control algorithm module is composed of multiple flows to which bandwidth is allocated based on the weight parameters, and the congestion control window of each flow is adjusted based on the weight parameters determined by the upper-layer controller module through feedback information provided by the system externally.
[0007] Furthermore, the present invention also provides a method for allocating bandwidth in a system based on AIMD to allocate bandwidth according to weights, which specifically includes the following steps:
[0008] Step 1: Establish a fluid model in the fluid model module according to each possible link queue type in the network;
[0009] Step 2: The upper-layer controller determines the congestion window ratio of all flows in the fluid model based on the current link queue type and the bandwidth occupancy ratio that the user expects all flows controlled by the controller to eventually converge to, and obtains the weight parameter ratio of all flows;
[0010] Step 3: Set the weight parameters of all flows according to the weight parameter ratio of all flows, assign them to the congestion control algorithm WCC of the corresponding flow, and start the transmission of the corresponding flow;
[0011] In step 4, based on the feedback from outside the system, the AI module or MD module of the congestion control algorithm WCC is run, and the weight parameters of all flows set in step 3 are referred to to make adjustments to the transmission congestion window.
[0012] Furthermore, in step 1, the fluid model is constructed as follows:
[0013]
[0014] in, is the rate of change of the congestion window of the i-th flow over unit time, n is the number of all flows in the congestion control algorithm, ai is the weight coefficient of the i-th flow, is the theoretical value of the congestion window size of the i-th flow at time t, R * is the unit time associated with the bottleneck link, d is the propagation delay, K is the packet loss threshold, C is the transmission rate of the bottleneck link, is the cumulative length of the link bottleneck queue at time t, q(R*t) is the cumulative length of the link bottleneck queue at time R*t, is the cumulative length of the link bottleneck queue at time t-1, is the rate of change of the link bottleneck queue per unit time, is the input threshold tolerated by the queue within the transmission delay d, ψ is the time to clear the queue,
[0015] Furthermore, in step 4, if the feedback given from outside the system is ACK information, the AI module of the congestion control algorithm WCC is run. Based on the weight parameters of all flows set in step 3, the size of the additive growth of the congestion window of each flow is calculated and the congestion window of each flow is updated.
[0016] Furthermore, the congestion window of each flow is updated as follows:
[0017]
[0018] Among them, CWND′ i The updated congestion window size for the i-th flow, CWND i is the actual value of the congestion window size of the i-th flow, a i is the weight parameter of the i-th flow.
[0019] Furthermore, in step 4, if the feedback given from outside the system is ACK timer timeout information, the MD module of the congestion control algorithm WCC is run to reduce the current congestion window by half.
[0020] Compared with the prior art, the application has the beneficial effects that: the application is based on AIMD to realize a system and method for bandwidth allocation according to weight, by establishing a fluid model for a link queue in advance, calculating different weight values of a congestion control algorithm needed to be given to a controlled data flow in an end system, and finally converging the bandwidth proportion occupied by each flow to the proportion expected by a user through feedback adjustment of the congestion control algorithm. The application is aimed at the problem that a previous AIMD-based weighted congestion method does not consider the deep queue buffer environment commonly existing in an actual network link in the design, and in this kind of environment, the bandwidth occupation proportion actually converged by different controlled flows is inconsistent with the bandwidth occupation proportion expected by a user. A new link queue modeling method and a regulation mode guided by the modeling method are proposed, which perform well in the current environment with a deep buffer queue, and are easy to deploy and implement. In addition, the application can achieve good performance in different network buffer queue depths, can be applied to a multi-path transmission algorithm and a multi-tenant link sharing and other weighted bandwidth allocation scenarios, is easy to popularize, and has high practical value. BRIEF DESCRIPTION OF DRAWINGS
[0021] Figure 1 is a module diagram of the system for bandwidth allocation according to weight based on AIMD of the application;
[0022] Figure 2 is a flow chart of the method for bandwidth allocation according to weight based on AIMD of the application;
[0023] Figure 3 is an example diagram of congestion window convergence in the application, wherein, Figure 3 (a) in is a congestion window convergence diagram when the link queue is shallow, Figure 3 (b) in is a congestion window convergence diagram when the link queue is deep. DETAILED DESCRIPTION
[0024] The technical solutions of the application will be further described in detail below with reference to the drawings.
[0025] As Figure 1A module diagram of a system for implementing bandwidth allocation based on weight according to the AIMD is provided in the application, and the system comprises a fluid model module, an upper controller module and a congestion control algorithm module connected in sequence, the fluid model module is used for modeling the buffer queue in the network link currently running the congestion control algorithm WCC, can simulate the flow of data packets in the network, thereby calculating the state information of the link at a specified time, the fluid model is modeled by four inputs of the propagation rate of the bottleneck link, the link propagation delay, the packet loss threshold of the bottleneck link queue and the weight parameter of each flow, can obtain the corresponding congestion window size and growth rate of each flow at a specific time, the link queue depth and the delay of data packet transmission in the link queue, and further calculate the proportion relationship between the weight parameter proportion of each flow in the input and the size proportion of the congestion window when the congestion window converges; the upper controller module is responsible for managing all flows that need to finally converge to a specified bandwidth proportion, is used for recording the bandwidth proportion that different flows need to finally converge to, and determines the weight parameter of each flow set in the congestion control algorithm WCC according to the link buffer queue depth of the current network and the bandwidth proportion that different flows need to converge to under the guidance of the fluid model module; the congestion control algorithm module is composed of multiple flows that allocate bandwidth according to the weight parameter, and the congestion control window of each flow is regulated by referring to the weight parameter determined by the upper controller module through the feedback information given by the system outside. The system decouples the fluid model designed for different queues and the corresponding weight parameter setting from the specific congestion control algorithm, realizes the separation of mechanism and strategy, can flexibly adapt to multiple different link buffer queue types, and ensures that the proportion of bandwidth occupied by each flow can converge to the size expected by the user under different link buffer queue types and depths.
[0026] As Figure 2 , the application also provides a bandwidth allocation method of a system for implementing bandwidth allocation based on weight according to the AIMD, which can accurately divide the available bandwidth to multiple flows according to the weight in the link with a deep buffer queue, and ensure that the bandwidth that can be enjoyed by the data streams is consistent with the weight proportion. Specifically, the method comprises the following steps:
[0027] Step one, establishing a fluid model in the fluid model module according to each possible link queue type in the network; the construction process of the fluid model in the application is as follows: according to the corresponding flow congestion window size W i (t) of each time t, the bottleneck link queue depth q(t), the transmission rate C of the bottleneck link, the propagation delay d of the link, the weight parameter a i of the flow, whether the current time t occurs packet loss p(t), and the packet loss threshold K, through these information, the change rate of the window corresponding to the flow with the weight parameter a i and the change rate of the bottleneck link queue depth are constructed.
[0028]
[0029] Among them, R(t) is the data packet delay at both ends of the congestion control algorithm WCC. R * The time when the timer times out. n is the number of all flows in the congestion control algorithm;
[0030] make is the theoretical value of the congestion window size of the i-th flow in unit time t, is the cumulative length of the link bottleneck queue in unit time t, is the input threshold tolerated by the queue within the transmission delay d, ψ is the time to clear the queue, Build a fluid model:
[0031]
[0032] in, is the rate of change of the congestion window of the i-th flow over unit time, q(R*t) is the cumulative length of the link bottleneck queue at time R*t, is the rate of change of the link bottleneck queue over unit time. Here, the independent variable of the fluid model is converted from time to unit time, which clarifies the relationship between the flow congestion window change rate and the link buffer queue. This makes it easy to calculate the proportion of the congestion window of each flow when the congestion windows of all flows converge under given input parameters.
[0033] In step 2, the upper-layer controller determines the congestion window ratio of all flows in the fluid model based on the current link queue type and the bandwidth occupancy ratio that the user expects all flows controlled by the controller to eventually converge to, and then obtains the weight parameter ratio of all flows. Specifically, when the window change rate returns to zero, the bandwidth occupied by different flows converges to a fixed value. Based on the ratio of this fixed value that different flows eventually converge to, the mapping relationship of the congestion windows of all flows in the fluid model can be obtained. Based on the mapping relationship, the weight parameter set for each flow under the expected occupied bandwidth ratio can be obtained.
[0034] Figure 3 are the different convergence modes of two flows in the deeper queue and the shallower queue, respectively, where Figure 3 (a) is the convergence mode when the queue is shallow. The bandwidth of the two flows converges to a fixed value. At this time, the change rate of the congestion window of the two flows is 0. Figure 3(b) is the convergence mode when the queue is deep, the bandwidth occupied by the two flows converges periodically, at this time the congestion window change rate of the two flows is not 0, but changes periodically over time, and the overall bandwidth proportion occupied by the two flows is in a convergent state. Suppose that the bandwidth proportion occupied by flow 1 and flow 2 is expected to be The ratio of a1 to a2 And the link buffer queue is shallow According to the above fluid model, the weight parameters of the two flows should be set to a1 to a2; otherwise, if the link buffer queue is deep, the fluid model will present a periodic fluctuation and converge to a stable proportion in the macroscopic, and the weight parameters of the two flows should be set to The ratio of a1 to a2
[0035] Step three, set the weight parameters of all flows according to the proportion of the weight parameters of all flows, and distribute them to the congestion control algorithm WCC of the corresponding flow to start the transmission of the corresponding flow;
[0036] Step four, run the AI module or MD module of the congestion control algorithm WCC according to the feedback given by the system outside, and refer to the weight parameters of all flows set in step three to make adjustment decisions on the congestion window of the transmission. For each flow controlled by the upper controller, the decision of the WCC is independent and only related to the ACK event, timeout event and weight parameter of the current flow; specifically:
[0037] If the feedback given by the system outside in step four is ACK information, run the AI module of the congestion control algorithm WCC, calculate the size of the additive growth of the congestion window of each flow according to the weight parameters of all flows set in step three, and update the congestion window of each flow. The update process of the congestion window of each flow is:
[0038]
[0039] Wherein, CWND' i is the actual value of the updated congestion window size of the i-th flow, CWND i is the congestion window size of the i-th flow, a i is the weight parameter of the i-th flow.
[0040] If the feedback given by the system outside in step four is ACK timer timeout information, run the MD module of the congestion control algorithm WCC to reduce the current congestion window by half.
[0041] The novelty of the bandwidth allocation method of the system for allocating bandwidth according to weights based on the AIMD lies in that the previous AIMD-based weighted congestion method does not consider the deep queue buffer environment commonly existing in actual network links in the design, and the problem that the bandwidth occupation proportion actually converged by different flows under control is inconsistent with the bandwidth occupation proportion expected by users in such an environment. A brand-new link queue modeling method and a regulation mode guided by the modeling method are proposed, which performs well in the current environment with a deep buffer queue, and is easy to deploy and implement. The application can achieve good performance in different network buffer queue depths, can be applied to the weighted bandwidth allocation scenes such as multi-path transmission algorithm and multi-tenant link sharing, is easy to popularize, and has high practical value.
[0042] The above is only the preferred embodiment of the present application, and the protection scope of the present application is not limited to the above-mentioned embodiment. Any technical solution falling within the concept of the present application shall fall within the protection scope of the present application. It should be noted that, for ordinary skilled persons in the art, some improvements and refinements without departing from the principles of the present application shall be considered as the protection scope of the present application.
Claims
1. A method for allocating bandwidth based on weights based on AIMD, characterized in that: The specific steps include: Step 1: Establish a fluid model in the fluid model module according to each possible link queue type in the network; Step 2: The upper-layer controller determines the congestion window ratio of all flows in the fluid model based on the current link queue type and the bandwidth occupancy ratio that the user expects all flows controlled by the controller to eventually converge to, and obtains the weight parameter ratio of all flows; Step 3: Set the weight parameters of all flows according to the weight parameter ratio of all flows, assign them to the congestion control algorithm WCC of the corresponding flow, and start the transmission of the corresponding flow; Step 4: Based on feedback from outside the system, the AI module or MD module of the congestion control algorithm (WCC) is run, and the weight parameters of all flows set in step 3 are used to adjust the transmission congestion window. The construction process of the fluid model is as follows: in, is the rate of change of the congestion window of the i-th flow over unit time, n is the number of all flows in the congestion control algorithm, a i is the weight coefficient of the i-th flow, is the theoretical value of the congestion window size of the i-th flow at time t, R * is the unit time associated with the bottleneck link, d is the propagation delay, K is the packet loss threshold, C is the transmission rate of the bottleneck link, is the cumulative length of the link bottleneck queue at time t, q(R * t) is the bottleneck queue of the link in R * The cumulative length at time t, is the cumulative length of the link bottleneck queue at time t-1, is the rate of change of the link bottleneck queue per unit time, is the input threshold tolerated by the queue within the transmission delay d, ψ is the time to clear the queue, 2. The method for allocating bandwidth by weight based on AIMD according to claim 1, characterized in that: If the feedback from outside the system in step 4 is ACK information, the AI module of the congestion control algorithm WCC runs. Based on the weight parameters of all flows set in step 3, it calculates the additive growth of the congestion window of each flow and updates the congestion window of each flow.
3. The method for allocating bandwidth by weight based on AIMD according to claim 2, wherein: The update process of the congestion window of each flow is as follows: Among them, CWND′ i The updated congestion window size for the i-th flow, CWND i is the actual value of the congestion window size of the i-th flow, a i is the weight parameter of the i-th flow.
4. The method for allocating bandwidth by weight based on AIMD according to claim 1, wherein: In step 4, if the feedback from outside the system is ACK timer expiration information, the MD module of the congestion control algorithm WCC is run to reduce the current congestion window by half.
5. A bandwidth allocation system using the method for allocating bandwidth based on weights based on AIMD as claimed in claim 1, characterized in that: The system comprises a fluid model module, an upper-layer controller module, and a congestion control algorithm module, which are connected in sequence. The fluid model module is used to model the buffer queue in the network link currently running the congestion control algorithm (WCC). The upper-layer controller module is used to record the bandwidth ratios that different flows need to ultimately converge to, and under the guidance of the fluid model module, determines the weight parameters set for each flow in the congestion control algorithm (WCC) based on the link buffer queue depth of the current network and the bandwidth ratios that different flows need to converge to. The congestion control algorithm module consists of multiple flows that are allocated bandwidth according to the weight parameters, and regulates the congestion control window of each flow by referring to the weight parameters determined by the upper-layer controller module through feedback information provided by the system outside.
Citation Information
Patent Citations
Multi-path TCP congestion control method
CN108632157A
Method for Controlling Flow and Congestion of TCPUsing Network Model
KR1020050087316A