Method and Module for Bandwidth Allocation, and Data Transmission Management System

The method dynamically updates bandwidth allocation parameters for each group to adapt to changing user needs, enhancing bandwidth utilization and user experience by preventing waste and enabling adaptive reallocation.

CN115665054BActive Publication Date: 2025-07-15JD DIGITS HAIYI INFORMATION TECHNOLOGY CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202211222346.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-10-08
Publication Date
2025-07-15
Estimated Expiration
2042-10-08

AI Technical Summary

Technical Problem

Traditional bandwidth management methods cannot effectively utilize the total bandwidth, resulting in waste of bandwidth and poor user experience, unable to achieve bandwidth oversold, and unable to adaptively allocate shared bandwidth.

Method used

By updating the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameters, dynamically adjusting the bandwidth allocation of each bandwidth group, ensuring effective utilization of the total bandwidth and user experience optimization, and achieving flexible bandwidth management.

Benefits of technology

Effective utilization of total bandwidth is achieved, bandwidth waste is avoided, user experience is improved, and shared bandwidth is adaptively allocated when bandwidth usage or number of users changes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115665054B_ABST
    Figure CN115665054B_ABST
Patent Text Reader

Abstract

The present invention discloses a method and module for bandwidth allocation, as well as a data transmission management system, which relate to the field of computer technology. A specific implementation manner of the method includes: obtaining allocation parameters and guaranteed bandwidth token bucket parameters of each bandwidth group to be allocated; respectively updating the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameters; determining the guaranteed bandwidth token increment of each bandwidth group according to the updated guaranteed bandwidth token bucket parameters of each bandwidth group, so as to update the allocation parameters according to the guaranteed bandwidth token increment of each bandwidth group. On the one hand, this implementation manner can effectively utilize the total bandwidth, avoid bandwidth waste and affecting user experience, and achieve oversubscription of bandwidth. On the other hand, when the bandwidth usage situation changes or the number of users changes, the shared bandwidth can be adaptively allocated. In addition, in the embodiments of the present invention, it is not necessary to pre-judge whether each bandwidth group is idle and the total shared bandwidth quantity, thereby greatly reducing the computational complexity of the method and facilitating implementation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer technologies, and in particular, to a method and module for bandwidth allocation, and a data transmission management system. Background Art

[0002] The common management method of traditional bandwidth management is to allocate bandwidth to each user according to a fixed value, usually determined according to the amount of bandwidth purchased by the user. For the sake of simple and reliable implementation and simple algorithm, this value is often a fixed value, or a maximum value and a minimum value are set.

[0003] In the traditional bandwidth management method, when the bandwidth used by some users is less than the set bandwidth and some users need more bandwidth, the idle bandwidth cannot be allocated to the users in need in time, the total bandwidth cannot be effectively utilized, resulting in bandwidth waste and affecting the user experience. At the same time, oversubscription of bandwidth cannot be achieved. Summary of the Invention

[0004] In view of this, embodiments of the present invention provide a method and module for bandwidth allocation, and a data transmission management system. By updating the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameters respectively, on the one hand, the total bandwidth can be effectively utilized, bandwidth waste and affecting the user experience can be avoided, and oversubscription of bandwidth can be achieved. On the other hand, since the allocation parameters and the guaranteed bandwidth token bucket parameters of each bandwidth group can be configured according to the actual situation, when the bandwidth usage changes or the number of users changes, the shared bandwidth can be adaptively allocated. In addition, in the embodiments of the present invention, it is not necessary to pre-judge whether each bandwidth group is idle and the total shared bandwidth amount, thus greatly reducing the computational complexity of the method and facilitating implementation.

[0005] To achieve the above object, according to one aspect of the embodiments of the present invention, a method for bandwidth allocation is provided, including:

[0006] Obtaining allocation parameters and the guaranteed bandwidth token bucket parameters of each bandwidth group to be allocated;

[0007] Updating the guaranteed bandwidth token bucket parameters of each of the bandwidth groups according to the allocation parameters respectively;

[0008] Determining the guaranteed bandwidth token increment of each of the bandwidth groups according to the updated guaranteed bandwidth token bucket parameters of each of the bandwidth groups, so as to update the allocation parameters according to the guaranteed bandwidth token increment of each of the bandwidth groups.

[0009] Optionally, the updating the allocation parameters according to the guaranteed bandwidth token increment of each of the bandwidth groups includes:

[0010] Obtain the total number of bandwidth tokens, the current allocation parameters, and the increment of guaranteed bandwidth tokens reported by all bandwidth groups;

[0011] Update the total number of bandwidth tokens according to the increment of guaranteed bandwidth tokens reported by each of the bandwidth groups;

[0012] When the total number of bandwidth tokens is greater than or equal to a preset value, increase the allocation parameters; when the total number of bandwidth tokens is less than the preset value, decrease the allocation parameters.

[0013] Optionally, increase or decrease the allocation parameters based on a preset step parameter.

[0014] Optionally, the guaranteed bandwidth token bucket parameters include: guaranteed bandwidth committed information rate, shared bandwidth allocation priority, and the number of guaranteed bandwidth tokens;

[0015] The updating of the guaranteed bandwidth token bucket parameters of each of the bandwidth groups according to the allocation parameters includes: determining the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group according to the allocation parameters and the shared bandwidth allocation priority of the bandwidth group; updating the number of guaranteed bandwidth tokens of the guaranteed bandwidth token bucket of the bandwidth group according to the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group and the guaranteed bandwidth committed information rate of the bandwidth group.

[0016] Optionally, the guaranteed bandwidth token bucket parameters further include: guaranteed bandwidth committed burst size;

[0017] The updating of the number of guaranteed bandwidth tokens of the guaranteed bandwidth token bucket of the bandwidth group includes: summing the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group, the guaranteed bandwidth committed information rate of the bandwidth group, and the number of guaranteed bandwidth tokens of the bandwidth group before update to obtain a first token number; when the first token number is greater than the guaranteed bandwidth committed burst size of the bandwidth group, using the guaranteed bandwidth committed burst size as the updated number of guaranteed bandwidth tokens of the bandwidth group, otherwise using the first token number as the updated number of guaranteed bandwidth tokens of the bandwidth group.

[0018] Optionally, the shared bandwidth allocation priority of the bandwidth group is positively correlated with the guaranteed bandwidth committed information rate of the bandwidth group.

[0019] Optionally, the method according to an embodiment of the present invention further includes:

[0020] Obtain the highest bandwidth token bucket parameters of each of the bandwidth groups; the highest bandwidth token bucket parameters include: highest bandwidth committed information rate and highest bandwidth token number;

[0021] Determine the maximum bandwidth token increment of the bandwidth group according to the maximum bandwidth committed information rate of the bandwidth group; update the maximum bandwidth token quantity of the bandwidth group according to the maximum bandwidth token increment of the bandwidth group.

[0022] Optionally, the maximum bandwidth token bucket parameter further includes: a maximum bandwidth committed burst size;

[0023] The updating the maximum bandwidth token quantity of the bandwidth group includes: summing the maximum bandwidth token increment of the bandwidth group and the maximum bandwidth token quantity before updating of the bandwidth group to obtain a second token quantity; when the second token quantity is greater than the maximum bandwidth committed burst size of the bandwidth group, using the maximum bandwidth committed burst size as the updated maximum bandwidth token quantity of the bandwidth group, otherwise using the second token quantity as the updated maximum bandwidth token quantity of the bandwidth group.

[0024] Optionally, the method according to an embodiment of the present invention further includes:

[0025] Obtain total bandwidth token bucket parameters; the total bandwidth token bucket parameters include: a total bandwidth committed information rate and a total bandwidth token quantity;

[0026] Determine a total bandwidth token increment according to the total bandwidth committed information rate; update the total bandwidth token quantity according to the total bandwidth token increment.

[0027] Optionally, the total bandwidth token bucket parameter further includes: a total bandwidth committed burst size;

[0028] The updating the total bandwidth token quantity includes: summing the total bandwidth token increment and the total bandwidth token quantity before updating to obtain a third token quantity; when the third token quantity is greater than the total bandwidth committed burst size, using the total bandwidth committed burst size as the updated total bandwidth token quantity, otherwise using the third token quantity as the updated total bandwidth token quantity.

[0029] According to a second aspect of an embodiment of the present invention, there is provided a bandwidth production module, including:

[0030] A guaranteed bandwidth parameter acquisition unit, which acquires allocation parameters and guaranteed bandwidth token bucket parameters of each bandwidth group to be allocated;

[0031] A guaranteed bandwidth parameter update unit, which updates the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameters;

[0032] The guaranteed bandwidth increment determination unit determines the guaranteed bandwidth token increment for each of the bandwidth groups according to the updated guaranteed bandwidth token bucket parameters of each of the bandwidth groups, so as to update the allocation parameters according to the guaranteed bandwidth token increment of each of the bandwidth groups.

[0033] Optionally, the updating the allocation parameters according to the guaranteed bandwidth token increment of each of the bandwidth groups includes:

[0034] Obtaining the total number of bandwidth tokens, the current allocation parameters, and the guaranteed bandwidth token increments reported by all bandwidth groups;

[0035] Updating the total number of bandwidth tokens according to the guaranteed bandwidth token increments reported by each of the bandwidth groups;

[0036] When the total number of bandwidth tokens is greater than or equal to a preset value, increasing the allocation parameters; when the total number of bandwidth tokens is less than the preset value, decreasing the allocation parameters.

[0037] Optionally, increasing or decreasing the allocation parameters based on a preset step parameter.

[0038] Optionally, the guaranteed bandwidth token bucket parameters include: guaranteed bandwidth committed information rate, shared bandwidth allocation priority, and guaranteed bandwidth token quantity;

[0039] The updating the guaranteed bandwidth token bucket parameters of each of the bandwidth groups according to the allocation parameters includes: determining the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group according to the allocation parameters and the shared bandwidth allocation priority of the bandwidth group; updating the guaranteed bandwidth token quantity of the guaranteed bandwidth token bucket of the bandwidth group according to the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group and the guaranteed bandwidth committed information rate of the bandwidth group.

[0040] Optionally, the guaranteed bandwidth token bucket parameters further include: guaranteed bandwidth committed burst size;

[0041] The updating the guaranteed bandwidth token quantity of the guaranteed bandwidth token bucket of the bandwidth group includes: summing the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group, the guaranteed bandwidth committed information rate of the bandwidth group, and the guaranteed bandwidth token quantity of the bandwidth group before updating to obtain a first token quantity; when the first token quantity is greater than the guaranteed bandwidth committed burst size of the bandwidth group, using the guaranteed bandwidth committed burst size as the updated guaranteed bandwidth token quantity of the bandwidth group, otherwise using the first token quantity as the updated guaranteed bandwidth token quantity of the bandwidth group.

[0042] Optionally, the sharing bandwidth allocation priority of the bandwidth group is positively correlated with the guaranteed bandwidth committed information rate of the bandwidth group.

[0043] Optionally, the method according to an embodiment of the present invention further includes:

[0044] A maximum bandwidth parameter acquisition unit configured to acquire the maximum bandwidth token bucket parameters of each bandwidth group; the maximum bandwidth token bucket parameters include: a maximum bandwidth committed information rate and a maximum bandwidth token number;

[0045] A maximum bandwidth parameter update unit configured to determine a maximum bandwidth token increment of the bandwidth group according to the maximum bandwidth committed information rate of the bandwidth group; and update the maximum bandwidth token number of the bandwidth group according to the maximum bandwidth token increment of the bandwidth group.

[0046] Optionally, the maximum bandwidth token bucket parameters further include: a maximum bandwidth committed burst size;

[0047] The step of updating the maximum bandwidth token number of the bandwidth group includes: summing the maximum bandwidth token increment of the bandwidth group and the maximum bandwidth token number before update of the bandwidth group to obtain a second token number; when the second token number is greater than the maximum bandwidth committed burst size of the bandwidth group, using the maximum bandwidth committed burst size as the updated maximum bandwidth token number of the bandwidth group, otherwise using the second token number as the updated maximum bandwidth token number of the bandwidth group.

[0048] Optionally, the method according to an embodiment of the present invention further includes:

[0049] An overall bandwidth parameter acquisition unit configured to acquire overall bandwidth token bucket parameters; the overall bandwidth token bucket parameters include: an overall bandwidth committed information rate and an overall bandwidth token number;

[0050] An overall bandwidth parameter update unit configured to determine an overall bandwidth token increment according to the overall bandwidth committed information rate; and update the overall bandwidth token number according to the overall bandwidth token increment.

[0051] Optionally, the overall bandwidth token bucket parameters further include: an overall bandwidth committed burst size;

[0052] The step of updating the overall bandwidth token number includes: summing the overall bandwidth token increment and the overall bandwidth token number before update to obtain a third token number; when the third token number is greater than the overall bandwidth committed burst size, using the overall bandwidth committed burst size as the updated overall bandwidth token number, otherwise using the third token number as the updated overall bandwidth token number.

[0053] According to a third aspect of an embodiment of the present invention, there is provided an allocation parameter production module, including:

[0054] A shared bandwidth parameter acquisition unit is used to acquire the total number of bandwidth tokens, the current allocation parameters, and the increment of guaranteed bandwidth tokens reported by all bandwidth groups;

[0055] A shared bandwidth token updating unit, which updates the total bandwidth token quantity according to the guaranteed bandwidth token increment reported by each bandwidth group;

[0056] an allocation parameter updating unit, which increases the allocation parameter when the total number of bandwidth tokens is greater than or equal to a preset value; and decreases the allocation parameter when the total number of bandwidth tokens is less than the preset value;

[0057] The token increment of each bandwidth group is obtained by adopting the method provided in the first aspect of the embodiment of the present invention.

[0058] Optionally, the allocation parameter updating unit increases or decreases the allocation parameter based on a preset step parameter.

[0059] According to a fourth aspect of an embodiment of the present invention, there is provided a data transmission management system, comprising: a bandwidth request module, a bandwidth check module, a bandwidth group module, a bandwidth production module, an allocation parameter production module, and a data transmission module; wherein:

[0060] The bandwidth request module generates a bandwidth request in response to a user operation, and sends the bandwidth request to the bandwidth checking module; the bandwidth checking module obtains the guaranteed bandwidth token number and the maximum bandwidth token number of the corresponding bandwidth group from the bandwidth group module in response to the bandwidth request, and releases the bandwidth request if the guaranteed bandwidth token number and the maximum bandwidth token number of the corresponding bandwidth group meet a preset condition; the bandwidth request module applies for the bandwidth of the corresponding bandwidth group from the bandwidth group module in response to the bandwidth request being released, and the data transmission module processes the bandwidth request based on the applied bandwidth;

[0061] The bandwidth production module is used to obtain allocation parameters and guaranteed bandwidth token bucket parameters of each bandwidth group to be allocated, update the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameters, determine the guaranteed bandwidth token increment of each bandwidth group according to the updated guaranteed bandwidth token bucket parameters of each bandwidth group, and report the guaranteed bandwidth token increment of each bandwidth group to the allocation parameter production module; the allocation parameter production module updates the allocation parameters according to the guaranteed bandwidth token increment of each bandwidth group.

[0062] According to a fifth aspect of an embodiment of the present invention, there is provided an electronic device for bandwidth allocation, including:

[0063] one or more processors;

[0064] A storage device for storing one or more programs

[0065] When the one or more programs are executed by the one or more processors, the one or more processors implement the methods provided in the first or second aspect of the embodiments of the present invention.

[0066] According to a sixth aspect of the embodiments of the present invention, there is provided a computer-readable medium having a computer program stored thereon, and when the program is executed by a processor, the methods provided in the first or second aspect of the embodiments of the present invention are implemented.

[0067] One embodiment of the above invention has the following advantages or beneficial effects: By separately updating the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameters, on the one hand, the total bandwidth can be effectively utilized, avoiding bandwidth waste and affecting the user experience, and achieving oversubscription of bandwidth. On the other hand, since the allocation parameters and the guaranteed bandwidth token bucket parameters of each bandwidth group can be configured according to the actual situation, when the bandwidth usage changes or the number of users changes, the shared bandwidth can be adaptively allocated. In addition, in the embodiments of the present invention, it is not necessary to pre-judge whether each bandwidth group is idle and the total shared bandwidth quantity, thus greatly reducing the computational complexity of the method and facilitating implementation.

[0068] The further effects of the above non-conventional optional manners will be described below in conjunction with specific embodiments. BRIEF DESCRIPTION OF THE DRAWINGS

[0069] The drawings are used to better understand the present invention and do not constitute an improper limitation to the present invention. Among them:

[0070] Figure 1 is a schematic diagram of the main process of the bandwidth allocation method according to the embodiments of the present invention;

[0071] Figure 2 is a schematic diagram of the principle of guaranteed bandwidth token bucket token production in an optional embodiment of the present invention;

[0072] Figure 3 is a schematic diagram of the guaranteed bandwidth token bucket token production process in an optional embodiment of the present invention;

[0073] Figure 4 is a schematic diagram of the principle of allocation parameter production in an optional embodiment of the present invention;

[0074] Figure 5 is a schematic diagram of the allocation parameter production process in an optional embodiment of the present invention;

[0075] Figure 6 is a schematic diagram of the principle of token production in the guaranteed bandwidth token bucket, the maximum bandwidth token bucket and the total bandwidth token bucket in an optional embodiment of the present invention;

[0076] Figure 7 It is a schematic diagram of the token production process in the highest bandwidth token bucket and the total bandwidth token bucket in an alternative embodiment of the present invention;

[0077] Figure 8 It is a schematic diagram of the structure of a data transmission management system applying the embodiment of the present invention;

[0078] Figure 9 It is a schematic diagram of the process of a data transmission management system applying the embodiment of the present invention for processing bandwidth requests;

[0079] Figure 10 It is a schematic diagram of the main components of the bandwidth production module in the embodiment of the present invention;

[0080] Figure 11 It is a schematic diagram of the main components of the allocation parameter production module in the embodiment of the present invention;

[0081] Figure 12 It is an exemplary system architecture diagram to which the embodiment of the present invention can be applied;

[0082] Figure 13 It is a schematic diagram of the structure of a computer system of a terminal device or a server suitable for implementing the embodiment of the present invention. Detailed implementation manners

[0083] The following describes exemplary embodiments of the present invention with reference to the accompanying drawings. Various details of the embodiments of the present invention are included to facilitate understanding, and they should be considered merely exemplary. Therefore, those of ordinary skill in the art should recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of the present invention. Similarly, for the sake of clarity and conciseness, descriptions of well-known functions and structures are omitted below.

[0084] According to one aspect of the embodiments of the present invention, a method for bandwidth allocation is provided.

[0085] Figure 1 It is a schematic diagram of the main process of the method for bandwidth allocation in the embodiment of the present invention. As Figure 1 shown, the method for bandwidth allocation includes step S101, step S102, and step S103.

[0086] Step S101, obtain the allocation parameters and the guaranteed bandwidth token bucket parameters of each bandwidth group to be allocated.

[0087] In the embodiments of the present invention, the guaranteed bandwidth of each bandwidth group is maintained by the corresponding guaranteed bandwidth token bucket. The guaranteed bandwidth token bucket parameters include guaranteed bandwidth committed information rate, shared bandwidth allocation priority, guaranteed bandwidth token quantity, guaranteed bandwidth committed burst size, etc.

[0088] The Committed Information Rate (CIR) is the token production speed, which indicates how many tokens are produced per cycle. The data volume corresponding to each token can be determined according to the actual situation, which can be 1 Byte or 512 Byte.

[0089] The Committed Burst Size (CBS) is the depth of the token bucket, which indicates how many tokens can be stored in the token bucket group at most. The overflowed tokens are directly subtracted.

[0090] The Priority (PRI) of shared bandwidth allocation refers to the priority of the current token bucket to obtain shared bandwidth. The PRI parameter of each bandwidth group can be selectively set according to the actual situation. For example, it can be set according to the service type of the bandwidth group, or the bandwidth provider can set it according to the bandwidth sales strategy. The PRI of the bandwidth group can also be generated by the CIR ratio of the guaranteed bandwidth of the bandwidth group. Specifically, the guaranteed bandwidth CIRs of all bandwidth groups are compared, and then the PRI parameter of each bandwidth group is obtained according to the ratio. Optionally, the shared bandwidth allocation priority of the bandwidth group is positively correlated with the guaranteed bandwidth committed information rate of the bandwidth group. Exemplarily, the guaranteed bandwidth CIRs of each bandwidth group are 1G, 2G, and 4G respectively, and the corresponding PRIs can be set to 0, 1, and 2 respectively; or, it can also be set by the operator himself. When the guaranteed bandwidth CIR of the bandwidth group is 1-5G, the corresponding PRI is 1, and when the guaranteed bandwidth CIR of the bandwidth group is 5-8G, the corresponding PRI is 2.

[0091] The guaranteed bandwidth token bucket produces tokens at the committed information rate, and the produced tokens are stored in the guaranteed bandwidth token bucket. For each part of the tokens consumed in the bandwidth group, the corresponding number of tokens is subtracted from the guaranteed bandwidth token bucket. In order to improve bandwidth utilization, based on the production of tokens in the guaranteed bandwidth token buckets of each bandwidth group, additional bandwidth shared by other bandwidth groups can be obtained.

[0092] During a round of bandwidth allocation, the total number of tokens additionally allocated to all bandwidth groups is the allocation parameter. After each round of bandwidth allocation is completed, the corresponding number of tokens is subtracted from the total number of bandwidth tokens. Based on the total number of bandwidth tokens after the deduction, the value of the allocation parameter can be further adjusted so as to control the total number of bandwidth tokens within a preset range as much as possible, for example, controlled around 0, so that the sum of the actual used bandwidths of all users is as close as possible to the physical total bandwidth. When the total number of bandwidth tokens is 0, the actual usage of each bandwidth group is equal to the physical total bandwidth provided by the bandwidth provider, and the utilization rate of the physical total bandwidth provided by the bandwidth provider is the highest. In the actual application process, the total number of bandwidth tokens can also be controlled within other ranges, for example, within ±M (M represents a positive integer, and its value can be customized). In the embodiment of the present invention, during each round of bandwidth allocation, the tokens corresponding to the allocation parameter are allocated to each bandwidth group according to a proportion. The processes of determining which of the bandwidth groups are idle bandwidth groups and determining the total number of shared bandwidth tokens in the system require a large amount of computing resources. The allocation parameter in the embodiment of the present invention is not the total number of shared bandwidth tokens. The embodiment of the present invention does not need to pre-determine which bandwidth groups are idle bandwidth groups, nor does it need to determine the total number of shared bandwidth tokens that can be shared. By adjusting the allocation parameter to adjust the number of tokens allocated to each bandwidth group each time, the consumption of computing resources can be greatly reduced.

[0093] Step S102: Update the guaranteed bandwidth token bucket parameter of each of the bandwidth groups according to the allocation parameter.

[0094] The guaranteed bandwidth is the minimum bandwidth that a guaranteed bandwidth group can be allocated. The sum of the minimum bandwidths of all bandwidth groups is less than or equal to the physical total bandwidth. The difference between the physical total bandwidth and the actual used bandwidth of the user is the shared bandwidth. The guaranteed bandwidth token bucket includes a parameter of the guaranteed bandwidth token quantity, which reflects the current quantity of tokens in the guaranteed token bucket. Considering that tokens will be consumed during the user's usage process and new tokens will be generated during the process of token bucket production of tokens, the guaranteed bandwidth token quantity is dynamically changing. In step S102, first obtain the current guaranteed bandwidth token quantity, and then update the value of this parameter according to the quantity of newly generated tokens. Specifically, update the guaranteed bandwidth token quantity according to the quantity of tokens generated by the guaranteed bandwidth token bucket itself and the obtained shared bandwidth token quantity.

[0095] Updating the guaranteed bandwidth token bucket parameters of each of the bandwidth groups according to the allocation parameters may include: determining the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group according to the allocation parameters and the shared bandwidth allocation priority of the bandwidth group; updating the guaranteed bandwidth token quantity of the guaranteed bandwidth token bucket of the bandwidth group according to the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group and the guaranteed bandwidth committed information rate of the bandwidth group. The quantity of shared bandwidth tokens obtained by the bandwidth group is determined according to the guaranteed token PRI and the allocation parameters. For example, the product of the two is used as the quantity of shared bandwidth tokens obtained by the bandwidth group. To reduce calculations, the PRI may also be left-shifted in binary form, and then the obtained value is multiplied by the allocation parameters, and the obtained value is the quantity of shared bandwidth tokens obtained by the bandwidth group.

[0096] Updating the guaranteed bandwidth token quantity of the guaranteed bandwidth token bucket of the bandwidth group in step S102 may include: summing the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group, the guaranteed bandwidth committed information rate of the bandwidth group, and the guaranteed bandwidth token quantity of the bandwidth group before update to obtain a first token quantity; when the first token quantity is greater than the guaranteed bandwidth committed burst size of the bandwidth group, using the guaranteed bandwidth committed burst size as the updated guaranteed bandwidth token quantity of the bandwidth group, otherwise using the first token quantity as the updated guaranteed bandwidth token quantity of the bandwidth group.

[0097] Figure 3It is a schematic diagram of the guaranteed bandwidth token bucket token production process in an optional embodiment of the present invention. In this embodiment, the poller periodically initiates polling requests according to a certain clock, and initiates requests for each bandwidth group in turn, and the request includes a bandwidth group identification ID; reads the corresponding guaranteed bandwidth token bucket parameters according to the bandwidth group ID; reads the allocation parameters; calculates the number of new guaranteed bandwidth token bucket tokens: new_L_token=old_L_token+L_CIR+S_unit*PRI (* represents multiplication or left shift operation); determines whether new_L_token overflows, that is, determines whether new_L_token>L_CBS is established, and if it overflows, sets new_L_ token=L_CBS, if there is no overflow, new_L_token remains unchanged; then new_L_token is written into the guaranteed token bucket parameter, and the guaranteed bandwidth token increment is calculated: ΔL_token=new_L_token–old_L_token, and ΔL_token is reported to the allocation parameter production module; after that, it is determined whether the current is the last bandwidth group polled, that is, whether n=N (N represents the number of bandwidth groups) is established; if so, the polling end flag is output to the allocation parameter production module, and then the current polling is ended, otherwise the current polling process is directly ended.

[0098] Step S103, determining the guaranteed bandwidth token increment of each bandwidth group according to the updated guaranteed bandwidth token bucket parameters of each bandwidth group, and updating the allocation parameters according to the guaranteed bandwidth token increment of each bandwidth group, so as to achieve the sum of the actual bandwidth used by all users to be as close as possible to the physical total bandwidth.

[0099] In step S103, after each guaranteed bandwidth token increment of a bandwidth group is determined, the guaranteed bandwidth token increment may be sent to the allocation parameter production module; alternatively, after a polling cycle ends, that is, after the guaranteed bandwidth token increments of all bandwidth groups are determined, the guaranteed bandwidth token increments of all bandwidth groups may be sent to the allocation parameter production module at one time.

[0100] Figure 2 Schematic diagram of the principle of bandwidth token bucket token production in an optional embodiment of the present invention. Figure 2As shown, the poller periodically initiates requests according to a certain clock. Within a polling cycle, the poller takes turns to initiate requests for each bandwidth group. The bandwidth production module is a module for producing guaranteed bandwidth tokens. The guaranteed bandwidth token production module responds to the requests of the poller, reads the guaranteed token parameters and the allocation parameter S_unit of the corresponding bandwidth group, and calculates the new guaranteed bandwidth token quantity new_L_token = old_L_token + L_CIR + S_unit * PRI. If new_L_token > L_CBS, then set new_L_token = L_CBS; otherwise, new_L_token remains unchanged. S_unit * PRI is the quantity of shared bandwidth tokens obtained by the current bandwidth group in this polling. The value of S_unit is the same for each bandwidth group in the same round of polling. In this way, PRI determines the proportion of shared bandwidth obtained by the current bandwidth group. Calculate the increment of the produced L_token in this time: ΔL_token = new_L_token – old_L_token, and output ΔL_token and the completion flag of this polling (such as the last bandwidth group flag) to the allocation parameter generation module.

[0101] The guaranteed bandwidth CBS of each bandwidth group is fixed. For a bandwidth group with a small number of token usages, the quantity of its guaranteed bandwidth tokens old_L_token is relatively large, and thus the increment of the guaranteed bandwidth token ΔL_token is very small or equal to 0. Since this bandwidth group generates L_CIR guaranteed tokens in the current cycle, and the increment of the guaranteed bandwidth token ΔL_token of this bandwidth group is very small or equal to 0, the difference between the two (L_CIR - ΔL_toke) can be used as shared bandwidth and shared with other bandwidth groups.

[0102] The allocation parameter is generated according to the total bandwidth token quantity G_token in the total bandwidth token bucket. When the bandwidth allocation method of the embodiment of the present invention is executed in a loop, the total bandwidth token quantity G_token can be controlled within a predetermined range by adjusting the allocation parameter, so that the determination of the allocation parameter gradually approaches the ideal state. In the actual application process, the allocation parameter can be updated once per period, or can be updated once for multiple periods. Each time the allocation parameter is updated according to the guaranteed bandwidth token increment of each bandwidth group, it may include: obtaining the total bandwidth token quantity, the current allocation parameter, and the guaranteed bandwidth token increments reported by all bandwidth groups; updating the total bandwidth token quantity according to the guaranteed bandwidth token increments reported by each bandwidth group; when the total bandwidth token quantity is greater than or equal to a preset value, increasing the allocation parameter; when the total bandwidth token quantity is less than the preset value, decreasing the allocation parameter. Optionally, the allocation parameter is increased or decreased based on a preset step size parameter S_step, and S_step can be custom-configured, and those skilled in the art can flexibly set it according to the change of the bandwidth utilization rate. In the embodiment of the present invention, since the guaranteed bandwidth token increment is determined according to the token bucket parameter of the bandwidth group, each time the token bucket parameter of the bandwidth group is modified, or when the user's bandwidth usage changes, the allocation of the shared bandwidth will adaptively change without additional setting.

[0103] Figure 4 It is a schematic diagram of the production principle of the allocation parameter in an optional embodiment of the present invention. Figure 5 It is a schematic diagram of the production process of the allocation parameter in an optional embodiment of the present invention. As Figure 4 and 5 shown, the total bandwidth token consumption includes: when receiving the guaranteed bandwidth production module input ΔL_token, reducing the total bandwidth token quantity in the total bandwidth token bucket: New_G_token = old_G_token - ΔL_token, so that the bandwidth allocated to the current bandwidth group in each polling is subtracted from the total bandwidth token bucket. Taking the case where the total bandwidth token quantity G_token = 0 as an example, when receiving the polling completion flag, if G_token < 0, it means that the sum of the bandwidths allocated to the bandwidth groups in this round is greater than the total bandwidth. At this time, the allocation parameter can be reduced: S_unit = S_uint – S_step (S_step is the step size parameter); if G_token ≥ 0, it means that the sum of the bandwidths allocated to the bandwidth groups in this round is less than the total bandwidth. That is, there is still shared bandwidth not allocated. At this time, the allocation parameter can be increased: S_unit = S_uint + S_step.

[0104] The size of S_uint is adjusted once per polling period dynamically, and the bandwidth is ensured to be shared according to the S_uint and PRI parameters, so that the total bandwidth allocation gradually approaches the optimal allocation method: try to allocate the total bandwidth after each polling period is completed, that is, G_token = 0.

[0105] The maximum bandwidth is the maximum bandwidth that a bandwidth group can enjoy, and the sum of the maximum bandwidths of all bandwidth groups can be greater than the physical total bandwidth. In the actual application process, the calculation of the guaranteed bandwidth, the maximum bandwidth, and the total bandwidth can be implemented by three token buckets respectively: the guaranteed bandwidth token bucket, the maximum bandwidth token bucket, and the total bandwidth token bucket. Each token bucket has its own token parameters.

[0106] In some alternative embodiments, the method of the embodiment of the present invention further includes obtaining: the maximum bandwidth token bucket parameters of each of the bandwidth groups, where the maximum bandwidth token bucket parameters include the maximum bandwidth committed information rate and the maximum bandwidth token quantity; determining the maximum bandwidth token increment of the bandwidth group according to the maximum bandwidth committed information rate of the bandwidth group; and updating the maximum bandwidth token quantity of the bandwidth group according to the maximum bandwidth token increment of the bandwidth group. The maximum bandwidth token bucket parameters may further include the maximum bandwidth committed burst size, and updating the maximum bandwidth token quantity of the bandwidth group includes: summing the maximum bandwidth token increment of the bandwidth group and the maximum bandwidth token quantity of the bandwidth group before the update to obtain a second token quantity; in the case where the second token quantity is greater than the maximum bandwidth committed burst size of the bandwidth group, using the maximum bandwidth committed burst size as the updated maximum bandwidth token quantity of the bandwidth group, otherwise using the second token quantity as the updated maximum bandwidth token quantity of the bandwidth group.

[0107] In some other alternative embodiments, the method of the embodiment of the present invention further includes: obtaining the total bandwidth token bucket parameters, where the total bandwidth token bucket parameters include the total bandwidth committed information rate and the total bandwidth token quantity; determining the total bandwidth token increment according to the total bandwidth committed information rate; and updating the total bandwidth token quantity according to the total bandwidth token increment. The total bandwidth token bucket parameters may further include the total bandwidth committed burst size, and updating the total bandwidth token quantity includes: summing the total bandwidth token increment and the total bandwidth token quantity before the update to obtain a third token quantity; in the case where the third token quantity is greater than the total bandwidth committed burst size, using the total bandwidth committed burst size as the updated total bandwidth token quantity, otherwise using the third token quantity as the updated total bandwidth token quantity.

[0108] Figure 6 It is a schematic diagram of the token production principle in the guaranteed bandwidth token bucket, the maximum bandwidth token bucket, and the total bandwidth token bucket in the alternative embodiment of the present invention, as Figure 6As shown in the figure, a guaranteed token bucket and a maximum token bucket plus a token parameter form a bandwidth group. The token bucket parameters of each token bucket include: CIR, CBS, and token (the number of current tokens in the token bucket). The guaranteed token bucket parameters also include PRI. The meanings of each parameter have been described in detail above and will not be elaborated here. Specifically, the guaranteed bandwidth token bucket parameters include: L_CIR, L_CBS / PRI, L_token; the maximum bandwidth token bucket parameters include: H_CIR, H_CBS, H_token; the total bandwidth token bucket parameters include: G_CIR, G_CBS, G_token. The basic working principle of the maximum bandwidth and total bandwidth token buckets is as follows: According to a certain clock cycle, CIR tokens are produced and put into the token bucket, that is, added to the current token. If token > CBS, then there is an overflow, and the value of token is forced to be equal to the value of CBS. The maximum bandwidth token bucket and the total bandwidth token bucket both produce tokens in this way. The sum of the guaranteed bandwidths of all bandwidth groups cannot exceed the total bandwidth, and the actual bandwidth used by each user will not exceed the maximum bandwidth. Figure 7 It is a schematic diagram of the token production process in the maximum bandwidth token bucket and the total bandwidth token bucket in an alternative embodiment of the present invention, as Figure 7 shown. The token production process in the maximum bandwidth token bucket and the total bandwidth token bucket includes: when the cycle of the token production process in the maximum bandwidth token bucket or the total bandwidth token bucket arrives, read the corresponding token bucket parameters (token, CIR, CBS), and calculate the new number of tokens: new_token = old_token + CIR; then compare the calculation result with the CBS parameter of the corresponding token bucket: if new_token > CBS, then set token = CBS, otherwise token = new_token; then write the new number of tokens back to the token bucket to update the token bucket parameters.

[0109] In the embodiment of the present invention, the total bandwidth token bucket and the maximum bandwidth token bucket produce tokens in a cyclic manner according to a set period. The cycle of the total bandwidth token bucket can be customized or the same as the update period of the allocation parameters. The cycle of the maximum bandwidth token bucket is the same as the update period of the allocation parameters. The total bandwidth and maximum bandwidth token production processes are the same.

[0110] Figure 8 It is a schematic diagram of the structure of a data transmission management system applying the embodiment of the present invention. As Figure 8As shown, the data transmission management system includes: a bandwidth request module, a bandwidth check module, a bandwidth group module, a bandwidth production module, an allocation parameter production module, and a data transmission module. The bandwidth request module generates a bandwidth request in response to a user operation and sends the bandwidth request to the bandwidth check module. In response to the bandwidth request, the bandwidth check module obtains the number of guaranteed bandwidth tokens and the number of maximum bandwidth tokens of the corresponding bandwidth group from the bandwidth group module, and releases the bandwidth request when the number of guaranteed bandwidth tokens and the number of maximum bandwidth tokens of the corresponding bandwidth group meet the preset conditions (the preset conditions can be customized, for example, the guaranteed bandwidth and the maximum bandwidth are greater than 0). If the conditions are met, the bandwidth request is allowed to pass. If not, the bandwidth request module back-pressures the request and then requests again after a period of time until the bandwidth check module releases the request. In response to the bandwidth request being released, the bandwidth request module applies to the bandwidth group module for the bandwidth of the corresponding bandwidth group. After passing the bandwidth check module, the bandwidth request module requests the bandwidth group to consume bandwidth, and the corresponding bandwidth group will subtract the corresponding bandwidth (if it is a network request, the bandwidth to be consumed can be determined according to the message size, and if it is a storage request, the bandwidth to be consumed can be determined according to the data size). The data transmission module processes the bandwidth request based on the bandwidth applied for. The bandwidth production module is used to obtain the allocation parameters and the guaranteed bandwidth token bucket parameters of each bandwidth group to be allocated, update the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameters, determine the guaranteed bandwidth token increment of each bandwidth group according to the updated guaranteed bandwidth token increment of each bandwidth group, and report the guaranteed bandwidth token increment of each bandwidth group to the allocation parameter production module. The allocation parameter production module updates the allocation parameters according to the guaranteed bandwidth token increment of each bandwidth group.

[0111] Figure 9 FIG. 2 is a flow chart of a data transmission management system for processing bandwidth requests using an embodiment of the present invention. Figure 9 As shown, the bandwidth check module checks whether there are tokens in the guaranteed bandwidth and maximum bandwidth token buckets in the corresponding bandwidth group, that is, whether L_token and H_token are both greater than 0. If so, the check passes and the next module can be processed. If not, the request will be pushed back to the module that initiated the request. The module that initiated the request needs to temporarily store the request and initiate the request again after a period of time until the check passes.

[0112] The common management method of traditional bandwidth management is to allocate bandwidth to each user according to a fixed value, usually determined according to the amount of bandwidth purchased by the user. To achieve simplicity, reliability, and a simple algorithm, this value is often a fixed value, or a maximum value and a minimum value are set. In the traditional bandwidth management method, when some users use less bandwidth than the set bandwidth and some users need more bandwidth, the idle bandwidth cannot be allocated to the users in need in a timely manner, the total bandwidth cannot be effectively utilized, resulting in bandwidth waste, affecting the user experience, and at the same time, oversubscription of bandwidth cannot be achieved.

[0113] In the fixed bandwidth management method, when the user does not use bandwidth or uses less bandwidth than the set bandwidth value, the use of the total bandwidth is less than the physical bandwidth, resulting in bandwidth waste; when some users use less bandwidth than the set bandwidth while some users need more bandwidth, the idle bandwidth cannot be allocated to the users in need in real time, affecting the customer experience; for the bandwidth provider, in the fixed bandwidth management method, the idle bandwidth cannot be sold to the users in need, and the corresponding physical bandwidth needs to be built for each user, and oversubscription cannot be achieved; when the bandwidth usage of the user changes or the number of users changes, the bandwidth allocation cannot be adaptively changed, resulting in bandwidth waste. Therefore, the traditional fixed bandwidth management method cannot fairly allocate the shared bandwidth to users in real time.

[0114] In the embodiment of the present invention, on the basis of ensuring that each bandwidth group can be allocated the corresponding guaranteed bandwidth, if there is still surplus bandwidth, these bandwidths can be allocated to each bandwidth group in real time according to a certain priority. When the bandwidth used by some bandwidth groups is less than their guaranteed bandwidth, other users can use the idle bandwidth they free up, thus reducing waste; the bandwidth provider can provide the total bandwidth resources according to the total guaranteed bandwidth, rather than providing the total bandwidth resources according to the total maximum bandwidth; when the bandwidth usage changes or the number of users changes, the shared bandwidth can be allocated adaptively. The embodiment of the present invention realizes flexible management of bandwidth, requires little computational effort, has a simple algorithm, and rich functions. In addition, since the allocation parameters and the guaranteed bandwidth token bucket parameters of each bandwidth group can be configured according to the actual situation, when the bandwidth usage changes or the number of users changes, the shared bandwidth can be allocated adaptively.

[0115] According to the second aspect of the embodiment of the present invention, a bandwidth production module is provided. Figure 10 It is a schematic diagram of the main components of the bandwidth production module according to the embodiment of the present invention. As Figure 10 shown, the bandwidth production module 1000 includes:

[0116] A guaranteed bandwidth parameter acquisition unit 1001, which acquires the allocation parameters and the guaranteed bandwidth token bucket parameters of each bandwidth group to be allocated;

[0117] The guaranteed bandwidth parameter update unit 1002 updates the guaranteed bandwidth token bucket parameters of each of the bandwidth groups according to the allocation parameters;

[0118] The guaranteed bandwidth increment determination unit 1003 determines the guaranteed bandwidth token increment of each of the bandwidth groups according to the updated guaranteed bandwidth token bucket parameters of each of the bandwidth groups, so as to update the allocation parameters according to the guaranteed bandwidth token increment of each of the bandwidth groups.

[0119] Optionally, the updating the allocation parameters according to the guaranteed bandwidth token increment of each of the bandwidth groups includes:

[0120] Obtaining the total number of bandwidth tokens, the current allocation parameters, and the guaranteed bandwidth token increments reported by all bandwidth groups;

[0121] Updating the total number of bandwidth tokens according to the guaranteed bandwidth token increments reported by each of the bandwidth groups;

[0122] When the total number of bandwidth tokens is greater than or equal to a preset value, increasing the allocation parameters; when the total number of bandwidth tokens is less than the preset value, decreasing the allocation parameters.

[0123] Optionally, increasing or decreasing the allocation parameters based on preset step parameters.

[0124] Optionally, the guaranteed bandwidth token bucket parameters include: guaranteed bandwidth committed information rate, shared bandwidth allocation priority, and guaranteed bandwidth token number;

[0125] The updating the guaranteed bandwidth token bucket parameters of each of the bandwidth groups according to the allocation parameters includes: determining the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group according to the allocation parameters and the shared bandwidth allocation priority of the bandwidth group; updating the guaranteed bandwidth token number of the guaranteed bandwidth token bucket of the bandwidth group according to the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group and the guaranteed bandwidth committed information rate of the bandwidth group.

[0126] Optionally, the guaranteed bandwidth token bucket parameters further include: guaranteed bandwidth committed burst size;

[0127] Updating the guaranteed bandwidth token quantity of the bandwidth group includes: summing the shared bandwidth of the guaranteed bandwidth token bucket assignable to the bandwidth group, the guaranteed bandwidth committed information rate of the bandwidth group, and the guaranteed bandwidth token quantity of the bandwidth group before update to obtain a first token quantity; when the first token quantity is greater than the guaranteed bandwidth committed burst size of the bandwidth group, using the guaranteed bandwidth committed burst size as the updated guaranteed bandwidth token quantity of the bandwidth group, otherwise using the first token quantity as the updated guaranteed bandwidth token quantity of the bandwidth group.

[0128] Optionally, the sharing bandwidth allocation priority of the bandwidth group is positively correlated with the guaranteed bandwidth committed information rate of the bandwidth group.

[0129] Optionally, the method according to an embodiment of the present invention further includes:

[0130] A maximum bandwidth parameter acquisition unit acquires the maximum bandwidth token bucket parameters of each bandwidth group; the maximum bandwidth token bucket parameters include: a maximum bandwidth committed information rate and a maximum bandwidth token quantity;

[0131] A maximum bandwidth parameter update unit determines a maximum bandwidth token increment of the bandwidth group according to the maximum bandwidth committed information rate of the bandwidth group; and updates the maximum bandwidth token quantity of the bandwidth group according to the maximum bandwidth token increment of the bandwidth group.

[0132] Optionally, the maximum bandwidth token bucket parameters further include: a maximum bandwidth committed burst size;

[0133] Updating the maximum bandwidth token quantity of the bandwidth group includes: summing the maximum bandwidth token increment of the bandwidth group and the maximum bandwidth token quantity of the bandwidth group before update to obtain a second token quantity; when the second token quantity is greater than the maximum bandwidth committed burst size of the bandwidth group, using the maximum bandwidth committed burst size as the updated maximum bandwidth token quantity of the bandwidth group, otherwise using the second token quantity as the updated maximum bandwidth token quantity of the bandwidth group.

[0134] Optionally, the method according to an embodiment of the present invention further includes:

[0135] A total bandwidth parameter acquisition unit acquires total bandwidth token bucket parameters; the total bandwidth token bucket parameters include: a total bandwidth committed information rate and a total bandwidth token quantity;

[0136] A total bandwidth parameter update unit determines a total bandwidth token increment according to the total bandwidth committed information rate; and updates the total bandwidth token quantity according to the total bandwidth token increment.

[0137] Optionally, the total bandwidth token bucket parameter further includes: total bandwidth committed burst size;

[0138] Updating the total bandwidth token quantity includes: summing the total bandwidth token increment and the total bandwidth token quantity before update to obtain a third token quantity; when the third token quantity is greater than the total bandwidth committed burst size, using the total bandwidth committed burst size as the updated total bandwidth token quantity, otherwise using the third token quantity as the updated total bandwidth token quantity.

[0139] According to a third aspect of the embodiments of the present invention, there is provided a distribution parameter production module. Figure 11 It is a schematic diagram of the main components of the distribution parameter production module of the embodiments of the present invention. As Figure 11 shown, the distribution parameter production module 1100 includes:

[0140] A shared bandwidth parameter acquisition unit 1101, which acquires the total bandwidth token quantity, the current distribution parameter, and the guaranteed bandwidth token increments reported by all bandwidth groups;

[0141] A shared bandwidth token update unit 1102, which updates the total bandwidth token quantity according to the guaranteed bandwidth token increments reported by each of the bandwidth groups;

[0142] A distribution parameter update unit 1103, which increases the distribution parameter when the total bandwidth token quantity is greater than or equal to a preset value; and decreases the distribution parameter when the total bandwidth token quantity is less than the preset value;

[0143] Wherein, the token increment of each bandwidth group is obtained by using the method provided in the first aspect of the embodiments of the present invention.

[0144] Optionally, the distribution parameter update unit increases or decreases the distribution parameter based on a preset step size parameter.

[0145] According to a fourth aspect of the embodiments of the present invention, there is provided a data transmission management system. As shown in Figure 8, the data transmission management system includes: a bandwidth request module, a bandwidth check module, a bandwidth group module, a bandwidth production module, a distribution parameter production module, and a data transmission module; wherein,

[0146] The bandwidth request module generates a bandwidth request in response to a user operation, and sends the bandwidth request to the bandwidth check module; the bandwidth check module, in response to the bandwidth request, obtains the guaranteed bandwidth token quantity and the maximum bandwidth token quantity of the corresponding bandwidth group from the bandwidth group module, and releases the bandwidth request if the guaranteed bandwidth token quantity and the maximum bandwidth token quantity of the corresponding bandwidth group meet the preset conditions; the bandwidth request module, in response to the release of the bandwidth request, applies to the bandwidth group module for the bandwidth of the corresponding bandwidth group, and the data transmission module processes the bandwidth request based on the applied bandwidth;

[0147] The bandwidth production module is used to obtain the allocation parameters and the guaranteed bandwidth token bucket parameters of each bandwidth group to be allocated, update the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameters, determine the guaranteed bandwidth token increment of each bandwidth group according to the updated guaranteed bandwidth token bucket parameters of each bandwidth group, and report the guaranteed bandwidth token increment of each bandwidth group to the allocation parameter production module; the allocation parameter production module updates the allocation parameters according to the guaranteed bandwidth token increment of each bandwidth group.

[0148] According to the fifth aspect of the embodiments of the present invention, there is provided an electronic device for bandwidth allocation, including:

[0149] One or more processors;

[0150] A storage device for storing one or more programs,

[0151] When the one or more programs are executed by the one or more processors, the one or more processors implement the method provided in the first or second aspect of the embodiments of the present invention.

[0152] According to the sixth aspect of the embodiments of the present invention, there is provided a computer-readable medium, on which a computer program is stored, and when the program is executed by a processor, the method provided in the first or second aspect of the embodiments of the present invention is implemented.

[0153] Figure 12 An exemplary system architecture 1200 to which the method for bandwidth allocation or the device for bandwidth allocation according to the embodiments of the present invention can be applied is shown.

[0154] As Figure 12 shown, the system architecture 1200 may include terminal devices 1201, 1202, 1203, a network 1204, and a server 1205. The network 1204 is used as a medium to provide a communication link between the terminal devices 1201, 1202, 1203 and the server 1205. The network 1204 may include various connection types, such as wired, wireless communication links, or fiber optic cables, etc.

[0155] Users can use terminal devices 1201, 1202, 1203 to interact with server 1205 via network 1204 to receive or send messages, etc. Various communication client applications can be installed on terminal devices 1201, 1202, 1203, such as shopping applications, web browser applications, search applications, instant messaging tools, email clients, social platform software, etc. (for example only).

[0156] Terminal devices 1201, 1202, 1203 can be various electronic devices with a display screen and supporting web browsing, including but not limited to smart phones, tablet computers, laptop portable computers, desktop computers, and so on.

[0157] Server 1205 can be a server providing various services, such as a background management server (for example only) that supports shopping websites browsed by users using terminal devices 1201, 1202, 1203. The background management server can analyze and process data such as product information query requests received, and feedback the processing results (such as target push information, product information - for example only) to the terminal device.

[0158] It should be noted that the bandwidth allocation method provided in the first aspect of the embodiments of the present invention is generally executed by server 1205. Correspondingly, the bandwidth production module and the allocation parameter production module are generally set in server 1205. Of course, the bandwidth allocation method provided in the embodiments of the present invention, as well as the bandwidth production module and the allocation parameter production module, can also be set in a gateway server for providing network interconnection services at the network layer and executed by the gateway server.

[0159] It should be understood that Figure 12 the numbers of terminal devices, networks, and servers in

[0160] are merely illustrative. According to the implementation requirements, there can be any number of terminal devices, networks, and servers. Figure 13 , which shows a schematic structural diagram of a computer system 1300 of a terminal device suitable for implementing the embodiments of the present invention. Figure 13 The shown terminal device is merely an example and should not impose any limitation on the functions and usage scope of the embodiments of the present invention.

[0161] As Figure 13As shown, computer system 1300 includes a central processing unit (CPU) 1301, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 1302 or a program loaded from a storage section 1308 into a random access memory (RAM) 1303. In the RAM 1303, various programs and data required for the operation of the system 1300 are also stored. The CPU 1301, ROM 1302, and RAM 1303 are connected to each other via a bus 1304. An input / output (I / O) interface 1305 is also connected to the bus 1304.

[0162] The following components are connected to the I / O interface 1305: an input section 1306 including a keyboard, a mouse, etc.; an output section 1307 including a cathode ray tube (CRT), a liquid crystal display (LCD), etc. and a speaker, etc.; a storage section 1308 including a hard disk, etc.; and a communication section 1309 including a network interface card such as a LAN card, a modem, etc. The communication section 1309 performs communication processing via a network such as the Internet. A drive 1310 is also connected to the I / O interface 1305 as needed. A removable medium 1311, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 1310 as needed so that a computer program read from it can be installed into the storage section 1308 as needed.

[0163] Specifically, according to the embodiments disclosed in the present invention, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, the embodiments disclosed in the present invention include a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program contains program codes for performing the methods shown in the flowcharts. In such an embodiment, the computer program can be downloaded and installed from a network via the communication section 1309, and / or installed from the removable medium 1311. When the computer program is executed by the central processing unit (CPU) 1301, the above functions defined in the system of the present invention are executed.

[0164] It should be noted that the computer-readable medium shown in the present invention can be a computer-readable signal medium, a computer-readable storage medium, or any combination of the above two. The computer-readable storage medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. More specific examples of the computer-readable storage medium can include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present invention, the computer-readable storage medium can be any tangible medium that contains or stores a program, and this program can be used by or in conjunction with an instruction execution system, apparatus, or device. In the present invention, the computer-readable signal medium can include a data signal propagated in a baseband or as part of a carrier wave, which carries computer-readable program code. Such a propagated data signal can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The computer-readable signal medium can also be any computer-readable medium other than the computer-readable storage medium, and this computer-readable medium can send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any appropriate medium, including but not limited to: wireless, wire, optical cable, RF, etc., or any suitable combination of the above.

[0165] The flowcharts and block diagrams in the accompanying drawings illustrate the possible architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagram can represent a module, a program segment, or a part of code, and the above module, program segment, or part of code contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than that marked in the accompanying drawings. For example, two consecutive blocks shown may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram or flowchart, as well as the combination of blocks in the block diagram or flowchart, can be implemented by a dedicated hardware-based system for performing the specified functions or operations, or can be implemented by a combination of dedicated hardware and computer instructions.

[0166] The units involved in the embodiments of the present invention can be implemented in software or in hardware. The described units can also be provided in a processor. For example, it can be described as: a processor includes a guaranteed bandwidth parameter acquisition unit, a guaranteed bandwidth parameter update unit, and a guaranteed bandwidth increment determination unit; or, a processor includes a shared bandwidth parameter acquisition unit, a shared bandwidth token update unit, and an allocation parameter update unit. Among them, the names of these units do not constitute a limitation on the unit itself in some cases. For example, the guaranteed bandwidth parameter acquisition unit can also be described as "the unit for increasing the allocation parameter".

[0167] As another aspect, the present invention also provides a computer-readable medium. The computer-readable medium can be included in the device described in the above embodiments; or it can exist separately without being assembled into the device. The above computer-readable medium carries one or more programs. When the one or more programs are executed by the device, the device includes: acquiring the allocation parameter and the guaranteed bandwidth token bucket parameters of each bandwidth group to be allocated; respectively updating the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameter; determining the guaranteed bandwidth token increment of each bandwidth group according to the updated guaranteed bandwidth token bucket parameters of each bandwidth group, so as to update the allocation parameter according to the guaranteed bandwidth token increment of each bandwidth group.

[0168] According to the technical solution of the embodiments of the present invention, by respectively updating the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameter, on the one hand, the total bandwidth can be effectively utilized, bandwidth waste and the impact on user experience can be avoided, and oversubscription of bandwidth can be achieved. On the other hand, since the allocation parameter and the guaranteed bandwidth token bucket parameters of each bandwidth group can be configured according to the actual situation, when the bandwidth usage changes or the number of users changes, the shared bandwidth can be adaptively allocated. In addition, in the embodiments of the present invention, it is not necessary to pre-judge whether each bandwidth group is idle and the total shared bandwidth quantity, thus greatly reducing the computational complexity of the method and facilitating implementation.

[0169] The above specific embodiments do not constitute a limitation on the protection scope of the present invention. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can occur depending on design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the present invention should be included within the protection scope of the present invention.

Claims

1. A method for bandwidth allocation, characterized in that Including: Obtaining allocation parameters and guaranteed bandwidth token bucket parameters of each bandwidth group to be allocated; in one round of bandwidth allocation process, the total number of tokens additionally allocated to all bandwidth groups is the allocation parameter; Updating the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameter; Determining the guaranteed bandwidth token increment of each bandwidth group according to the updated guaranteed bandwidth token bucket parameters of each bandwidth group, so as to update the allocation parameter according to the guaranteed bandwidth token increment of each bandwidth group; The guaranteed bandwidth token bucket parameter includes: guaranteed bandwidth committed information rate, shared bandwidth allocation priority, and guaranteed bandwidth token quantity; the updating the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameter includes: determining the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group according to the allocation parameter and the shared bandwidth allocation priority of the bandwidth group; updating the guaranteed bandwidth token quantity of the guaranteed bandwidth token bucket of the bandwidth group according to the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group and the guaranteed bandwidth committed information rate of the bandwidth group.

2. The method according to claim 1, characterized in that The updating the allocation parameter according to the guaranteed bandwidth token increment of each bandwidth group includes: Obtaining the total bandwidth token quantity, the current allocation parameter, and the guaranteed bandwidth token increments reported by all bandwidth groups; Updating the total bandwidth token quantity according to the guaranteed bandwidth token increments reported by each bandwidth group; Increasing the allocation parameter when the total bandwidth token quantity is greater than or equal to a preset value; decreasing the allocation parameter when the total bandwidth token quantity is less than the preset value.

3. The method according to claim 2, wherein Increasing or decreasing the allocation parameter based on a preset step size parameter.

4. The method according to claim 1, characterized in that The guaranteed bandwidth token bucket parameter further includes: guaranteed bandwidth committed burst size; The updating the guaranteed bandwidth token quantity of the guaranteed bandwidth token bucket of the bandwidth group includes: summing the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group, the guaranteed bandwidth committed information rate of the bandwidth group, and the guaranteed bandwidth token quantity before updating of the bandwidth group to obtain a first token quantity; when the first token quantity is greater than the guaranteed bandwidth committed burst size of the bandwidth group, using the guaranteed bandwidth committed burst size as the updated guaranteed bandwidth token quantity of the bandwidth group, otherwise using the first token quantity as the updated guaranteed bandwidth token quantity of the bandwidth group.

5. The method according to claim 1, wherein The shared bandwidth allocation priority of the bandwidth group is positively correlated with the guaranteed bandwidth committed information rate of the bandwidth group.

6. The method according to claim 1, characterized in that, Further including: Obtaining the highest bandwidth token bucket parameters of each bandwidth group; The highest bandwidth token bucket parameter includes: highest bandwidth committed information rate and highest bandwidth token quantity; Determining the highest bandwidth token increment of the bandwidth group according to the highest bandwidth committed information rate of the bandwidth group; updating the highest bandwidth token quantity of the bandwidth group according to the highest bandwidth token increment of the bandwidth group.

7. The method according to claim 6, wherein The highest bandwidth token bucket parameter further includes: highest bandwidth committed burst size; Updating the maximum bandwidth token quantity of the bandwidth group includes: summing the maximum bandwidth token increment of the bandwidth group and the maximum bandwidth token quantity before the update of the bandwidth group to obtain a second token quantity; when the second token quantity is greater than the maximum bandwidth committed burst size of the bandwidth group, using the maximum bandwidth committed burst size as the updated maximum bandwidth token quantity of the bandwidth group, otherwise using the second token quantity as the updated maximum bandwidth token quantity of the bandwidth group.

8. The method according to claim 1, characterized in that, It further includes: Obtaining the total bandwidth token bucket parameters; The total bandwidth token bucket parameters include: total bandwidth committed information rate and total bandwidth token quantity; Determining the total bandwidth token increment according to the total bandwidth committed information rate; updating the total bandwidth token quantity according to the total bandwidth token increment.

9. The method according to claim 8, wherein The total bandwidth token bucket parameters further include: total bandwidth committed burst size; Updating the total bandwidth token quantity includes: summing the total bandwidth token increment and the total bandwidth token quantity before the update to obtain a third token quantity; when the third token quantity is greater than the total bandwidth committed burst size, using the total bandwidth committed burst size as the updated total bandwidth token quantity, otherwise using the third token quantity as the updated total bandwidth token quantity.

10. A bandwidth production module, characterized in that, It includes: A guaranteed bandwidth parameter acquisition unit that acquires the allocation parameter and the guaranteed bandwidth token bucket parameters of each bandwidth group to be allocated; in a round of bandwidth allocation process, the total number of tokens additionally allocated to all bandwidth groups is the allocation parameter; A guaranteed bandwidth parameter update unit that updates the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameter; A guaranteed bandwidth increment determination unit that determines the guaranteed bandwidth token increment of each bandwidth group according to the updated guaranteed bandwidth token bucket parameters of each bandwidth group, so as to update the allocation parameter according to the guaranteed bandwidth token increment of each bandwidth group; The guaranteed bandwidth token bucket parameters include: guaranteed bandwidth committed information rate, shared bandwidth allocation priority, and guaranteed bandwidth token quantity; the updating of the guaranteed bandwidth token bucket parameters of each bandwidth group according to the allocation parameter includes: determining the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group according to the allocation parameter and the shared bandwidth allocation priority of the bandwidth group; updating the guaranteed bandwidth token quantity of the guaranteed bandwidth token bucket of the bandwidth group according to the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group and the guaranteed bandwidth committed information rate of the bandwidth group.

11. A parameter distribution production module, characterized in that, It includes: A shared bandwidth parameter acquisition unit that acquires the total bandwidth token quantity, the current allocation parameter, and the guaranteed bandwidth token increments reported by all bandwidth groups; In a round of bandwidth allocation process, the total number of tokens additionally allocated to all bandwidth groups is the allocation parameter; A shared bandwidth token update unit that updates the total bandwidth token quantity according to the guaranteed bandwidth token increments reported by each bandwidth group; An allocation parameter update unit that increases the allocation parameter when the total bandwidth token quantity is greater than or equal to a preset value; When the total number of bandwidth tokens is less than the preset value, reduce the allocation parameter; Among them, the token increment of each bandwidth group is obtained by using any one of the methods described in claims 1, 3-9.

12. A data transmission management system, characterized in that, Including: A bandwidth request module, a bandwidth check module, a bandwidth group module, a bandwidth production module, an allocation parameter production module, and a data transmission module; among them, The bandwidth request module generates a bandwidth request in response to a user operation and sends the bandwidth request to the bandwidth check module; the bandwidth check module, in response to the bandwidth request, obtains the guaranteed bandwidth token quantity and the maximum bandwidth token quantity of the corresponding bandwidth group from the bandwidth group module, and releases the bandwidth request when the guaranteed bandwidth token quantity and the maximum bandwidth token quantity of the corresponding bandwidth group meet the preset conditions; the bandwidth request module, in response to the release of the bandwidth request, applies to the bandwidth group module for the bandwidth of the corresponding bandwidth group, and the data transmission module processes the bandwidth request based on the applied bandwidth; The bandwidth production module is used to obtain the allocation parameter and the guaranteed bandwidth token bucket parameter of each bandwidth group to be allocated, update the guaranteed bandwidth token bucket parameter of each bandwidth group according to the allocation parameter respectively, determine the guaranteed bandwidth token increment of each bandwidth group according to the updated guaranteed bandwidth token bucket parameter of each bandwidth group, and report the guaranteed bandwidth token increment of each bandwidth group to the allocation parameter production module; the allocation parameter production module updates the allocation parameter according to the guaranteed bandwidth token increment of each bandwidth group; in a round of bandwidth allocation process, the total number of tokens additionally allocated to all bandwidth groups is the allocation parameter; The guaranteed bandwidth token bucket parameter includes: guaranteed bandwidth committed information rate, shared bandwidth allocation priority and guaranteed bandwidth token quantity; the step of updating the guaranteed bandwidth token bucket parameter of each bandwidth group according to the allocation parameter respectively includes: determining the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group according to the allocation parameter and the shared bandwidth allocation priority of the bandwidth group; updating the guaranteed bandwidth token quantity of the guaranteed bandwidth token bucket of the bandwidth group according to the shared bandwidth of the guaranteed bandwidth token bucket that can be allocated to the bandwidth group and the guaranteed bandwidth committed information rate of the bandwidth group.

13. An electronic device for bandwidth allocation, characterized in that, Including: One or more processors; A storage device for storing one or more programs, When the one or more programs are executed by the one or more processors, the one or more processors implement any one of the methods described in claims 1-9.

14. A computer-readable medium having a computer program stored thereon, characterized in that, When the program is executed by the processor, it implements any one of the methods described in claims 1-9.

Citation Information

Patent Citations

  • Method and device for bandwidth allocation

    CN103067306A