Bandwidth resource allocation method and apparatus, and electronic device

By setting a period and dynamically adjusting bandwidth resource allocation, the problem of unreasonable resource allocation in multi-user shared network bandwidth resources is solved, achieving the goal of meeting user demand during peak periods and improving resource utilization during off-peak periods.

CN116319343BActive Publication Date: 2025-11-25BEIJING ZITIAO NETWORK TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211732731.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-30
Publication Date
2025-11-25
Estimated Expiration
2042-12-30

AI Technical Summary

Technical Problem

In scenarios where multiple users share network bandwidth resources, some users consume excessive bandwidth resources, causing other users to be unable to use the network normally. Existing technologies use fixed bandwidth thresholds, which result in unreasonable resource allocation.

Method used

By setting a period, bandwidth resources are allocated to users in the current period's user set based on the number of users who applied for bandwidth resources in the previous period's user set. This dynamically adjusts the allocation of bandwidth resources to meet peak usage demands and improve utilization during off-peak periods.

Benefits of technology

Effectively control bandwidth usage during peak network usage periods to meet the needs of more users, improve bandwidth utilization during off-peak periods, and enhance user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116319343B_ABST
    Figure CN116319343B_ABST
Patent Text Reader

Abstract

The present disclosure provides a bandwidth resource allocation method, device and electronic equipment. A specific embodiment of the method comprises: in response to triggering of a preset event, determining an application quantity of a target user in a user set applying for bandwidth resources; determining a target quantity; the target quantity is a number of users in the user set applying for bandwidth resources in a last period; and based on the target quantity and the application quantity, allocating bandwidth resources of a current period to the target user. This embodiment enables the amount of bandwidth resources allocated to the user to change with changes in the use of bandwidth resources, effectively controls the amount of bandwidth resources used during the peak period of network use, and meets the use requirements of more users. During the trough period of network use, the utilization rate of bandwidth resources is improved. The allocation of bandwidth resources is more reasonable, and the user experience is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of computer technology, and in particular to a method, apparatus and electronic device for allocating bandwidth resources. Background Technology

[0002] With the continuous development of network technology, network services are increasingly used in people's work and life, bringing numerous conveniences. In scenarios where multiple users share network bandwidth resources, a common problem arises where some users consume excessive bandwidth, preventing other users from using the resources normally. Therefore, a fair and effective bandwidth resource allocation scheme is needed. Summary of the Invention

[0003] This disclosure provides a method, apparatus, and electronic device for allocating bandwidth resources.

[0004] According to a first aspect, a method for allocating bandwidth resources is provided, the method comprising:

[0005] In response to the triggering of a preset event, determine the amount of bandwidth resources requested by the target user in the user set;

[0006] Determine the target number; the target number is the number of users in the user set who applied for bandwidth resources in the previous period.

[0007] Based on the target number and the request volume, allocate bandwidth resources for the current period to the target user.

[0008] According to a second aspect, a bandwidth resource allocation apparatus is provided, the method comprising:

[0009] The acquisition module is used to determine the amount of bandwidth resources requested by the target user in the user set in response to the triggering of a preset event.

[0010] A determining module is used to determine a target quantity; the target quantity is the number of users in the user set who applied for bandwidth resources in the previous period.

[0011] The allocation module is used to allocate bandwidth resources for the current period to the target user based on the target number and the application amount.

[0012] According to a third aspect, a computer-readable storage medium is provided, the storage medium storing a computer program that, when executed by a processor, implements the method described in any one of the first aspects above.

[0013] According to a fourth aspect, an electronic device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the method described in any one of the first aspects.

[0014] The technical solutions provided by the embodiments of this disclosure may include the following beneficial effects:

[0015] This disclosure provides a method and apparatus for allocating bandwidth resources. By setting a period for a set of users sharing bandwidth resources, and allocating bandwidth resources to users in the current period's user set based on the number of users requesting bandwidth resources in the previous period's user set, the amount of bandwidth resources allocated to users can vary with bandwidth usage. During peak network usage periods, it effectively controls bandwidth usage, meeting the needs of more users. During off-peak network usage periods, it improves bandwidth resource utilization. This makes bandwidth resource allocation more rational and enhances the user experience.

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

[0017] To more clearly illustrate the technical solutions of the embodiments in this specification, the drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this specification. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0018] Figure 1 This disclosure is a schematic diagram of a system architecture for allocating bandwidth resources according to an exemplary embodiment;

[0019] Figure 2 This is a schematic diagram illustrating a bandwidth resource allocation scenario according to an exemplary embodiment of the present disclosure;

[0020] Figure 3 This is a flowchart illustrating a method for allocating bandwidth resources according to an exemplary embodiment of the present disclosure;

[0021] Figure 4 This is a block diagram of a bandwidth resource allocation apparatus according to an exemplary embodiment of the present disclosure;

[0022] Figure 5 This is a schematic block diagram of an electronic device provided in some embodiments of this disclosure;

[0023] Figure 6This is a schematic block diagram of another electronic device provided in some embodiments of this disclosure;

[0024] Figure 7 This is a schematic diagram of a storage medium provided in some embodiments of this disclosure. Detailed Implementation

[0025] To enable those skilled in the art to better understand the technical solutions in this specification, the technical solutions in the embodiments of this specification will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this specification, and not all embodiments. Based on the embodiments in this specification, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of this specification.

[0026] In the following description, when referring to the accompanying drawings, the same numbers in different drawings denote the same or similar elements unless otherwise indicated. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this disclosure. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this disclosure as detailed in the appended claims.

[0027] The terminology used in this disclosure is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. The singular forms “a,” “the,” and “the” as used herein are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used herein refers to and includes any and all possible combinations of one or more of the associated listed items.

[0028] It should be understood that although the terms first, second, third, etc., may be used in this disclosure to describe various information, such information should not be limited to these terms. These terms are used only to distinguish information of the same type from one another. For example, without departing from the scope of this disclosure, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Depending on the context, the word "if" as used herein may be interpreted as "when," "when," or "in response to determination."

[0029] With the continuous development of network technology, network services are increasingly used in people's work and life, bringing numerous conveniences. In scenarios where multiple users share network bandwidth resources, a common problem arises where some users consume excessive bandwidth, preventing other users from using the resources normally. Therefore, a fair and effective bandwidth resource allocation scheme is needed.

[0030] In related technologies, usage periods and bandwidth thresholds are typically set for each user. Within each usage period, the total bandwidth allowed for each user cannot exceed the bandwidth threshold. However, user bandwidth usage varies over time, and the control objectives for bandwidth resources differ under different circumstances. For example, during peak network usage periods, it is necessary to limit user bandwidth usage as much as possible to meet the needs of more users. During off-peak network usage periods, it is necessary to maximize the utilization of bandwidth resources. Therefore, using a fixed bandwidth threshold to limit user bandwidth usage has certain limitations.

[0031] This disclosure provides a bandwidth resource allocation method that sets a period for a user set sharing bandwidth resources. Based on the number of users requesting bandwidth resources in the previous period, bandwidth resources are allocated to users in the current period's user set. This allows the amount of bandwidth resources allocated to users to vary with bandwidth usage. During peak network usage periods, it effectively controls bandwidth usage, meeting the needs of more users. During off-peak periods, it improves bandwidth resource utilization. This results in more rational bandwidth resource allocation and an enhanced user experience.

[0032] See Figure 1 This is a schematic diagram of a system architecture for allocating bandwidth resources according to an exemplary embodiment. The following uses a SaaS service system as an example to illustrate the bandwidth resource allocation scheme through a specific application example of downloading a file.

[0033] like Figure 1 As shown, the SaaS service system includes a client and a server. The server may include an API interface, a bandwidth controller, a file downloader, a first storage area, a second storage area, and a third storage area. User A can send a file download request to the server through the client. This file download request may include the bandwidth resource requested by User A, *m*, and the file identifier of the file *W* to be downloaded. The server's API interface can transmit the received file download request to the bandwidth controller.

[0034] After receiving a file download request, the bandwidth controller can read the total bandwidth resource M corresponding to user set B to which user A belongs from the first storage area, and the number n of users in user set B who applied for bandwidth resources in the previous period from the second storage area. Based on the total bandwidth resource M and the number of users n, the controller calculates the average available bandwidth resource d = M / n per user in user set B in the current period. The bandwidth controller can also read the bandwidth resource b used by user A in the current period from the second storage area, and calculate the difference between the average available bandwidth resource d and the used bandwidth resource b as the remaining bandwidth resource s.

[0035] If the remaining bandwidth resource s is greater than 0, the minimum of the remaining bandwidth resource s and the requested amount m can be taken as the target resource amount. Then, the bandwidth controller can send download instruction information to the file downloader through the API interface. This download instruction information includes the file identifier of file W and the target resource amount. After receiving the download instruction information, the file downloader can read the data of file W from the third storage area based on the file identifier of file W, and transfer the data of file W to user A's client through the API interface according to the target resource amount.

[0036] If the remaining bandwidth resource s equals 0, the bandwidth controller can randomly generate a time S1 that falls within the next cycle and store the received file download request in a preset queue associated with time S1. When time S1 arrives, the bandwidth controller can recalculate the target resource amount based on the requested bandwidth resource amount m, and then send download instruction information to the file downloader via the API interface. The file downloader, according to the target resource amount, transmits the file W to user A's client via the API interface.

[0037] Figure 2 This is a schematic diagram illustrating a bandwidth resource allocation scenario according to an exemplary embodiment.

[0038] like Figure 2 As shown, a user set C can consist of multiple users sharing the same bandwidth resources. For example, user set C may include user c1, user c2, user c3, user c4, ..., user c9. A period of time t, starting at time t0, can be pre-defined for user set C. Specifically, within period T1, a data table corresponding to period T1 can be created, and the user identifiers of users who have applied for bandwidth resources and the amount of bandwidth resources used by those users can be recorded in this data table.

[0039] Optionally, the data table can be further divided into multiple data segments, each data segment corresponding to a segment identifier. When the user identifier of a user who has applied for bandwidth resources and the amount of bandwidth resources used by that user are recorded in the data table, the data segment corresponding to that user can be determined according to preset rules, and then the user identifier of that user and the amount of bandwidth resources used by that user are associated with the segment identifier of the corresponding data segment and stored together.

[0040] For example, the data table can be divided into fragmented data Q1 and fragmented data Q2, where fragmented data Q1 corresponds to user identifiers with odd-numbered last digits, and fragmented data Q2 corresponds to user identifiers with even-numbered last digits. After user c1 requests bandwidth resources, based on user c1's user identifier, it is first determined that user c1 corresponds to fragmented data Q1. Therefore, user identifier c1 and the used bandwidth resource amount x1 are stored in the data table corresponding to fragmented data Q1 in association. After user c2 requests bandwidth resources, based on user c2's user identifier, it is determined that user c2 corresponds to fragmented data Q2. Therefore, user identifier c2 and the used bandwidth resource amount x2 are stored in the data table corresponding to fragmented data Q2 in association.

[0041] Similarly, during period T1, users c3 and c4 also requested bandwidth resources. Therefore, user identifier c3 and the amount of bandwidth resources used x3 can be stored in association with fragment identifier Q1, and user identifier c4 and the amount of bandwidth resources used x4 can be stored in association with fragment identifier Q2. It should be noted that if user c1 requests bandwidth resources multiple times during period T1, the amount of bandwidth resources used for user c1 in the corresponding data table for period T1 will be updated after each allocation of bandwidth resources.

[0042] At time t1, period T1 ends and period T2 begins. A data table corresponding to period T2 can be created for user set C. Specifically, within period T2, after user c3 first requests bandwidth resources, user c3 is identified as corresponding to fragment Q1. User identifier c3 and the amount of bandwidth resources used are associated with fragment identifier Q1 and stored in the data table corresponding to period T2, where the initial value of the used bandwidth resources is 0. Then, the average available bandwidth resources per user can be calculated based on the number of users requesting bandwidth resources during period T1. Based on the average available bandwidth resources per user and the amount of bandwidth resources requested by user c3, the target amount of resources allocated to user c3 for period T2 is determined. The used bandwidth resources corresponding to user c3 in the data table corresponding to period T2 are then updated based on the target amount of resources.

[0043] Similarly, after users c5 and c9 request bandwidth resources, it is determined that users c5 and c9 correspond to fragment data Q1. User identifier c5 and used bandwidth resource amount y5, and user identifier c9 and used bandwidth resource amount y9 are respectively associated with fragment identifier Q1 and stored in the data table corresponding to period T2. After users c6 and c8 request bandwidth resources, it is determined that users c6 and c8 correspond to fragment data Q2. User identifier c6 and used bandwidth resource amount y6, and user identifier c8 and used bandwidth resource amount y8 are respectively associated with fragment identifier Q2 and stored in the data table corresponding to period T2. This process continues in a similar manner within period T3, and will not be elaborated further.

[0044] The present disclosure will now be described in detail with reference to specific embodiments.

[0045] Figure 3 This is a flowchart illustrating a method for allocating bandwidth resources according to an exemplary embodiment. The method can be applied to any device, platform, server, or device cluster with computing and processing capabilities. The method may include the following steps:

[0046] like Figure 3 As shown, in step 301, in response to the triggering of a preset event, the amount of bandwidth resources requested by the target user in the user set is determined.

[0047] In this embodiment, the user set can be a collection of multiple users sharing the same broadband resource. For example, the user set can be a collection of multiple users using the same local area network. Optionally, the user set can also be a collection of multiple users sharing the same broadband resource and using the same service. For example, the user set can be a collection of multiple users in an enterprise who jointly use a SaaS system service within the same local area network. The target user in the user set can be any user in the user set who requests bandwidth resources.

[0048] In this embodiment, the preset event can be either the receipt of a request from a target user for bandwidth resources or the arrival of a preset trigger time (see step 303 for details of the trigger time). It is understood that the preset event can also be other events, and this embodiment is not limited in this regard. Upon triggering of the preset event, the amount of bandwidth resources requested by the target user can be obtained; for example, the amount of bandwidth resources requested can be obtained from the target user's request for bandwidth resources.

[0049] In step 302, the number of users in the user set who applied for bandwidth resources in the previous period is determined as the target number.

[0050] In this embodiment, a period T can be pre-set for the user set, with a specified starting time and each period of time T serving as the start time of a new period. In one implementation, the start time of each period can be recorded, and when any user in the user set requests bandwidth resources, the information about that user's bandwidth resource request can be recorded in a log. This information may include the user's identifier and the time when the request was received. Based on the log, the number of users in the user set who requested bandwidth resources in the previous period can be determined as the target number.

[0051] In another implementation, a data table can be pre-created to store target data, which may include user identifiers of users who applied for bandwidth resources in the user set for each period. Specifically, for each period, the user identifiers of users who applied for bandwidth resources in the user set during that period can be associated with the period identifier of that period and stored in the data table. Therefore, based on the target data stored in the data table, the number of users in the user set who applied for bandwidth resources in the previous period can be determined.

[0052] It should be noted that if it is determined that the target user is requesting bandwidth resources for the first time in the current period, the user identifier corresponding to the target user and the current period can be stored in the target data. Optionally, the target data can also be divided into multiple data segments (see [link to relevant documentation]). Figure 2 Different data shards can use different caches. The target data shard corresponding to the target user can be determined from multiple data shards based on the target user's user identifier, and the target user's user identifier, associated with the current period, is stored in the target data shard. The rule for mapping users to data shards can be any pre-defined and reasonable rule.

[0053] In one implementation, the last digit of the user's identifier can be taken, and the corresponding shard data for that user can be determined based on a pre-defined correspondence between the last digit of the user identifier and the shard data. For example, users whose last digit is 0-3 correspond to shard data R1, users whose last digit is 4-6 correspond to shard data R2, and users whose last digit is 7-9 correspond to shard data R3. As another example, users whose last digit is odd correspond to shard data R1, and users whose last digit is even correspond to shard data R2.

[0054] In another implementation, a user's identifier can be pre-calculated. Based on the calculation result and the pre-set correspondence between the calculation result and the shard data, the shard data corresponding to the user can be determined. For example, users whose hash value obtained by hashing their identifier ends in 0-4 correspond to shard data K1, while users whose hash value obtained by hashing their identifier ends in 5-9 correspond to shard data K2.

[0055] Since this embodiment sets up multiple data fragments for the target data, different data fragments can use different cache areas. Therefore, during peak periods when users use bandwidth resources, the read and write pressure caused by frequent reads and writes to the same cache area can be avoided, thus improving the efficiency of bandwidth resource allocation.

[0056] In step 303, bandwidth resources for the current period are allocated to the target users based on the target quantity and the application quantity.

[0057] Specifically, the total available bandwidth resources for the user group in each period can be pre-set and stored. It should be noted that the total available bandwidth resources are generally the same for each period, but can also differ. When allocating bandwidth resources to target users, the total available bandwidth resources for that user group in the current period can be obtained from the pre-stored data.

[0058] Then, based on the total available bandwidth resources and the target number, the average available bandwidth resources for each user in the user set during the current period are determined. Specifically, the total available bandwidth resources can be divided by the target number, and the result can be used as the average available bandwidth resources for each user in the user set during the current period.

[0059] Next, based on the average available bandwidth resources and the aforementioned request volume, bandwidth resources for the current period are allocated to the target user. Specifically, the bandwidth resources used by each user in each period can be stored in association with the user's user identifier and the period identifier. When allocating bandwidth resources to the target user, the stored bandwidth resources used by the target user in the current period can be obtained. By subtracting the bandwidth resources used by each target user in the current period from the average available bandwidth resources, the remaining bandwidth resources corresponding to the target user are obtained. Then, based on the aforementioned request volume and the aforementioned remaining bandwidth resources, bandwidth resources for the current period are allocated to the target user.

[0060] Specifically, if the remaining bandwidth resources are greater than 0, the requested amount and the remaining bandwidth resources can be compared. The smaller of these two amounts is taken as the target resource amount, and bandwidth resources for the current period are allocated to the target user according to the target resource amount. It should be noted that after allocating bandwidth resources for the current period to a user, the stored amount of bandwidth resources used by that user in the current period can be updated again.

[0061] If the remaining bandwidth resources are zero, the bandwidth resource request from the target user can be postponed to the next cycle for further processing. That is, in the next cycle, bandwidth resources will be allocated to the target user based on this request. Optionally, a trigger time falling within the next cycle can be randomly generated for the target user. For example, the time interval of the next cycle can be determined first, and then a time can be randomly selected from that time interval as the trigger time. This trigger time and the target user's bandwidth resource request are placed in a preset queue. When the trigger time of the next cycle arrives, the target user's bandwidth resource request can be retrieved from the preset queue, and bandwidth resources for the next cycle can be allocated to the target user based on this request. The event of the trigger time arriving can be used as a preset event. Since this embodiment uses a random time to trigger the next cycle to process bandwidth resource request requests that have not been processed in the current cycle, it avoids a large number of pending bandwidth resource request requests being concentrated at the beginning of the next cycle, thereby improving the efficiency of bandwidth resource allocation.

[0062] This disclosure provides a bandwidth resource allocation method that sets a period for a user set sharing bandwidth resources. Based on the number of users requesting bandwidth resources in the previous period, bandwidth resources are allocated to users in the current period's user set. This allows the amount of bandwidth resources allocated to users to vary with bandwidth usage. During peak network usage periods, it effectively controls bandwidth usage, meeting the needs of more users. During off-peak periods, it improves bandwidth resource utilization. This results in more rational bandwidth resource allocation and an enhanced user experience.

[0063] It should be noted that although the operations of the methods of this disclosure embodiment are described in a specific order in the above embodiments, this does not require or imply that these operations must be performed in that specific order, or that all the operations shown must be performed to achieve the desired result. On the contrary, the steps depicted in the flowcharts may be executed in a different order. Additionally or alternatively, certain steps may be omitted, multiple steps may be combined into one step, and / or one step may be broken down into multiple steps.

[0064] Corresponding to the aforementioned bandwidth resource allocation method embodiments, this disclosure also provides bandwidth resource allocation apparatus embodiments.

[0065] like Figure 4 As shown, Figure 4 This is a block diagram of a bandwidth resource allocation apparatus according to an exemplary embodiment of the present disclosure. The apparatus may include: an acquisition module 401, a determination module 402, and an allocation module 403.

[0066] The acquisition module 401 is used to determine the amount of bandwidth resources requested by the target user in the user set in response to the triggering of a preset event.

[0067] The determining module 402 is used to determine the target quantity; the target quantity is the number of users in the user set who applied for bandwidth resources in the previous period.

[0068] The allocation module 403 is used to allocate bandwidth resources for the current period to the target user based on the target quantity and the above-mentioned request quantity.

[0069] In some implementations, the determining module 402 may include a first acquisition submodule and a first determining submodule (not shown in the figure).

[0070] The first acquisition submodule is used to acquire target data pre-stored for the user set, which includes the user identifiers of users who apply for bandwidth resources in the user set for each period.

[0071] The first determination submodule is used to determine the target quantity based on the target data.

[0072] In other embodiments, the device may further include a storage module (not shown in the figure).

[0073] The storage module is used to store the user identifier corresponding to the target user and the current period in the target data when it is determined that the target user is requesting bandwidth resources for the first time in the current period.

[0074] In other implementations, the target data may include multiple data fragments.

[0075] The storage module is configured to: determine the target shard data corresponding to the target user among multiple shard data based on the user identifier of the target user, and store the user identifier associated with the current period into the target shard data.

[0076] In other embodiments, the allocation module 403 may include: a second acquisition submodule, a second determination submodule, and an allocation submodule (not shown in the figure).

[0077] The second acquisition submodule is used to acquire the total available bandwidth resources of the user set in the current period.

[0078] The second determining submodule is used to determine the average available bandwidth resources for each user in the user set during the current period, based on the total available bandwidth resources and the target number mentioned above.

[0079] The allocation submodule is used to allocate bandwidth resources for the current period to the target user based on the average available bandwidth resources and the requested amount.

[0080] In other implementations, the allocation submodule is configured to: obtain the amount of bandwidth resources used by the target user in the current period, subtract the amount of bandwidth resources used from the average available bandwidth resources to obtain the amount of bandwidth resources remaining for the target user, and allocate bandwidth resources for the target user in the current period based on the requested amount and the remaining bandwidth resources.

[0081] In other implementations, the allocation submodule allocates bandwidth resources for the current period to the target user based on the above-mentioned request amount and remaining bandwidth resources in the following manner: if the remaining bandwidth resources are greater than 0, the minimum of the request amount and the remaining bandwidth resources is taken as the target resource amount, and the bandwidth resources for the current period are allocated to the target user according to the target resource amount.

[0082] In other embodiments, the device may also include an update module (not shown in the figure).

[0083] The update module is used to update the amount of bandwidth resources used by the target user in the current period based on the target resource amount after allocating bandwidth resources for the target user in the current period.

[0084] In other implementations, the allocation submodule allocates bandwidth resources for the current period to the target user based on the above-mentioned request amount and remaining bandwidth resources in the following manner: if the remaining bandwidth resources are equal to 0, a trigger time that falls in the next period is randomly generated, and the event that arrives at the trigger time is used as the preset event for the next period.

[0085] In other implementations, the user set is a collection of multiple users within the same local area network who share the SaaS system service. The target user's bandwidth resource request includes the bandwidth resources requested by the target user within the SaaS service for downloading files.

[0086] For the device embodiments, since they basically correspond to the method embodiments, the relevant parts can be referred to in the description of the method embodiments. The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of the embodiments of this disclosure according to actual needs. Those skilled in the art can understand and implement this without creative effort.

[0087] Figure 5 This is a schematic block diagram of an electronic device provided for some embodiments of this disclosure. For example... Figure 5 As shown, the electronic device 910 includes a processor 911 and a memory 912, and can be used to implement a client or server. The memory 912 stores computer-executable instructions (e.g., one or more computer program modules) non-transitoryly. The processor 911 executes the computer-executable instructions, which, when run by the processor 911, can perform one or more steps in the bandwidth resource allocation method described above, thereby implementing the bandwidth resource allocation method described above. The memory 912 and the processor 911 can be interconnected via a bus system and / or other forms of connection mechanisms (not shown).

[0088] For example, processor 911 can be a central processing unit (CPU), a graphics processing unit (GPU), or other form of processing unit with data processing and / or program execution capabilities. For example, the central processing unit (CPU) can be an x86 or ARM architecture. Processor 911 can be a general-purpose processor or a special-purpose processor, and can control other components in electronic device 910 to perform desired functions.

[0089] For example, memory 912 may include any combination of one or more computer program products, which may include various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory. Volatile memory may include, for example, random access memory (RAM) and / or cache memory. Non-volatile memory may include, for example, read-only memory (ROM), hard disk, erasable programmable read-only memory (EPROM), portable compact disc read-only memory (CD-ROM), USB memory, flash memory, etc. One or more computer program modules may be stored on the computer-readable storage medium, and processor 911 may run one or more computer program modules to implement various functions of electronic device 910. Various application programs and various data, as well as various data used and / or generated by the application programs, may also be stored in the computer-readable storage medium.

[0090] It should be noted that, in the embodiments of this disclosure, the specific functions and technical effects of the electronic device 910 can be referred to the description of the bandwidth resource allocation method above, and will not be repeated here.

[0091] Figure 6 This is a schematic block diagram of another electronic device provided in some embodiments of the present disclosure. The electronic device 920 is, for example, suitable for implementing the bandwidth resource allocation method provided in the embodiments of the present disclosure. The electronic device 920 can be a terminal device, etc., and can be used to implement a client or server. The electronic device 920 can include, but is not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), in-vehicle terminals (e.g., in-vehicle navigation terminals), wearable electronic devices, etc., as well as fixed terminals such as digital TVs, desktop computers, smart home devices, etc. It should be noted that... Figure 6 The illustrated electronic device 920 is merely an example and does not impose any limitation on the functionality and scope of use of the embodiments of this disclosure.

[0092] like Figure 6 As shown, the electronic device 920 may include a processing unit (e.g., a central processing unit, a graphics processor, etc.) 921, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 922 or a program loaded from a storage device 928 into a random access memory (RAM) 923. The RAM 923 also stores various programs and data required for the operation of the electronic device 920. The processing unit 921, ROM 922, and RAM 923 are interconnected via a bus 924. An input / output (I / O) interface 925 is also connected to the bus 924.

[0093] Typically, the following devices can be connected to I / O interface 925: input devices 926 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 927 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 928 including, for example, magnetic tapes, hard disks, etc.; and communication devices 929. Communication device 929 allows electronic device 920 to communicate wirelessly or wiredly with other electronic devices to exchange data. Although Figure 6 An electronic device 920 with various devices is shown, but it should be understood that it is not required to implement or have all of the devices shown, and the electronic device 920 may alternatively implement or have more or fewer devices.

[0094] For example, according to embodiments of this disclosure, the bandwidth resource allocation method described above can be implemented as a computer software program. For instance, embodiments of this disclosure include a computer program product comprising a computer program carried on a non-transitory computer-readable medium, the computer program including program code for performing the bandwidth resource allocation method described above. In such embodiments, the computer program can be downloaded and installed from a network via a communication device 929, or installed from a storage device 928, or installed from a ROM 922. When the computer program is executed by a processing device 921, the functions defined in the bandwidth resource allocation method provided by embodiments of this disclosure can be implemented.

[0095] Figure 7 This is a schematic diagram of a storage medium provided for some embodiments of this disclosure. For example, such as... Figure 7 As shown, the storage medium 930 can be a non-transitory computer-readable storage medium for storing non-transitory computer-executable instructions 931. When the non-transitory computer-executable instructions 931 are executed by a processor, the bandwidth resource allocation method described in the embodiments of this disclosure can be implemented. For example, when the non-transitory computer-executable instructions 931 are executed by a processor, one or more steps in the bandwidth resource allocation method described above can be performed.

[0096] For example, the storage medium 930 can be used in the aforementioned electronic device, such as the storage medium 930 may include the memory in the electronic device.

[0097] For example, the storage medium may include a memory card for a smartphone, a storage component for a tablet computer, a hard disk for a personal computer, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), portable compact disc read-only memory (CD-ROM), flash memory, or any combination of the above storage media, or other suitable storage media.

[0098] For example, the description of storage medium 930 can be found in the description of memory in the embodiments of the electronic device, and will not be repeated here. The specific functions and technical effects of storage medium 930 can be found in the description of the bandwidth resource allocation method above, and will not be repeated here.

[0099] It should be noted that, in the context of this disclosure, a computer-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A 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 thereof. More specific examples of a computer-readable storage medium may include, but are not limited to, an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this disclosure, a computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In this disclosure, a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. The computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, capable of transmitting, propagating, or transmitting a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.

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

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

Claims

1. A bandwidth resource allocation method, the method comprising: in response to triggering of a preset event, determining an application amount of a target user in a user set applying for bandwidth resources; determining a target number; the target number is a number of users in the user set applying for bandwidth resources in a last period; obtaining a total amount of available bandwidth resources of the user set in a current period; based on the total amount of available bandwidth resources and the target number, determining an average amount of available bandwidth resources of each user in the user set in the current period; based on the average amount of available bandwidth resources and the application amount, allocating bandwidth resources of the current period to the target user.

2. The method of claim 1, wherein, The determination of the target number comprises: obtaining target data pre-stored for the user set; the target data comprises user identification of users in the user set applying for bandwidth resources in each period; based on the target data, determining the target number.

3. The method of claim 2, wherein, The method further comprises: in the case of determining that the target user applies for bandwidth resources for the first time in the current period, storing the user identification corresponding to the target user and associated with the current period in the target data.

4. The method of claim 3, wherein, The target data comprises a plurality of shard data; wherein the storing of the user identification corresponding to the target user and associated with the current period in the target data comprises: based on the user identification, determining target shard data corresponding to the target user in the plurality of shard data; storing the user identification associated with the current period in the target shard data.

5. The method of claim 1, wherein, The allocation of bandwidth resources of the current period to the target user based on the average amount of available bandwidth resources and the application amount comprises: obtaining a used bandwidth resource amount of the target user in the current period stored; subtracting the used bandwidth resource amount from the average amount of available bandwidth resources to obtain a remaining bandwidth resource amount corresponding to the target user; based on the application amount and the remaining bandwidth resource amount, allocating bandwidth resources of the current period to the target user.

6. The method of claim 5, wherein, The allocation of bandwidth resources of the current period to the target user based on the application amount and the remaining bandwidth resource amount comprises: if the remaining bandwidth resource amount is greater than 0, taking the minimum of the application amount and the remaining bandwidth resource amount as a target resource amount; allocating bandwidth resources of the current period to the target user according to the target resource amount.

7. The method of claim 6, wherein, After allocating bandwidth resources of the current period to the target user, it further comprises updating the used bandwidth resource amount of the target user in the current period stored based on the target resource amount.

8. The method of claim 5, wherein, The allocation of bandwidth resources of the current period to the target user based on the application amount and the remaining bandwidth resource amount comprises: if the remaining bandwidth resource amount is equal to 0, randomly generating a triggering time falling in a next period, and taking an event of reaching the triggering time as a preset event of the next period.

9. The method of any one of claims 1-8, wherein, The user set is a set of a plurality of users using a saas system service in a same local area network; the target user applying for bandwidth resources comprises the target user applying for bandwidth resources for downloading files in the saas system service.

10. An apparatus for allocating bandwidth resources, the apparatus comprising: an obtaining module configured to determine, in response to a triggering of a preset event, an application quantity of a target user in a user set for applying for bandwidth resources; a determining module configured to determine a target quantity; the target quantity being a number of users in the user set who apply for bandwidth resources in a last period; an allocating module configured to obtain a total amount of available bandwidth resources of the user set in a current period; determine an average amount of available bandwidth resources of each user in the user set in the current period based on the total amount of available bandwidth resources and the target quantity; and allocate bandwidth resources of the current period to the target user based on the average amount of available bandwidth resources and the application quantity.

11. A computer readable storage medium having stored thereon a computer program which, when executed in a computer, causes the computer to perform the method of any one of claims 1-9.

12. An electronic device comprising a memory and a processor, the memory having stored therein executable code, the processor, when executing the executable code, implementing the method of any one of claims 1-9. ​

Citation Information

Patent Citations

  • User equipment association method in cloud wireless access network based on edge caching

    CN110446158A

  • Network resource safety sharing method based on block chain and auction game

    CN111107506A