Distributed scheduling method and related device

By obtaining the bandwidth required by user services from multiple forwarding nodes and allocating bandwidth reasonably, the problem of unreasonable bandwidth in virtual machines is solved, and the data transmission rate and reliability are improved.

CN122069264APending Publication Date: 2026-05-19HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2024-11-19
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

Inappropriate bandwidth allocation to users in virtual machines can lead to wasted bandwidth resources or affect the bandwidth usage of other users, and may also fail to meet the users' business data forwarding rate requirements.

Method used

By obtaining the bandwidth required by users' services from multiple forwarding nodes, a reasonable bandwidth allocation is determined based on the demand information to avoid excessive or insufficient bandwidth. The bandwidth allocation is optimized using a queue scheduling model to meet users' bandwidth needs and service priorities.

Benefits of technology

This achieves a reasonable allocation of user bandwidth in forwarding nodes, avoids resource waste, and improves the data transmission rate and reliability of user services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122069264A_ABST
    Figure CN122069264A_ABST
Patent Text Reader

Abstract

The invention provides a distributed scheduling method and a related device, and the method comprises the steps: obtaining the bandwidth needed by the business of a user in a plurality of forwarding nodes if the business of the user can be forwarded by the plurality of forwarding nodes; and determining the bandwidth allocated to the user in each forwarding node according to the bandwidth required by the service of the user in each forwarding node in the plurality of forwarding nodes. The bandwidth allocated to the user in the forwarding node is determined through the bandwidth required by the user in the forwarding node, so that the bandwidth allocated to the user in the forwarding node is matched with the required bandwidth, and reasonable allocation of the bandwidth of the user in the forwarding node can be realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a distributed scheduling method and related apparatus. Background Technology

[0002] In the future digital world, access points will be ubiquitous (e.g., wireless access), and services will be ubiquitous (e.g., services provided via the cloud). This necessitates ubiquitous networks to connect users with these services. Taking Network as a Service (NaaS) as an example, NaaS is a cloud service model where users rent network services from a provider. NaaS allows users to operate their own networks without maintaining their own network infrastructure. NaaS products provide access services to multiple users in the form of distributed virtual machine resource pools, such as a virtual machine resource pool composed of multiple virtual machines on a server, where user traffic can be forwarded by multiple virtual machines.

[0003] In real-world scenarios, a virtual machine typically forwards a user's traffic according to the bandwidth allocated to that user. However, the bandwidth allocated to a user within a virtual machine may be unreasonable. For example, if a user is allocated too much bandwidth, they cannot fully utilize it, resulting in bandwidth wastage. Furthermore, excessive bandwidth usage by that user may affect the bandwidth usage of other users. Conversely, if a user is allocated too little bandwidth, their traffic cannot be adequately forwarded, impacting the data forwarding rate of their traffic. Summary of the Invention

[0004] This application provides a distributed scheduling method and related apparatus. When a user's service is forwarded by multiple forwarding nodes, the bandwidth allocated to the user in the forwarding node is determined according to the bandwidth required by the user's service in the forwarding node, thereby realizing the reasonable allocation of user bandwidth at each forwarding node.

[0005] To achieve the above objectives, this application adopts the following technical solution:

[0006] Firstly, a distributed scheduling method is provided, comprising: acquiring first bandwidth requirement information and second bandwidth requirement information, wherein the first bandwidth requirement information indicates the bandwidth required by the service of a first target user in a first forwarding node, and the second bandwidth requirement information indicates the bandwidth required by the service of the first target user in a second forwarding node, wherein both the first and second forwarding nodes are used to forward the service of the first target user; and determining scheduling information based on the first and second bandwidth requirement information, wherein the scheduling information includes the bandwidth allocated to the first target user in the first forwarding node and / or the bandwidth allocated to the first target user in the second forwarding node. Since the user's service is forwarded by the first and second forwarding nodes, the bandwidth required by the user's service in both forwarding nodes can be obtained, and the bandwidth allocated to the user in the forwarding node can be determined based on the bandwidth required by the user's service in the forwarding node. On the one hand, by allocating the bandwidth of the user in the forwarding node according to the bandwidth required by the user's service in each of the multiple forwarding nodes, it is possible to avoid allocating excessive bandwidth to the user in the forwarding node, thus avoiding waste of bandwidth resources and further avoiding impact on the bandwidth usage of other users in the forwarding node. On the other hand, the bandwidth allocated to users in the forwarding node is determined based on the bandwidth required by the user's services within the forwarding node. If the allocated bandwidth meets the user's bandwidth needs, it avoids the impact of insufficient bandwidth allocation on the data forwarding rate of the user's services. This allows for a more rational allocation of user bandwidth within the forwarding node.

[0007] Optionally, if a user's service is forwarded by multiple forwarding nodes (e.g., three forwarding nodes or multiple three-forwarding nodes), the bandwidth requirement information of the user in each of the multiple forwarding nodes can be obtained, and the bandwidth allocated to the user in each forwarding node can be determined based on the bandwidth requirement information of the user in each of the multiple forwarding nodes.

[0008] In one possible implementation of the first aspect, determining scheduling information based on first bandwidth demand information and second bandwidth demand information includes: determining scheduling information based on first bandwidth demand information, second bandwidth demand information, and limited bandwidth, wherein the limited bandwidth is used to limit the total bandwidth allowed to be used by the first target user.

[0009] In this implementation, the total bandwidth allocated to users across multiple forwarding nodes is limited to prevent excessive bandwidth allocation across multiple forwarding nodes, which could impact the bandwidth usage of other users. By allocating bandwidth to users within the limited bandwidth range, the unused bandwidth and wasted bandwidth resources can be avoided.

[0010] In one possible implementation of the first aspect, determining scheduling information based on first bandwidth requirement information, second bandwidth requirement information, and a limited bandwidth includes: determining the bandwidth required for the service of the first target user in the first forwarding node based on the first bandwidth requirement information; determining the bandwidth required for the service of the first target user in the second forwarding node based on the second bandwidth requirement information; if the sum of the bandwidths is less than the limited bandwidth, determining the bandwidth allocated to the first target user in the first forwarding node based on the remaining bandwidth and the bandwidth required for the service of the first target user in the first forwarding node, and / or determining the bandwidth allocated to the first target user in the second forwarding node based on the remaining bandwidth and the bandwidth required for the service of the first target user in the second forwarding node, wherein the remaining bandwidth is the difference between the limited bandwidth and the sum of the bandwidths, and the sum of the bandwidths is the sum of the bandwidth required for the service of the first target user in the first forwarding node and the bandwidth required for the service of the first target user in the second forwarding node.

[0011] In this implementation, bandwidth allocation is performed within a limited bandwidth range. The bandwidth allocation process first satisfies the bandwidth required by the user's service at each forwarding node. If the total bandwidth required by multiple forwarding nodes (e.g., the sum of bandwidths) is less than the limited bandwidth, the remaining bandwidth can be allocated to improve the balance of bandwidth allocated to users across multiple forwarding nodes. Since user service traffic dynamically changes across multiple forwarding nodes in real-world scenarios, the bandwidth required by users at each forwarding node also dynamically changes. If the actual bandwidth required by users at a forwarding node is greater than the bandwidth determined based on bandwidth demand information, the bandwidth allocated to users across multiple forwarding nodes can be balanced to satisfy not only the bandwidth determined based on bandwidth demand information but also the bandwidth required due to dynamic traffic changes, thereby improving the reliability of user service transmission.

[0012] In one possible implementation of the first aspect, the first bandwidth requirement information includes the first inflow rate and the first forwarding rate of the service of the first target user in the first forwarding node, and the second bandwidth requirement information includes the second inflow rate and the second forwarding rate of the service of the first target user in the second forwarding node; determining scheduling information based on the first bandwidth requirement information and the second bandwidth requirement information includes: determining the bandwidth required by the service of the first target user in the first forwarding node and / or the bandwidth required by the service of the first target user in the second forwarding node based on the first inflow rate, the second inflow rate, and the limited bandwidth; determining the compensation bandwidth based on the first forwarding rate, the second forwarding rate, and the limited bandwidth; determining the bandwidth allocated to the first target user in the first forwarding node based on the bandwidth required by the service of the first target user in the first forwarding node and the compensation bandwidth, and / or determining the bandwidth allocated to the first target user in the second forwarding node based on the bandwidth required by the service of the first target user in the second forwarding node and the compensation bandwidth.

[0013] In this implementation, the total bandwidth actually used by the user across multiple forwarding nodes is not equal to the user's limited bandwidth. The compensation bandwidth can be determined by the limited bandwidth and the bandwidth actually used by the user. For example, if the limited bandwidth is greater than the bandwidth actually used by the user, the compensation bandwidth is the difference between the limited bandwidth and the bandwidth actually used by the user. The compensation bandwidth is used to compensate the user for the bandwidth allocated in the next time period, so that the bandwidth used by the user in multiple time periods can be close to or equal to the user's limited bandwidth.

[0014] In one possible implementation of the first aspect, the first bandwidth requirement information is further used to indicate the bandwidth required by the queue corresponding to the service of the first target user in the first forwarding node, and the second bandwidth requirement information is further used to indicate the bandwidth required by the queue corresponding to the service of the first target user in the second forwarding node. The scheduling information also includes the bandwidth allocated to the queue corresponding to the service of the first target user in the first forwarding node and / or the bandwidth allocated to the queue corresponding to the service of the first target user in the second forwarding node.

[0015] In this implementation, the forwarding node transmits the user's service traffic through queues. The bandwidth allocated to the queues in the forwarding node can be determined by obtaining the bandwidth required by the queue corresponding to the user's service. By allocating bandwidth to the queues in the forwarding node, the traffic of the corresponding user's service is transmitted through the queues, thereby realizing queue-level bandwidth allocation and queue-level service scheduling.

[0016] In one possible implementation of the first aspect, determining scheduling information based on first bandwidth demand information and second bandwidth demand information includes: determining scheduling information based on first bandwidth demand information, second bandwidth demand information, and weight setting information, wherein the weight setting information is used to indicate the weight of the queue corresponding to the service of the first target user.

[0017] In this implementation, the bandwidth of the queues in the forwarding node is allocated according to the bandwidth required by the queue corresponding to the user's service and the weight of the queue corresponding to the user's service. This ensures that the bandwidth allocated to the queue corresponding to the user's service in the forwarding node can meet both the bandwidth required by the queue in the forwarding node and the user's service priority requirements.

[0018] In one possible implementation of the first aspect, determining scheduling information based on first and second bandwidth demand information includes: inputting the first and second bandwidth demand information into a queue scheduling model to obtain scheduling information. The objective function of the queue scheduling model is used to maximize the bandwidth utilization of the first target user. In this implementation, maximizing the bandwidth utilization of the first target user is achieved through the queue scheduling model, that is, maximizing the ratio of the actual bandwidth used by the queue corresponding to the user's service to the bandwidth allocated to the queue corresponding to the user's service. This ensures that the bandwidth allocated to the queue corresponding to the user's service is the same as or as close as possible to the bandwidth required by the queue corresponding to the user's service, thereby achieving reasonable allocation of bandwidth for users in the forwarding nodes. This avoids excessive bandwidth allocation to queues in the forwarding nodes, which would affect the bandwidth utilization of users and cause a waste of bandwidth resources. By maximizing the bandwidth utilization of users through bandwidth allocation, the bandwidth allocated to the queue corresponding to the user's service can be fully utilized, thereby improving the transmission rate of the user's service.

[0019] In one possible implementation of the first aspect, inputting the first bandwidth requirement information and the second bandwidth requirement information into a queue scheduling model to obtain scheduling information includes: inputting the first bandwidth requirement information, the second bandwidth requirement information, and a limited bandwidth into the queue scheduling model to obtain scheduling information, wherein the limited bandwidth is used to limit the total bandwidth allowed to be used by the first target user; the constraints of the queue scheduling model include: the sum of the bandwidth allocated to the first target user in the first forwarding node and the bandwidth allocated to the first target user in the second forwarding node is less than or equal to the limited bandwidth. In this implementation, the total bandwidth allowed to be used by the user is limited by the limited bandwidth. Within the allowed range of the limited bandwidth, based on maximizing the ratio of the bandwidth actually used by the user in the forwarding node to the bandwidth allocated to the user in the forwarding node, the bandwidth allocated to the queue corresponding to the user's service in the forwarding node is determined according to the bandwidth required by the queue corresponding to the user's service in the forwarding node, so as to achieve reasonable allocation of bandwidth for the user in the forwarding node and avoid the user in the forwarding node being allocated too much or too little bandwidth, which would affect the user's bandwidth utilization. The bandwidth allocated to the queue in the forwarding node is determined by the bandwidth required by the queue so that the bandwidth allocated to the queue in the forwarding node can be fully utilized, thereby improving the transmission rate of the user's service.

[0020] In one possible implementation of the first aspect, inputting first bandwidth requirement information and second bandwidth requirement information into a queue scheduling model to obtain scheduling information includes: inputting the first bandwidth requirement information, second bandwidth requirement information, and weight setting information into the queue scheduling model to obtain scheduling information. The weight setting information is used to indicate the weight of the queue corresponding to the service of the first target user. The scheduling information also includes first weight information and / or second weight information. The first weight information is used to indicate the weight of the queue corresponding to the service of the first target user in the first forwarding node, and the second weight information is used to indicate the weight of the queue corresponding to the service of the first target user in the second forwarding node. In this implementation, by adjusting the weight of the queue corresponding to the user's service in the forwarding node, the ratio of bandwidth allocated to multiple queues in the forwarding node is equal to or close to a preset weight ratio, thereby satisfying the weight requirement of the queue corresponding to the user's service and thus satisfying the priority requirement of the user's service.

[0021] In one possible implementation of the first aspect, the first forwarding node is also used to forward the services of the second target user;

[0022] The constraints of the queue scheduling model include: the sum of the bandwidth allocated to the first target user in the first forwarding node and the bandwidth allocated to the second target user in the first forwarding node is less than or equal to the available bandwidth of the first forwarding node;

[0023] The first bandwidth requirement information and the second bandwidth requirement information are input into the queue scheduling model to obtain scheduling information. This includes inputting the first bandwidth requirement information, the second bandwidth requirement information, and the third bandwidth requirement information into the queue scheduling model to obtain scheduling information. The third bandwidth requirement information is used for the bandwidth required by the service of the second target user in the first forwarding node. In this implementation, since the forwarding node is used to forward services for multiple users, the bandwidth allocated to the first target user and / or the bandwidth allocated to the queue corresponding to the service of the first target user can be determined based on the bandwidth required by the services of multiple users in the forwarding node, so as to achieve reasonable allocation of user bandwidth.

[0024] In one possible implementation of the first aspect, before determining the scheduling information based on the first bandwidth requirement information and the second bandwidth requirement information, the method further includes: obtaining first identification information and second identification information, wherein the first identification information is used to identify the queue corresponding to the service of the first target user in the first forwarding node, and the second identification information is used to identify the queue corresponding to the service of the first target user in the second forwarding node; establishing an association between the first identification information and the second identification information; and determining the scheduling information based on the first bandwidth requirement information and the second bandwidth requirement information, including: determining the scheduling information based on the first bandwidth requirement information, the second bandwidth requirement information, and the association. In this implementation, since the queue identifiers corresponding to the services of users in multiple forwarding nodes may differ, before determining the scheduling information, the identifiers of the queues corresponding to the services of users in multiple forwarding nodes are aligned so as to associate queues in different forwarding nodes based on the aligned identifiers.

[0025] In one possible implementation of the first aspect, the method further includes: sending the bandwidth allocated to the first target user in the first forwarding node to the first forwarding node and / or sending the bandwidth allocated to the first target user in the second forwarding node to the second forwarding node. In this implementation, if the execution subject of the distributed scheduling method is the destination node or one of the forwarding nodes, after determining the scheduling information corresponding to the forwarding node, it is also used to send the scheduling information to the corresponding forwarding node so that the forwarding node forwards the user's service based on the received scheduling information.

[0026] In one possible implementation of the first aspect, obtaining the first bandwidth requirement information and the second bandwidth requirement information includes: in response to a target event, obtaining the first bandwidth requirement information and the second bandwidth requirement information, wherein the target event is used to indicate updating the scheduling information of the first target user. After the scheduling node detects the target event, it obtains the bandwidth requirement information of the user in the forwarding node and updates the scheduling information based on the obtained bandwidth requirement information.

[0027] In one possible implementation of the first aspect, in response to a target event, acquiring first bandwidth requirement information and second bandwidth requirement information includes: if the target event includes detecting a forwarding failure in a third forwarding node, then acquiring the first bandwidth requirement information and second bandwidth requirement information, wherein the third forwarding node can be used to forward the services of the first target user but cannot be used to forward the services of the first target user due to the forwarding failure; or if the target event includes detecting a communication failure in a first forwarding node, then setting the bandwidth allocated to the first target user in the first forwarding node as a single-point allocated bandwidth, wherein the first forwarding node cannot communicate with other forwarding nodes due to the communication failure but can be used to forward the services of the first target user, wherein the single-point allocated bandwidth is determined based on a limited bandwidth, and the limited bandwidth is used to limit the total bandwidth allowed to be used by the first target user. Forwarding node failures include forwarding failures and communication failures. If a forwarding node experiences a forwarding failure, it cannot communicate with other nodes or forward the target user's services. In this case, the scheduling information for the target user can be determined based on the bandwidth requirements of other forwarding nodes that have not experienced failures. If a forwarding node experiences a communication failure, meaning it cannot communicate with other nodes but can still forward the target user's services, the bandwidth allocated to the target user in that forwarding node can be set as the target user's single-point allocated bandwidth. The single-point allocated bandwidth is determined based on the user's limited bandwidth. The scheduling node can determine the scheduling information based on the bandwidth requirements of other forwarding nodes that have not experienced failures.

[0028] In a second aspect, an electronic device is provided, comprising: a memory including computer-readable instructions; and a processor communicating with the memory, the processor being configured to execute the computer-readable instructions, causing the electronic device to perform the distributed scheduling method described in any one aspect.

[0029] Thirdly, a computer-readable storage medium is provided, including a program or instructions that, when executed by a processor, implement the distributed scheduling method as described in any one of the first aspects.

[0030] Fourthly, a chip is provided, including a processor for retrieving and executing instructions stored in a memory, causing an electronic device on which the chip is installed to perform the distributed scheduling method described in any one of the first aspects.

[0031] Fifthly, a computer program product is provided, the computer program product comprising instructions that, when executed by a computer, implement the method as described in any one of the first aspects.

[0032] The beneficial effects of each possible implementation of the electronic device provided in the second aspect of the embodiments of this application, the computer-readable storage medium provided in the third aspect, the chip provided in the fourth aspect, and the computer program product provided in the fifth aspect can be referred to the descriptions of the various possible implementations in the first aspect, and will not be repeated here. Attached Figure Description

[0033] Figure 1 This is a schematic diagram of a scene;

[0034] Figure 2 A flowchart illustrating a distributed scheduling method provided in an embodiment of this application;

[0035] Figure 3 A flowchart illustrating a distributed scheduling method provided in an embodiment of this application;

[0036] Figure 4 A flowchart illustrating a distributed scheduling method provided in an embodiment of this application;

[0037] Figure 5 A flowchart illustrating a distributed scheduling method provided in this application embodiment.

[0038] Figure 6 A schematic diagram illustrating communication between forwarding nodes provided in an embodiment of this application;

[0039] Figure 7 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0040] The technical solutions in this application will now be described with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments in this specification, and not all of them.

[0041] To improve the reliability of user data transmission, in practical scenarios, each user's service is typically forwarded by multiple forwarding nodes (such as switches). Figure 1 As shown, Figure 1 This is a schematic diagram of a scenario where user A's service is forwarded by three forwarding nodes: Forwarding Node 1, Forwarding Node 2, and Forwarding Node 3. Before forwarding user services, the bandwidth for each user within each forwarding node needs to be allocated. The following two schemes are typically used for bandwidth allocation among the users within the forwarding nodes:

[0042] Option 1: In Figure 1In this application scenario, if user A's contracted bandwidth is 300Mbps, and the bandwidth allocated to user A in each of the three forwarding nodes is 300Mbps, this solution can meet user A's bandwidth requirements. However, in this solution, the network needs to allocate 900Mbps of bandwidth to user A, which is much larger than the user's contracted bandwidth, increasing the network's bandwidth costs. If the bandwidth allocated to user A is too large, the bandwidth actually used by the user may exceed their contracted bandwidth; for example, if user A's allocated bandwidth is 900Mbps, but user A's actual bandwidth usage is 800Mbps, the actual bandwidth used by user A's service in the three forwarding nodes will be 300Mbps, 200Mbps, and 300Mbps respectively, far exceeding user A's contracted bandwidth, which may affect the bandwidth usage of other users.

[0043] Option 2: In Figure 1 In this application scenario, user A's contracted bandwidth is 300Mbps, and the bandwidth allocated to user A in each of the three forwarding nodes is set to 100Mbps. However, in reality, the traffic from user A's various services is not evenly distributed across the three forwarding nodes. For example, the actual bandwidth required by user A's services in the three forwarding nodes might be 150Mbps, 75Mbps, and 75Mbps respectively. Since user A is allocated 100Mbps bandwidth in each of the three forwarding nodes, the bandwidth allocated to user A in one forwarding node cannot meet user A's actual bandwidth requirements (e.g., the actual bandwidth required by user A (150Mbps) is much greater than the allocated bandwidth of 100Mbps); the bandwidth allocated to user A in the other two forwarding nodes is not fully utilized (e.g., the actual bandwidth required by user A (75Mbps) is much less than the allocated bandwidth of 100Mbps). The bandwidth required by user A's services in the forwarding nodes is not matched with the allocated bandwidth. User A is allocated 300Mbps of bandwidth, but actually uses (100+75+75)Mbps = 250Mbps. The underutilization of the allocated bandwidth affects the data transmission rate of user A's services.

[0044] To address the aforementioned issues, this application provides a distributed scheduling method. Since a user's service can be forwarded by multiple forwarding nodes, the bandwidth required by the user's service in each of these forwarding nodes can be obtained. The bandwidth allocated to each user in each forwarding node is determined based on this bandwidth requirement. By allocating usable bandwidth to forwarding nodes according to the bandwidth required by the user's service, a reasonable allocation of bandwidth among users in forwarding nodes is achieved. On one hand, allocating bandwidth to users in forwarding nodes based on the bandwidth required by the user's service in each of these multiple forwarding nodes avoids allocating excessive bandwidth to any single user, preventing bandwidth waste and further minimizing impact on the bandwidth usage of other users in the forwarding nodes. On the other hand, since the allocated bandwidth to users in forwarding nodes is determined based on the bandwidth required by the user's service, the allocated bandwidth meets the user's bandwidth needs, thus avoiding the impact of insufficient bandwidth allocation on the data forwarding rate of the user's service. In this way, the allocation of user bandwidth in forwarding nodes becomes more reasonable.

[0045] The distributed scheduling method provided in this application is applied to scenarios where a user's services are forwarded by multiple forwarding nodes. These forwarding nodes can be hardware devices with data forwarding capabilities, such as hubs, switches, bridges, routers, gateways, network interface cards, and wireless access points. In other implementations, the forwarding nodes can also be virtual modules within electronic devices; for example, a forwarding node can be a virtual machine with data forwarding capabilities within server A.

[0046] Optionally, if the multiple forwarding nodes used to forward user services are multiple virtual modules in the same electronic device, the multiple virtual modules can communicate through the interface of the virtual switch; if the multiple forwarding nodes are virtual modules in different electronic devices, the multiple virtual modules can communicate through an Ethernet interface, such as a Gigabit Ethernet (GE) interface.

[0047] Please see Figure 2 , Figure 2 This is a flowchart illustrating a distributed scheduling method provided in an embodiment of this application. Figure 2 The distributed scheduling methods include: S201 to S202.

[0048] S201. The scheduling node obtains the first bandwidth requirement information and the second bandwidth requirement information. The first bandwidth requirement information is used to indicate the bandwidth required by the service of the first target user in the first forwarding node, and the second bandwidth requirement information is used to indicate the bandwidth required by the service of the first target user in the second forwarding node. Both the first forwarding node and the second forwarding node are used to forward the service of the first target user.

[0049] Optionally, the bandwidth requirement information includes the actual bandwidth needed by the first target user in the forwarding node. For example, if the bandwidth required by the first target user's service in the first forwarding node is 100Mbps, then the bandwidth requirement information carries 100Mbps. In other implementations, the bandwidth requirement information may include other values, such as forwarding rate or inflow rate, so the scheduling node can determine the bandwidth required by the user's service in the forwarding node based on the obtained forwarding rate or inflow rate.

[0050] S202. The scheduling node determines the scheduling information based on the first bandwidth requirement information and the second bandwidth requirement information. The scheduling information includes the bandwidth allocated to the first target user in the first forwarding node and / or the bandwidth allocated to the first target user in the second forwarding node.

[0051] Optionally, the scheduling node can predict the bandwidth required by the user in the forwarding node in the second time period based on the bandwidth required by the user in the first time period, and allocate the bandwidth of the user in the forwarding node in the second time period (i.e. the bandwidth allocated to the user in the forwarding node) according to the predicted bandwidth, so that the forwarding node forwards the user's service according to the bandwidth allocated to the user in the second time period, wherein the second time period is later than the first time period.

[0052] Thus, both the first and second forwarding nodes are used to forward the services of the first target user. The scheduling node first obtains the bandwidth required by the first target user's services from both the first and second forwarding nodes. Then, based on the bandwidth required by the first target user's services, it determines the bandwidth allocated to the first target user in the first forwarding node and / or the bandwidth allocated to the first target user in the second forwarding node. By allocating bandwidth to users in the forwarding nodes according to the bandwidth required by the user's services, a reasonable allocation of bandwidth among users in the forwarding nodes can be achieved. On the one hand, this avoids allocating too much bandwidth to users, leading to underutilization of bandwidth and wasted bandwidth resources. On the other hand, since the bandwidth allocated to users in the forwarding nodes is determined based on the bandwidth required by the user's services, it avoids the impact of insufficient bandwidth allocation on the data forwarding rate of user services.

[0053] Optionally, Figure 2 In the distributed scheduling method, the scheduling node can be a forwarding node used to forward user services, or it can be a node different from the forwarding node. The following combines... Figures 3 to 5 The explanation is as follows: the scheduling node can be... Figure 3 The first and second forwarding nodes, and the scheduling node can also be Figure 4 The first forwarding node in the process; the scheduling node can also be Figure 5 The target node in the process.

[0054] Please see Figure 3 , Figure 3 This is a flowchart illustrating a distributed scheduling method provided in an embodiment of this application. Figure 3 Both the first and second forwarding nodes are used to forward the services of the first target user. Figure 3 The distributed scheduling methods include: S301 to S304.

[0055] S301. The first forwarding node sends first bandwidth requirement information to the second forwarding node. The first bandwidth requirement information is used to indicate the bandwidth required by the service of the first target user in the first forwarding node.

[0056] S302, The second forwarding node sends second bandwidth requirement information to the first forwarding node. The second bandwidth requirement information is used to indicate the bandwidth required by the service of the first target user in the second forwarding node.

[0057] S303. The first forwarding node determines the bandwidth allocated to the first target user in the first forwarding node based on the first bandwidth requirement information and the second bandwidth requirement information.

[0058] S304. The second forwarding node determines the bandwidth allocated to the first target user in the second forwarding node based on the first bandwidth requirement information and the second bandwidth requirement information.

[0059] Figure 3 In this embodiment, both the first forwarding node and the second forwarding node are used to forward the services of the first target user. The first and second forwarding nodes respectively obtain the bandwidth required by the first target user's services from the two forwarding nodes, and determine the bandwidth allocated to the user in each forwarding node based on the bandwidth required by the user's services in the forwarding nodes. In other embodiments, if the first target user's services are forwarded by multiple forwarding nodes, the forwarding node obtains the bandwidth required by the first target user's services from each of the multiple forwarding nodes, and determines the bandwidth allocated to the first target user in that forwarding node based on the bandwidth required by the first target user's services in each of the multiple forwarding nodes.

[0060] Please see Figure 4 , Figure 4 This is a flowchart illustrating a distributed scheduling method provided in an embodiment of this application. Figure 4 Both the first and second forwarding nodes are used to forward the services of the first target user. Figure 4 The distributed scheduling methods include: S401 to S403.

[0061] S401. The second forwarding node sends second bandwidth requirement information to the first forwarding node. The second bandwidth requirement information is used to indicate the bandwidth required by the service of the first target user in the second forwarding node.

[0062] S402, the first forwarding node receives the second bandwidth requirement information and determines the scheduling information based on the first bandwidth requirement information and the second bandwidth requirement information. The scheduling information includes the bandwidth allocated to the first target user in the first forwarding node and the bandwidth allocated to the first target user in the second forwarding node. The first bandwidth requirement information is used to indicate the bandwidth required by the service of the first target user in the first forwarding node.

[0063] S403. The first forwarding node sends the bandwidth allocated to the first target user in the second forwarding node to the second forwarding node.

[0064] Figure 4 In this system, both the first and second forwarding nodes are used to forward the services of the first target user. The first forwarding node obtains the bandwidth required by the first target user's services from each of the two forwarding nodes, determines scheduling information based on the bandwidth required by the first target user's services from each forwarding node, and then sends the bandwidth allocated to the first target user in the second forwarding node. If the first target user's services are forwarded by multiple forwarding nodes, one forwarding node obtains the bandwidth required by the first target user's services from the other forwarding nodes, then determines the bandwidth allocated to the first target user in each forwarding node based on the obtained bandwidth required by the user's services from each forwarding node, and sends the bandwidth allocated to the first target user in each forwarding node to the corresponding forwarding node, so that the forwarding node forwards the first target user's services according to the allocated bandwidth.

[0065] Please see Figure 5 , Figure 5 This is a flowchart illustrating a distributed scheduling method provided in an embodiment of this application. Figure 5 Both the first and second forwarding nodes are used to forward the services of the first target user. The target node is different from the first and second forwarding nodes. Figure 5 The distributed scheduling methods include: S501 to S505.

[0066] S501. The first forwarding node sends first bandwidth requirement information to the target node. The first bandwidth requirement information is used to indicate the bandwidth required by the service of the first target user in the first forwarding node.

[0067] S502, The second forwarding node sends the second bandwidth requirement information to the target node. The second bandwidth requirement information is used to indicate the bandwidth required by the service of the first target user in the second forwarding node.

[0068] S503. The target node determines the scheduling information based on the first bandwidth requirement information and the second bandwidth requirement information. The scheduling information includes the bandwidth allocated to the first target user in the first forwarding node and the bandwidth allocated to the first target user in the second forwarding node.

[0069] S504. The target node sends the bandwidth allocated to the first target user in the first forwarding node to the first forwarding node.

[0070] S505, The target node sends the bandwidth allocated to the first target user in the second forwarding node to the second forwarding node.

[0071] Optionally, Figure 5 In this process, the target node differs from the first and second forwarding nodes. While the first and second forwarding nodes are used to forward the services of the first target user, the target node is not used for forwarding these services. The target node obtains the bandwidth required for the first target user's services from each of the two forwarding nodes, determines scheduling information based on this bandwidth, and then sends the allocated bandwidth for each forwarding node to the corresponding forwarding node. This allows the forwarding nodes to schedule the first target user's services according to the allocated bandwidth. If the first target user's services are forwarded by multiple forwarding nodes, the target node obtains the bandwidth required for the first target user's services from each of the multiple forwarding nodes. Based on this obtained bandwidth requirement, the target node determines the allocated bandwidth for each forwarding node and sends this allocated bandwidth to the corresponding forwarding node. This allows the forwarding nodes to schedule the first target user's services according to the received allocated bandwidth.

[0072] Figures 2 to 5 In this implementation, the service of the first target user is forwarded by the first forwarding node and the second forwarding node, meaning the service of the first target user is forwarded by two forwarding nodes. In other embodiments, the service of the first target user can be forwarded by N forwarding nodes. This can be achieved by obtaining the bandwidth required by the first target user's service from each of the N forwarding nodes and determining scheduling information based on the bandwidth required by each forwarding node. Here, N is a positive integer greater than or equal to 3. Thus, by allocating bandwidth to users in the forwarding nodes according to the bandwidth required by the first target user's service in each of the N forwarding nodes, a reasonable allocation of user bandwidth can be achieved. On the one hand, allocating bandwidth based on the bandwidth required by the user avoids the problem of wasted bandwidth resources caused by allocating too much bandwidth to the user. On the other hand, since the bandwidth allocated to the user in the forwarding node is determined based on the bandwidth required by the user's service in the forwarding node, the impact of insufficient bandwidth allocation on the data forwarding rate of the user's service can be avoided.

[0073] It can be seen that, Figure 3 The first and second forwarding nodes in the middle Figure 4 The first forwarding node in Figure 5 All target nodes in the process can be executed as scheduling nodes. Figure 2 The distributed scheduling method in the following embodiments is executed by the scheduling node. Figure 2 The distributed scheduling method will be used as an example for illustration.

[0074] In some embodiments, the first bandwidth requirement information includes the first inflow rate of the service of the first target user in the first forwarding node, and the second bandwidth requirement information includes the second inflow rate of the service of the first target user in the second forwarding node, wherein the inflow rate is the transmission rate of the service of the first target user on the ingress port side of the forwarding node or the rate at which the service traffic of the first target user flows into the forwarding node. Then, S202 includes: the scheduling node determining scheduling information based on the first inflow rate and the second inflow rate. The inflow rate indicates the rate at which the traffic of the user's service arrives in the forwarding node. The scheduling node can determine the bandwidth required by the user's service in the forwarding node through the user's inflow rate, and allocate bandwidth according to the bandwidth required by the user in each of the multiple forwarding nodes to determine the bandwidth allocated to the user in the forwarding node. This achieves a reasonable allocation of bandwidth for the user in the forwarding node. On the one hand, allocating bandwidth based on the bandwidth required by the user avoids the problem of wasted bandwidth resources caused by allocating too much bandwidth to the user. On the other hand, since the bandwidth allocated to the user in the forwarding node is determined based on the bandwidth required by the user's service in the forwarding node, the impact of insufficient bandwidth allocation on the data forwarding rate of the user's service can be avoided.

[0075] Optionally, the scheduling node can set the bandwidth allocated to the user in the forwarding node to the inflow rate of the user's service in the forwarding node. For example, a first forwarding node and a second forwarding node are used to forward the service of a first target user. The bandwidth allocated to the first target user in both the first and second forwarding nodes is 70Mbps. If the inflow rate of the first target user's service in the first forwarding node is 60Mbps and the inflow rate of the first target user's service in the second forwarding node is 80Mbps, then the bandwidth required by the first target user in the two forwarding nodes is 60Mbps and 80Mbps, respectively. To ensure that the bandwidth allocated to the user in the forwarding node meets the user's bandwidth requirements, the bandwidth allocated to the first target user in the first forwarding node is updated to 60Mbps, and the bandwidth allocated to the first target user in the second forwarding node is updated to 80Mbps.

[0076] Optionally, the first bandwidth requirement information includes the first forwarding rate of the service of the first target user in the first forwarding node, and the second bandwidth requirement information includes the second forwarding rate of the service of the first target user in the second forwarding node. In S202, a possible implementation of the scheduling node determining scheduling information based on the first and second bandwidth requirement information is as follows: the scheduling node determines the scheduling information based on the first and second forwarding rates. The forwarding rate is the amount of data of the service of the first target user processed by the forwarding node per unit time, or the transmission rate of the service of the first target user on the output port side of the forwarding node. The forwarding rate represents the amount of data of the service of the first target user transmitted by the forwarding node per unit time. The bandwidth required by the user's service in the forwarding node is determined based on the forwarding rate of the user's service in the forwarding node. The bandwidth allocated to the user in the forwarding node is determined based on the bandwidth required by the user's service, avoiding excessive bandwidth allocation to the user in the forwarding node that is not fully utilized, thus wasting bandwidth resources. The bandwidth allocated to the user in the forwarding node is determined by the forwarding rate of the user's service in the forwarding node, ensuring that the bandwidth allocated to the user in the forwarding node meets the user's bandwidth requirements, so that the allocated bandwidth can be fully utilized, thereby improving the data forwarding rate of the user's service.

[0077] Optionally, the scheduling node can set the bandwidth allocated to a user in the forwarding node to the forwarding rate of the user's service in the forwarding node. For example, the service of a first target user is forwarded by a first forwarding node and a second forwarding node, and the bandwidth allocated to the first target user in both the first and second forwarding nodes is 70Mbps. If the forwarding rate of the first target user's service in the first forwarding node is 30Mbps, and the forwarding rate of the first target user's service in the second forwarding node is 20Mbps, the forwarding rate of the user's service in both forwarding nodes is much less than the allocated 70Mbps bandwidth, resulting in underutilization of the allocated bandwidth and a waste of bandwidth resources. Therefore, the bandwidth allocated to the user in the forwarding node can be set to the forwarding rate of the user in the forwarding node. For example, if the forwarding rate of the first target user in the first forwarding node is 30Mbps, the bandwidth allocated to the first target user in the first forwarding node can be updated to 30Mbps; if the forwarding rate of the first target user in the second forwarding node is 20Mbps, the bandwidth allocated to the first target user in the second forwarding node can be updated to 20Mbps.

[0078] If the inflow rate of the first target user's service in a forwarding node is greater than the forwarding rate, then the forwarding node will cache the unprocessed service data of the first target user. For example, if the inflow rate of a user's service in forwarding node 1 is 30 Mbps and the forwarding rate is 25 Mbps, since the forwarding rate is less than the inflow rate, the forwarding node can cache the data of the unforwarded service. If it needs to cache (30-25) Mb = 5 Mb per second, then the scheduling node can determine the bandwidth required by the first target user's service in the forwarding node based on the cache length and forwarding rate of the first target user's service in the forwarding node.

[0079] Optionally, the first bandwidth requirement information includes the first forwarding rate of the service of the first target user in the first forwarding node and the buffer length of the service of the first target user in the first forwarding node. The second bandwidth requirement information includes the second forwarding rate of the service of the first target user in the second forwarding node and the buffer length of the service of the first target user in the second forwarding node. The forwarding rate indicates the amount of user service data transmitted by the forwarding node per unit time, and the buffer length of the service indicates the amount of user service data that is not forwarded in the forwarding node. The two are combined to determine the bandwidth required by the user's service in the forwarding node, and the bandwidth allocated to the user in the forwarding node can be determined based on the bandwidth required by the user's service in the forwarding node.

[0080] Optionally, the scheduling node can set the bandwidth allocated to a user in a forwarding node to the sum of the forwarding rate and the service buffer length within a preset time period in that forwarding node. For example, the service of a first target user is forwarded by a first forwarding node and a second forwarding node. Within the preset time period, the forwarding rate of the first target user's service in the first forwarding node is 60Mbps, and the service buffer length of the first target user in the first forwarding node is 10Mb. The forwarding rate of the first target user's service in the second forwarding node is 80Mbps, and the service buffer length of the first target user in the second forwarding node is also 10Mb. The bandwidth required by the first target user in the first forwarding node can be determined based on the sum of the forwarding rate and the service buffer length within the preset time period. Then, the bandwidth allocated to the user in the forwarding node is determined based on the bandwidth required by the user's service in the forwarding node. Therefore, the bandwidth allocated to the first target user in the first forwarding node is (60+10)Mbps = 70Mbps, and the bandwidth allocated to the first target user in the second forwarding node is (80+10)Mbps = 90Mbps.

[0081] Optionally, the demand indication information corresponding to the forwarding node is used to indicate the bandwidth required by the user's service in the forwarding node. If the demand indication information includes the inflow rate of user services in the forwarding node, the scheduling node can determine the bandwidth required by the user's services in that forwarding node based on the inflow rate, such as setting the bandwidth required by the user's services to the inflow rate. Similarly, if the demand indication information includes the forwarding rate of user services in the forwarding node, the scheduling node can also determine the bandwidth required by the user's services in that forwarding node based on the forwarding rate, such as setting the bandwidth required by the user's services to the forwarding rate. Furthermore, if the demand indication information includes both the forwarding rate and the service buffer length of user services in the forwarding node, the scheduling node can also determine the bandwidth required by the user's services in that forwarding node based on these two parameters, such as setting the bandwidth required by the user's services to the sum of the forwarding rate and the service buffer length within a preset time period. Finally, if the demand indication information includes both the inflow rate and the service buffer length of user services in the forwarding node, the scheduling node can also determine the bandwidth required by the user's services in that forwarding node based on these two parameters, such as setting the bandwidth required by the user's services to the sum of the service buffer length and the inflow rate within a preset time period in the forwarding node. After determining the bandwidth required by the user's service in the forwarding node, the scheduling node can determine the bandwidth allocated to the user in the forwarding node based on parameters such as the bandwidth allowed by the user and the available idle bandwidth of the forwarding node.

[0082] In some embodiments, the scheduling node is pre-configured with a limited bandwidth for the first target user, where the limited bandwidth is the total bandwidth that the network allows the first target user to use.

[0083] Optionally, the bandwidth limit is used to limit the maximum bandwidth that the first target user is allowed to use. If the first target user's service is forwarded by multiple forwarding nodes, the bandwidth limit is greater than or equal to the sum of the bandwidths that the first target user is allowed to use in the multiple forwarding nodes. For example, if the bandwidth limit for the first target user is 300Mbps, and the first target user's service is forwarded by three forwarding nodes, and the bandwidth allocated to the first target user in each of the three forwarding nodes is 100Mbps, then the sum of the bandwidths allocated to the first target user in the three forwarding nodes is equal to the bandwidth limit of 300Mbps.

[0084] Optionally, the limited bandwidth is determined based on the contracted bandwidth between the first target user and the network. For example, the contracted bandwidth is the maximum transmission rate agreed upon between the network (e.g., the operator) and the user. In this case, the limited bandwidth can be equal to the contracted bandwidth. In some embodiments, to improve the user experience, the limited bandwidth is greater than the contracted bandwidth; for example, if the contracted bandwidth is 300 Mbps, then the user's limited bandwidth is set to 320 Mbps. In other implementations, the user's limited bandwidth can also be dynamically adjusted based on the user's actual bandwidth requirements.

[0085] When determining the bandwidth allocated to users in a forwarding node, it is necessary to both meet the bandwidth requirements of the users in the forwarding node and allocate the bandwidth within the allowed range.

[0086] Optionally, one possible implementation of the scheduling node determining scheduling information based on the first bandwidth requirement information and the second bandwidth requirement information in S202 is as follows: the scheduling node determines the scheduling information based on the first bandwidth requirement information, the second bandwidth requirement information, and the limited bandwidth. Based on the user's limited bandwidth and the bandwidth required by the user in each forwarding node, the bandwidth allocated to the user in the forwarding node is determined, achieving bandwidth allocation within the allowed range of the limited bandwidth, and ensuring that the bandwidth allocated to the user in the forwarding node meets the bandwidth requirements of the user's services in the forwarding node.

[0087] Optionally, if the bandwidth requirement information of a user in a forwarding node is used to indicate the bandwidth required by the user's service in that forwarding node, then the scheduling node can determine the bandwidth allocated to the user in the forwarding node based on the bandwidth requirement ratio corresponding to the forwarding node. The bandwidth requirement ratio corresponding to the forwarding node is equal to the ratio of the bandwidth required by the user's service in that forwarding node to the total bandwidth required by the users in multiple forwarding nodes.

[0088] Optionally, if the bandwidth requirement information includes the inflow rate, then the bandwidth requirement ratio is the ratio of the inflow rate of the user's service in the forwarding node to the total inflow rate, where the total inflow rate is the sum of the inflow rates of the user's service in multiple forwarding nodes. The bandwidth allocated to the user in that forwarding node can then be the product of the limited bandwidth and the bandwidth requirement ratio corresponding to the forwarding node. For example, the service of the first target user is forwarded by a first forwarding node and a second forwarding node. The limited bandwidth for the first target user is 300 Mbps. The inflow rate of the first target user's service in the first forwarding node is 60 Mbps, and the inflow rate of the first target user's service in the second forwarding node is 90 Mbps. Therefore, the bandwidth requirement ratio corresponding to the first forwarding node is 60 / (90+60) = 2 / 5; the bandwidth requirement ratio corresponding to the second forwarding node is 90 / (90+60) = 3 / 5. Thus, the bandwidth allocated to the first target user in the first forwarding node is 300 * 2 / 5 Mbps = 120 Mbps, and the bandwidth allocated to the first target user in the second forwarding node is 300 * 3 / 5 Mbps = 180 Mbps.

[0089] In other implementations, if the total bandwidth required by users across multiple forwarding nodes is less than or equal to the limited bandwidth, the bandwidth allocated to users in each forwarding node can be set to the bandwidth required by the user's service in that forwarding node. For example, the service of a first target user is forwarded by a first forwarding node and a second forwarding node. The limited bandwidth for the first target user is 300 Mbps. The bandwidth required by the first target user's service in the first forwarding node is 60 Mbps, and the bandwidth required by the first target user's service in the second forwarding node is 90 Mbps. The total bandwidth required by the first target user in the two forwarding nodes is (90 + 60) Mbps = 150 Mbps, which is less than 300 Mbps. Therefore, the bandwidth allocated to the first target user in the first forwarding node is set to 60 Mbps, and the bandwidth allocated to the first target user in the second forwarding node is set to 90 Mbps.

[0090] This application can predict the bandwidth required by a first target user in a first time period in each of multiple forwarding nodes in a second time period, and determine the bandwidth allocated to the first target user in the second time period based on the predicted bandwidth, where the first time period is earlier than the second time period. However, in real-world scenarios, the service traffic of the first target user in multiple forwarding nodes is constantly changing, and the bandwidth required by the first target user in multiple forwarding nodes is also constantly changing. The predicted bandwidth for the first target user in the second time period may differ from the actual bandwidth required by the user in the second time period, for example, the actual bandwidth required by the first target user in the forwarding node in the second time period may be greater than the predicted bandwidth. Therefore, the bandwidth allocated to the first target user in the forwarding node must not only meet the predicted bandwidth but also the bandwidth required due to the fluctuation of the first target user's traffic. Therefore, when the limited bandwidth of the first target user is greater than the sum of the predicted bandwidths in multiple forwarding nodes, the remaining bandwidth can be allocated to the first target user in the forwarding nodes to meet the new bandwidth requirements generated by the fluctuation of the first target user's service traffic. The remaining bandwidth is the difference between the limited bandwidth and the sum of the predicted bandwidths in multiple forwarding nodes.

[0091] Optionally, the scheduling node determines scheduling information based on the first bandwidth requirement information, the second bandwidth requirement information, and the limited bandwidth, including:

[0092] The scheduling node determines the bandwidth required for the service of the first target user in the first forwarding node based on the first bandwidth requirement information; it determines the bandwidth required for the service of the first target user in the second forwarding node based on the second bandwidth requirement information; if the sum of the bandwidths is less than the limited bandwidth, the bandwidth allocated to the first target user in the first forwarding node is determined based on the remaining bandwidth and the bandwidth required for the service of the first target user in the first forwarding node, and / or the bandwidth allocated to the first target user in the second forwarding node is determined based on the remaining bandwidth and the bandwidth required for the service of the first target user in the second forwarding node. Here, the remaining bandwidth is the difference between the limited bandwidth and the sum of the bandwidths, and the sum of the bandwidths is the sum of the bandwidth required for the service of the first target user in the first forwarding node and the bandwidth required for the service of the first target user in the second forwarding node. When the total bandwidth required by users in multiple forwarding nodes is less than the user's limited bandwidth, the distribution of remaining bandwidth can improve the balance of bandwidth allocated to users in multiple forwarding nodes. This balanced distribution of bandwidth ensures that the allocated bandwidth not only meets the bandwidth requirements but also satisfies the bandwidth demands arising from fluctuations in user traffic across multiple forwarding nodes.

[0093] Optionally, the scheduling node allocates the remaining bandwidth to ensure that users across multiple forwarding nodes receive the same or similar bandwidth. For example, if the bandwidth limit for a first target user is 200Mbps, the inflow rate of the first target user in the first forwarding node is 60Mbps, and the inflow rate of the first target user in the second forwarding node is 80Mbps, then the bandwidth required for the first target user's service in the first forwarding node is 60Mbps, and the bandwidth required for the first target user in the second forwarding node is 80Mbps. Since 60 + 80 = 140 is less than 200 and the difference is 60, the remaining bandwidth is 60Mbps. To ensure that the bandwidth allocated to the first target user in the two forwarding nodes is the same or similar, the remaining bandwidth allocated to the first target user in the first forwarding node is 40Mbps, and the remaining bandwidth allocated to the first target user in the second forwarding node is 20Mbps. Therefore, the bandwidth allocated to the first target user in the two forwarding nodes is (60 + 40)Mbps = 100Mbps and (80 + 20)Mbps = 100Mbps respectively, meaning that the bandwidth allocated to the first target user in both forwarding nodes is 100Mbps.

[0094] In other embodiments, the remaining bandwidth can be evenly distributed among multiple forwarding nodes to improve the balance of idle bandwidth among users in multiple forwarding nodes. This balance helps meet the bandwidth demands arising from fluctuations in user traffic across multiple forwarding nodes. Idle bandwidth refers to the additional bandwidth allocated after meeting the bandwidth requirements of users' services in the forwarding nodes. For example, if the limited bandwidth for the first target user is 200Mbps, the inflow rate of the first target user in the first forwarding node is 60Mbps, and the inflow rate of the first target user in the second forwarding node is 80Mbps, then the bandwidth required by the first target user's service in the first forwarding node is 60Mbps, and the bandwidth required by the first target user in the second forwarding node is 80Mbps. Since 60 + 80 = 140, which is less than 200 and the difference is 60, the remaining bandwidth is 60Mbps. To ensure that the idle bandwidth of the first target user is the same in both forwarding nodes, the remaining bandwidth allocated to the first target user in both forwarding nodes is 30Mbps. The bandwidths allocated to the first target user in the two forwarding nodes are (60+30)Mbps=90Mbps and (80+30)Mbps=30Mbps, respectively. That is, the idle bandwidth of the first target user in both forwarding nodes is 30Mbps.

[0095] In real-world scenarios, users typically focus on bandwidth usage within a preset time period, which can be determined by the forwarding rate of their services. For example, if a user's limited bandwidth is 300Mbps, and their forwarding rate in the first time period is 250Mbps, then the user's actual bandwidth usage in the first time period is 250Mbps. If the user's actual bandwidth usage is less than their limited bandwidth, compensation can be provided in the next time period. For instance, allocating 350Mbps of bandwidth to the user in the second time period will ensure that the forwarding rate of their services in the second time period is equal to or close to 350Mbps. This results in an average forwarding rate of 300Mbps across the two time periods, bringing the user's actual bandwidth usage closer to their limited bandwidth.

[0096] In some embodiments, the first bandwidth requirement information includes a first inflow rate and a first forwarding rate, and the second bandwidth requirement information includes a second inflow rate and a second forwarding rate. Then, the bandwidth allocated to a user at a forwarding node can be determined by combining the inflow rate and forwarding rate of the user's service at the forwarding node. The scheduling node determines scheduling information based on the first bandwidth requirement information, the second bandwidth requirement information, and the limited bandwidth, including:

[0097] The scheduling node determines the bandwidth required for the service of the first target user in the first forwarding node and / or the bandwidth required for the service of the first target user in the second forwarding node based on the first inflow rate, the second inflow rate, and the limited bandwidth.

[0098] The scheduling node determines the compensation bandwidth based on the first forwarding rate, the limited bandwidth, and the second forwarding rate.

[0099] The scheduling node determines the bandwidth allocated to the first target user in the first forwarding node based on the bandwidth required by the first target user's service and the compensation bandwidth in the first forwarding node, and / or determines the bandwidth allocated to the first target user in the second forwarding node based on the bandwidth required by the first target user's service and the compensation bandwidth in the second forwarding node.

[0100] The scheduling node can determine the bandwidth required by the user's service in each forwarding node based on the inflow rate of the user's service in the forwarding node; and determine the actual bandwidth used by the user in each forwarding node based on the forwarding rate of the user's service in the forwarding node. Based on the actual bandwidth used by the user and the limited bandwidth, the compensation bandwidth for the user is determined; and based on the compensation bandwidth and the bandwidth required by the user's service, the bandwidth allocated to each user in each forwarding node is determined, so that the actual bandwidth used by the user within a preset time period is equal to or close to the user's limited bandwidth.

[0101] Optionally, the inflow rate of a user's service in a forwarding node indicates the bandwidth required by the user's service in the forwarding node. If the sum of the first inflow rate and the second inflow rate is less than or equal to the limited bandwidth, the bandwidth required by the user in the forwarding node can be set to the corresponding inflow rate. For example, if the limited bandwidth of the first target user is 300 Mbps, the inflow rate of the first target user in the first forwarding node is 180 Mbps, and the inflow rate of the first target user in the second forwarding node is 90 Mbps, then 90 + 180 = 270, which is less than 300. Therefore, the bandwidth required by the first target user's service in the first forwarding node is 180 Mbps, and the bandwidth required by the first target user's service in the second forwarding node is 90 Mbps. In other implementations, the bandwidth required by the user's service in the forwarding node can also be determined based on the bandwidth requirement ratio of the forwarding node mentioned above. For example, if the bandwidth limit for the first target user is 300Mbps, the inflow rate of the first target user in the first forwarding node is 180Mbps, and the inflow rate of the first target user in the second forwarding node is 90Mbps, then the bandwidth requirement ratio corresponding to the first forwarding node is 180 / (90+180) = 2 / 3, and the bandwidth requirement ratio corresponding to the second forwarding node is 90 / (90+180) = 1 / 3. Therefore, the bandwidth required by the first target user's service in the first forwarding node is 300*2 / 3Mbps = 200Mbps, and the bandwidth required by the first target user's service in the second forwarding node is 300*1 / 3Mbps = 100Mbps.

[0102] Optionally, the forwarding rate is used to indicate the actual bandwidth used by the user in the forwarding nodes. The scheduling node can then determine the compensation bandwidth based on the difference between the actual bandwidth used by the user and the limited bandwidth, where the actual bandwidth used by the user is the sum of the forwarding rates of the user's service across multiple forwarding nodes. For example, if the user's limited bandwidth is 300 Mbps, and the user's service is forwarded by a first forwarding node and a second forwarding node, with a forwarding rate of 100 Mbps in the first forwarding node and 150 Mbps in the second forwarding node, then 300 - (100 + 150) = 50, meaning the compensation bandwidth is 50 Mbps.

[0103] Optionally, after determining the compensation bandwidth, the scheduling node can distribute the compensation bandwidth evenly among multiple forwarding nodes. Then, based on the allocated compensation bandwidth and the bandwidth required by the user's service in each forwarding node, the bandwidth allocated to the user in that forwarding node is determined. For example, if the compensation bandwidth is 50Mbps and the user's service is forwarded by two forwarding nodes, then the compensation bandwidth allocated to the user's service in each forwarding node is 25Mbps. If the bandwidth required by the user's service in one of the forwarding nodes is 55Mbps, then the bandwidth allocated to the user in that forwarding node is (55+25)Mbps = 80Mbps. In other implementations, after determining the compensation bandwidth, the scheduling node can distribute the compensation bandwidth among multiple forwarding nodes so that the bandwidth allocated to the user in each forwarding node is similar or equal. For example, if the compensation bandwidth is 50Mbps and the user's service is forwarded by two forwarding nodes, and the bandwidth required by the user's service in the two forwarding nodes is 35Mbps and 25Mbps respectively, then the compensation bandwidth allocated to the user in the two forwarding nodes is 20Mbps and 30Mbps respectively. Therefore, the bandwidth allocated to the user in the two forwarding nodes is (35+20)Mbps=55Mbps and (25+30)Mbps=55Mbps respectively. That is, by adjusting the compensation bandwidth allocated to the user in each forwarding node, the bandwidth allocated to the user in the two forwarding nodes is the same or close.

[0104] To meet diverse user needs, user traffic can be further segmented for differentiated scheduling. For example, forwarding nodes can use queues to differentiate and schedule traffic based on these segmentations. Alternatively, forwarding nodes can employ hierarchical quality of service (HQoS) technology to differentiate and schedule different traffic streams, such as using different queues to transmit different service data streams.

[0105] In one possible implementation, the network can provide users with multiple services, each corresponding to a different type, such as video communication, voice communication, and data communication. Different queues can be assigned based on the service type; services of the same type correspond to the same queue, and traffic for that type of service is transmitted through the corresponding queue. Services of different types correspond to different queues. For example, video services such as video calls and video conferencing use the same queue, as do voice services such as voice calls and real-time voice conferencing. However, the queues for video calls and voice calls are different. In another possible implementation, a user's multiple services can correspond to multiple different types, such as voice calls, voice conferencing, video calls, live video streaming, and web browsing. Different types of services correspond to different queues, while services of the same type correspond to the same queue. For example, multiple voice calls and multiple video calls use the same queue, while the queues for voice calls and voice conferencing are different. In one possible implementation, a user's multiple services have different priorities. Services with the same priority correspond to the same queue, while services with different priorities correspond to different queues. For example, if video conferencing and video calls have the same priority, then the queue for video conferencing and the queue for video calls are the same type of queue. If web browsing and video calls have different priorities, then the queue for web browsing and the queue for video calls are different queues. Of course, a user's multiple services can also be divided into multiple queues based on other rules, and this application does not impose any restrictions on this.

[0106] Optionally, the first bandwidth requirement information is further used to indicate the bandwidth required by the queue corresponding to the service of the first target user in the first forwarding node, and the second bandwidth requirement information is further used to indicate the bandwidth required by the queue corresponding to the service of the first target user in the second forwarding node. The scheduling information also includes the bandwidth allocated to the queue corresponding to the service of the first target user in the first forwarding node and / or the bandwidth allocated to the queue corresponding to the service of the first target user in the second forwarding node. The forwarding node transmits the user's service traffic through queues. The scheduling node can determine the bandwidth allocated to the queues in the forwarding node based on the bandwidth required by the queue corresponding to the user's service. By allocating bandwidth to the queues in the forwarding node to transmit the traffic of the corresponding user's service, queue-level bandwidth allocation is achieved. On the one hand, the bandwidth of the queues in the forwarding node is allocated according to the bandwidth required by the queue corresponding to the user's service, so as to achieve reasonable allocation of queue bandwidth and avoid excessive bandwidth allocation to the queues, resulting in a waste of bandwidth resources. On the other hand, the bandwidth allocated to the queues is determined based on the bandwidth required by the queues in the forwarding node. The bandwidth allocated to the queues in the forwarding node can meet the bandwidth requirements of the queues, so that the bandwidth allocated to the queues can be fully utilized to improve the data transmission rate of the user's service.

[0107] A user has multiple services, each corresponding to a queue in a forwarding node. The following explanation uses the example of services with different priorities corresponding to different queues, and services with the same priority corresponding to the same queue. Since different services may have varying importance, their priorities may also differ. Different priority services correspond to different queues. To meet the different priority requirements of a user's multiple services, the user can assign different weights to different queues. When forwarding traffic through different queues at the forwarding node, bandwidth can be allocated preferentially to queues with higher weights, or more bandwidth can be allocated to queues with higher weights.

[0108] Optionally, the weight of the queue corresponding to the first target user's service can be described by weight setting information. This weight setting information can be pre-configured in the scheduling node and can be pre-set by the user or based on the priority of multiple services of the user. The weight setting information can be the weight value of the queue corresponding to the user's service. For example, the user's service corresponds to two queues: queue 1 and queue 2, where queue 1 has a weight of 1 and queue 2 has a weight of 2. The weight setting information can also be the weight ratio of different queues, such as the weight ratio of queue 1 to queue 2 being 2. Of course, the weight setting information can also be other features indicating the weight information of the queues corresponding to the user's services.

[0109] Optionally, one possible implementation of the scheduling node determining scheduling information based on the first bandwidth requirement information and the second bandwidth requirement information in S202 is as follows: The scheduling node determines the scheduling information based on the first bandwidth requirement information, the second bandwidth requirement information, and weight setting information. The first bandwidth requirement information is further used to indicate the bandwidth required by the queue corresponding to the service of the first target user in the first forwarding node, and the second bandwidth requirement information is further used to indicate the bandwidth required by the queue corresponding to the service of the first target user in the second forwarding node. The scheduling information includes the bandwidth allocated to the queue corresponding to the service of the first target user in the first forwarding node. The bandwidth of the queues in the forwarding node is allocated according to the bandwidth required by the queue corresponding to the user's service and the weight of the queue corresponding to the user's service, so that the bandwidth allocated to the queue corresponding to the user's service in the forwarding node satisfies both the bandwidth requirement of the queue in the forwarding node and the user's service priority requirement.

[0110] Optionally, the forwarding node transmits the corresponding service through a queue. Using the same principle as determining the bandwidth required for a user's service within the forwarding node, the bandwidth required for that queue in the forwarding node can be determined by the inflow rate and / or forwarding rate of the service corresponding to that queue. The bandwidth requirement information includes the inflow rate and / or forwarding rate of the service corresponding to that queue in the forwarding node. The scheduling node can then determine the bandwidth required for the queue corresponding to a user's service within the forwarding node based on the inflow rate and / or forwarding rate of the corresponding service in the forwarding node. For example, the bandwidth required for the queue corresponding to a user's service within the forwarding node can be set as the inflow rate of the service corresponding to that queue in the forwarding node.

[0111] Optionally, if the bandwidth allowed by the user can meet the bandwidth requirements of the queue corresponding to the user's service, then the bandwidth requirements of the queue corresponding to the user's service will be prioritized. In scenarios where the bandwidth allowed by the user is limited or does not meet the bandwidth requirements of the queue corresponding to the user's service, the bandwidth requirements of the queue with higher weight will be prioritized, thereby satisfying the priority requirements of the service corresponding to the queue with higher weight. Here, the limited bandwidth allowed by the user may be due to the performance limitations of the forwarding node, resulting in limited bandwidth available to the user.

[0112] For example, a user's service is forwarded by forwarding node 1 and forwarding node 2. The user's service corresponds to two queues in forwarding node 1 and forwarding node 2: queue 1 and queue 2. Based on bandwidth requirement information, it is determined that queue 1 in forwarding node 1 requires 100Mbps of bandwidth, queue 2 in forwarding node 1 requires 100Mbps of bandwidth, queue 1 in forwarding node 2 requires 100Mbps of bandwidth, and queue 2 in forwarding node 2 requires 100Mbps of bandwidth. Based on weight setting information, the weight ratio of queue 1 and queue 2 is determined to be 2:1. The bandwidth available to the user in forwarding node 1 is 100Mbps, and the bandwidth available to the user in forwarding node 2 is 100Mbps. Therefore, queue 1 in forwarding node 1 is allocated 100Mbps of bandwidth, queue 2 in forwarding node 1 is allocated 0Mbps of bandwidth, and queue 2 in forwarding node 2 is allocated 100Mbps of bandwidth. The bandwidth required by queue 2 in forwarding node 2 is 0Mbps. That is, since the bandwidth in the forwarding nodes cannot meet the bandwidth requirements of all queues, the bandwidth required by the queue with the higher weight is prioritized.

[0113] Optionally, the total bandwidth allowed to a user can be limited by limiting the bandwidth. If the limited bandwidth is less than the total bandwidth required by the queue corresponding to the user's service, the bandwidth required by the queue with the higher weight will be given priority.

[0114] Optionally, the scheduling node determines scheduling information based on the first bandwidth requirement information, the second bandwidth requirement information, and the weight setting information, including: the scheduling node determines scheduling information based on the first bandwidth requirement information, the second bandwidth requirement information, the weight setting information, and the limited bandwidth. The limited bandwidth restricts the total bandwidth allowed for the first target user. Within the allowed range of the limited bandwidth, the bandwidth allocated to the queue corresponding to the user's service in the forwarding node is determined, which can satisfy both the bandwidth required by the queue corresponding to the user's service and the priority requirements of the user's service.

[0115] For example, a user's service is forwarded by forwarding node 1 and forwarding node 2. The user's service corresponds to two queues in forwarding node 1 and forwarding node 2: queue 1 and queue 2. The user's limited bandwidth is 100Mbps. Based on bandwidth requirement information, it is determined that queue 1 in forwarding node 1 requires 100Mbps of bandwidth, and queue 2 requires 100Mbps of bandwidth. Similarly, in forwarding node 2, both queue 1 and queue 2 require 100Mbps of bandwidth. Based on weight setting information, the weight ratio of queue 1 and queue 2 is determined to be 2:1, meaning that the bandwidth required by queue 1 is prioritized. Therefore, in forwarding node 1, queue 1 is allocated 100Mbps of bandwidth, and queue 2 is allocated 0Mbps of bandwidth. In forwarding node 2, queue 1 is allocated 100Mbps of bandwidth, and queue 2 requires 0Mbps of bandwidth. When the user's limited bandwidth cannot meet the bandwidth requirements of the user's service, the bandwidth required by the queue with the higher weight is prioritized.

[0116] Optionally, the weight setting information is used to limit the weight of the queues corresponding to the user's service. When allocating bandwidth to the queues corresponding to the user's service, priority can be given to satisfying the bandwidth required by the queues with larger weights, or the ratio of bandwidth allocated to each queue can be made to match the ratio of the weights of the queues corresponding to the user's service. That is, the ratio of the total bandwidth allocated to multiple queues corresponding to the user's service is equal to or as close as possible to the ratio of the weights of the multiple queues. For example, a user's service is forwarded by forwarding node 1 and forwarding node 2. The user's service corresponds to two queues in forwarding node 1 and forwarding node 2: queue 1 and queue 2. Based on the weight setting information, the weight ratio of queue 1 and queue 2 is determined to be 4:1, and the user's limited bandwidth is 100Mbps. Based on the bandwidth requirement information, it is determined that: the bandwidth required by queue 1 in forwarding node 1 is 30Mbps, and the bandwidth required by queue 2 in forwarding node 1 is 10Mbps; the bandwidth required by queue 1 in forwarding node 2 is 30Mbps, and the bandwidth required by queue 2 in forwarding node 2 is 10Mbps. The bandwidth of the queues corresponding to the user's service is allocated according to the weight ratio of 4:1. Therefore, the bandwidth allocated to queue 1 in forwarding node 1 is 40Mbps, the bandwidth allocated to queue 1 in forwarding node 2 is 40Mbps, the bandwidth allocated to queue 2 in forwarding node 1 is 10Mbps, and the bandwidth allocated to queue 2 in forwarding node 2 is 10Mbps. The sum of the bandwidth allocated to queue 1 in the two forwarding nodes is (40+40)Mbps: the sum of the bandwidth allocated to queue 2 in the two forwarding nodes is (10+10)Mbps = 4:1.

[0117] Optionally, since the proportion of traffic of user services corresponding to multiple queues in multiple forwarding nodes or the bandwidth required by multiple queues corresponding to user services in multiple forwarding nodes is uncontrollable in actual scenarios, when the scheduling node allocates bandwidth according to the weight setting information, it first satisfies the bandwidth required by the queues corresponding to user services. After satisfying the bandwidth required by the queues corresponding to user services, the remaining bandwidth is allocated so that the ratio of the total bandwidth allocated to the multiple queues corresponding to user services in the forwarding node is equal to or as close as possible to the ratio of the weights of the multiple queues of user services. The remaining bandwidth is the difference between the user's limited bandwidth and the sum of the bandwidth required by the multiple queues corresponding to user services.

[0118] For example, a user's service is forwarded by forwarding node 1 and forwarding node 2. The user's service corresponds to two queues in forwarding node 1 and forwarding node 2: queue 1 and queue 2. Based on the weight setting information, the weight ratio of queue 1 and queue 2 is determined to be 4:1. The user's limited bandwidth is 120Mbps. In forwarding node 1, queue 1 requires 30Mbps of bandwidth and queue 2 requires 20Mbps of bandwidth; in forwarding node 2, queue 1 requires 30Mbps of bandwidth and queue 2 requires 20Mbps of bandwidth. The total bandwidth required by the queues corresponding to the user's service is (30+20+30+20)Mbps = 100Mbps, which is less than 120Mbps, so the remaining bandwidth is 20Mbps. Since the ratio of the total bandwidth required by queue 1 to the total bandwidth required by queue 2 is 3:2, which is less than the weight ratio of queue 1 and queue 2 of 4:1, the remaining bandwidth can be allocated to queue 1. If the bandwidth allocated to queue 1 in forwarding node 1 is 40Mbps, the bandwidth allocated to queue 1 in forwarding node 2 is 40Mbps, the bandwidth allocated to queue 2 in forwarding node 1 is 20Mbps, and the bandwidth allocated to queue 2 in forwarding node 2 is 20Mbps, then the ratio of the sum of the bandwidth allocated to queue 1 to the sum of the bandwidth allocated to queue 2 is (40+40):(20+20)=2:1. 2:1 is closer to 4:1 than 3:2. That is, by adjusting the allocation of the remaining bandwidth, the ratio of the bandwidth allocated to the queue corresponding to the user's service is equal to or close to the weight ratio of the queue.

[0119] Optionally, the weight setting information is used to limit the weight of the queue corresponding to the user's service. If multiple queues in a forwarding node are used to transmit the user's service, the weight information corresponding to each forwarding node is used to describe the ratio of the bandwidth allocated to the multiple queues in the corresponding forwarding node. For example, the user's service is forwarded by forwarding node 1 and forwarding node 2, and the user's service corresponds to two queues in forwarding node 1 and forwarding node 2: queue 1 and queue 2. Based on the weight setting information, the weight ratio of queue 1 and queue 2 is determined to be 2:1. If bandwidth is allocated to the user based on the weight setting information, the user's bandwidth requirement information, and the limited bandwidth, and it is determined that queue 1 in forwarding node 1 is allocated 40Mbps, queue 1 in forwarding node 2 is allocated 40Mbps, queue 2 in forwarding node 1 is allocated 20Mbps, and queue 2 in forwarding node 2 is allocated 20Mbps, then the weight ratio of queue 1 and queue 2 in forwarding node 1 is 40Mbps:20Mbps = 2:1; and the weight ratio of queue 1 and queue 2 in forwarding node 2 is 40Mbps:20Mbps = 2:1. The weight information of the queue corresponding to the user's service in the forwarding node can be determined based on the bandwidth allocated to the user in the forwarding node.

[0120] Optionally, the scheduling information further includes first weight information and / or second weight information. The first weight information indicates the weight of the queue corresponding to the service of the first target user in the first forwarding node, and the second weight information indicates the weight of the queue corresponding to the service of the first target user in the second forwarding node. The bandwidth allocated to the queues in the forwarding nodes is determined based on the weight setting information and the user's bandwidth requirement information. The weight information corresponding to the forwarding nodes is determined based on the bandwidth allocated to the queues in the forwarding nodes. The forwarding nodes forward the user's services based on the weight information to meet the bandwidth requirements and priority requirements of the queues corresponding to the user's services.

[0121] Optionally, if multiple queues corresponding to a user's service have different weights, and different weights indicate different priorities for the services corresponding to those queues, then queues with different weights can be set to different queue types. For example, queues with smaller weights can be set as Weighted Fair Queuing (WFQ) queues, and queues with larger weights can be set as Strict-Priority (SP) queues. Since the priority of the SP queue is greater than that of the WFQ queue, when the forwarding node allocates forwarding resources, it will prioritize allocating resources to the SP queue, thereby meeting the priority requirements of the user's service.

[0122] Optionally, if multiple services of a user correspond to multiple queues in a forwarding node, since in a real-world scenario the traffic of a user's services can be dynamically allocated to queues in multiple forwarding nodes, the bandwidth required by multiple queues in multiple forwarding nodes is also dynamically changing. For example, in the first time period, queue 1 in forwarding node 1 requires 140Mbps of bandwidth, and queue 2 requires 30Mbps of bandwidth; in the second time period, queue 1 in forwarding node 1 requires 70Mbps of bandwidth, and queue 2 requires 100Mbps of bandwidth, and the second time period is later than the first time period. If the bandwidth allocated to the queues corresponding to the user's services in the second time period is configured based on the bandwidth required by the queues corresponding to the user's services in the first time period, it may lead to a mismatch between the allocated bandwidth and the bandwidth required by the queues corresponding to the user's services. To improve network robustness, after determining the bandwidth allocated to the first target user in each forwarding node, the bandwidth allocated to multiple queues corresponding to the first target user's services in that forwarding node can be set to the bandwidth allocated to the user in the forwarding node. For example, forwarding node 1 is used to forward user services. The user's services correspond to queue 1 and queue 2 in the forwarding node. If the bandwidth allocated to the user in forwarding node 1 is A, then the bandwidth allocated to queue 1 and queue 2 in forwarding node 1 is also A.

[0123] Optionally, this application can allocate bandwidth based on the bandwidth required by the queue corresponding to the user's service in each of multiple forwarding nodes. This results in the allocated bandwidth for each queue. The purpose of bandwidth allocation is to match the bandwidth required by the queue corresponding to the user's service in each forwarding node with the allocated bandwidth, or in other words, to ensure that the bandwidth required by the queue corresponding to the user's service in each forwarding node is equal to or close to the allocated bandwidth. A mathematical model can be constructed based on this purpose. The bandwidth required by the queue corresponding to the user's service in each of the multiple forwarding nodes serves as the input to the mathematical model, and the allocated bandwidth serves as the output. By allocating bandwidth among queues in forwarding nodes using the mathematical model, the bandwidth utilization rate of users can be maximized, or the ratio of the bandwidth used by the service corresponding to the queue in the forwarding node to the bandwidth allocated to the queue corresponding to the user's service can be maximized. This achieves a reasonable allocation of bandwidth among queues corresponding to the user's service in the forwarding node, avoiding excessive bandwidth allocation and wasting queue bandwidth resources. The bandwidth allocated to queues in a forwarding node is based on the bandwidth required by the queue. The allocated bandwidth can meet the bandwidth requirements of the queue so that the allocated bandwidth can be fully utilized to improve the transmission rate of user services.

[0124] Optionally, the first bandwidth requirement information is further used to indicate the bandwidth required by the queue corresponding to the service of the first target user in the first forwarding node, and the second bandwidth requirement information is further used to indicate the bandwidth required by the queue corresponding to the service of the first target user in the second forwarding node. Then, one possible implementation of the scheduling node determining the scheduling information based on the first bandwidth requirement information and the second bandwidth requirement information in S202 is as follows:

[0125] The first and second bandwidth requirement information are input into the queue scheduling model to obtain scheduling information. This scheduling information includes the bandwidth allocated to the queue corresponding to the first target user's service in the first forwarding node and / or the bandwidth allocated to the queue corresponding to the first target user's service in the second forwarding node. The objective function of the queue scheduling model is to maximize the bandwidth utilization of the first target user. Maximizing the bandwidth utilization of the first target user through the queue scheduling model means maximizing the ratio of the actual bandwidth used by the queue corresponding to the user's service to the bandwidth allocated to that queue. This ensures that the bandwidth allocated to the queue corresponding to the user's service is the same as or as close as possible to the bandwidth required by that queue, achieving a reasonable allocation of bandwidth for users in the forwarding nodes and avoiding excessive bandwidth allocation, which would waste bandwidth resources. The bandwidth allocated to queues in the forwarding nodes is based on the bandwidth required by the queues. The allocated bandwidth meets the bandwidth requirements of the queues, ensuring that the bandwidth allocated to the queue corresponding to the user's service is fully utilized, thereby improving the transmission rate of the user's service. A mathematical model is used for bandwidth allocation to improve the efficiency of bandwidth allocation.

[0126] Optionally, the queue scheduling model is a mathematical model determined based on integer optimization algorithms, linear optimization algorithms, or heuristic algorithms. In other implementations, the queue scheduling model may also be a mathematical model determined based on other types of algorithms, and this application does not impose any restrictions on this.

[0127] In some embodiments, the forwarding rate of the service corresponding to the queue in a forwarding node identifies the processing rate of the user's service by the forwarding node. Therefore, the forwarding rate of the service corresponding to the queue identifies the actual bandwidth used by the user's service in the forwarding node. The objective function of the queue scheduling model can be transformed into maximizing the ratio of the total forwarding rate of the user's service across multiple forwarding nodes to the total bandwidth allocated to the user across multiple forwarding nodes. Alternatively, it can be transformed into maximizing the ratio of the total forwarding rate of the service corresponding to the queue in multiple forwarding nodes to the total bandwidth allocated to the queue corresponding to the user's service across multiple forwarding nodes. By maximizing this ratio, the actual bandwidth used by the user is made closer to the bandwidth allocated to the user, thereby improving the transmission rate of the user's service.

[0128] For example, the objective function of the queue scheduling model is:

[0129]

[0130] Where n is the number of forwarding nodes used to forward the service of the first target user u, and x quf This represents the forwarding rate of the service for the first target user u corresponding to queue q on the f-th forwarding node. B represents the total forwarding rate of the first target user u among the n forwarding nodes.quf This represents the bandwidth allocated to the service queue q of the first target user u on the f-th forwarding node. This represents the total bandwidth allocated to queue q corresponding to the service of the first target user u across n forwarding nodes. Essentially, it's the sum of the bandwidth allocated to queue q across the n forwarding nodes. Here, the objective function of the queue scheduling model is transformed into maximizing the ratio of the total forwarding rate of the user's service corresponding to queues across multiple forwarding nodes to the total bandwidth allocated to queues corresponding to the user's service across multiple forwarding nodes. If a user's service corresponds to multiple queues in a forwarding node, the bandwidth allocated to each queue should be equal to or close to the actual bandwidth required by the service corresponding to that queue. This achieves a reasonable allocation of queue bandwidth, avoiding excessive bandwidth allocation to queues in forwarding nodes that cannot be fully utilized, thus wasting bandwidth resources. The bandwidth allocated to queues in a forwarding node is based on the bandwidth required by the queue. The allocated bandwidth should meet the bandwidth requirements of the queue so that the allocated bandwidth can be fully utilized, thereby improving the data transmission rate of the user's service.

[0131] In other embodiments, the objective function of the queue scheduling model is transformed into minimizing the difference between the sum of the bandwidth allocated to queues corresponding to user services across multiple forwarding nodes and the sum of the forwarding rates of services corresponding to queues across multiple forwarding nodes. For example, the objective function of the queue scheduling model is:

[0132]

[0133] in, The total bandwidth allocated to queue q corresponding to the service of the first target user u among n forwarding nodes. To optimize the total forwarding rate of the service for the first target user u corresponding to queue q in a forwarding node, the goal is to minimize the difference between the sum of the bandwidth allocated to queues corresponding to user services across multiple forwarding nodes and the sum of the forwarding rates of user services across multiple forwarding nodes. The closer the allocated bandwidth to queues corresponding to user services across multiple forwarding nodes is to their forwarding rates, the more fully the bandwidth of the user's service can be utilized. This can be achieved by adjusting the bandwidth allocated to each queue corresponding to user services in each forwarding node, minimizing the difference between the allocated bandwidth and the forwarding rate of the user's service corresponding to that queue. This ensures that the allocated bandwidth of the queue is close to or equal to the forwarding rate of the user's service, achieving a reasonable allocation of queue bandwidth and avoiding excessive bandwidth allocation to queues in forwarding nodes, which would lead to underutilization and wasted bandwidth resources. The bandwidth allocated to queues in a forwarding node is based on the bandwidth required by the queue. Ensuring that the allocated bandwidth meets the bandwidth requirements of the queue allows for full utilization of the allocated bandwidth, thereby improving the transmission rate of user services.

[0134] In other embodiments, given the bandwidth requirements of the user's business, the objective function of the queue scheduling model can be transformed into minimizing the bandwidth allocated to the queue corresponding to the user's business. For example, the objective function of the queue scheduling model could be: For example, if the total bandwidth required by the queue corresponding to a user's service is 99Mbps, then the bandwidth allocated to the queue can be close to 99Mbps, so that the bandwidth allocated to the queue is close to or equal to the bandwidth required by the queue.

[0135] In other embodiments, the objective function of the queue scheduling model can be transformed into maximizing the user's forwarding rate. For example, the objective function of the queue scheduling model is: Given a fixed bandwidth allocated to a user's service, the bandwidth allocated to the queue corresponding to that service limits the bandwidth the user is allowed to use. By increasing the forwarding rate of the user's service, the bandwidth used by the queue corresponding to the user's service can be made equal to or close to the bandwidth allocated to that queue. This achieves a reasonable allocation of queue bandwidth, allowing the allocated bandwidth to be fully utilized and improving the transmission rate of the user's service.

[0136] Optionally, the user's specified bandwidth is greater than or equal to the user's contracted bandwidth with the network. Therefore, the constraints of the queue scheduling model also include:

[0137]

[0138] in, The total bandwidth allocated to the service of the first target user u among n forwarding nodes, O u This refers to the contracted bandwidth between the first target user u and the network. For example, if the user's contracted bandwidth with the network is 300Mbps, then the user's limited bandwidth can be set to 330Mbps.

[0139] Optionally, the first bandwidth requirement information and the second bandwidth requirement information are input into the queue scheduling model to obtain scheduling information, including: inputting the first bandwidth requirement information, the second bandwidth requirement information, and the limited bandwidth into the queue scheduling model to obtain scheduling information;

[0140] The constraints of this queue scheduling model include: the sum of the bandwidth allocated to the first target user in the first forwarding node and the bandwidth allocated to the first target user in the second forwarding node is less than or equal to the limited bandwidth corresponding to the first target user. By limiting the total bandwidth allocated to users, within the allowed range of the limited bandwidth, based on maximizing the ratio of the actual bandwidth used by users in the forwarding node to the bandwidth allocated to users in the forwarding node, the bandwidth allocated to the queues corresponding to the user's services in the forwarding node is determined according to the bandwidth required by the queues corresponding to the user's services in the forwarding node. This achieves reasonable bandwidth allocation for users in the forwarding node, avoiding excessive or insufficient bandwidth allocation that could affect user bandwidth utilization. Determining the bandwidth allocated to queues in the forwarding node based on the bandwidth required by the queues ensures that the allocated bandwidth can be fully utilized, thereby improving the transmission rate of user services.

[0141] Optionally, the first bandwidth requirement information, the second bandwidth requirement information, and the limited bandwidth are input into the queue scheduling model to obtain scheduling information, including:

[0142] The first bandwidth requirement information, the second bandwidth requirement information, the limited bandwidth, and the weight setting information are input into the queue scheduling model to obtain scheduling information. The scheduling information includes the bandwidth allocated to the queue corresponding to the service of the first target user in the first forwarding node and / or the bandwidth allocated to the queue corresponding to the service of the second target user in the second forwarding node. Within the allowed limited bandwidth, bandwidth is allocated to the queues corresponding to the user's services, ensuring that the allocated bandwidth satisfies both the bandwidth required by the queue and the priority requirements of the user's services.

[0143] Optionally, the weight information is also used to describe the ratio of bandwidth allocated to multiple queues in the corresponding forwarding node. The scheduling information also includes first weight information and / or second weight information. The first weight information indicates the weight of the queue corresponding to the service of the first target user in the first forwarding node, and the second weight information indicates the weight of the queue corresponding to the service of the first target user in the second forwarding node. By adjusting the weight information of the queues in the forwarding nodes, the ratio of bandwidth allocated to multiple queues in the forwarding nodes is made equal to or close to a preset weight ratio to meet the weight requirements of the queues corresponding to the user's service, thereby meeting the priority requirements of the user's service. The preset weight ratio is determined based on the weight setting information.

[0144] Optionally, the weight information of the queue corresponding to a user's service can describe the priority of the service corresponding to that queue. For example, a queue with a larger weight has a higher priority for the service corresponding to that queue, and a queue with a smaller weight has a lower priority for the service corresponding to that queue. The queue weight information is also used to describe the ratio of bandwidth used by multiple queues. For example, if user A's service corresponds to queue 1 and queue 2, and the weight ratio of queue 1 to queue 2 is determined to be 2:1 based on the weight setting information, then the ratio of bandwidth allocated to queue 1 and queue 2 is 2:1. By limiting the ratio of bandwidth allocated to queues through the weight setting information, the bandwidth allocated to a queue limits the bandwidth actually usable by the service corresponding to that queue, thereby making the bandwidth ratio used by the service corresponding to the queue equal to or close to 2:1. The constraints of the queue scheduling model also include: the ratio of weights allocated to queues corresponding to a user's service is equal to a preset weight ratio, which is determined based on the weight setting information.

[0145] For example, the constraints of the queue scheduling model also include:

[0146]

[0147] Among them, w qu The weight of queue q corresponding to the service of the first target user u, w ju The weight of queue j corresponding to the service of the first target user u, w qu and w ju It is determined based on the weight setting information. B quf The bandwidth allocated to queue q in the f-th forwarding node for the service of the first target user u; B is the sum of the bandwidth allocated to queue q across n forwarding nodes for the service corresponding to the first target user u. juf The bandwidth allocated to queue j in the f-th forwarding node for the service of the first target user u; The sum of bandwidth allocated to queue j across n forwarding nodes for the service corresponding to the first target user u.

[0148] Optionally, since the bandwidth allocated to the queue corresponding to a user's service is determined based on the bandwidth required by that queue, the weight ratio of multiple queues corresponding to the user's service is not the same as the bandwidth ratio required by those queues. For example, in the forwarding node corresponding to a user's service, queues 1 and 2 have a weight ratio of 2:1 based on weight settings. Both queues require 30Mbps of bandwidth, meaning the bandwidth ratio of queues 1 and 2 is 1:1, which is different from the weight ratio of the multiple queues corresponding to the user's service. If the bandwidth allocated to a queue is determined based on the weight ratio, it may result in the allocated bandwidth not meeting the queue's bandwidth requirements. Therefore, the constraints of the queue scheduling model also include: the weight ratio allocated to the queues of the user's service is equal to the product of a preset weight ratio and an offset parameter. The preset weight ratio is determined based on weight settings, and the offset parameter is greater than 0. If the ratio of bandwidth allocated to multiple queues corresponding to a user's service is equal to the preset weight ratio, the offset parameter is 1; if the ratio of weights allocated to multiple queues corresponding to a user's service is not equal to the preset weight ratio, the offset parameter is not 1.

[0149] For example, the constraints of the queue scheduling model also include:

[0150]

[0151] Among them, a u This is an offset parameter used to identify the degree of offset in the weight ratio of the queue corresponding to the user's service. u The closer the ratio is to 1, the closer the ratio of the bandwidth allocated to the two queues is to the preset weight ratio determined by the weight setting information of the two queues.

[0152] In other embodiments, the weight of the queue corresponding to the user service is also used to describe the proportion of bandwidth used by the queue corresponding to the user service. Based on the weight setting information, a preset weight ratio for the queue corresponding to the user service is determined. When the forwarding node forwards the user's service, the proportion of bandwidth allocated to the queue corresponding to the user service is equal to the preset weight ratio. The service traffic allocated to the queue is then transmitted, making the ratio of the forwarding rate of the user service equal to the preset weight ratio.

[0153] For example, the constraints of the queue scheduling model also include:

[0154]

[0155] Among them, w qu Let x be the weight of queue q corresponding to the service of the first target user u. qufLet f be the forwarding rate of the service corresponding to queue q in the f-th forwarding node; This is the sum of the forwarding rates of the services for the first target user u corresponding to queue q among n forwarding nodes, i.e., the total forwarding rate of the services corresponding to queue q. ju Let x be the weight of queue j corresponding to the service of the first target user u. juf Let be the forwarding rate of the service of the first target user u corresponding to queue j in the f-th forwarding node; It is the sum of the forwarding rates of the services of the first target user u corresponding to queue j among n forwarding nodes, that is, the total forwarding rate of the services corresponding to queue q.

[0156] Optionally, if a user's service is forwarded by multiple forwarding nodes, and the traffic of the service in each queue of the forwarding nodes is uncontrollable, then the constraints of the queue scheduling model also include: the ratio of bandwidth allocated to the queue of the user's service is equal to the product of the preset weight ratio and the offset parameter, and the preset weight ratio is determined based on the weight setting information.

[0157] For example, the constraints of the queue scheduling model also include:

[0158]

[0159] Among them, a u This is used to identify the degree of offset in the queue weight ratio corresponding to a user's business. u The closer the ratio is to 1, the closer the ratio of the forwarding rates of the two queues is to the preset weight ratio determined by the weight setting information of the two queues.

[0160] Optionally, the objective function of the queue scheduling model can be adjusted based on the offset parameter so that the queue scheduling model can be applied to scenarios where the bandwidth required by each queue in the forwarding node is dynamically changing. For example, based on this a u The objective function for optimizing the queue scheduling model is as follows:

[0161]

[0162] Where c1 is the penalty coefficient.

[0163] Optionally, for each forwarding node, the rate at which services flow into the forwarding node is called the inflow rate, and the rate at which services flow out of the forwarding node is called the forwarding rate. Therefore, the inflow rate of user services in each forwarding node must be greater than or equal to the inflow rate of user services. For example, the constraints of the queue scheduling model also include:

[0164] x quf ≤y quf ;

[0165] Where, xquf Let y be the forwarding rate of the service for the first target user u corresponding to queue q in the f-th forwarding node. quf Let be the inflow rate of the service for the first target user u corresponding to queue q in the f-th forwarding node.

[0166] Optionally, the sum of the forwarding rates of services corresponding to multiple queues in a forwarding node is less than or equal to the total bandwidth allocated to that forwarding node. For example, the constraints of the queue scheduling model also include:

[0167] in, The total forwarding rate of the services corresponding to the queues in the n forwarding nodes represents the maximum forwarding rate of the services corresponding to the queues in the forwarding nodes, as limited by the allocated bandwidth.

[0168] Optionally, in determining the bandwidth allocated to the queue corresponding to each user's service in the forwarding nodes, the stability of user service transmission across multiple forwarding nodes can be improved by enhancing the balance of bandwidth allocation among the queues corresponding to user services. To achieve balanced bandwidth allocation among the queues corresponding to user services, constraints in the queue scheduling model can be used. For example, if a user service corresponds to two queues, constraints can be used to limit the difference in bandwidth allocated to the two queues to less than a difference threshold. Alternatively, constraints can be used to limit the difference bandwidth to be less than or equal to a difference threshold, where the difference bandwidth is the difference between the bandwidth allocated to the queue and the bandwidth required by the queue. For example, the constraints in the queue scheduling model may also include:

[0169] F u ≥B uq -M uq ;

[0170] Among them, B uq M is the bandwidth allocated to queue q corresponding to user u's service in the forwarding node. uq The bandwidth required by the queue corresponding to user u's service in the forwarding node. F u This is the difference threshold.

[0171] Optionality: The objective function of the queue scheduling model can be optimized based on the difference threshold, so that the optimized objective function can improve the balance of bandwidth allocated to queues corresponding to user services. For example, based on F... u The objective function of the optimized queue scheduling model is:

[0172]

[0173] Where c2 is the penalty coefficient, c2Fu u As a penalty for load balancing, F is introduced. uThis is to limit the relationship between the bandwidth allocated to the queue corresponding to a user's service and the bandwidth required by the queue corresponding to the user's service, in order to improve the balance of bandwidth allocated to the queue corresponding to the user's service.

[0174] Each forwarding node can be used to forward the services of multiple users. For example, forwarding node 1 is used to forward the services of user a and user b. Since the forwarding capacity of each forwarding node is usually fixed, for example, if the available bandwidth of forwarding node 1 is M, then the sum of the bandwidth N allocated to user a in forwarding node 1 and the bandwidth P allocated to user b in forwarding node 1 is less than or equal to M.

[0175] Optionally, if the first forwarding node is also used to forward the services of the second target user, then one possible implementation of the scheduling node determining the scheduling information based on the first bandwidth requirement information and the second bandwidth requirement information in S202 is as follows:

[0176] The scheduling node determines scheduling information based on the first bandwidth requirement information, the second bandwidth requirement information, and the third bandwidth requirement information. The third bandwidth requirement information is used to indicate the bandwidth required by the service of the second target user in the first forwarding node. Since the forwarding node is used to forward services for multiple users, the bandwidth allocated to the first target user and / or the bandwidth allocated to the queue corresponding to the service of the first target user can be determined based on the bandwidth required by the services of multiple users in the forwarding node.

[0177] Different users have different priorities. When allocating forwarding resources, forwarding nodes usually allocate forwarding resources to users with higher priorities.

[0178] Optionally, the scheduling node determines scheduling information based on the first bandwidth demand information, the second bandwidth demand information, and the third bandwidth demand information, including:

[0179] The scheduling node determines scheduling information based on the first bandwidth requirement information, the second bandwidth requirement information, the third bandwidth requirement information, and user priority information. The user priority information indicates the priority of the first target user and the second target user. Thus, bandwidth is allocated to different users based on their priorities, ensuring that higher-priority users are given priority in forwarding resources to meet the priority needs of different users. For example, if user A and user B in forwarding node 1 require 100Mbps and 120Mbps of bandwidth respectively, and forwarding node 1 has an available bandwidth of 200Mbps, and user A's priority is higher than user B's priority, then user A's bandwidth requirement will be prioritized. Therefore, user A will be allocated 100Mbps of bandwidth in forwarding node 1, and user B will also be allocated 100Mbps of bandwidth in forwarding node 1.

[0180] Optionally, if the first forwarding node is used to forward the services of the first target user and the services of the second target user, then the constraints of the queue scheduling model also include:

[0181] The sum of the bandwidth allocated to the first target user in the first forwarding node and the bandwidth allocated to the second target user in the first forwarding node is less than or equal to the available bandwidth of the first forwarding node;

[0182] The input of the first bandwidth requirement information and the second bandwidth requirement information into the queue scheduling model includes:

[0183] Input the first bandwidth requirement information, the second bandwidth requirement information, and the third bandwidth requirement information into the queue scheduling model to obtain scheduling information.

[0184] Optionally, the first bandwidth demand information, the second bandwidth demand information, and the third bandwidth demand information are input into the queue scheduling model to obtain scheduling information, including:

[0185] Input the first bandwidth requirement information, the second bandwidth requirement information, the third bandwidth requirement information, and the user priority information into the queue scheduling model to obtain scheduling information. The priority information is used to indicate the priority of the first target user and the second target user.

[0186] Optionally, the first forwarding node and the second forwarding node support multiple levels of queues, such as queues corresponding to branch nodes and queues corresponding to leaf nodes. The bandwidth allocated to a queue can be determined based on the bandwidth required by the lowest-level queue (e.g., the bandwidth required by the queue corresponding to the leaf node) in the first forwarding node.

[0187] It is easy to understand that a user's service can be forwarded by multiple forwarding nodes. The queue corresponding to the user's service may have different identification information in different forwarding nodes. For example, the identification information of queue A corresponding to the user's service is 1 in forwarding node 1 and the identification information of queue A is 2 in forwarding node 2. Therefore, before determining the bandwidth allocated to the queue, it is necessary to establish the association relationship between the identifiers of the queues in different forwarding nodes.

[0188] Optionally, before step S202, the method further includes:

[0189] The scheduling node obtains the first identification information and the second identification information, and establishes the association between the first identification information and the second identification information. The first identification information is used to identify the queue corresponding to the service of the first target user in the first forwarding node, and the second identification information is used to identify the queue corresponding to the service of the second target user in the second forwarding node.

[0190] Accordingly, one possible implementation of the scheduling node in S202 determining scheduling information based on the first bandwidth demand information and the second bandwidth demand information is as follows: the scheduling node determines scheduling information based on the first bandwidth demand information, the second bandwidth demand information, and the correlation relationship.

[0191] Optionally, the scheduling node aligns the identification information of queues in different forwarding nodes through association relationships. This alignment process can occur before the scheduling information is determined, i.e., the alignment of queue identification information in different forwarding nodes is performed each time the scheduling information is determined. For example, each time the scheduling information is determined, the scheduling node obtains the identification information of the queue corresponding to the user's service in the forwarding nodes, and uses the obtained identification information to align the queue identification information in different forwarding nodes. Alternatively, after performing the alignment of queue identification information in different forwarding nodes, the scheduling node stores the association relationship, so that subsequent scheduling nodes can directly use the association relationship when determining scheduling information without needing to perform alignment again.

[0192] Optionally, one possible implementation of the scheduling node obtaining the first bandwidth requirement information and the second bandwidth requirement information in S201 is as follows: In response to a target event, the scheduling node obtains the first bandwidth requirement information and the second bandwidth requirement information. This target event is used to indicate the updating of the scheduling information for the first target user. By defining a target event, after the scheduling node detects the target event, it obtains the bandwidth requirement information of the user in the forwarding node and determines the bandwidth allocated to the user in the forwarding node based on the bandwidth requirement information. That is, the target event triggers the scheduling node to update the scheduling information for the first target user.

[0193] Optionally, the target event includes the scheduling adjustment period for reaching the first target user. In each scheduling adjustment period, the scheduling node obtains the bandwidth demand information of users in the forwarding nodes and determines the corresponding scheduling information based on the bandwidth demand information, thereby achieving periodic updates of the scheduling information.

[0194] Optionally, a timer can be set in the scheduling node. When the timer is detected to have reached the scheduling adjustment period of the first target user, the scheduling node obtains the bandwidth demand information of the user in the forwarding node to realize the periodic update of the scheduling information.

[0195] Optionally, the target event includes detecting a failure of a forwarding node, such as when a user's service is forwarded by multiple forwarding nodes, and the scheduling node detects the communication status of the forwarding nodes (e.g., by detecting whether the communication of the forwarding nodes is normal through heartbeat information); if a failure of one of the forwarding nodes is detected, the bandwidth demand information of the target user in the other forwarding nodes that have not failed is obtained, so as to update the scheduling information of the target user based on the obtained bandwidth demand information.

[0196] Optionally, the failure of a forwarding node includes forwarding failure and communication failure. If a forwarding node experiences a forwarding failure, it cannot communicate with other nodes or forward the target user's services. In this case, the scheduling information for the target user among the other forwarding nodes that have not experienced failures can be determined based on the bandwidth requirements of those nodes. If a forwarding node experiences a communication failure, meaning it cannot communicate with other nodes but can still forward the target user's services, the bandwidth allocated to the target user in that forwarding node can be set as the single-point allocated bandwidth for the target user. The single-point allocated bandwidth is determined based on the user's limited bandwidth. The scheduling node can determine the scheduling information for the target user among the other forwarding nodes that have not experienced failures based on the bandwidth requirements of the target user's services in those nodes.

[0197] In some embodiments, in response to a target event, the scheduling node obtains first bandwidth requirement information and second bandwidth requirement information, including:

[0198] If the target event includes detecting a forwarding failure of the third forwarding node, the scheduling node obtains the first bandwidth requirement information and the second bandwidth requirement information. The third forwarding node can be used to forward the services of the first target user, but cannot forward the services of the first target user due to the forwarding failure.

[0199] If the target event includes detecting a communication failure in the first forwarding node, the bandwidth allocated to the first target user in the first forwarding node is set to the single-point allocated bandwidth. The first forwarding node is unable to communicate with the scheduling node due to the communication failure but can forward the services of the first target user. The single-point allocated bandwidth is determined based on the limited bandwidth, which is used to limit the total bandwidth allowed for the first target user.

[0200] For example, the service of the first target user is forwarded by three forwarding nodes (forwarding node 1, forwarding node 2, and forwarding node 3). If forwarding node 3 experiences a forwarding failure, the scheduling node obtains the bandwidth requirement information of the first target user from forwarding nodes 1 and 2, and determines the bandwidth allocated to the first target user in forwarding nodes 1 and 2 based on the obtained bandwidth requirement information. If forwarding node 3 experiences a communication failure, the scheduling node determines the bandwidth allocated to the first target user in forwarding nodes 1 and 2 based on the bandwidth requirement information in forwarding nodes 1 and 2. Simultaneously, the bandwidth allocated to the first target user in forwarding node 1 is set as a single-point allocated bandwidth.

[0201] The bandwidth allocated to a single point can be equal to the user's limited bandwidth, or it can be a specific percentage of the limited bandwidth. For example, if the limited bandwidth is 300Mbps, then the bandwidth allocated to a single point is 90% * 300Mbps = 270Mbps.

[0202] Optionally, in response to the target event, the scheduling node obtains first bandwidth requirement information and second bandwidth requirement information, including:

[0203] If the target event includes detecting a forwarding failure at the third forwarding node, the scheduling node acquires the first bandwidth requirement information, the second bandwidth requirement information, and the fourth bandwidth requirement information. The fourth bandwidth requirement indication information is used to indicate the bandwidth required by the user's service in the third forwarding node. If the first target user's service is forwarded by the first, second, and third forwarding nodes, and the third forwarding node experiences a forwarding failure, the service traffic forwarded by the third forwarding node is transferred to the other two forwarding nodes. Therefore, the bandwidth required by the user's service in the two unaffected forwarding nodes can be determined based on the bandwidth required by the user's service in the three forwarding nodes. Of course, the target event can also include other events, such as the scheduling node detecting a sudden change in the inflow rate of the user's service, causing congestion in the user's service, which triggers the scheduling node to update the scheduling information.

[0204] If a user's service is forwarded by multiple forwarding nodes, the scheduling node needs to obtain the user's bandwidth requirement information from these multiple forwarding nodes. To obtain the bandwidth requirement information for the user in each of these forwarding nodes, each forwarding node sends that information to the scheduling node. Alternatively, if the number of forwarding nodes used for forwarding services for the first target user is large, the scheduling node can also obtain the bandwidth requirement information for the first target user from multiple forwarding nodes through a ring communication method. For an example, please refer to [link to example]. Figure 6 , Figure 6 This is a schematic diagram illustrating communication between forwarding nodes according to an embodiment of this application. Figure 6 In this system, the three forwarding nodes used to forward the traffic of the first target user are: Forwarding Node 1, Forwarding Node 2, and Forwarding Node 3. Forwarding Node 1 sends the bandwidth requirement information of the first target user from Forwarding Node 1 to Forwarding Node 2. After receiving this bandwidth requirement information, Forwarding Node 2 sends the bandwidth requirement information of the first target user from both Forwarding Node 1 and Forwarding Node 2 to Forwarding Node 3. At this point, Forwarding Node 3 has obtained the bandwidth requirement information of the first target user from all three forwarding nodes. Forwarding Node 3 can then send this obtained bandwidth requirement information of the first target user from the three forwarding nodes to the scheduling node.

[0205] It should be understood that the above description is merely to help those skilled in the art better understand the embodiments of this application, and is not intended to limit the scope of the embodiments of this application. Based on the examples given above, those skilled in the art can obviously make various equivalent modifications or changes. For example, some steps in the various methods described above may be unnecessary, or new steps may be added. Alternatively, any combination of two or more of the above embodiments may be used. Such modifications, changes, or combinations also fall within the scope of the embodiments of this application.

[0206] It should also be understood that the methods, situations, categories, and classifications of embodiments in this application are for the convenience of description only and should not constitute a special limitation. Various methods, categories, situations, and features in embodiments can be combined without contradiction.

[0207] It should also be understood that the various numerical designations used in the embodiments of this application are merely for descriptive convenience and are not intended to limit the scope of the embodiments of this application. The order of the process numbers described above does not imply the order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0208] It should also be understood that the above description of the embodiments of this application focuses on highlighting the differences between the various embodiments. Any similarities or differences not mentioned can be referred to each other. For the sake of brevity, they will not be repeated here.

[0209] The above combination Figures 2-6 The embodiments of the methods and systems provided in this application have been described. The electronic devices provided in the embodiments of this application are described below.

[0210] This embodiment can divide the electronic device into functional modules according to the above method. For example, each function can be divided into its own functional modules, or two or more functions can be integrated into one processing module. The integrated modules can be implemented in hardware. It should be noted that the module division in this embodiment is illustrative and only represents one logical functional division; other division methods may be used in actual implementation.

[0211] It should be noted that the relevant content of each step involved in the above method embodiments can be referenced from the functional description of the corresponding functional module, and will not be repeated here.

[0212] The electronic device provided in this application embodiment is used to execute the distributed scheduling method provided in the above method embodiment, and thus can achieve the same effect as the above implementation method.

[0213] In other embodiments, when using integrated units, the electronic device may include a processing module, a storage module, and a communication module. The processing module can be used to control and manage the actions of the electronic device. For example, it can be used to support the electronic device in executing the steps performed by the processing unit. The storage module can be used to store program code and data, etc. The communication module can be used to support communication between the electronic device and other electronic devices.

[0214] The processing module can be a processor or a controller. It can implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of digital signal processing (DSP) and a microprocessor, etc. The storage module can be a memory. The communication module can specifically be a radio frequency circuit, a Bluetooth chip, a Wi-Fi chip, or a device that interacts with other electronic devices or electronic devices.

[0215] Based on the same concept, this application also provides an electronic device, see [link to relevant documentation]. Figure 7 , Figure 7 A schematic diagram of the structure of an exemplary electronic device according to this application is shown. Figure 7 The electronic device shown can execute the steps of any of the distributed scheduling methods performed by a forwarding node or a target node provided in the embodiments of this application.

[0216] The electronic device 700 includes at least one processor 701, a memory 703, and at least one network interface 704.

[0217] Processor 701 may be, for example, a general-purpose CPU, a digital signal processor (DSP), a network processor (NP), a GPU, a neural network processing unit (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits or application-specific integrated circuits (ASICs) used to implement the solutions of this application, a programmable logic device (PLD), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. A PLD may be, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. It can implement or execute the various logic blocks, modules, and circuits described in conjunction with the disclosure of this application. A processor may also be a combination that implements computational functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, etc.

[0218] Optionally, the electronic device 700 also includes a bus 702. The bus 702 is used to transmit information between the various components of the electronic device 700. The bus 702 can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus 702 can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 7 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0219] Memory 703 may be, for example, read-only memory (ROM) or other types of storage devices capable of storing static information and instructions; random access memory (RAM) or other types of dynamic storage devices capable of storing information and instructions; electrically erasable programmable read-only memory (EEPROM); compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital versatile optical discs, Blu-ray discs, etc.); magnetic disk storage media or other magnetic storage devices; or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. Memory 703 may exist independently and be connected to processor 701 via bus 702. Memory 703 may also be integrated with processor 701.

[0220] Network interface 704 uses any transceiver-like device for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), or wireless local area network (WLAN). Network interface 704 can include wired network interfaces and wireless network interfaces. Specifically, network interface 704 can be an Ethernet interface, such as Fast Ethernet (FE), Gigabit Ethernet (GE), Asynchronous Transfer Mode (ATM), WLAN, cellular network, or combinations thereof. The Ethernet interface can be an optical interface, an electrical interface, or a combination thereof. In some embodiments of this application, network interface 704 can be used by electronic device 700 to communicate with other devices.

[0221] In specific implementations, as some embodiments, processor 701 may include one or more CPUs. Each of these processors may be a single-core processor or a multi-core processor. Here, "processor" may refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).

[0222] In specific implementations, as some embodiments, electronic device 700 may include multiple processors. Each of these processors may be a single-core processor or a multi-core processor. Here, a processor may refer to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).

[0223] In some embodiments, memory 703 is used to store program instructions for executing the present application's solution, and processor 701 can execute the program instructions stored in memory 703. That is, electronic device 700 can implement the method provided in the above-described embodiments through processor 701 and the program instructions in memory 703. The program instructions may include one or more software modules. Optionally, processor 701 itself may also store program instructions for executing the present application's solution.

[0224] In specific implementation, the processor 701 in the electronic device 700 of this application reads instructions from the memory 703, causing... Figure 7 The electronic device 700 shown is capable of performing all or part of the steps in the distributed scheduling method performed by the electronic device in the above embodiments.

[0225] In the above embodiments, each step of the method is implemented through integrated logic circuits in the hardware of the processor of the electronic device 700 or through software instructions. The steps of the method embodiments disclosed in this application can be directly implemented by the hardware processor, or implemented by a combination of hardware and software modules in the processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. Since the storage medium is located in memory, the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method embodiments; to avoid repetition, these will not be described in detail here.

[0226] It should be understood that the aforementioned processor can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. General-purpose processors can be microprocessors or any conventional processor. It is worth noting that the processor can be a processor supporting the Advanced Reduced Instruction Set Computing (RISC) machine (ARM) architecture.

[0227] Furthermore, in an alternative embodiment, the memory described above may include read-only memory and random access memory, and provide instructions and data to the processor. The memory may also include non-volatile random access memory. For example, the memory may also store device type information.

[0228] The memory can be volatile or non-volatile, or may include both. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which serves as an external cache. Many forms of RAM are available by way of example, but not limitation. Examples include static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).

[0229] The electronic device provided in this embodiment can execute the above method embodiment, and its implementation principle and technical effect are similar, so they will not be described again here.

[0230] This application also provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements the methods described in the above-described method embodiments.

[0231] This application also provides a computer program product that, when run on an electronic device, causes the electronic device to implement the method described in the above-described method embodiments.

[0232] This application provides a chip, including a processor, for calling and executing instructions stored in a memory, causing a communication device with the chip installed to execute the method described in the above-described method embodiments of any electronic device provided in this application.

[0233] This application also provides a chip system including a processor coupled to a memory. The processor executes a computer program stored in the memory to implement the method described in the above-described method embodiments. The chip system may be a single chip or a chip module composed of multiple chips.

[0234] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted through the computer-readable storage medium. The computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, or magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state disk (SSD)).

[0235] Those skilled in the art will understand that implementing all or part of the processes in the above embodiments can be accomplished by a computer program instructing related hardware. This program can be stored in a computer-readable storage medium, and when executed, it can include the processes described in the above method embodiments. The aforementioned storage medium can include various media capable of storing program code, such as ROM or random access memory (RAM), magnetic disks, or optical disks.

[0236] The naming or numbering of steps in this application does not mean that the steps in the method flow must be executed in the time / logical order indicated by the naming or numbering. The execution order of the named or numbered process steps can be changed according to the technical purpose to be achieved, as long as the same or similar technical effect can be achieved.

[0237] In the above embodiments, the descriptions of each embodiment have different focuses. For parts that are not described in detail or recorded in a certain embodiment, please refer to the relevant descriptions of other embodiments.

[0238] In the embodiments provided in this application, it should be understood that the disclosed apparatus / devices and methods can be implemented in other ways. For example, the apparatus / device embodiments described above are merely illustrative. For instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0239] It should be understood that in the description of this application and the appended claims, the terms "comprising," "including," "having," and any variations thereof are intended to cover a non-exclusive inclusion and mean "including but not limited to," unless otherwise specifically emphasized. For example, a process, method, system, product, or apparatus that includes a series of steps or modules is not necessarily limited to those steps or modules that are explicitly listed, but may include other steps or modules that are not explicitly listed or that are inherent to such process, method, product, or apparatus.

[0240] In the description of this application, unless otherwise stated, " / " indicates that the objects before and after are in an "or" relationship. For example, A / B can mean A or B. "And / or" in this application is used to describe the relationship between the related objects, indicating that there can be three relationships. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. A and B can be singular or plural.

[0241] Furthermore, in the description of this application, unless otherwise stated, "multiple" means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0242] As used in this application specification and the appended claims, the term "if" may be interpreted, depending on the context, as "when," "once," "in response to determination," or "in response to detection." Similarly, the phrase "if determined" or "if detected [the described condition or event]" may be interpreted, depending on the context, as meaning "once determined," "in response to determination," "once detected [the described condition or event]," or "in response to detection [the described condition or event]."

[0243] Furthermore, in the description of this application and the appended claims, the terms "first," "second," etc., are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence, nor should they be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features. It should be understood that such data can be interchanged where appropriate so that the embodiments described herein can be implemented in a sequence other than that illustrated or described herein; features defined as "first" or "second" may explicitly or implicitly include at least one of those features.

[0244] In the embodiments of this application, the words "exemplarily" or "for example" are used to indicate examples, illustrations, or explanations. Any embodiment or design described as "exemplarily" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design solutions. Specifically, the use of the words "exemplarily" or "for example" is intended to present the relevant concepts in a specific manner.

[0245] References to "one embodiment" or "some embodiments" in this specification mean that one or more embodiments of this application include a specific feature, structure, or characteristic described in connection with that embodiment. Therefore, the phrases "in one embodiment," "in some embodiments," "in other embodiments," "in still other embodiments," etc., appearing in different parts of this specification do not necessarily refer to the same embodiment, but rather mean "one or more, but not all, embodiments," unless otherwise specifically emphasized.

[0246] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.

Claims

1. A distributed scheduling method, characterized in that, The method includes: Obtain first bandwidth requirement information and second bandwidth requirement information. The first bandwidth requirement information is used to indicate the bandwidth required by the service of the first target user in the first forwarding node. The second bandwidth requirement information is used to indicate the bandwidth required by the service of the first target user in the second forwarding node. Both the first forwarding node and the second forwarding node are used to forward the service of the first target user. Scheduling information is determined based on the first bandwidth demand information and the second bandwidth demand information. The scheduling information includes the bandwidth allocated to the first target user in the first forwarding node and / or the bandwidth allocated to the first target user in the second forwarding node.

2. The method according to claim 1, characterized in that, The step of determining scheduling information based on the first bandwidth demand information and the second bandwidth demand information includes: The scheduling information is determined based on the first bandwidth requirement information, the second bandwidth requirement information, and the limited bandwidth, wherein the limited bandwidth is used to limit the total bandwidth allowed for the first target user.

3. The method according to claim 2, characterized in that, The step of determining the scheduling information based on the first bandwidth demand information, the second bandwidth demand information, and the limited bandwidth includes: The bandwidth required by the first target user's service in the first forwarding node is determined based on the first bandwidth requirement information. The bandwidth required by the first target user's service in the second forwarding node is determined based on the second bandwidth requirement information. If the sum of bandwidths is less than the limited bandwidth, the bandwidth allocated to the first target user in the first forwarding node is determined based on the remaining bandwidth and the bandwidth required by the service of the first target user in the first forwarding node, and / or the bandwidth allocated to the first target user in the second forwarding node is determined based on the remaining bandwidth and the bandwidth required by the service of the first target user in the second forwarding node, wherein the remaining bandwidth is the difference between the limited bandwidth and the sum of bandwidths, and the sum of bandwidths is the sum of the bandwidth required by the service of the first target user in the first forwarding node and the bandwidth required by the service of the first target user in the second forwarding node.

4. The method according to claim 2, characterized in that, If the first bandwidth requirement information includes the first inflow rate and the first forwarding rate of the service of the first target user in the first forwarding node, then the second bandwidth requirement information includes the second inflow rate and the second forwarding rate of the service of the first target user in the second forwarding node. The step of determining scheduling information based on the first bandwidth demand information and the second bandwidth demand information includes: The bandwidth required for the service of the first target user in the first forwarding node and / or the bandwidth required for the service of the first target user in the second forwarding node are determined based on the first inflow rate, the second inflow rate, and the limited bandwidth. The compensation bandwidth is determined based on the first forwarding rate, the second forwarding rate, and the defined bandwidth; The bandwidth allocated to the first target user in the first forwarding node is determined based on the bandwidth required by the first target user's service in the first forwarding node and the compensation bandwidth, and / or the bandwidth allocated to the first target user in the second forwarding node is determined based on the bandwidth required by the first target user's service in the second forwarding node and the compensation bandwidth.

5. The method according to any one of claims 1 to 4, characterized in that, The first bandwidth requirement information is further used to indicate the bandwidth required by the queue corresponding to the service of the first target user in the first forwarding node, and the second bandwidth requirement information is further used to indicate the bandwidth required by the queue corresponding to the service of the first target user in the second forwarding node. The scheduling information also includes the bandwidth allocated to the queue corresponding to the service of the first target user in the first forwarding node and / or the bandwidth allocated to the queue corresponding to the service of the first target user in the second forwarding node.

6. The method according to claim 5, characterized in that, The step of determining scheduling information based on the first bandwidth demand information and the second bandwidth demand information includes: Scheduling information is determined based on the first bandwidth requirement information, the second bandwidth requirement information, and the weight setting information, wherein the weight setting information is used to indicate the weight of the queue corresponding to the service of the first target user.

7. The method according to any one of claims 1 to 6, characterized in that, The step of determining scheduling information based on the first bandwidth demand information and the second bandwidth demand information includes: The first bandwidth requirement information and the second bandwidth requirement information are input into the queue scheduling model to obtain scheduling information. The objective function of the queue scheduling model is used to maximize the bandwidth utilization of the first target user.

8. The method according to claim 7, characterized in that, The step of inputting the first bandwidth demand information and the second bandwidth demand information into the queue scheduling model to obtain scheduling information includes: The first bandwidth requirement information, the second bandwidth requirement information, and the limited bandwidth are input into the queue scheduling model to obtain the scheduling information, wherein the limited bandwidth is used to limit the total bandwidth allowed to be used by the first target user; The constraints of the queue scheduling model include: the sum of the bandwidth allocated to the first target user in the first forwarding node and the bandwidth allocated to the first target user in the second forwarding node is less than or equal to the limited bandwidth.

9. The method according to claim 7 or 8, characterized in that, The step of inputting the first bandwidth demand information and the second bandwidth demand information into the queue scheduling model to obtain scheduling information includes: The first bandwidth requirement information, the second bandwidth requirement information, and the weight setting information are input into the queue scheduling model to obtain the scheduling information. The weight setting information is used to indicate the weight of the queue corresponding to the service of the first target user. The scheduling information also includes first weight information and / or second weight information. The first weight information is used to indicate the weight of the queue corresponding to the service of the first target user in the first forwarding node, and the second weight information is used to indicate the weight of the queue corresponding to the service of the first target user in the second forwarding node.

10. The method according to any one of claims 7 to 9, characterized in that, The first forwarding node is also used to forward the services of the second target user; The constraints of the queue scheduling model include: The sum of the bandwidth allocated to the first target user in the first forwarding node and the bandwidth allocated to the second target user in the first forwarding node is less than or equal to the available bandwidth of the first forwarding node; The step of inputting the first bandwidth demand information and the second bandwidth demand information into the queue scheduling model to obtain scheduling information includes: The first bandwidth requirement information, the second bandwidth requirement information, and the third bandwidth requirement information are input into the queue scheduling model to obtain the scheduling information. The third bandwidth requirement information is used for the bandwidth required by the service of the second target user in the first forwarding node.

11. The method according to any one of claims 1 to 10, characterized in that, Before determining scheduling information based on the first bandwidth demand information and the second bandwidth demand information, the method further includes: Obtain first identification information and second identification information, wherein the first identification information is used to identify the queue corresponding to the service of the first target user in the first forwarding node, and the second identification information is used to identify the queue corresponding to the service of the first target user in the second forwarding node; Establish the association between the first identification information and the second identification information; Scheduling information is determined based on the first bandwidth demand information and the second bandwidth demand information, including: Scheduling information is determined based on the first bandwidth demand information, the second bandwidth demand information, and the correlation.

12. The method according to any one of claims 1 to 11, characterized in that, The method further includes: Send the bandwidth allocated to the first target user in the first forwarding node to the first forwarding node and / or send the bandwidth allocated to the first target user in the second forwarding node to the second forwarding node.

13. The method according to any one of claims 1 to 12, characterized in that, The acquisition of the first bandwidth requirement information and the second bandwidth requirement information includes: In response to a target event, first bandwidth requirement information and second bandwidth requirement information are obtained, wherein the target event is used to indicate the updating of the scheduling information of the first target user.

14. The method according to claim 13, characterized in that, The step of obtaining the first bandwidth requirement information and the second bandwidth requirement information in response to the target event includes: If the target event includes detecting a forwarding failure in a third forwarding node, then first bandwidth requirement information and second bandwidth requirement information are obtained. The third forwarding node can be used to forward the services of the first target user but cannot be used to forward the services of the first target user due to the forwarding failure; or If the target event includes detecting a communication failure in the first forwarding node, then the bandwidth allocated to the first target user in the first forwarding node is set as the single-point allocated bandwidth. The first forwarding node is unable to communicate with other forwarding nodes due to the communication failure and can be used to forward the services of the first target user. The single-point allocated bandwidth is determined based on a limited bandwidth, which is used to limit the total bandwidth allowed for the first target user.

15. An electronic device, characterized in that, include: The memory includes computer-readable instructions; A processor communicating with the memory, the processor being configured to execute the computer-readable instructions, causing the electronic device to perform the distributed scheduling method according to any one of claims 1-14.

16. A computer-readable storage medium, characterized in that, Includes programs or instructions that, when executed by a processor, implement the distributed scheduling method as described in any one of claims 1-14.

17. A computer program product, characterized in that, The computer program product includes instructions that, when executed by a computer, implement the distributed scheduling method as described in any one of claims 1-14.