A bandwidth resource allocation method for civil aviation communication system

By using the token bucket algorithm and proportional fair algorithm in the civil aviation communication system, combining the application layer queue mechanism and perception layer state information, the bandwidth resources are dynamically allocated, which solves the problem of limited bandwidth resources in the civil aviation communication system, and realizes the congestion state The efficient flow control improves throughput and bandwidth utilization and reduces the risk of packet loss.

CN115087035BActive Publication Date: 2024-12-27BEIJING URBAN CONSTR INTELLIGENT CONTROL TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202210648380.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-06-09
Publication Date
2024-12-27
Estimated Expiration
2042-06-09

AI Technical Summary

Technical Problem

The limited bandwidth resources in civil aviation communication systems are likely to cause hunger and link congestion in low-priority service flows, packet loss and system throughput decline in system throughput.

Method used

Token bucket algorithm and proportional fair algorithm are adopted, combined with the application layer queue mechanism and perception layer state information, bandwidth resources are dynamically allocated, priority is given to meeting the needs of high-priority business flows, and the token secondment mechanism is used to smooth burst traffic to avoid link congestion. .

Benefits of technology

Effectively alleviate link congestion, improve system throughput and bandwidth utilization, reduce packet loss risks, and improve network service quality and system stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115087035B_ABST
    Figure CN115087035B_ABST
Patent Text Reader

Abstract

The invention belongs to the technical field of bandwidth resource allocation, and in particular relates to a bandwidth resource allocation method applied to a civil aviation communication system, the method comprising: constructing a communication system, the system comprising an application layer, a perception layer and a decision layer; the system application layer constructs a cache queue according to the number of priority service flows, and periodically uploads queue information and queue utilization of each service flow; the perception layer obtains status information of the current link, and uploads the obtained status information to the decision layer; the decision layer adopts a token bucket algorithm and a proportional fairness algorithm to allocate bandwidth resources of the system according to the status information of the current link; the invention can well smooth burst service flows through the cache mechanism of the application layer queue, effectively alleviate link congestion, and simultaneously improve the throughput and bandwidth utilization of the entire communication system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of bandwidth resource allocation, and in particular relates to a bandwidth resource allocation method applied to a civil aviation communication system. Background Art

[0002] Bandwidth resources in civil aviation communication systems are limited, and bandwidth is a shared resource. Usually, shared bandwidth is allocated among multiple service flows. At the same time, the bandwidth request of a service flow is time-sensitive, and the bandwidth resources requested by the service flow can only be used at the current moment. In order to ensure that each service flow can occupy the shared bandwidth resources, the remaining bandwidth in the link is usually secondary allocated to give priority to meeting the bandwidth requirements of high-priority service flows. However, this bandwidth allocation method is more suitable for resource allocation under conditions of sufficient bandwidth resources, and is not suitable for link bandwidth resource allocation under congestion. On the one hand, when bandwidth resources are insufficient, it is easy to cause starvation of low-priority service flows; on the other hand, the allocation method based on the remaining bandwidth is a theoretical bandwidth allocation method. This allocation based on the remaining bandwidth does not take into account the real-time situation of the current link, which is easy to further cause link congestion, resulting in a large number of data packets lost and a decrease in system throughput. Summary of the invention

[0003] In order to solve the problems existing in the above prior art, the present invention proposes a bandwidth resource allocation method applied to a civil aviation communication system, the method comprising: constructing a communication system, the system comprising an application layer, a perception layer and a decision layer; the system application layer constructs a cache queue according to the number of priority service flows, and periodically uploads queue information and queue utilization of each service flow; the perception layer obtains the status information of the current link, and uploads the obtained status information to the decision layer; the decision layer uses a token bucket algorithm and a proportional fairness algorithm to allocate the bandwidth resources of the system according to the status information of the current link.

[0004] Preferably, the process of constructing a cache queue at the application layer includes: creating a linked list for each service flow according to the number of priority service flows, and specifying the maximum length of the linked list; caching the data packets of the priority service flow in the linked list to obtain a cache queue.

[0005] Furthermore, the formula for caching the data packets of the priority traffic flow in the linked list with the average stacking rate and the average stacking rate is:

[0006]

[0007]

[0008] Among them, InAverageVelocity(t) represents the average push rate of the cache queue, InAverageVelocity(tT) represents the average push rate of data packets entering the linked list before period T, t represents the running time from system initialization to the current moment, T represents the statistical time of one cycle, InCurrentVelocity(t) represents the rate at which data packets enter the queue at the current moment, OutAverageVelocity(t) represents the average pop rate of data packets from the cache queue, OutAverageVelocity(tT) represents the average push rate of data packets leaving the linked list before period T, and OutCurrentVelocity(t) represents the rate at which data packets enter and exit the queue at the current moment.

[0009] Preferably, the current link status information includes the on / off status of each link, the average link traffic, and the average link packet loss rate.

[0010] Preferably, the process of the decision layer using the token bucket algorithm and the proportional fairness algorithm to allocate bandwidth resources of the system includes:

[0011] S1: The decision layer allocates a token number to each priority service flow data packet in the linked list, and controls the rate at which the linked list deletes nodes, i.e., the rate at which data packets are ejected, through the token number.

[0012] S2: Determine the state of the current link according to the state information of the current link. If the current link state is idle, set the number of tokens of the belonging link to 0, and each queue sends the queued data at full speed in a polling manner; otherwise, execute step S3;

[0013] S3: Determine whether the bandwidth of the high-priority service flow meets the service demand. If not, execute step S4; if yes, execute step S5;

[0014] S4: Allocate bandwidth for the optimal high-priority service; recalculate the priorities of the remaining services using a proportional fairness algorithm, and allocate the remaining bandwidth based on the recalculated priorities;

[0015] S5: Obtain the actual bandwidth requested by the service flow, compare the actual bandwidth requested with the logical bandwidth allocated to the service, obtain the number of tokens required to borrow the actual bandwidth requested by the service flow, and divide the number of tokens into a Borrow group and a Lend group;

[0016] S6: Setting threshold;

[0017] S7: Borrow and Lend tokens in the Borrow group and the Lend group are mutually borrowed according to the set threshold;

[0018] S8: Control the stack - out rate of each queue according to the scheduled number of tokens to achieve traffic control.

[0019] Further, determining the state of the current link according to the state information of the current link includes dividing the link state into 4 information states according to the on - off situation of the link, the average link traffic, and the average packet loss rate of the link, which are the previous link closed state, the current link idle state, the current link busy state, and the current link congestion state respectively; among them, the average utilization rate of the idle - state link is lower than 80%, and the average packet loss rate is lower than 10%; the average utilization rate of the busy - state link is higher than 80%, and the average packet loss rate is lower than 10%; the average packet loss rate of the congestion - state link is higher than 10%.

[0020] Preferably, the process of judging whether the bandwidth of the high - priority traffic flow meets the service requirements includes: obtaining the traffic flow data, dividing the obtained traffic flow data into high - priority traffic flows and low - priority traffic flows; calculating the total bandwidth of the high - priority traffic flows, and obtaining the number of bandwidths total_b that the high - priority needs to borrow according to the calculated total bandwidth; calculating the total lendable bandwidth total_l of the system; comparing the number of bandwidths total_b that need to be borrowed with the lendable bandwidth total_l. If total_b < total_l, the service requirements are met, otherwise they are not met.

[0021] Further, calculating the total bandwidth of the high - priority traffic flows includes summing up the actual requested bandwidths of the important or urgent high - priority traffic flows, and the bandwidth that each traffic flow needs to borrow is the actual requested bandwidth minus the logically allocated bandwidth; summing up the bandwidths that each traffic flow needs to borrow obtained above to get the total bandwidth of the high - priority traffic flows.

[0022] Preferably, re - calculating the priority of the service using the proportional fairness algorithm includes:

[0023]

[0024] Among them, R i (t) represents the transmission rate of traffic flow i at time t, represents the average value of the RB resource blocks allocated to traffic flow i before time t, represents the bandwidth allocated to the i - th traffic flow at time t.

[0025] Preferably, the set thresholds include a first threshold and a second threshold. The size of the first threshold is 1.1, and the size of the second threshold is 0.05.

[0026] Preferably, the process of borrowing and lending tokens between the Borrow group and the Lend group includes: initially allocating the number of tokens granted_tokens, and calculating the average stack-in rate average_arriving of the data according to the queue; comparing the average stack-in rate with the number of tokens. If average_arriving > granted_tokens, then this flow needs to borrow tokens, and the borrowing quantity is average_arriving - granted_tokens; if average_arriving < granted_tokens, then this flow can lend out tokens, and the lendable quantity is a * (granted_tokens - average_arriving), where a is the lendable weight; calculating the total number of lendable tokens sum_l in the Lend group and the total number of tokens sum_b that the Borrow group needs to borrow; calculating the ratio ratio according to sum_l and sum_b, and its expression is ratio = sum_l / sum_b; if ratio > 1.1, then each token that needs to be borrowed can be amplified by (ratio - 0.05) times, otherwise end; the Borrow group is sorted in descending order of priority, and the Lend group is sorted in ascending order of priority.

[0027] Advantages of the present invention:

[0028] Through the cache mechanism of the application layer queue, the present invention can well smooth the bursty traffic flow, effectively relieve the congestion of the link, and at the same time improve the throughput and bandwidth utilization rate of the entire communication system; the bandwidth resource allocation method of the civil aviation communication system proposed by the present invention involves cross-layer operations and the interaction of information between the link layer and the application layer, breaking the independent and unaware manner between layers, and providing a reference for cross-layer collaborative flow control; the bandwidth resource allocation method of the civil aviation communication system proposed by the present invention mainly focuses on the bandwidth allocation under the congested link, not only considering the mutual borrowing of resources when the bandwidth resources are sufficient, but also combining the congestion state of the link and considering the remaining bandwidth of the link, and proposing different bandwidth allocation strategies, which not only reduce the risk of link congestion and packet loss, but also improve the quality of network service and the stability of the system. Description of the Drawings

[0029] Figure 1 It is the bandwidth distribution diagram of the system congestion state of the present invention that meets the high-priority traffic flow;

[0030] Figure 2 It is the bandwidth distribution diagram of the system congestion state of the present invention that does not meet the high-priority traffic flow

[0031] Figure 3The present invention is a flow chart for allocating bandwidth resources of the system. DETAILED DESCRIPTION

[0032] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0033] A bandwidth resource allocation method applied to civil aviation communication systems is designed to ensure the quality of service (QsS) requirements of multi-class priority service transmission, system throughput and system stability while maximizing the utilization rate of air-to-ground communication links. This method uses the token bucket scheduling method of differentiated service networks and the proportional fairness (PF) method to establish an application layer flow control method, so that airborne applications using this method can respond to changes in the congestion state of air-to-ground wireless communication links in a timely and efficient manner, improve the utilization rate of bandwidth resources and system throughput, and realize reliable transmission of civil aviation airborne data.

[0034] This method adopts the mode of central calculation and result distribution, and adopts the method of separating calculation and scheduling to efficiently complete the global optimization decision. First, according to the number of priority business flows, the application layer queue is dynamically created to cache the data packets of each business flow, and the queue information and queue utilization of each business flow are periodically reported; secondly, the packet loss rate and utilization rate of the current link are obtained through the perception layer, and the link status information is periodically reported; finally, the decision layer adopts the idea of ​​token bucket algorithm and proportional fairness (PF) algorithm, calculates the weight according to the link information, queue information and business flow information, and sends the weight token to the queue, and controls the queue out rate by weight. When the queue utilization exceeds the set threshold, and at the same time, the link utilization also exceeds the set threshold, the communication capability renegotiation message is initiated through the standard interface to request to change the business flow bandwidth, avoid link and queue congestion, thereby improving the utilization of bandwidth resources and the throughput of the system, and achieving the effect of improving QoS.

[0035] A specific implementation method of a bandwidth resource allocation method applied to a civil aviation communication system, the method comprising: constructing a communication system, the system comprising an application layer, a perception layer and a decision layer; the system application layer constructs a cache queue according to the number of priority service flows, and periodically uploads queue information and queue utilization of each service flow; the perception layer obtains status information of the current link, and uploads the obtained status information to the decision layer; the decision layer uses a token bucket algorithm and a proportional fairness algorithm to allocate bandwidth resources of the system according to the status information of the current link.

[0036] The application layer constructs a cache queue, including: using the token bucket principle to create a cache queue, and scheduling the number of tokens used in each queue within a unit period T (1s) according to the token number, so as to determine the outflow rate of each queue as tokens*CELL_LEN KB / s. The number of tokens is calculated by the decision layer based on the link information and queue information reported periodically and the business flow information to obtain the weight token. The queue is constructed as a cache to smooth out burst traffic. The important thing is to control the outflow rate of the business flow through tokens. (If you think there is a problem, you can modify it. It is mainly used for caching)

[0037] The queue's MAJOR threshold is 75% of the total queue length, which is 6K, and the CRITICAL threshold is 90% of the total queue length, which is 7.2K. (The queue's upper limit is set to 8K)

[0038] The calculation formulas for the average queue push rate and average queue pop rate are as follows:

[0039]

[0040]

[0041] Among them, InAverageVelocity(t) represents the average push rate of the cache queue, InAverageVelocity(tT) represents the average push rate of data packets entering the linked list before period T, t represents the running time from system initialization to the current moment, T represents the statistical time of one cycle, InCurrentVelocity(t) represents the rate at which data packets enter the queue at the current moment, OutAverageVelocity(t) represents the average pop rate of data packets from the cache queue, OutAverageVelocity(tT) represents the average push rate of data packets leaving the linked list before period T, and OutCurrentVelocity(t) represents the rate at which data packets enter and exit the queue at the current moment.

[0042] The perception layer obtains the current link status including: link status data statistics, mainly including the on / off status of each link, the average link traffic, and the average link packet loss rate. According to the above three types of link information, the link status is divided into four types of status information, including CLOSED, IDLE, BUSY, and HIGH_LOSS, where CLOSED means that the current link is closed, IDLE means that the current link is idle, BUSY means that the bandwidth occupancy rate of the current link is high and it is in a busy state, and HIGH_LOSS means that the current link has a high packet loss rate and is in a congested state. According to the average utilization and average packet loss rate of each link, the link status is defined as three states:

[0043] (1) IDLE indicates that the link is currently in an idle state, and the current average link utilization rate is less than 80%, and the average packet loss rate is less than 10%.

[0044] (2) BUSY indicates that the current link is in a busy state, and the current average link utilization rate is higher than 80%, and the average packet loss rate is less than 10%.

[0045] (3) HIGH_LOSS indicates that the current link is in a state of high packet loss rate. When the average packet loss rate of the link is higher than 10%, it is in a state of high packet loss rate.

[0046] As Figure 3 shown, the process of the decision-making layer allocating the bandwidth resources of the system by using the token bucket algorithm and the proportional fairness algorithm includes:

[0047] S1: The decision-making layer allocates the number of tokens token to the priority service flow packets in each linked list, and controls the rate of deleting nodes in the linked list through the number of tokens token, that is, the out-stack rate of the packets.

[0048] S2: Determine the current state of the current link according to the status information of the current link. If the current link state is an idle state, set the number of tokens of the affiliated link to 0, and each queue sends the enqueued data at full speed in a polling manner; otherwise, execute step S3.

[0049] S3: Judge whether the bandwidth of the high-priority service flow meets the service requirements. If not, execute step S4. If it meets, execute step S5.

[0050] The process of judging whether the bandwidth of the high-priority service flow meets the service requirements includes: obtaining the service flow data, dividing the obtained service flow data into high-priority service flows and low-priority service flows; calculating the total bandwidth of the high-priority service flow, and obtaining the number of bandwidths total_b that the high-priority needs to borrow according to the calculated total bandwidth; calculating the total lendable bandwidth total_l of the system; comparing the number of bandwidths total_b that need to be borrowed with the lendable bandwidth total_l. If total_b < total_l, the service requirements are met, otherwise the service requirements are not met.

[0051] S4: Allocate bandwidth for the optimal high-priority service; use the proportional fairness algorithm to recalculate the priorities of the remaining services, and allocate the remaining bandwidth according to the recalculated priorities.

[0052] S5: Obtain the actual requested bandwidth of the service flow, compare the actual requested bandwidth with the logical bandwidth allocated to the service, obtain the number of tokens that the actual requested bandwidth of the service flow needs to borrow, and divide the number of tokens into Borrow group and Lend group.

[0053] S6: Set a threshold value;

[0054] S7: Borrow and lend tokens between the Borrow group and the Lend group according to the set threshold value;

[0055] The process of borrowing and lending tokens between the Borrow group and the Lend group includes: initially allocating the token quantity granted_tokens, and calculating the average stack - in rate average_arriving of the data according to the queue; comparing the average stack - in rate with the number of tokens. If average_arriving > granted_tokens, then this flow needs to borrow tokens, and the borrowing quantity is average_arriving - granted_tokens; if average_arriving < granted_tokens, then this flow can lend tokens, and the lendable quantity is a*(granted_tokens - average_arriving), where a is the lendable weight; calculating the total number of tokens sum_l that the lend group can lend and the total number of tokens sum_b that the borrow group needs to borrow; calculating the ratio ratio according to sum_l and sum_b, and its expression is ratio = sum_l / sum_b; if ratio > 1.1, then each token that needs to be borrowed can be magnified by (ratio - 0.05) times, otherwise end; the Borrow group is sorted in descending order of priority, and the Lend group is sorted in ascending order of priority.

[0056] S8: Control the stack - out rate of each queue according to the scheduled number of tokens to achieve flow control.

[0057] The process of the decision - making layer calculating weights includes: the application layer creates a cache queue, and the queue needs to complete the variable - speed control operation, that is, when there is no congestion on the link, the queue can send tokens at full speed with token = 0; when congestion occurs on the link, the queue needs to limit the speed according to the negotiated number of tokens token; there are priority and proportional - division relationships between queues. According to the comprehensive research on existing flow - control algorithms, a token - bucket - like model algorithm is used for speed limiting, and a polling mechanism is used to uniformly schedule multiple queues.

[0058] Define the parameters, including that the number of tokens that each queue can obtain per second is t ecqi, where e represents the routing exit number of the Flow corresponding to the queue, which corresponds to the number of each exit in MAGIC; c represents the number of the AQMClient to which the current queue belongs. This number is assigned by initiating a registration process to AQM when the AQM Client is started; q represents the QoS value of the Flow corresponding to the current queue, ranging from 7 to 0, and the larger the value, the higher the priority; i represents the id number of the Flow corresponding to the current queue, which corresponds to the client profile in MAGIC.

[0059] If each token allows one unit of data to be sent, and the size of each unit of data is fixed at 1KB (adjustable), then by allocating tokens per second, the sending rate of the control queue is 8×t ecqi Kbps.

[0060] If the length of each queue is set to 8K, then a maximum of 8K tokens can be granted to the queue per second, and the fastest sending rate of a single flow is 8K×8Kbps=64Mbps.

[0061] The MAJOR threshold of the queue is 75% of the total queue length, that is, 6K, and the CRITICAL threshold is 90% of the total queue length, that is, 7.2K.

[0062] Each queue needs to store data except t ecqi , e, c, q, i, it is also necessary to store av_t ecqi and av_ar ecqi ; Among them, av_t ecqi Indicates the average token usage of the queue, that is, the average token usage per second, av_ar ecqi Indicates the average arrival rate of data elements in the queue.

[0063] When the queue is not congested: When all exits in MAGIC are not congested, the token rule does not need to take effect and the token is 0. Each queue sends the queued data at full speed in a round-robin manner.

[0064] When the queue is congested and the bandwidth of important high-priority service flows can be guaranteed, Figure 1 As shown in the figure, service flows Flow_3, Flow_2, and Flow_1 are assigned a logical bandwidth in descending order of priority. As the actual bandwidth of the service flow changes, when the link is congested, the excess bandwidth of service flow Flow_3 is allocated to the service flow with insufficient bandwidth in order of priority.

[0065] (1) Congestion is detected, but the queue buffer does not grow significantly

[0066] When a certain exit e is congested, the token rule takes effect. If the total bandwidth of the current exit is K e , the redundancy coefficient of the current link is n and the Granted Bandwith of each Flow is GB i , then the global t needs to satisfy:

[0067]

[0068]

[0069] At this time, set the number of token buckets for each queue to GB. i / 8, you can limit the flow rate of the queue according to the Granted Bandwith.

[0070] (2) Congestion is detected and the queue buffer increases significantly, but the system does not enter the MAJOR state.

[0071] After the token bucket speed limit is applied to the queue, each queue will gradually accumulate cache data, and the queue cache will be lengthened. For example, if a queue av_ar ecqi >av_t ecqi First, you need to try to borrow tokens of other flows routed to the same exit from the current queue to mitigate the risk of queue overflow.

[0072]

[0073] But still need to meet:

[0074]

[0075] The main idea is to consider borrowing lower priority, and av_t ecqi <<GB i / 8 queue tokens, but ensure that the low-priority queue is not completely stopped from sending, and the sending rate of the low-priority queue can be restored when congestion is relieved.

[0076] (3) Congestion is detected, the queue buffer increases significantly, and the state enters the MAJOR state

[0077] When a queue enters the MAJOR state, the algorithm initiates a communication capability re-negotiation, and carries the Request-Bandwidth value RB i The value can be av_ar ecqi -av_t ecqi .

[0078] (4) Congestion is detected and the queue enters the CRITICAL state

[0079] Keep the current policy unchanged and wait for the speed reduction operation after upper layer negotiation to release cache resources.

[0080] When the queue is congested and the bandwidth of important high-priority service flows cannot be guaranteed, Figure 2 As shown in the figure, as the actual bandwidth of the service flow changes, when the link is congested and the bandwidth of the high-priority service flow cannot be met, the bandwidth demand of the high-priority service flow is met first, and the remaining bandwidth of the service flow is allocated to the service flow with insufficient bandwidth according to the priority order using the proportional fairness method PF.

[0081] When the link is in a congested state and the bandwidth of high-priority business flows cannot be guaranteed, the core idea is to prioritize important high-priority business needs, allocate bandwidth to important high-priority services first, and use the proportional fairness algorithm (PF) to dynamically change the priority order of low-priority services, allocate remaining bandwidth, smooth burst traffic, and ensure system stability.

[0082] The priority calculation formula of the PF algorithm is:

[0083]

[0084] Where n represents the total number of service flows, R i (t) represents the transmission rate of service flow i at time t, T i (t) represents the throughput of the i-th user in the t-th time slot.

[0085] The service flow is based on RB resource blocks. Assume that the state of the mth RB resource block allocated to service flow i at scheduling time t is So The value of is:

[0086]

[0087] For service flow i, The larger it is, the more bandwidth resources are allocated to it at the scheduling time t. Therefore, at the next moment, attention should be paid to giving higher priority to aircraft users with smaller ∑K in the previous scheduling cycle to ensure reliable transmission of their services.

[0088] The proportional fairness (PF) algorithm can achieve a compromise between fairness and throughput, thereby meeting the scheduling needs of multiple aircraft in aviation scenarios to a certain extent, and ensuring the aviation business communication needs of priority business flows when bandwidth resources are scarce. Therefore, we consider the resource scheduling in each scheduling cycle to ensure that the business flows that were not scheduled in the previous scheduling cycle have a higher priority in this scheduling cycle to ensure the reliable transmission of aviation services. The proposed priority calculation method is expressed as follows

[0089]

[0090] Among them, R i (t) represents the transmission rate of service flow i at time t; It represents the average value of the RB resource blocks allocated to service flow i before time t. This value represents the transmission status of service flow i before scheduling time t. The larger the value is, the more bandwidth resources are allocated to service flow i before scheduling time t. The smaller it is, the less bandwidth resources are allocated to service flow i before scheduling time t. At this time, at the current scheduling time t, the priority of service flow i should be increased to ensure fairness among aircraft users and reliable transmission of aviation services.

[0091] The calculation method is as follows:

[0092]

[0093] Where T(1s) represents the running time of a cycle, and t represents the current running time. Indicates the current moment. To a large extent, it depends on the historical statistical information of the long-term changes in the average RB resources allocated to service flow i.

[0094] There are three token borrowing rules in this application, including case 1: when the link is in IDLE state, the queue does not need to be speed limited, and the queue's weight parameter token is assigned a value of 0, indicating that the queue is not speed limited. At this time, the queue will allocate bandwidth according to the logic of the business flow to control the rate at which the business flow in the queue goes out (link list).

[0095] Case 2: The link is in BUSY state, and the remaining allocatable bandwidth can ensure the bandwidth requirements of important high-priority service flows. The specific steps include:

[0096] (1) The initial number of allocated tokens is granted_tokens;

[0097] (2) Analyze average_arriving (i.e., the average incoming stack rate InAverageVelocity calculated at the queue) to obtain the average arrival rate. If average_arriving > granted_tokens, then this flow needs to borrow tokens, and the borrowing quantity is average_arriving - granted_tokens; if average_arriving < granted_tokens, then this flow can lend out tokens, and the lendable quantity is: 0.8 * (granted_tokens - average_arriving). Divide all flows into the lend group and the borrow group. (0.8 means lending out 80% of the excess tokens of its own, and a certain number of tokens should be left to relieve the burst traffic of its own business flow and avoid congestion);

[0098] (3) Calculate the total number of tokens sum_l that the lend group can lend out (i.e., the sum of the tokens that the flows can lend out) and the total number of tokens sum_b that the borrow group needs to borrow (the sum of the tokens that the flows need to borrow). If ratio = sum_l / sum_b > 1.1, then the tokens that each flow needs to borrow can be amplified by (ratio - 0.05) times (to unclog the congested queue as soon as possible) (1.1 means sum_l * 90% = sum_b → 1 / 0.9 = 1.11.. lending out 90% of the tokens. 0.05: 1.1 - 0.05 = 1.05 → sum_l * 90% = sum_b → 1 / 0.95 = 1.05263). (The thresholds 1.1 and 0.05 can be allocated and set according to specific requirements).

[0099] (4) The borrow group is sorted in descending order of priority (high priority first, low priority last, giving priority to meeting the requirements of high-priority business flows that need to borrow tokens), and the lend group is sorted in ascending order of priority (low priority first, high priority last, that is, first borrowing the tokens of low-priority in the lendable group). Start borrowing tokens from the lend[0] group by the Borrow[0] group (if lend[0] is borrowed out, then continue to borrow lend[1], and so on - borrowing from each other).

[0100] The purpose is to ensure the bandwidth requirements of high-priority business flows. At the same time, ensure that the low-priority queue is not completely stopped from sending, and the sending rate of the low-priority queue can be restored when congestion is relieved.

[0101] Case 3: The link is in the BUSY state, but the remaining allocable bandwidth cannot ensure the bandwidth requirements of important high-priority business flows. The algorithm steps include:

[0102] (1) Obtain the total number of logical tokens allocated to the total service flow, total_granted_tokens (each service flow is allocated a logical allocation bandwidth when it is initialized. The corresponding number of logical allocation tokens can be obtained by specifying the packet size and unit conversion, for example: granted_tokens = granted_bandwidth*1000) / (CELL_LEN*8). CELL_LEN is specified as 1000, the unit is B / s, and granted_bandwidth is the allocated logical bandwidth bit / s. After conversion, the corresponding number of logical allocation tokens can be obtained).

[0103] (2) Prioritize bandwidth requirements (token requirements) for important high-priority business flows.

[0104] (3) Recalculate the priority level of low-priority service flows.

[0105] (4) Allocate the remaining bandwidth to low-priority services in accordance with the new priority order, thus preventing low-priority services from being starved of bandwidth for a long time.

[0106] In case 1 and case 2, the token borrowing rule is: compare the actual requested bandwidth of the business flow with the logically allocated bandwidth, and divide the number of tokens that need to be borrowed or lent into the borrowing Borrow group and the lending Lend group, and obtain the total number of borrowed tokens total_borrow and the total number of lent tokens total_lent. Sort the Borrow group in descending order of priority, and the Lend group in ascending order of priority. After the sorting is completed, the Borrow group and the Lend group are borrowed from each other in order of priority to obtain the scheduling parameter token of each queue and control the stacking rate of the business flow. (If The number of tokens that need to be borrowed can be magnified by (ratio-0.05) times (where 1.1 and 0.05 are set thresholds, which can be set according to actual conditions), in order to clear the congested queue as soon as possible).

[0107] In case 3, the token loan rule is: important high-priority business flows preempt the bandwidth resources of low-priority business flows, and give priority to meeting the bandwidth needs of important high-priority business flows. For lower priority business flows, the proportional fairness algorithm PF idea is adopted (to prevent the occurrence of starvation), the priority level of low-priority business flows is recalculated, and the remaining bandwidth of the business flow is allocated to the low-priority business flow according to the new priority order. In the case of the same priority, the original priority is used for comparison.

[0108] The above embodiments further illustrate the purpose, technical solutions and advantages of the present invention in detail. It should be understood that the above embodiments are only preferred implementation modes of the present invention and are not intended to limit the present invention. Any modifications, equivalent substitutions, improvements, etc. made to the present invention within the spirit and principles of the present invention should be included in the protection scope of the present invention.

Claims

1. A bandwidth resource allocation method applied to a civil aviation communication system, characterized in that: The method comprises: constructing a communication system, which comprises an application layer, a perception layer and a decision layer; the system application layer constructs a cache queue according to the number of priority service flows, and periodically uploads the queue information and queue utilization rate of each service flow; the perception layer obtains the status information of the current link, and uploads the obtained status information to the decision layer, wherein the status information of the current link comprises the on-off status of each link, the average link flow and the average link packet loss rate; the decision layer adopts a token bucket algorithm and a proportional fairness algorithm to allocate the bandwidth resources of the system according to the status information of the current link; The decision-making layer uses the token bucket algorithm and proportional fairness algorithm to allocate the system's bandwidth resources. The process includes: S1: The decision layer allocates a token number to each priority service flow data packet in the linked list, and controls the rate at which the linked list deletes nodes, i.e., the rate at which data packets are ejected, through the token number. S2: Determine the state of the current link according to the state information of the current link. If the current link state is idle, set the number of tokens of the belonging link to 0, and each queue sends the queued data at full speed in a polling manner; otherwise, execute step S3; S3: Determine whether the bandwidth of the high-priority service flow meets the service demand. If not, execute step S4; if yes, execute step S5; S4: Allocate bandwidth for the best high-priority service; recalculate the priorities of the remaining services using the proportional fairness algorithm, and allocate the remaining bandwidth based on the recalculated priorities; the formula for recalculating the priorities of the services using the proportional fairness algorithm is: Among them, R i (t) represents the transmission rate of service flow i at time t, represents the average value of the RB resource blocks allocated to service flow i before time t, represents the bandwidth allocated to the i-th service flow at time t; S5: Obtain the actual bandwidth requested by the service flow, compare the actual bandwidth requested with the logical bandwidth allocated to the service, obtain the number of tokens required to borrow the actual bandwidth requested by the service flow, and divide the number of tokens into a Borrow group and a Lend group; S6: Setting threshold; S7: Borrow and Lend tokens in the Borrow group and the Lend group are mutually borrowed according to the set threshold; S8: Control the popping rate of each queue according to the number of tokens after scheduling to achieve flow control.

2. The bandwidth resource allocation method applied to a civil aviation communication system according to claim 1, characterized in that: The process of constructing a cache queue at the application layer includes: creating a linked list for each service flow according to the number of priority service flows and specifying the maximum length of the linked list; caching the data packets of the priority service flow in the linked list to obtain a cache queue.

3. The bandwidth resource allocation method applied to a civil aviation communication system according to claim 2, characterized in that: The formula for caching the data packets of the priority service flow in the linked list with the average stacking rate and the average stacking rate is: Among them, InAverageVelocity(t) represents the average stack-in rate of the cache queue, InAverageVelocity(t - T) represents the average stack-in rate of data packets entering the linked list before the period T, t represents the running time from the system initialization to the current moment, T represents the statistical time of a period, InCurrentVelocity(t) represents the rate of data packets entering the queue at the current moment, OutAverageVelocity(t) represents the average stack-out rate of data packets from the cache queue, OutAverageVelocity(t - T) represents the average stack-in rate of data packets leaving the linked list before the period T, and OutCurrentVelocity(t) represents the rate of data packets entering and leaving the queue at the current moment.

4. The bandwidth resource allocation method applied to a civil aviation communication system according to claim 1, characterized in that: Determining the state of the current link according to the state information of the current link includes classifying the link state into 4 information states according to the on / off situation of the link, the average link traffic, and the average packet loss rate of the link, which are the current link closed state, the current link idle state, the current link busy state, and the current link congestion state respectively; among them, the average utilization rate of the idle state link is lower than 80%, and the average packet loss rate is lower than 10%; the average utilization rate of the busy state link is higher than 80%, and the average packet loss rate is lower than 10%; the average packet loss rate of the congestion state link is higher than 10%.

5. The bandwidth resource allocation method applied to a civil aviation communication system according to claim 1, characterized in that: The process of judging whether the bandwidth of the high-priority service flow meets the service requirements includes: obtaining the service flow data, dividing the obtained service flow data into high-priority service flows and low-priority service flows; calculating the total bandwidth of the high-priority service flow, and obtaining the number of bandwidths total_b that the high-priority needs to borrow according to the calculated total bandwidth; calculating the total available bandwidth total_l of the system; comparing the number of bandwidths total_b that need to be borrowed with the available bandwidth total_l. If total_b < total_l, the service requirements are met, otherwise the service requirements are not met.

6. The bandwidth resource allocation method applied to a civil aviation communication system according to claim 1, characterized in that: The set thresholds include a first threshold and a second threshold. The size of the first threshold is 1.1, and the size of the second threshold is 0.

05.

7. The bandwidth resource allocation method applied to a civil aviation communication system according to claim 1, characterized in that: The process of mutual borrowing of the number of tokens in the Borrow group and the Lend group includes: initially allocating the number of granted tokens and calculating the average stack-in rate average_arriving of the data according to the queue; comparing the average stack-in rate with the number of tokens. If average_arriving > granted_tokens, the traffic flow needs to borrow tokens, and the borrowing quantity is average_arriving - granted_tokens; if average_arriving < granted_tokens, the traffic flow can lend tokens, and the lendable quantity is a * (granted_tokens - average_arriving), where a is the lendable weight; calculating the total number of lendable tokens sum_l in the Lend group and the total number of tokens sum_b that the Borrow group needs to borrow; calculating the ratio ratio according to sum_l and sum_b, and its expression is ratio = sum_l / sum_b; if ratio > 1.1, each token that needs to be borrowed can be amplified by (ratio - 0.05) times, otherwise end; the Borrow group is sorted in descending order of priority, and the Lend group is sorted in ascending order of priority.