Service bandwidth allocation method, device and system
By obtaining and analyzing the bandwidth sensitivity information of services in the data center network, dynamically allocating bandwidth and grouping services, the congestion problem caused by unreasonable bandwidth allocation in the network is solved, and data transmission efficiency and overall performance are improved.
Patent Information
- Application Number
- CN202410179403.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-02-08
- Publication Date
- 2025-08-08
AI Technical Summary
How to reasonably allocate bandwidth in the network to meet the needs of different services, especially in data center networks, to solve the problems of network congestion and packet transmission delay.
By obtaining the bandwidth sensitivity information of multiple services forwarded by the outbound port of the network device, the corresponding transmission bandwidth is allocated to different services based on this information, and more bandwidth is allocated to services with higher bandwidth sensitivity to improve overall service performance, and grouping services through clustering algorithms to achieve fair scheduling of the forwarding queue.
Without significantly affecting service performance with low bandwidth sensitivity, significantly improve service performance with high bandwidth sensitivity, optimize overall network performance, and reduce network congestion and packet transmission delay.
Smart Images

Figure CN120455282A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of network technology, and in particular to a method, device and system for allocating service bandwidth. Background Art
[0002] As networks continue to expand, the types and number of services carried on them are also increasing, leading to explosive growth in data traffic. However, the total bandwidth of the network is limited, and how to properly allocate bandwidth for different services carried on the network is an urgent problem that needs to be solved. Summary of the Invention
[0003] The present application provides a service bandwidth allocation method, device and system.
[0004] In a first aspect, a service bandwidth allocation method is provided. The method can be applied to a first network device or a network management device in a network. The method comprises: obtaining bandwidth sensitivity information of m services forwarded through a first output port of the first network device, wherein the bandwidth sensitivity information of each service is used to reflect the degree to which the performance of the service is affected by changes in available bandwidth, and m is a positive integer greater than 1. Based on the bandwidth sensitivity information of the m services, the allocated bandwidths of the m services at the first output port are determined. The sum of the allocated bandwidths of the m services at the first output port is equal to the total allocated bandwidth reserved for the m services at the first output port. The greater the degree to which the performance of a service is affected by changes in available bandwidth, the higher the bandwidth sensitivity of the service; conversely, the smaller the degree to which the performance of a service is affected by changes in available bandwidth, the lower the bandwidth sensitivity of the service.
[0005] The present application allocates corresponding transmission bandwidth to multiple services based on the bandwidth sensitivity information of multiple services forwarded through the same output port of a network device. For example, more bandwidth resources can be allocated to services with higher bandwidth sensitivity, and fewer bandwidth resources can be allocated to services with lower bandwidth sensitivity. Allocating more bandwidth resources to services with higher bandwidth sensitivity can significantly improve the performance of services with higher bandwidth sensitivity without significantly damaging the performance of services with lower bandwidth sensitivity, thereby helping to improve the performance of the overall service. In addition, the present application solution can be applied to various network systems and is compatible with various transport layer protocols and network layer protocols, and has high versatility.
[0006] Optionally, the bandwidth sensitivity information of each service is represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance change of the corresponding service under different available bandwidths compared with the reference bandwidth.
[0007] Alternatively, the bandwidth sensitivity information for each service is obtained based on a bandwidth sensitivity model corresponding to the service, where the bandwidth sensitivity model is used to determine the performance variation of the corresponding service under different available bandwidths compared to the baseline bandwidth. Optionally, the bandwidth sensitivity information for each service is represented by a bandwidth sensitivity value or bandwidth sensitivity level determined based on the bandwidth sensitivity model corresponding to the service.
[0008] Optionally, for the bandwidth sensitivity model corresponding to each service, the bandwidth sensitivity model is a regression model obtained by fitting multiple groups of sample data corresponding to the service, and each group of sample data includes an available bandwidth of the service and the performance change amplitude of the service under the available bandwidth compared with the reference bandwidth. The performance change amplitude of the service under the available bandwidth compared with the reference bandwidth is the ratio of the performance change value of the service under the available bandwidth to the performance value of the service under the reference bandwidth. The performance change value of the service under the available bandwidth is the difference between the performance value of the service under the available bandwidth and the performance value of the service under the reference bandwidth.
[0009] Optionally, the benchmark bandwidth is the total bandwidth of the port, and the available bandwidth in the sample data used to generate the bandwidth sensitivity model is less than or equal to the total bandwidth of the port. The bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the benchmark bandwidth.
[0010] In a first possible implementation, the allocated bandwidth of a single service among the m services at the first egress port is positively correlated with the degree to which the performance of the service is affected by changes in the available bandwidth.
[0011] This implementation method can optimize the overall performance of the m services as the service bandwidth allocation target. In combination with the first possible implementation method mentioned above, the bandwidth sensitivity information of each service is respectively represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the baseline bandwidth. The above implementation method of determining the allocated bandwidth of the m services at the first output port based on the bandwidth sensitivity information of the m services may include: determining the allocated bandwidth of the m services at the first output port based on the m bandwidth sensitivity models corresponding to the m services, so that the allocated bandwidth of the m services at the first output port meets the first bandwidth allocation requirement. The first bandwidth allocation requirement includes: inputting the allocated bandwidth of the m services at the first output port into the corresponding bandwidth sensitivity model, so that the sum of the performance degradation output by the m bandwidth sensitivity models reaches the minimum value.
[0012] A second possible implementation method of determining the allocated bandwidths of the m services at the first egress port based on the bandwidth sensitivity information of the m services is as follows: determining the allocated bandwidths of the m services at the first egress port based on the bandwidth sensitivity information of the m services and the service quality requirements of the m services.
[0013] This implementation method can optimize the overall performance of the multiple services as the service bandwidth allocation target on the basis of optimizing the service quality of a specific part of the services, for example, the services with high service quality requirements. In combination with the above-mentioned second possible implementation method, the bandwidth sensitivity information of each service includes a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the baseline bandwidth. The above-mentioned implementation method of determining the allocated bandwidth of m services at the first output port based on the bandwidth sensitivity information of m services and the service quality requirements of m services includes: for each of the m services, determining the bandwidth allocation level value of the service according to the service quality requirements of the service, and the bandwidth allocation level value of the service is positively correlated with the service quality requirements of the service. According to the m bandwidth sensitivity models corresponding to the m services and the respective bandwidth allocation level values of the m services, the allocated bandwidth of the m services at the first output port is determined so that the allocated bandwidth of the m services at the first output port meets the second bandwidth allocation requirement. The second bandwidth allocation requirement includes: inputting the allocated bandwidths of the m services at the first output port into the corresponding bandwidth sensitivity models, so that the sum of the products of the performance degradation output by the m bandwidth sensitivity models and the corresponding bandwidth allocation level values reaches the minimum value.
[0014] Optionally, the quality of service requirements of the service include accelerated forwarding, guaranteed forwarding and best effort, wherein the bandwidth allocation level value of the service with the quality of service requirement of accelerated forwarding is greater than the bandwidth allocation level value of the service with the quality of service requirement of guaranteed forwarding, and the bandwidth allocation level value of the service with the quality of service requirement of guaranteed forwarding is greater than the bandwidth allocation level value of the service with the quality of service requirement of best effort.
[0015] Optionally, when a service forwarded through the first egress port changes, the allocated bandwidth for the multiple services after the change on the first egress port is determined based on bandwidth sensitivity information of the multiple services after the change. The sum of the allocated bandwidths for the multiple services after the change on the first egress port is equal to the total allocated bandwidth reserved by the first egress port for the multiple services after the change.
[0016] The present application implements a solution for reallocating bandwidth for services forwarded through an outbound port of a network device after a change occurs to the services forwarded through the outbound port.
[0017] Optionally, the above method is applied to a first network device, and the first network device may forward the packets of the m services according to the allocated bandwidths of the m services at the first egress port through a forwarding queue on the first egress port.
[0018] Optionally, the first network device stores a correspondence between m services and k service groups, and the k service groups are obtained by grouping the m services. Each service group includes one or more services among the m services, and m>k≥2. The similarity in the degree to which the performance of different services in the same service group is affected by the change in available bandwidth is higher than the similarity in the degree to which the performance of services in different service groups is affected by the change in available bandwidth. The implementation method of the first network device forwarding the messages of the m services through the forwarding queue on the first output port according to the allocated bandwidth of the m services at the first output port includes: for the message of any service among the m services, the first network device determines the service group to which the message belongs, and then forwards the message through the target forwarding queue corresponding to the service group to which the message belongs.
[0019] This application groups services and maps them to forwarding queues in the form of service groups, thereby enabling multiple services to reuse the same forwarding queue on an egress port. For multiple services forwarded through the same egress port, if the degree to which the performance of different services is affected by available bandwidth changes is similar, then the allocated bandwidth of these services on that egress port will generally be similar. These services can be grouped into the same service group and mapped to the same forwarding queue for transmission, facilitating fair scheduling of the forwarding queues.
[0020] Optionally, the first network device forwards the message through a target forwarding queue corresponding to a service group to which the message belongs, including: the first network device forwards the message through the target forwarding queue based on the allocated bandwidth of the target forwarding queue and the allocated bandwidth of the service to which the message belongs at the first egress port. The allocated bandwidth of the target forwarding queue is equal to the sum of the allocated bandwidths of all services forwarded through the target forwarding queue at the first egress port.
[0021] Optionally, the first network device uses a clustering algorithm to group the m services based on the bandwidth sensitivity information of the m services to obtain k service groups. Alternatively, the first network device receives service grouping information corresponding to the first output port from the network management device, where the service grouping information includes a correspondence between the m services and the k service groups.
[0022] Optionally, the above method is applied to a network management device, and the network management device may send a first bandwidth allocation policy to the first network device, where the first bandwidth allocation policy includes allocated bandwidths for the m services at the first egress port respectively.
[0023] Optionally, the network management device utilizes a clustering algorithm to group the m services based on their bandwidth sensitivity information, resulting in k service groups, where each service group includes one or more of the m services, where m>k≥2. The similarity in the degree to which performance is affected by available bandwidth changes between different services in the same service group is higher than the similarity in the degree to which performance is affected by available bandwidth changes between services in different service groups. The network management device may also transmit service grouping information corresponding to the first egress port to the first network device, where the service grouping information includes a correspondence between the m services and the k service groups.
[0024] Optionally, the m services include a target service, and the transmission path of the target service in the network also includes the second egress port of the second network device. The network management device may further determine, based on bandwidth sensitivity information of the n services forwarded through the second egress port, the allocated bandwidth for the n services at the second egress port, and send a second bandwidth allocation policy to the second network device, the second bandwidth allocation policy including the allocated bandwidth for the n services at the second egress port. The n services include the target service, and n is a positive integer.
[0025] Optionally, the network management device obtains bandwidth sensitivity information for m services forwarded through the first output port of the first network device in the network, including: for any of the m services, the network management device obtains multiple sets of sample data for the service, each set of sample data including an available bandwidth for the service and a performance change of the service under the available bandwidth compared to the baseline bandwidth. The network management device fits a regression model based on the multiple sets of sample data to obtain a bandwidth sensitivity model corresponding to the service. The bandwidth sensitivity model is used to determine the performance change of the service under different available bandwidths compared to the baseline bandwidth.
[0026] Optionally, the m services include one or more of a computing-intensive service, a memory-access-intensive service, an input / output (I / O)-intensive service, or a network communication-intensive service.
[0027] In a second aspect, a network device is provided. The network device includes multiple functional modules that interact with each other to implement the actions performed by the network device in the first aspect and its respective embodiments. The multiple functional modules can be implemented based on software, hardware, or a combination of software and hardware, and the multiple functional modules can be arbitrarily combined or divided based on the specific implementation.
[0028] For example, the network device includes but is not limited to an acquisition module and a determination module. Optionally, the network device further includes a transceiver module and / or a grouping module.
[0029] The acquisition module is configured to acquire bandwidth sensitivity information of m services forwarded through a first egress port of a first network device in the network, where the bandwidth sensitivity information of each service is used to reflect the extent to which the performance of the service is affected by changes in available bandwidth, and m is a positive integer greater than 1. The determination module is configured to determine, based on the bandwidth sensitivity information of the m services, the allocated bandwidths of the m services at the first egress port, respectively, where the sum of the allocated bandwidths of the m services at the first egress port is equal to the total allocated bandwidth reserved by the first egress port for the m services.
[0030] Optionally, the bandwidth sensitivity information of each service is represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance change of the corresponding service under different available bandwidths compared with the benchmark bandwidth.
[0031] Optionally, the bandwidth sensitivity information of each service is obtained based on a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance change of the corresponding service under different available bandwidths compared to the baseline bandwidth.
[0032] Optionally, the bandwidth sensitivity information of each service is represented by a bandwidth sensitivity value or a bandwidth sensitivity level determined based on a bandwidth sensitivity model corresponding to the service.
[0033] Optionally, for the bandwidth sensitivity model corresponding to each service, the bandwidth sensitivity model is a regression model fitted based on multiple groups of sample data corresponding to the service, and each group of sample data includes a portion of available bandwidth for the service and the performance change of the service under the available bandwidth compared to the baseline bandwidth.
[0034] Optionally, the reference bandwidth is the total port bandwidth, the available bandwidth in the sample data is less than or equal to the total port bandwidth, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the reference bandwidth.
[0035] Optionally, the allocated bandwidth of a single service among the m services at the first egress port is positively correlated with the degree to which the performance of the service is affected by the change in available bandwidth.
[0036] Optionally, the bandwidth sensitivity information of each service is respectively represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the baseline bandwidth. The determination module is specifically used to determine the allocated bandwidth of the m services at the first output port according to the m bandwidth sensitivity models corresponding to the m services, so that the allocated bandwidth of the m services at the first output port meets the first bandwidth allocation requirement, wherein the first bandwidth allocation requirement includes: inputting the allocated bandwidth of the m services at the first output port into the corresponding bandwidth sensitivity model, so that the sum of the performance degradation output by the m bandwidth sensitivity models reaches a minimum value.
[0037] Optionally, the determining module is configured to determine allocated bandwidths of the m services at the first egress port respectively according to bandwidth sensitivity information of the m services and quality of service requirements of the m services.
[0038] Optionally, the bandwidth sensitivity information of each service is respectively represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the baseline bandwidth. The determination module is specifically used to: determine the bandwidth allocation level value of the service for each of the m services according to the service quality requirement of the service, and the bandwidth allocation level value of the service is positively correlated with the service quality requirement of the service; determine the allocated bandwidth of the m services at the first egress port according to the m bandwidth sensitivity models corresponding to the m services and the bandwidth allocation level values of the m services, so that the allocated bandwidth of the m services at the first egress port meets the second bandwidth allocation requirement, wherein the second bandwidth allocation requirement includes: inputting the allocated bandwidth of the m services at the first egress port into the corresponding bandwidth sensitivity model, so that the sum of the products of the performance degradation output by the m bandwidth sensitivity models and the corresponding bandwidth allocation level values reaches a minimum value.
[0039] Optionally, the quality of service requirements of the service include accelerated forwarding, guaranteed forwarding and best effort, wherein the bandwidth allocation level value of the service with the quality of service requirement of accelerated forwarding is greater than the bandwidth allocation level value of the service with the quality of service requirement of guaranteed forwarding, and the bandwidth allocation level value of the service with the quality of service requirement of guaranteed forwarding is greater than the bandwidth allocation level value of the service with the quality of service requirement of best effort.
[0040] Optionally, the determination module is further used to determine, when a change occurs in the services forwarded through the first egress port, the allocated bandwidths of the multiple services after the change on the first egress port based on the bandwidth sensitivity information of the multiple services after the change, wherein the sum of the allocated bandwidths of the multiple services after the change on the first egress port is equal to the total allocated bandwidth.
[0041] Optionally, the transceiver module is configured to forward the packets of the m services through a forwarding queue on the first egress port according to the allocated bandwidths of the m services on the first egress port respectively.
[0042] Optionally, the first network device stores a correspondence between the m services and the k service groups, the k service groups are obtained by grouping the m services, each service group includes one or more services among the m services, m>k≥2, and the similarity of the degree to which the performance of different services in the same service group is affected by the change in available bandwidth is higher than the similarity of the degree to which the performance of services in different service groups is affected by the change in available bandwidth; the transceiver module is specifically used to: for a message of any service among the m services, determine the service group to which the message belongs; and forward the message through a target forwarding queue corresponding to the service group to which the message belongs.
[0043] Optionally, the transceiver module is specifically used to forward the message through the target forwarding queue according to the allocated bandwidth of the target forwarding queue and the allocated bandwidth of the service to which the message belongs at the first output port, and the allocated bandwidth of the target forwarding queue is equal to the sum of the allocated bandwidths of all services forwarded through the target forwarding queue at the first output port.
[0044] Optionally, the grouping module is configured to group the m services based on bandwidth sensitivity information of the m services using a clustering algorithm to obtain the k service groups.
[0045] Optionally, the transceiver module is configured to receive service grouping information corresponding to the first outbound port sent by a network management device, where the service grouping information includes a correspondence between the m services and the k service groups.
[0046] Optionally, the m services include one or more of computing-intensive services, memory-intensive services, I / O-intensive services, or network communication-intensive services.
[0047] In a third aspect, a network management device is provided. The network management device includes multiple functional modules that interact with each other to implement the actions performed by the network management device in the first aspect and its respective embodiments. The multiple functional modules can be implemented based on software, hardware, or a combination of software and hardware, and the multiple functional modules can be arbitrarily combined or divided based on the specific implementation.
[0048] For example, the network management device includes but is not limited to an acquisition module and a determination module. Optionally, the network management device further includes a transceiver module and / or a grouping module.
[0049] The acquisition module is configured to acquire bandwidth sensitivity information of m services forwarded through a first egress port of a first network device in the network, where the bandwidth sensitivity information of each service is used to reflect the extent to which the performance of the service is affected by changes in available bandwidth, and m is a positive integer greater than 1. The determination module is configured to determine, based on the bandwidth sensitivity information of the m services, the allocated bandwidths of the m services at the first egress port, respectively, where the sum of the allocated bandwidths of the m services at the first egress port is equal to the total allocated bandwidth reserved by the first egress port for the m services.
[0050] Optionally, the bandwidth sensitivity information of each service is represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance change of the corresponding service under different available bandwidths compared with the benchmark bandwidth.
[0051] Optionally, the bandwidth sensitivity information of each service is obtained based on a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance change of the corresponding service under different available bandwidths compared to the baseline bandwidth.
[0052] Optionally, the bandwidth sensitivity information of each service is represented by a bandwidth sensitivity value or a bandwidth sensitivity level determined based on a bandwidth sensitivity model corresponding to the service.
[0053] Optionally, for the bandwidth sensitivity model corresponding to each service, the bandwidth sensitivity model is a regression model fitted based on multiple groups of sample data corresponding to the service, and each group of sample data includes a portion of available bandwidth for the service and the performance change of the service under the available bandwidth compared to the baseline bandwidth.
[0054] Optionally, the reference bandwidth is the total port bandwidth, the available bandwidth in the sample data is less than or equal to the total port bandwidth, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the reference bandwidth.
[0055] Optionally, the allocated bandwidth of a single service among the m services at the first egress port is positively correlated with the degree to which the performance of the service is affected by the change in available bandwidth.
[0056] Optionally, the bandwidth sensitivity information of each service is respectively represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the baseline bandwidth. The determination module is specifically used to determine the allocated bandwidth of the m services at the first output port according to the m bandwidth sensitivity models corresponding to the m services, so that the allocated bandwidth of the m services at the first output port meets the first bandwidth allocation requirement, wherein the first bandwidth allocation requirement includes: inputting the allocated bandwidth of the m services at the first output port into the corresponding bandwidth sensitivity model, so that the sum of the performance degradation output by the m bandwidth sensitivity models reaches a minimum value.
[0057] Optionally, the determining module is configured to determine allocated bandwidths of the m services at the first egress port respectively according to bandwidth sensitivity information of the m services and quality of service requirements of the m services.
[0058] Optionally, the bandwidth sensitivity information of each service is respectively represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the baseline bandwidth. The determination module is specifically used to: determine the bandwidth allocation level value of the service for each of the m services according to the service quality requirement of the service, and the bandwidth allocation level value of the service is positively correlated with the service quality requirement of the service; determine the allocated bandwidth of the m services at the first egress port according to the m bandwidth sensitivity models corresponding to the m services and the bandwidth allocation level values of the m services, so that the allocated bandwidth of the m services at the first egress port meets the second bandwidth allocation requirement, wherein the second bandwidth allocation requirement includes: inputting the allocated bandwidth of the m services at the first egress port into the corresponding bandwidth sensitivity model, so that the sum of the products of the performance degradation output by the m bandwidth sensitivity models and the corresponding bandwidth allocation level values reaches a minimum value.
[0059] Optionally, the quality of service requirements of the service include accelerated forwarding, guaranteed forwarding and best effort, wherein the bandwidth allocation level value of the service with the quality of service requirement of accelerated forwarding is greater than the bandwidth allocation level value of the service with the quality of service requirement of guaranteed forwarding, and the bandwidth allocation level value of the service with the quality of service requirement of guaranteed forwarding is greater than the bandwidth allocation level value of the service with the quality of service requirement of best effort.
[0060] Optionally, the determination module is further used to determine, when a change occurs in the services forwarded through the first egress port, the allocated bandwidths of the multiple services after the change on the first egress port based on the bandwidth sensitivity information of the multiple services after the change, wherein the sum of the allocated bandwidths of the multiple services after the change on the first egress port is equal to the total allocated bandwidth.
[0061] Optionally, the transceiver module is configured to send a first bandwidth allocation policy to the first network device, where the first bandwidth allocation policy includes allocated bandwidths for the m services at the first egress port respectively.
[0062] Optionally, the grouping module is configured to employ a clustering algorithm to group the m services based on their bandwidth sensitivity information to obtain k service groups, each of which includes one or more of the m services, m>k≥2, and the similarity in the degree to which performance is affected by available bandwidth changes between different services in the same service group is higher than the similarity in the degree to which performance is affected by available bandwidth changes between services in different service groups. The transceiver module is configured to transmit service grouping information corresponding to the first egress port to the first network device, the service grouping information including the correspondence between the m services and the k service groups.
[0063] Optionally, the m services include a target service, and the target service also includes a second egress port of a second network device on a transmission path in the network. The determination module is further configured to determine, based on bandwidth sensitivity information of n services forwarded through the second egress port, an allocated bandwidth for the n services, where the n services include the target service, and n is a positive integer. The transceiver module is configured to send a second bandwidth allocation policy to the second network device, the second bandwidth allocation policy including the allocated bandwidth for the n services on the second egress port.
[0064] Optionally, the acquisition module is used to: obtain multiple sets of sample data of any one of the m services, each set of sample data including an available bandwidth of the service and a performance change amplitude of the service under the available bandwidth compared to the baseline bandwidth; fit a regression model based on the multiple sets of sample data to obtain a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance change amplitude of the service under different available bandwidths compared to the baseline bandwidth.
[0065] Optionally, the m services include one or more of computing-intensive services, memory-intensive services, I / O-intensive services, or network communication-intensive services.
[0066] In a fourth aspect, a network device is provided, comprising: a processor and a memory;
[0067] The memory is used to store a computer program, wherein the computer program includes program instructions;
[0068] The processor is used to call the computer program to implement the actions performed by the network device in the above-mentioned first aspect and each embodiment thereof.
[0069] In a fifth aspect, a network management device is provided, comprising: a processor and a memory;
[0070] The memory is used to store a computer program, wherein the computer program includes program instructions;
[0071] The processor is used to call the computer program to implement the actions performed by the network management device in the above-mentioned first aspect and each embodiment thereof.
[0072] In a sixth aspect, a service bandwidth allocation system is provided, comprising: a network management device and a first network device in the network.
[0073] The network management device is used to obtain bandwidth sensitivity information of m services forwarded by the first output port of the first network device, and determine the allocated bandwidth of the m services at the first output port based on the bandwidth sensitivity information of the m services. The bandwidth sensitivity information of each service is used to reflect the degree to which the performance of the service is affected by changes in available bandwidth. m is a positive integer greater than 1, and the sum of the allocated bandwidths of the m services at the first output port is equal to the total allocated bandwidth reserved by the first output port for the m services.
[0074] The network management device is further configured to send a first bandwidth allocation policy to the first network device, where the first bandwidth allocation policy includes allocated bandwidths for the m services at the first egress port respectively.
[0075] The first network device is configured to forward the packets of the m services through the forwarding queue on the first egress port according to the allocated bandwidths of the m services at the first egress port respectively.
[0076] Optionally, the network management device is also used to obtain multiple sets of sample data of any of the m services, and fit a regression model based on the multiple sets of sample data to obtain a bandwidth sensitivity model corresponding to the service, each set of sample data includes an available bandwidth of the service and the performance change of the service under the available bandwidth compared to the baseline bandwidth, and the bandwidth sensitivity model is used to determine the performance change of the service under different available bandwidths compared to the baseline bandwidth.
[0077] Alternatively, the system further includes an analysis device. The analysis device is used to obtain multiple sets of sample data for any of the m services, and to fit a regression model based on the multiple sets of sample data to obtain a bandwidth sensitivity model corresponding to the service. Each set of sample data includes an available bandwidth for the service and a performance change magnitude of the service under the available bandwidth compared to the baseline bandwidth. The bandwidth sensitivity model is used to determine the performance change magnitude of the service under different available bandwidths compared to the baseline bandwidth. The analysis device is also used to send the bandwidth sensitivity model corresponding to the service to the network management device.
[0078] In a seventh aspect, a computer-readable storage medium is provided, on which instructions are stored. When the instructions are executed by a processor, the method described in any one of the above-mentioned first aspect and its embodiments is implemented.
[0079] In an eighth aspect, a computer program product is provided, comprising a computer program, which, when executed by a processor, implements the method described in any one of the above-mentioned first aspect and its various embodiments.
[0080] In a ninth aspect, a computer program product is provided, comprising a computer program, which, when executed by a processor, implements the method described in any one of the first aspect and its various embodiments.
[0081] In a tenth aspect, a chip is provided. The chip includes a programmable logic circuit and / or program instructions. When the chip is running, it implements any of the methods described in the first aspect and its respective embodiments. BRIEF DESCRIPTION OF THE DRAWINGS
[0082] Figure 1 This is a schematic diagram of bandwidth allocation based on the maximum-minimum fairness principle;
[0083] Figure 2 This is a schematic diagram of a method for generating a bandwidth sensitivity model provided in an embodiment of the present application;
[0084] Figure 3 This is a schematic diagram of an implementation scenario provided by an embodiment of the present application;
[0085] Figure 4 This is a flow chart of a service bandwidth allocation method provided in an embodiment of the present application;
[0086] Figure 5 This is a schematic diagram of a multi-device interaction process provided by an embodiment of the present application;
[0087] Figure 6This is a schematic diagram of the structure of a network device provided in an embodiment of the present application;
[0088] Figure 7 This is a schematic diagram of the structure of a network management device provided in an embodiment of the present application;
[0089] Figure 8 This is a schematic diagram of the hardware structure of a network device provided in an embodiment of the present application;
[0090] Figure 9 This is a hardware structure diagram of a network management device / analysis device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0091] In order to make the objectives, technical solutions and advantages of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.
[0092] With the continuous advancement of electronic manufacturing and network communication technologies, the information storage and processing capabilities of today's data center infrastructure have significantly increased. Device nodes are integrating an increasing number of hardware modules, such as central processing units (CPUs), graphics processing units (GPUs), data processing units (DPUs), neural processing units (NPUs), tensor processing units (TPUs), hard drives, network interfaces (NICs), and external I / O devices. At the same time, data centers are hosting an increasing number of data-intensive tasks, such as big data analysis, image processing, database queries, and machine learning training. Due to the distributed nature and service efficiency of these tasks, parallel computing engines are often used to execute them. Distributed processing frameworks used by parallel computing engines include, but are not limited to, Spark, Flink, and Hadoop. Parallel computing engines often employ a distributed batch communication model, achieving business objectives through data transmission across multiple processing stages across hundreds of connections between different computing nodes. Furthermore, because the growth rate of data center computing power outstrips the growth rate of communication capacity, more frequent data synchronization between computing nodes is required. The distributed batch communication model brings huge load to the data center network, which easily leads to network congestion and increases the packet transmission delay, thus affecting the task completion time.
[0093] Furthermore, with the advancement of artificial intelligence and deep learning, large natural language models (such as generative pre-trained transformers (GPT) and bidirectional encoder representations from transformers (BERT)) have become a hot topic in current research and engineering. However, these models, due to their massive data requirements and complex computational performance requirements, require the computing power of a large number of GPUs. The large number of GPU nodes and the high communication requirements across these nodes make network bandwidth performance a bottleneck for GPU cluster systems. To effectively support the diverse and complex data-intensive services in data centers (such as large model training tasks), resolving network congestion is a major challenge currently faced.
[0094] Currently, mainstream bandwidth allocation solutions for data center networks (DCNs) can be roughly divided into the following two categories.
[0095] One type of bandwidth allocation scheme is based on the principle of maximizing the minimum fairness (max-min fairness), which allocates the bandwidth occupied by all network data traffic on the link, that is, maximizing the minimum data traffic of the network. For example, Figure 1 This is a schematic diagram of bandwidth allocation based on the maximum-minimum fairness principle. Figure 1 The network topology shown in the figure includes 6 routers (R) and 5 transmission links ( Figure 1 (not shown). The six routers include R1 to R6, and the five transmission links include the transmission link connecting R1 and R2 (referred to as the R1-R2 link), the transmission link connecting R2 and R3 (referred to as the R2-R3 link), the transmission link connecting R4 and R5 (referred to as the R4-R5 link), the transmission link connecting R5 and R6 (referred to as the R5-R6 link), and the transmission link connecting R5 and R2 (referred to as the R5-R2 link). The link bandwidth is 30 million bits per second (Mbps). Assume that Figure 1 The network shown in the figure transmits four service flows. Service flow A uses the transmission path R1-R2-R3, service flow B uses the transmission path R1-R2-R5-R6, service flow C uses the transmission path R4-R5-R6, and service flow D uses the transmission path R4-R5-R6. These four service flows compete for link bandwidth. Based on the principle of maximum-minimum fairness, the bandwidth allocated to each service flow is as follows.
[0096] Since traffic on the R4-R5 link is the most competitive, the bandwidth of the R4-R5 link must be fully utilized. Once the bottleneck is reached, the bandwidth is evenly distributed. Therefore, service flows B, C, and D each occupy one-third of the bandwidth on the R4-R5 link. That is, service flows B, C, and D are each allocated 10 Mbps on the R4-R5 link. Since the total bandwidth of a service flow depends on the minimum bandwidth of its transmission link, service flows C and D are each allocated 10 Mbps on the R4-R5 link. Service flow B is also allocated 10 Mbps on the R2-R3 link. Consequently, the remaining bandwidth on the R2-R3 link is 20 Mbps. The bandwidth of service flow A is increased. Once it reaches 20 Mbps, the bandwidth resources on the R2-R3 link reach the bottleneck. Therefore, service flow A is allocated 20 Mbps. In summary, the bandwidth allocated to service flow A is 20 Mbps, and the bandwidth allocated to service flows B, C, and D is 10 Mbps.
[0097] Because the many-to-one traffic model in data centers easily leads to congestion at switches where traffic is concentrated, the buffer occupation of long flows (business flows with high data volume) will cause short flows (business flows with low data volume) to queue. Therefore, bandwidth allocation schemes based on the max-min fairness principle should maintain low switch buffer occupancy while ensuring the throughput of long flows. For example, bandwidth allocation schemes based on the max-min fairness principle can be used in conjunction with the Data Center Transmission Control Protocol (DCTCP), the Neighbor Discovery Protocol (NDP), or the Swift protocol.
[0098] However, the principle of maximum-minimum fairness aims to evenly divide network bandwidth among multiple services. However, different services often have different sensitivities to network bandwidth. For example, distributed machine learning tasks have higher requirements for bandwidth allocation and stability than distributed database transaction processing and data sorting tasks. In other words, distributed machine learning tasks are more sensitive to bandwidth than distributed database transaction processing and data sorting tasks. Therefore, evenly dividing bandwidth among multiple services may lead to suboptimal performance. When there are multiple services sharing a network, the maximum-minimum fairness bandwidth allocation scheme cannot fully utilize network resources and may find it difficult to ensure network transmission efficiency, resulting in poor overall application performance, such as lengthy task completion times.
[0099] Another type of bandwidth allocation scheme calculates the allocated bandwidth for each service flow based on specific network optimization objectives, such as minimizing packet latency, service flow completion time, and maximizing isolation between tenants or applications in a shared data center. During implementation, this type of bandwidth allocation scheme typically uses network layer characteristics and related policies, such as service flow size, service flow completion deadline, and shortest flow priority. This type of bandwidth allocation scheme focuses on network layer performance indicators, such as packet latency and jitter, to achieve application-agnostic (also known as service-agnostic) bandwidth allocation. Although application-agnostic bandwidth allocation schemes are conducive to improving system scalability, due to factors such as protocol design and network configuration, optimizing the performance indicators of the bottom layer of the protocol stack (such as the network layer) does not necessarily lead to improvements in application layer performance and user experience quality.
[0100] Related technologies have further attempted to use application-layer transmission requirements in bandwidth allocation, achieving application-aware (also known as service-aware) bandwidth allocation. However, current application-aware bandwidth allocation solutions rely on assumptions about protocol abstraction, prior knowledge of service flows, or network communication patterns. These assumptions require modifications to network element hardware or the network protocol stack, resulting in limited practicality and versatility.
[0101] Computers are essential tools that can perform a variety of tasks, including computation, storage, and communication. From a computer perspective, services can be categorized into four types: compute-intensive, memory-intensive, I / O-intensive (storage-intensive), and network-communication-intensive. Compute-intensive services are tasks that require a large number of computational operations, where the majority of their runtime is spent processing data. Memory-intensive services are tasks that require a large number of read and write operations to memory, where the majority of their runtime is spent copying and updating data within the same device. I / O-intensive services are tasks that require a large number of external device access operations, where the majority of their runtime is spent waiting for I / O operations to complete, rather than processing data. Network-communication-intensive services are tasks that require a large number of network communications operations, where the majority of their runtime is spent transferring data between different devices. Therefore, different types of services place varying demands on network systems. When executing various services, it is necessary to fully utilize network system resources, including CPU, memory, I / O devices, and network bandwidth. Consequently, changes in network bandwidth can have varying impacts on the performance of different services. For example, changes in bandwidth may have a greater impact on the task completion time of network communication-intensive services than on the task completion time of computing-intensive services.
[0102] Based on this, the present application quantifies the bandwidth sensitivity of each service in the network and uses the bandwidth sensitivity of the service as the guiding principle for network bandwidth allocation. Then, the bandwidth sensitivity information of the service and the service connection status are used to perform real-time automatic network bandwidth allocation and network equipment configuration. For two services running simultaneously on the network system, since the available bandwidth of the link is fixed, increasing the bandwidth share of one service will reduce the bandwidth share of the other service. Allocating more bandwidth to services with high bandwidth sensitivity can significantly improve the performance of services with high bandwidth sensitivity without significantly damaging the performance of services with low bandwidth sensitivity, thereby helping to improve the overall service performance. Therefore, the present application allocates corresponding transmission bandwidth to each service according to the bandwidth sensitivity of different services for multiple services running simultaneously in the network, thereby realizing a service-aware bandwidth allocation solution. Compared with bandwidth-insensitive services, services that are more bandwidth-sensitive can be allocated more bandwidth resources, which helps to improve the overall service performance. The technical solution provided by the present application is as follows: for any output port of any network device in the network, if multiple services are forwarded through the output port, the bandwidth sensitivity information of the multiple services forwarded through the output port is obtained, and the allocated bandwidth of the multiple services at the output port is determined based on the bandwidth sensitivity information of the multiple services. The sum of the allocated bandwidths of the multiple services at the output port is equal to the total allocated bandwidth reserved for the multiple services at the output port. The bandwidth sensitivity information of each service is used to reflect the degree to which the performance of the service is affected by the change in available bandwidth. The present application solution is different from the traditional bandwidth allocation solution based on network layer indicators (such as flow size and flow type). It relies on the bandwidth sensitivity information of the service, but does not rely on prior knowledge such as flow size and flow type, as well as properties such as network communication mode and computing mode. In addition, the implementation of the present application solution does not require modification of the network element hardware and network protocol stack. The corresponding transmission bandwidth can be allocated to each service based on the bandwidth sensitivity information of multiple services forwarded through the same output port. It can be applied to various network systems and is compatible with various transport layer protocols and network layer protocols. Therefore, the present application solution has high versatility. Forwarding a service through an egress port as described in this application refers to forwarding the data stream of the service through the egress port. In addition, the egress port of a network device described in this application refers to the output port of the network device, and the ingress port of a network device refers to the input port of the network device. The output port is used to send messages, and the input port is used to receive messages.
[0103] In the present application, port bandwidth refers to the link bandwidth of the link to which the port is connected. Optionally, the total allocated bandwidth reserved for the multiple services forwarded through the egress port of a network device can be the total bandwidth of the egress port, or it can be part of the bandwidth of the egress port. The multiple services are services for which bandwidth allocation is performed using the service bandwidth allocation method provided in this application. The multiple services can be all services forwarded through the egress port, or they can be part of the services forwarded through the egress port. If the total allocated bandwidth reserved for the multiple services by the egress port of a network device is part of the bandwidth of the egress port, the remaining bandwidth of the egress port can be used by other bandwidth allocation schemes, that is, the service bandwidth allocation method provided in this application can coexist with other bandwidth allocation schemes in the network. In addition, in addition to being compatible with other bandwidth allocation schemes, the service bandwidth allocation method provided in this application can also coexist with network quality of service (QoS) related technologies in the network, including mechanisms such as traffic regulation (such as traffic limiting, message priority setting) and traffic shaping (such as congestion control). That is, the service bandwidth allocation method provided in this application is responsible for allocating and adjusting the available bandwidth provided by the outbound port of the network device to the service, while the actual service transmission bandwidth is calculated and controlled by mechanisms such as flow control and congestion control.
[0104] In some implementations, among multiple services forwarded through the same egress port of the same network device, the bandwidth allocated to a single service at that egress port is positively correlated with the degree to which the service's performance is affected by variations in available bandwidth. In other words, the more performance-affected a service is among the multiple services, the more bandwidth is allocated to that egress port. In this implementation, optimizing the overall performance of the multiple services as the goal of service bandwidth allocation can achieve optimal overall service performance.
[0105] In some implementations, for multiple services forwarded through the same output port of the same network device in the network, the allocated bandwidth for each of the multiple services at the output port is determined based on the bandwidth sensitivity information of the multiple services and the service quality requirements of the multiple services. This implementation comprehensively considers the degree to which the performance of the services is affected by changes in available bandwidth and the service quality requirements of the services. For example, the higher the degree to which the performance of the multiple services is affected by changes in available bandwidth and / or the higher the service quality requirements, the more bandwidth is allocated to the output port. Under this implementation, the goal of service bandwidth allocation is to optimize the overall performance of the multiple services as much as possible on the basis of optimizing the service quality of a specific part of the services, give priority to performance optimization of services with high service quality requirements, and optimize the overall service performance as much as possible.
[0106] In this application, the bandwidth sensitivity of a service can be defined as the degree to which the performance of the service is affected by changes in the available bandwidth. For example, it can be the degree of performance degradation caused by a reduction in the available bandwidth of the service. Specifically, it can be quantified as the degree of performance degradation caused by the available bandwidth of the service being reduced to different percentages of the total bandwidth of the port (relative to the performance when the available bandwidth of the service is the total bandwidth of the port).
[0107] Optionally, the bandwidth sensitivity information of each service can be formally represented by the bandwidth sensitivity model corresponding to the service, that is, the bandwidth sensitivity information of each service is respectively represented by the bandwidth sensitivity model corresponding to the service. Alternatively, the bandwidth sensitivity information of each service can be obtained based on the bandwidth sensitivity model corresponding to the service, for example, the bandwidth sensitivity information of each service can be respectively represented by a bandwidth sensitivity value or a bandwidth sensitivity level determined based on the bandwidth sensitivity model corresponding to the service. The bandwidth sensitivity model is used to determine the performance change of the corresponding service under different available bandwidths compared to the baseline bandwidth. If the bandwidth sensitivity information of each service can be respectively represented by a bandwidth sensitivity value or a bandwidth sensitivity level determined based on the bandwidth sensitivity model corresponding to the service, then the greater the performance change of the service under different available bandwidths compared to the baseline bandwidth, the greater the bandwidth sensitivity value of the service, or the higher the bandwidth sensitivity level, indicating that the performance of the service is more affected by the change in available bandwidth. In the case where the baseline bandwidth is the total bandwidth of the port, the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths (less than the total bandwidth of the port) compared to the baseline bandwidth. When the available bandwidth of a service equals the total bandwidth of the port, the service reaches the optimal performance value.
[0108] Optionally, the bandwidth sensitivity model corresponding to a service is a model trained based on multiple groups of sample data corresponding to the service. Each group of sample data includes an available bandwidth for the service and the performance change of the service under the available bandwidth compared to the baseline bandwidth. The performance change of the service under the available bandwidth compared to the baseline bandwidth is the ratio of the performance change value of the service under the available bandwidth to the performance value of the service under the baseline bandwidth. The performance change value of the service under the available bandwidth is the difference between the performance value of the service under the available bandwidth and the performance value of the service under the baseline bandwidth. When the baseline bandwidth is the total bandwidth of the port, the available bandwidth in the sample data is less than or equal to the total bandwidth of the port, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the baseline bandwidth.
[0109] Optionally, the bandwidth sensitivity model corresponding to a service is a regression model obtained by fitting multiple sets of sample data corresponding to the service. Alternatively, the bandwidth sensitivity model corresponding to a service can also be a machine learning model obtained by training multiple sets of sample data corresponding to the service. The embodiments of the present application do not limit the type of bandwidth sensitivity model. The following embodiments of the present application mainly illustrate the generation method of the bandwidth sensitivity model as a regression model.
[0110] Optionally, for any service, the bandwidth sensitivity model corresponding to the service is generated as follows: multiple groups of sample data of the service are obtained, and a regression model is fitted according to the multiple groups of sample data to obtain the bandwidth sensitivity model corresponding to the service.
[0111] Optionally, the bandwidth sensitivity model corresponding to the service is a nonlinear regression model, such as a polynomial regression model. When fitting the regression model using multiple sets of sample data corresponding to the service, the available bandwidth of the service in each set of sample data is used as the independent variable, and the performance degradation of the service under the available bandwidth is used as the dependent variable to determine the model coefficients of the regression model.
[0112] For example, Figure 2 FIG. 1 is a schematic diagram of a method for generating a bandwidth sensitivity model provided in an embodiment of the present application. Figure 2 As shown, taking the business as a distributed task as an example, in order to generate the bandwidth sensitivity model corresponding to the distributed task APP1, the distributed task APP1 is first deployed on multiple working nodes (such as servers). Since bandwidth sensitivity describes the degree of influence of the change in the available bandwidth of the business on the business performance, the distributed task APP1 can be iteratively executed multiple times on all working nodes (recorded as p times, p is a positive integer greater than 1) to measure the performance indicators of the distributed task APP1 under different bandwidth configurations, such as task completion time. When each task is executed, the network interface card (NIC) bandwidth of all working nodes is quantitatively configured to a certain percentage of the link capacity. For example, the available NIC bandwidth configured on all working nodes for p tasks is expressed as BW = {b1, b2,…, b p Set the baseline bandwidth to unrestricted bandwidth (i.e., the NIC bandwidth of the working node is the link capacity), measure the performance value of the distributed task APP1 under each bandwidth configuration, and compare it with the optimal performance value under unrestricted bandwidth to calculate the performance degradation value of the distributed task APP1 under p bandwidth configurations. Further, the performance degradation range D = {d1, d2, ..., d p}, the performance degradation under different bandwidth configurations is the ratio of the performance degradation value of the distributed task APP1 under the corresponding bandwidth configuration to the optimal performance value under the unrestricted bandwidth. Thus, the sample data of the performance degradation of the p group corresponding to the distributed task APP1 {(b1,d1),(b2,d2),…,(b p ,d p )}, then use the p groups of sample data for regression analysis to obtain the relationship between the available bandwidth and the performance degradation of distributed task APP1, and use the generated regression model as the bandwidth sensitivity model corresponding to distributed task APP1. Taking the polynomial regression model as an example, the bandwidth sensitivity model corresponding to distributed task APP1 can be expressed as the following formula (1).
[0113]
[0114] Where k is the degree of the polynomial. By fitting p groups of sample data, the polynomial coefficients can be calculated The polynomial coefficients are model coefficients of the bandwidth sensitivity model corresponding to the distributed task APP1.
[0115] By analyzing the bandwidth sensitivity model corresponding to each service in the network through the above process, the model coefficients of the bandwidth sensitivity model corresponding to each service can be saved in the bandwidth sensitivity list. For example, see Figure 2 The bandwidth sensitivity list may include model coefficients of bandwidth sensitivity models corresponding to all services (including APP1, etc.) in the network.
[0116] Due to the continuous growth of network scale and number of users, network systems are carrying more and more services. During the operation of the network, the access of new services, the termination and migration of existing services are becoming more and more frequent, which aggravates the dynamic nature of network traffic and load, and brings challenges to network bandwidth allocation. In this application, the bandwidth sensitivity models corresponding to all services that the network may carry can be pre-determined and stored, so as to realize timely and efficient bandwidth allocation for services running in the network. For the pre-analysis of the bandwidth sensitivity model corresponding to the service, the generation method of the bandwidth sensitivity model provided by this application does not limit the polynomial degree of the model, the difference between the service operation scenario during the pre-analysis of the model and the service operation scenario during the real-time allocation of bandwidth, including the sample data set used for model fitting, the working node running the distributed task, etc. In other words, the generation method of the bandwidth sensitivity model provided by this application can flexibly adjust the polynomial degree of the model, the size of the sample data set used for model fitting, the number of working nodes running distributed tasks, etc.
[0117] The following is a detailed introduction to the technical solution of this application from multiple perspectives, including application scenarios, method flow, software devices, and hardware devices.
[0118] The following is an example of an application scenario of the embodiment of the present application.
[0119] The embodiments of the present application can be applied to bandwidth allocation of a network that carries multiple services. The multiple services include, but are not limited to, one or more of compute-intensive services, memory-intensive services, I / O-intensive services, or network communication-intensive services. The multiple services may include distributed services. For example, multiple server nodes in a data center network simultaneously deploy artificial intelligence (AI) large model training tasks and distributed database update tasks. These server nodes need to frequently interact and synchronize model parameters and training samples during task execution, which will occupy a certain amount of network bandwidth resources. The more parallel system nodes there are, the higher their communication share, the greater the impact of network performance on the overall system operation efficiency, and the network bandwidth gradually becomes the bottleneck of the system. Network bandwidth allocation and congestion control can improve the transmission efficiency and bandwidth resource utilization of the network, and improve the overall performance of the task load, such as task completion time.
[0120] The system architecture of the embodiment of the present application includes a variety of network element devices in the network communication system, which are responsible for realizing various functions of the network, including terminal devices (such as servers, controllers, databases, etc.) used to run various services, network devices connected to terminal devices or used for data forwarding (such as routers, switches, etc.) and transmission equipment for transmitting data (such as optical fibers, cables, etc.). In order to quantitatively characterize the impact of changes in network bandwidth on service performance, it is necessary to analyze the sensitivity of each service carried by the network system to the network bandwidth. Based on the bandwidth sensitivity information of the service and the service connection status (it can also be combined with user needs), the network management device calculates the bandwidth occupied by each service in real time to minimize the average performance degradation between services. The network management device then configures the switches involved in the service implementation to implement the corresponding bandwidth strategy.
[0121] The embodiment of the present application is used to implement application-aware service bandwidth allocation. The bandwidth allocation framework includes three main functional components: a bandwidth sensitivity analysis component, a bandwidth calculation component, and a bandwidth policy execution component. Among them, the bandwidth sensitivity analysis component is used to analyze the bandwidth sensitivity information of various services that may run in the network. The bandwidth calculation component is used to calculate the allocated bandwidth of each service at the output port of different network devices on its transmission path based on the bandwidth sensitivity information and service connection status of the services running in the network. The bandwidth policy execution component is used to configure network devices and forward network traffic based on the allocated bandwidth calculated by the bandwidth calculation component.
[0122] Optionally, the bandwidth sensitivity analysis component can be implemented by a dedicated network element hardware (such as a server) or software module, and the bandwidth calculation component can also be implemented by a dedicated network element hardware or software module. The bandwidth policy execution component is deployed in the network device. That is, the bandwidth allocation framework of the embodiment of the present application may include a hardware module and / or a software module. For example, Figure 3 This is a schematic diagram of an implementation scenario provided by the embodiment of this application. Figure 3 As shown, the implementation scenario includes a network management device 301, multiple terminal devices 302A-302C (collectively referred to as terminal devices 302), and multiple network devices 303A-303E (collectively referred to as network devices 303) in a communication network. Figure 3 The number of terminal devices and network devices is only used as an example and is not intended to limit the implementation scenarios of the embodiments of the present application.
[0123] The network management device 301 can be a server, or a server cluster consisting of several servers, or a cloud computing platform, or a network controller. The network management device 301 is connected to the network device 303 via a wired network or a wireless network. The network management device 301 is used to manage the network device 303 in the communication network. For example, the network management device 301 can send bandwidth allocation policies for multiple services flowing through the network device 303 to the network device 303, so that the network device 303 forwards network traffic according to the corresponding bandwidth allocation policies; or the network management device 301 can send bandwidth sensitivity information for multiple services flowing through the network device 303 to the network device 303, so that the network device 303 calculates bandwidth allocation policies for the multiple services and forwards network traffic according to the corresponding bandwidth allocation policies.
[0124] The terminal device 302 can be a physical device such as a host or server, or a logical device such as a virtual machine obtained by virtualizing the computing resources of a computer device. Multiple terminal devices 302 communicate with each other through one or more network devices 303 in the communication network. Figure 3 In the implementation scenario shown as an AI large model training task scenario, the terminal device 302 can be a computing node. The computing node can include one or more processors such as a CPU, GPU, TPU, DPU, or NPU, and the computing node can be a server with computing capabilities.
[0125] The network device 303 may be a switch, a router, or a firewall. Optionally, each egress port of the network device 303 is configured with multiple forwarding queues, each with different forwarding priorities. For a particular egress port of the network device 303, when forwarding a message through that egress port, the higher the forwarding priority of the forwarding queue used, the higher the priority of the message being forwarded from that egress port.
[0126] The communication network provided in the embodiments of the present application may be a data center network, a metropolitan area network, a wide area network, a campus network, a virtual local area network (VLAN), or a virtual extensible local area network (VXLAN), etc. The embodiments of the present application do not limit the type of communication network. For example, the communication network may be a remote direct memory access (RDMA) network based on converged Ethernet (abbreviated as RDMA over converged Ethernet, RoCE).
[0127] Optionally, the communication network provided in the embodiment of the present application may adopt a two-layer network architecture. The communication network includes a convergence layer and an access layer. The communication network may also be referred to as a two-layer network. The convergence layer is the high-speed switching backbone of the communication network, and the access layer is used to connect terminal devices to the communication network. The network devices located in the access layer may be referred to as access network devices, and the network devices located in the convergence layer may be referred to as convergence network devices. For example, see Figure 3 Network devices 303A and 303B are located at the aggregation layer and serve as aggregation network devices. Network devices 303C, 303D, and 303E are located at the access layer and serve as access network devices. Each terminal device 302 is connected to network devices 303C, 303D, and 303E, respectively. Network devices 303C, 303D, and 303E are connected to network devices 303A and 303B, respectively. A communication network employing a two-layer network architecture can be, for example, a two-layer fat tree network or a Clos network (also known as a leaf-spine network).
[0128] Alternatively, the communication network provided in the embodiments of the present application may also adopt a three-layer network architecture. In a three-layer network architecture, the communication network includes a core layer, an aggregation layer, and an access layer. This communication network may also be referred to as a three-layer network. The core layer is the high-speed switching backbone of the communication network, the aggregation layer is used to provide aggregation connections (connecting the access layer and the core layer), and the access layer is used to connect terminal devices to the communication network. A communication network adopting a three-layer network architecture may be, for example, a traditional three-layer tree network, a three-layer fat tree network, or the like.
[0129] Alternatively, see Figure 3, the implementation scenario also includes an analysis device 304. The analysis device 304 can be a server, or a server cluster composed of several servers, or a cloud computing platform. The analysis device 304 is used to analyze the bandwidth sensitivity information of various services that may run in the network. The analysis device 304 can provide the network management device 301 with the bandwidth sensitivity information of various services that may be carried in the network managed by the network management device 301. The analysis device 304 and the network management device 303 can be two independent devices, and the analysis device 304 and the network management device 301 are connected via a wired network or a wireless network. Alternatively, the analysis device 304 and the network management device 303 can also be integrated in the same device.
[0130] exist Figure 3 In the illustrated implementation scenario, the bandwidth sensitivity analysis component can be deployed in analysis device 304, the bandwidth calculation component can be deployed in network management device 301, and the bandwidth policy enforcement component can be deployed in network device 303. Alternatively, the bandwidth sensitivity analysis component can be deployed in analysis device 304, and the bandwidth calculation component and bandwidth policy enforcement component can be deployed in network device 303.
[0131] It is worth noting that the network management device in the architecture of the present application can be centrally deployed (centralized deployment) or distributedly deployed (distributed deployment). In the scenario where the network management device is centrally deployed, the network management device can maintain the mapping relationship between the services and forwarding priorities of the entire network and the mapping relationship between the forwarding priorities and forwarding queues. It can also store the status information of each network device, including the services passing through the network device and the current configuration of the network device. When there is a new service registration or a running service deregistration, the network management device in the form of centralized deployment will update the mapping relationship between the service and the forwarding priority. When there is a new service connection established or an existing service connection released, the network management device in the form of centralized deployment will update the mapping relationship between the forwarding priority and the forwarding queue, perform bandwidth allocation operations, and update the configuration of the network device on the transmission path of the service connection. However, the network management device in the form of centralized deployment is prone to single point failure, and the bandwidth calculation and configuration of all services on the entire network system will bring a great burden to the network management device in the form of centralized deployment, which is likely to cause performance bottlenecks.
[0132] Distributed network management devices can effectively address the aforementioned issues with centralized network management devices. In a distributed network management device scenario, each device is responsible for allocating bandwidth to the network devices in a specific area (such as a physical area or a local area network) and the services forwarded through these devices. When a terminal device establishes a new service connection, it notifies the network management device in its area. The network management device in that area then allocates service bandwidth and configures the network devices within that area. The network management device then notifies the network management devices in other areas along the transmission path of the service connection of the new connection. Upon receiving the new connection establishment notification, the network management devices in other areas allocate service bandwidth and configure the network devices within their areas. The network management devices in all areas through which the new service connection passes repeat these steps until all network devices along the transmission path of the new service connection have completed the configuration of the corresponding bandwidth allocation policy. On distributed network management devices, the mapping between services and forwarding priorities, and between forwarding priorities and forwarding queues, can be maintained by an analysis device and distributed to each distributed network management device, or they can be independently maintained and synchronized by the network management devices in each area.
[0133] The following is an example of the method flow of the embodiment of the present application.
[0134] For example, Figure 4 This is a flow chart of a method for allocating service bandwidth provided by an embodiment of the present application. This method can be applied to Figure 3 The network management device 301 or the network device 303 in the application scenario shown. Figure 4 As shown, the method 400 includes but is not limited to the following steps 401 to 402. Optionally, the method 400 further includes the following step 403.
[0135] Step 401: Obtain bandwidth sensitivity information of m services forwarded through a first egress port of a first network device in a network. The bandwidth sensitivity information of each service is used to reflect the degree to which the performance of the service is affected by changes in available bandwidth.
[0136] Here, m is generally a positive integer greater than 1, i.e., the embodiment of the present application is used to allocate bandwidth to multiple services forwarded through the same egress port of a network device. Of course, the embodiment of the present application can also allocate bandwidth to a single service forwarded through a certain egress port of the network device, i.e., m can also be equal to 1. The degree to which the performance of a service is affected by changes in available bandwidth can be, for example, the degree of performance degradation caused by a reduction in the available bandwidth of the service, which can be specifically quantified as the degree of performance degradation caused by a reduction in the available bandwidth of the service to different percentages of the total bandwidth of the port.
[0137] Optionally, the first network device is any network device in the network, and the first egress port is any egress port on the first network device. The services forwarded through the first egress port may only include the m services. Alternatively, the services forwarded through the first egress port may include other services in addition to the m services, but only the m services use the service bandwidth allocation method provided in the embodiment of the present application, and other services may use other bandwidth allocation schemes. That is, the service bandwidth allocation method provided in the embodiment of the present application may coexist with other bandwidth allocation schemes in the network.
[0138] Optionally, the m services include but are not limited to one or more of computing-intensive services, memory-intensive services, I / O-intensive services, or network communication-intensive services.
[0139] Optionally, the bandwidth sensitivity information of each service includes a bandwidth sensitivity model corresponding to the service, or is obtained based on the bandwidth sensitivity model corresponding to the service, such as expressed by a bandwidth sensitivity value or bandwidth sensitivity level determined based on the bandwidth sensitivity model corresponding to the service. The bandwidth sensitivity model corresponding to a service is used to determine the performance change of the service under different available bandwidths compared to the baseline bandwidth. For an explanation of the definition and generation method of the bandwidth sensitivity model, please refer to the relevant content in the above embodiments, and the embodiments of this application will not be repeated here.
[0140] Step 402: Determine allocated bandwidths for the m services at the first egress port, respectively, based on the bandwidth sensitivity information of the m services.
[0141] The sum of the allocated bandwidths of the m services at the first egress port is equal to the total allocated bandwidth reserved by the first egress port for the m services. Optionally, the total allocated bandwidth reserved by the first egress port for the m services may be the total bandwidth of the first egress port, or may be a portion of the bandwidth of the first egress port. The total allocated bandwidth reserved by the first egress port for the m services is, that is, the total bandwidth reserved by the first egress port for all services that are allocated bandwidth using the scheme of the present application. If the total allocated bandwidth reserved by the first egress port for the m services is a portion of the bandwidth of the first egress port, then the remaining bandwidth of the first egress port can also be used by other bandwidth allocation schemes, that is, the service bandwidth allocation method provided by the embodiment of the present application can coexist with other bandwidth allocation schemes in the network. It is worth noting that the total allocated bandwidth reserved by the egress port of the network device for the scheme of the present application can be dynamically adjusted based on factors such as service demand and port load. In addition, the total allocated bandwidth reserved by the egress ports of different network devices or different egress ports of the same network device for the scheme of the present application can be the same or different.
[0142] In a first possible implementation, when allocating bandwidth to multiple services forwarded through the same egress port of a network device, embodiments of the present application may prioritize optimizing the overall performance of the multiple services. Accordingly, the bandwidth allocated to a single service at the first egress port is positively correlated with the degree to which the performance of the service is affected by variations in available bandwidth. In other words, the more the performance of the service is affected by variations in available bandwidth, the more bandwidth is allocated to that service at that egress port.
[0143] For example, if the bandwidth sensitivity information of a service is represented by a bandwidth sensitivity value or a bandwidth sensitivity level, then among multiple services forwarded through the same output port of a network device, a service with a larger bandwidth sensitivity value or a higher bandwidth sensitivity level will have more bandwidth allocated to the output port.
[0144] For example, the bandwidth sensitivity information of a service is represented using the bandwidth sensitivity model corresponding to the service. That is, the bandwidth sensitivity information of each service includes the bandwidth sensitivity model corresponding to the service. Step 402 is implemented as follows: Based on the m bandwidth sensitivity models corresponding to the m services, the allocated bandwidths for the first egress port are determined for the m services, so that the allocated bandwidths for the m services at the first egress port meet a first bandwidth allocation requirement. The first bandwidth allocation requirement includes: inputting the allocated bandwidths for the m services at the first egress port into the corresponding bandwidth sensitivity models so that the sum of the performance degradation output by the m bandwidth sensitivity models reaches a minimum value.
[0145] For example, m services include {a1, a2, ..., a m}, business a i The allocated bandwidth at the first outbound port is w i The first bandwidth allocation requirement can be expressed by the following formula (2). Formula (2) can be used to calculate the allocated bandwidth of each of the m services at the first outbound port when the first bandwidth allocation requirement is met.
[0146]
[0147] in, is the objective function. r A total allocated bandwidth of m services is reserved for the first egress port. is the constraint condition of the objective function, indicating that the sum of the allocated bandwidth of the m services at the first outbound port is equal to C r .w i is the independent variable, D i (w i ) can be the service a calculated by the bandwidth sensitivity model shown in formula (1) i In different allocated bandwidths wi Based on formula (2), the values of m independent variables can be determined. The values of the m independent variables satisfy: when the m independent variables satisfy the constraints, Reached minimum value.
[0148] The second possible implementation method is that when allocating bandwidth for multiple services forwarded through the same output port of a network device, the embodiment of the present application can take the optimization of the overall performance of the multiple services as the service bandwidth allocation target on the basis of optimizing the service quality of a specific part of the services, and the specific part of the services can be, for example, services with high service quality requirements. For example, in step 402, the allocated bandwidth of the m services at the first output port can be determined based on the bandwidth sensitivity information of the m services and the service quality requirements of the m services. This implementation method comprehensively considers the degree to which the performance of the services is affected by the changes in the available bandwidth and the service quality requirements of the services. For example, the higher the degree to which the performance of the m services is affected by the changes in the available bandwidth and / or the higher the service quality requirements, the more bandwidth is allocated to the first output port. In the embodiment of the present application, the service quality requirements of the services can be quantified into bandwidth allocation level values. The bandwidth allocation level value of the services is positively correlated with the service quality requirements of the services. That is, the higher the service quality requirements of the services, the larger the bandwidth allocation level value of the services.
[0149] For example, if the bandwidth sensitivity information of a service is represented by a bandwidth sensitivity value or a bandwidth sensitivity level, then among multiple services forwarded through the same output port of a network device, a service with a larger product of the bandwidth sensitivity value and the bandwidth allocation level value, or a service with a larger product of the bandwidth sensitivity level and the bandwidth allocation level value, will have more bandwidth allocated to the output port.
[0150] For example, the bandwidth sensitivity information of a service is represented using the bandwidth sensitivity model corresponding to the service. That is, the bandwidth sensitivity information of each service includes the bandwidth sensitivity model corresponding to the service. Step 402 is implemented as follows: First, for each of the m services, a bandwidth allocation level is determined based on the service's quality of service requirement. The bandwidth allocation level of a service is positively correlated with the service's quality of service requirement. That is, the higher the service's quality of service requirement, the larger the bandwidth allocation level of the service. Then, based on the m bandwidth sensitivity models corresponding to the m services and their respective bandwidth allocation level values, the allocated bandwidths for the m services at the first egress port are determined, so that the allocated bandwidths for the m services at the first egress port meet a second bandwidth allocation requirement. The second bandwidth allocation requirement includes: inputting the allocated bandwidths for the m services at the first egress port into the corresponding bandwidth sensitivity models so that the sum of the products of the performance degradation output by the m bandwidth sensitivity models and the corresponding bandwidth allocation level values reaches a minimum value.
[0151] For example, m services include {a1, a2, ..., a m}, business a i The allocated bandwidth at the first outbound port is w i , business a i The bandwidth allocation level is α i The second bandwidth allocation requirement can be expressed by the following formula (3). Formula (3) can be used to calculate the allocated bandwidth of each of the m services at the first outbound port when the second bandwidth allocation requirement is met.
[0152]
[0153] in, is the objective function. r A total allocated bandwidth of m services is reserved for the first egress port. is the constraint condition of the objective function, indicating that the sum of the allocated bandwidth of the m services at the first outbound port is equal to C r .w i is the independent variable, D i (w i ) can be the service a calculated by the bandwidth sensitivity model shown in formula (1) i In different allocated bandwidths w i Based on formula (3), the values of m independent variables can be determined, and the values of the m independent variables satisfy: when the m independent variables meet the constraints, Reached minimum value.
[0154] Optionally, in a network implementing Differentiated Services (DiffServ), different QoS requirements can be met. The (Internet Protocol, IP) header of a message forwarded through the network carries an IP precedence or a Differentiated Services Code Point (DSCP) field that carries the QoS requirement, so that network devices perform corresponding forwarding actions based on the QoS requirement in the IP precedence or DSCP field of the message.
[0155] Optionally, the service's quality of service requirements include expedited forwarding (EF), assured forwarding (AF), and best effort (BE). Expedited forwarding is primarily used for services requiring low latency, low jitter, and low packet loss. These services typically operate at a relatively stable rate and require fast forwarding within network devices. Services using assured forwarding are guaranteed forwarding as long as the maximum allowed bandwidth is within the specified range. Once the maximum allowed bandwidth is exceeded, the forwarding behavior is divided into four categories, each with three different drop priorities. Each assured forwarding category is allocated different bandwidth resources. The Internet Engineering Task Force (IETF) recommends using four different forwarding queues to transmit AF1x, AF2x, AF3x, and AF4x services, respectively. Each forwarding queue provides three different drop priorities, resulting in 12 per-hop behaviors (PHBs) with assured forwarding (referring to the forwarding behavior of each hop in IP forwarding). Best effort is primarily used for services that are insensitive to latency, jitter, and packet loss. Therefore, the bandwidth allocation level value of the service whose quality of service requirement is accelerated forwarding is greater than the bandwidth allocation level value of the service whose quality of service requirement is guaranteed forwarding, and the bandwidth allocation level value of the service whose quality of service requirement is guaranteed forwarding is greater than the bandwidth allocation level value of the service whose quality of service requirement is best effort. For example, the bandwidth allocation level value of the EF type service is 10, the bandwidth allocation level value of the AF type service is 1, and the bandwidth allocation level value of the BE type service is 0.5. In actual use, the initial bandwidth allocation level value of each service can be set first. When the actual service quality of the service does not meet the service quality requirement, the service operation end can apply to the network management device to adjust its bandwidth allocation level value. In other words, the bandwidth allocation level value of the service can be set and adjusted according to actual needs during the service operation process, thereby realizing the adjustment of the service allocation bandwidth.
[0156] The service bandwidth allocation method provided in the embodiments of this application relies on the bandwidth sensitivity information of the services. Based on the bandwidth sensitivity of different services, the corresponding transmission bandwidth is allocated to each service, thus realizing an application-aware bandwidth allocation solution. Compared with bandwidth-insensitive services, more bandwidth-sensitive services can be allocated more bandwidth resources, thereby helping to improve overall service performance.
[0157] Step 403: When the services forwarded through the first egress port change, determine the allocated bandwidths of the multiple services after the change on the first egress port according to the bandwidth sensitivity information of the multiple services after the change.
[0158] The multiple services on the first output port after the change are services forwarded through the first output port and using the service bandwidth allocation method provided by the embodiment of the present application. The sum of the bandwidth allocated to the multiple services on the first output port after the change is equal to the total bandwidth reserved by the first output port for all services that use the bandwidth allocation method of the present application. The sum of the bandwidth allocated to the multiple services on the first output port after the change can be equal to the sum of the bandwidth allocated to the m services on the first output port before the change. Alternatively, the total bandwidth reserved by the first output port for all services that use the bandwidth allocation method of the present application can be dynamically adjusted based on factors such as application requirements and port load, and the sum of the bandwidth allocated to the multiple services on the first output port after the change may not be equal to the sum of the bandwidth allocated to the m services on the first output port before the change. Optionally, the service forwarded through the first output port changes, including the presence of a new service on the first output port (establishing a new service connection) and / or the cessation of the old service on the first output port (releasing the old service connection). The embodiment of the present application implements a solution for reallocating bandwidth for services forwarded through the output port after a change occurs to the service forwarded through the output port.
[0159] In this step 403, the implementation method of determining the bandwidth allocation of the multiple services after the change on the first egress port at the first egress port can refer to the implementation method of determining the bandwidth allocation of the m services forwarded through the first egress port at the first egress port in the above steps 401 to 402, and the embodiment of the present application will not be repeated here.
[0160] In a first optional embodiment of the present application, the method 400 is applied to a first network device. That is, the network device can determine the allocated bandwidths of the multiple services at the egress port based on the bandwidth sensitivity information of the multiple services forwarded through its own egress port.
[0161] Optionally, the bandwidth sensitivity information of the service is a bandwidth sensitivity model corresponding to the service. The first network device may receive bandwidth sensitivity models corresponding to m services, respectively, from the network management device. The bandwidth sensitivity model may be generated by the network management device, or may be generated by the analysis device and then sent to the network management device. The network management device then sends the bandwidth sensitivity model corresponding to the service to the first network device based on the service on the first network device for use by the first network device.
[0162] Furthermore, after determining the allocated bandwidths of the m services at the first egress port (performing step 402), the first network device forwards packets of the m services through the forwarding queue on the first egress port according to the allocated bandwidths of the m services at the first egress port. Optionally, when the services forwarded through the first egress port change, the first network device determines the allocated bandwidths of the multiple services at the first egress port after the change based on the bandwidth sensitivity information of the multiple services at the first egress port after the change, and then forwards packets of the multiple services at the first egress port after the change according to the allocated bandwidths of the multiple services at the first egress port after the change, through the forwarding queue on the first egress port.
[0163] The service bandwidth allocation method provided in the embodiment of the present application does not need to calculate and limit the message sending rate of the network device, but only needs to calculate the bandwidth resources occupied by the service at the egress port. It can exist in the network at the same time as network service quality-related technologies, including mechanisms such as flow regulation (such as flow limitation, message priority setting) and flow shaping (such as congestion control). That is, the service bandwidth allocation method provided in the embodiment of the present application is responsible for allocating and adjusting the available bandwidth provided by the egress port of the network device to the service, while the actual service transmission bandwidth is calculated and controlled by mechanisms such as flow control and congestion control. In addition, the solution of the present application is compatible with the protocol stack that supports networks that differentiate between services or services based on priority, without modifying the hardware structure of the network device, and has high feasibility.
[0164] The embodiments of the present application can use different queue scheduling algorithms to implement bandwidth allocation results in related forwarding queues based on application scenarios and service performance requirements, so that the forwarding queues schedule and send service messages according to the allocated bandwidth of each service. The queue scheduling algorithms adopted include but are not limited to queue scheduling algorithms based on strict priority (SP) (also known as priority queuing (PQ) scheduling algorithms), weighted round robin (WRR) or weighted fair queuing (WFQ) scheduling algorithms. For example, for services with high requirements for response time and traffic balance (such as multimedia services, voice and video conferencing, etc.), the WFQ scheduling algorithm can be used.
[0165] With the rapid development of electronic information technology and the increasing demand for high-speed, high-capacity data storage systems in the information industry, data storage technology has made significant progress over the past half century. Compared to main and auxiliary memory, cache memory has faster access speeds but much smaller capacity. A switch typically has multiple ports, interconnected by a switching matrix. Packets always enter from one port, pass through the switching matrix, and exit from another port. In full-duplex mode, each port can be both an ingress and egress port. Switches contain a storage resource called a buffer. Most switches have a small on-chip cache, typically ranging from a few megabytes (MB) to tens of MB. Distributed across each port, this only amounts to a few hundred kilobytes (KB). During bursts, it can only hold a few dozen packets. Although single-port bandwidth has increased from 1 Gbps to 400 Gbps in less than a decade, cache capacity has not significantly improved. While a large cache can reduce packet loss, it requires a relatively long seek time, which reduces packet forwarding rates, increases equipment costs, and increases network latency. The forwarding queue is a data structure in the buffer that is used to optimize the network's packet loss rate and latency performance for different services.
[0166] When an egress port has only one forwarding queue, all packets are placed in the same forwarding queue for scheduling. This lacks isolation between different services, easily leading to out-of-order traffic and jitter. Therefore, switches have gradually evolved from single-queue to multi-queue, utilizing multiple forwarding queues to ensure isolation. A typical multi-queue is a priority queue, which has eight queue priorities, ranging from 0 to 7, with 7 generally defined as the highest priority. When scheduling multiple queues, not only the scheduling order of packets within a single forwarding queue must be considered, but also the scheduling order between forwarding queues—that is, which forwarding queue is selected as the transmission queue for the egress port.
[0167] Ideally, a communication system supports a one-to-one mapping between forwarding queues and services on network device ports. For example, when the number of services forwarded through a first egress port is less than or equal to the number of forwarding queues for the first egress port, each service can be mapped to a separate forwarding queue, with the service's allocated bandwidth at the first egress port serving as the allocated bandwidth for the corresponding forwarding queue. The more bandwidth allocated to a forwarding queue, the more scheduling opportunities it has, and the more traffic transmitted through it, resulting in higher bandwidth. For example, after a message arrives at an egress port of a network device, the service to which the message belongs is first determined, and messages from different services enter forwarding queues with different forwarding priorities. In embodiments of the present application, services can be mapped to corresponding forwarding queues based on their IP priority or DSCP priority. For example, the higher the IP priority or DSCP priority of a service, the higher the forwarding priority of the service, ensuring that higher-priority services are forwarded first. Alternatively, services can be mapped to corresponding forwarding queues based on their bandwidth sensitivity information. For example, the higher the bandwidth sensitivity of a service, the higher the forwarding priority of the service, ensuring that bandwidth-sensitive services are forwarded first. This ensures fairness in message scheduling between services of the same priority level, while also reflecting the differences in bandwidth allocation between services of different priorities. To implement the above-mentioned message scheduling process, the network management device or the first network device needs to assign a forwarding priority to each service and map the forwarding priority to a forwarding queue on the first egress port, so that after receiving the service message, the first network device can place it in the forwarding queue of the corresponding priority level. In addition, the network management device or the first network device needs to configure the first egress port based on the calculated allocated bandwidth of each service to complete the bandwidth configuration of multiple forwarding queues on the first egress port. Afterwards, the first network device can schedule and forward the arriving service messages based on the queue scheduling algorithm to execute the relevant bandwidth allocation strategy.
[0168] However, the actual network architecture only supports a limited number of forwarding priorities and forwarding queues. The number of service priorities is usually determined by the service classification strategy and the protocol design form, while the number of forwarding priorities supported by the port of the network device is determined by the network service quality specification, and the number of forwarding queues on the port is determined by the hardware implementation. For example, the InfiniBand (IB) network supports 16 forwarding priorities, Ethernet supports 8 forwarding priorities, and a typical data center switch supports 4-8 forwarding queues. Therefore, with the increase in service diversity, it is difficult to achieve a one-to-one mapping between the forwarding queues of the network device port and the services. In order to cope with the asymmetry between the number of services and the number of forwarding queues of the network device port, the embodiment of the present application designs a mapping mechanism between services and the forwarding queues of the network device port to achieve multiplexing of the same forwarding queue of the port by multiple services, thereby ensuring efficient forwarding of messages.
[0169] In the embodiments of the present application, services are grouped and mapped to forwarding queues in the form of service groups. Optionally, the first network device may store a correspondence between m services and k service groups, where the k service groups are obtained by grouping the m services. Each service group includes one or more services from the m services. m>k≥2. The similarity in the degree to which performance is affected by available bandwidth changes between different services in the same service group is higher than the similarity in the degree to which performance is affected by available bandwidth changes between services in different service groups.
[0170] Optionally, the first network device uses a clustering algorithm to group the m services based on the bandwidth sensitivity information of the m services to obtain k service groups. Alternatively, the network management device uses a clustering algorithm to group the m services based on the bandwidth sensitivity information of the m services to obtain k service groups, and then sends the service grouping information corresponding to the first output port to the first network device, and the service grouping information includes the correspondence between the m services and the k service groups. For example, the first network device or the network management device can use a k-means clustering algorithm to cluster the model coefficients of the bandwidth sensitivity model corresponding to the m services, respectively, to obtain k service groups. The service bandwidth sensitivity of each service group can be represented by the bandwidth sensitivity of the centroid of the service group.
[0171] Accordingly, the implementation of the first network device forwarding the packets of the m services through the forwarding queue on the first egress port according to the allocated bandwidths of the m services at the first egress port may include the following steps S1 to S2.
[0172] In step S1 , for a message of any service among the m services, the first network device determines the service group to which the message belongs.
[0173] Optionally, after receiving the message, the first network device determines the service to which the message belongs based on the service identifier carried in the message. The service identifier can be represented, for example, by a five-tuple comprising a source IP address, a destination IP address, a source port, a destination port, and a protocol type. After determining that the message belongs to a service among the m services, the first network device determines the service group to which the message belongs based on the stored correspondence between the m services and the k service groups.
[0174] In step S2, the first network device forwards the message through a target forwarding queue corresponding to the service group to which the service to which the message belongs belongs.
[0175] Optionally, step S2 is implemented as follows: the first network device forwards the message through the target forwarding queue based on the allocated bandwidth of the target forwarding queue and the allocated bandwidth of the service to which the message belongs at the first egress port. The allocated bandwidth of the target forwarding queue is equal to the sum of the allocated bandwidths of all services forwarded through the target forwarding queue at the first egress port.
[0176] In the case where the target forwarding queue corresponds to multiple services, the target forwarding queue can be divided into multiple logical queues corresponding to the multiple services one by one, and the allocated bandwidth of the service at the first output port is used as the allocated bandwidth of the corresponding logical queue. The first network device polls and sends the messages in the multiple logical queues according to the allocated bandwidth of the multiple logical queues in the round of sending the target forwarding queue, thereby realizing the scheduling of service messages. The forwarding queue in the embodiment of the present application can be a software-defined queue or a programmable queue, including but not limited to a push-in first-out (PIFO) queue or a push-in extract-out (PIEO) queue. Among them, the PIFO queue and the PIEO queue are both priority queue data structures. The PIFO queue allows messages to be "pushed" to any position in the queue, but only dequeues from the head. The PIEO queue allows messages to be "pushed" to any position in the queue, and allows dequeueing from any position in the queue.
[0177] Optionally, the message also includes a service priority of the service to which the message belongs. Step S2 may be implemented as follows: when the target forwarding queue includes multiple messages of multiple service priorities, the multiple messages are forwarded through the target forwarding queue in descending order of service priority based on the allocated bandwidth of the target forwarding queue and the allocated bandwidth of the first egress port for the services to which the multiple messages belong.
[0178] After completing the grouping of services, the embodiment of the present application establishes a mapping relationship between service groups and forwarding queues through a two-layer mapping method, thereby solving the mapping problem between services and port forwarding queues when the number of services exceeds the number of port forwarding queues. The first layer of mapping is used to map service groups to the forwarding priorities supported by the port, and the second layer of mapping is used to map the forwarding priorities supported by the port to the port's forwarding queues.
[0179] Taking the first output port of the first network device supporting k forwarding priorities, the first output port including t forwarding queues, and the number of services forwarded through the first output port as m as an example, when m>k≥t≥2, the first network device can store a first mapping relationship between k service groups and k forwarding priorities (i.e. the above-mentioned first-layer mapping) and a second mapping relationship between k forwarding priorities and t forwarding queues (i.e. the above-mentioned second-layer mapping). The present application scheme and the mapping method of the forwarding queues of services and ports can only act on some services forwarded through the network device port and some forwarding queues on the port, that is, the forwarding priority number k, the forwarding queue number t, and the service number m here can be less than the total number of forwarding priorities, the total number of forwarding queues, and the number of all services actually supported by the port, and the forwarding priorities, forwarding queues, and services not involved can be used for the forwarding of other service flows (such as network maintenance and management messages, protocol control messages, etc.) that do not use the present application scheme. The number of forwarding priorities, the number of forwarding queues, and the number of services applied to the present application scheme on each port can be flexibly adjusted according to actual needs.
[0180] The first mapping relationship satisfies the following: the service group with the higher degree of influence of the available bandwidth change corresponds to a higher forwarding priority, that is, the k service groups are sorted from high to low according to bandwidth sensitivity, and correspond to k forwarding priorities from high to low. For example, the services forwarded through the first egress port include services 1 to 15, and the first egress port supports 8 forwarding priorities, which include priorities 0 to 7 from high to low. The k service groups include service groups 1 to 8, service group 1 includes service 1 and service 2, service group 2 includes service 3 and service 4, service group 3 includes service 5, service 6, and service 7, service group 4 includes service 8 and service 9, service group 5 includes service 10, service group 6 includes service 11, service group 7 includes service 12 and service 13, and service group 8 includes service 14 and service 15. The first mapping relationship can be shown in Table 1.
[0181] Table 1
[0182]
[0183]
[0184] Optionally, the first mapping relationship can be generated by the first network device, or can be generated by the network management device and then sent to the first network device. When m ≤ k, that is, the number of services forwarded by the first egress port is less than or equal to the number of forwarding priorities supported by the first egress port, services may not be grouped, and instead a mapping relationship between services and forwarding priorities may be directly established. This mapping relationship can satisfy the following: the more a service is affected by changes in available bandwidth, the higher the forwarding priority corresponding to the service.
[0185] The second mapping relationship includes: for any forwarding queue among the t forwarding queues, the forwarding queue corresponds to one forwarding priority among the k forwarding priorities, or the forwarding queue corresponds to multiple adjacent forwarding priorities among the k forwarding priorities. The allocated bandwidth of a forwarding queue is equal to the sum of the allocated bandwidths of all services mapped to the forwarding queue at the first egress port. For example, the first egress port includes four forwarding queues, namely forwarding queues 0 to 3. In conjunction with the example shown in Reference Table 1, forwarding priorities 0 to 1 correspond to forwarding queue 0, forwarding priorities 2 to 3 correspond to forwarding queue 1, forwarding priorities 4 to 5 correspond to forwarding queue 2, and forwarding priorities 6 to 7 correspond to forwarding queue 3. The second mapping relationship can be as shown in Table 2.
[0186] Table 2
[0187]
[0188] Combining Tables 1 and 2, we can see that services 1 to 4 are mapped to forwarding queue 0, and the allocated bandwidth of forwarding queue 0 is equal to the sum of the allocated bandwidths of services 1 to 4 at the first egress port. Services 5 to 9 are mapped to forwarding queue 1, and the allocated bandwidth of forwarding queue 1 is equal to the sum of the allocated bandwidths of services 5 to 9 at the first egress port. Services 10 to 11 are mapped to forwarding queue 2, and the allocated bandwidth of forwarding queue 2 is equal to the sum of the allocated bandwidths of services 10 to 11 at the first egress port. Services 12 to 15 are mapped to forwarding queue 3, and the allocated bandwidth of forwarding queue 3 is equal to the sum of the allocated bandwidths of services 12 to 15 at the first egress port. The first network device polls and sends the packets in forwarding queues 0 to 3 based on their allocated bandwidths.
[0189] Optionally, the first mapping relationship and the second mapping relationship may be stored separately in the first network device, for example, in the form of Table 1 and Table 2, respectively. Alternatively, the first mapping relationship and the second mapping relationship may be stored in association in the first network device. In this case, the first network device stores a mapping relationship: service group → forwarding priority → forwarding queue. For example, Table 1 and Table 2 may be combined into one table and stored in the first network device.
[0190] Optionally, the second mapping relationship may be generated by the first network device, or may be generated by the network management device and then sent to the first network device. The second mapping relationship is generated as follows: when k>t, a hierarchical clustering algorithm is used to map the k forwarding priorities to the t forwarding queues, or, when k=t, the k forwarding priorities are mapped one-to-one to the t forwarding queues to obtain the second mapping relationship.
[0191] Optionally, when the first mapping relationship and the second mapping relationship are generated by a network management device, the first network device may receive service mapping information corresponding to the first egress port sent by the network management device, where the service mapping information includes the first mapping relationship and the second mapping relationship.
[0192] It is worth noting that, in the embodiment of the present application, the mapping relationship between the service group and the forwarding priority, as well as the mapping relationship between the forwarding priority and the forwarding queue, is determined based on the granularity of the egress port of the network device. Due to the diversity of services in the network, a service will usually pass through different network devices, and the services forwarded by the egress ports of different network devices are usually not exactly the same. In addition, network devices are heterogeneous, and the number of forwarding queues supported by the ports of different network devices may also be different. Therefore, it is necessary to use the egress port of the network device as the granularity to calculate the allocated bandwidth of multiple services forwarded through the same egress port at the egress port and generate the mapping relationship between the service group and the forwarding priority, as well as the mapping relationship between the forwarding priority and the forwarding queue on the egress port. Alternatively, when the forwarding priority and the number of forwarding queues of the port of each network device can be set differently, it is also necessary to use the egress port of the network device as the granularity to calculate the allocated bandwidth and generate the mapping relationship.
[0193] Optionally, when the first mapping relationship and the second mapping relationship are stored in the first network device, the implementation process of the above-mentioned step S2 is as follows: the first network device first determines the target forwarding priority corresponding to the business group to which the business to which the message belongs is located based on the first mapping relationship, and then determines the target forwarding queue corresponding to the target forwarding priority based on the second mapping relationship. Finally, according to the allocated bandwidth of the target forwarding queue and the allocated bandwidth of the business to which the message belongs at the first output port, the message is forwarded through the target forwarding queue.
[0194] For example, the message received by the first network device belongs to service 1. The first network device can determine the target forwarding priority as forwarding priority 0 corresponding to service group 1 based on the first mapping relationship shown in Table 1, and then determine the target forwarding queue as forwarding queue 0 corresponding to forwarding priority 0 based on the second mapping relationship shown in Table 2. Finally, the message is scheduled to forwarding queue 0 and sent through forwarding queue 0.
[0195] In a second optional embodiment of the present application, the method 400 is applied to a network management device. That is, the network management device can determine the allocated bandwidths of multiple services on the same egress port of the network device based on the bandwidth sensitivity information of the multiple services forwarded through the same egress port.
[0196] Furthermore, after determining the allocated bandwidths of the m services at the first egress port (step 402 ), the network management device sends a first bandwidth allocation policy to the first network device. The first bandwidth allocation policy includes the allocated bandwidths of the m services at the first egress port.
[0197] Optionally, the m services include a target service, and the target service, along a transmission path within the network, includes the first egress port of the first network device and the second egress port of the second network device. The network management device, in addition to executing method 400, may further perform the following steps: the network management device obtains bandwidth sensitivity information for n services forwarded through the second egress port of the second network device, where the n services include the first service, and n is a positive integer; the network management device determines, based on the bandwidth sensitivity information of the n services, the allocated bandwidth for the n services at the second egress port, where the n services include the target service; and the network management device sends a second bandwidth allocation policy to the second network device, where the second bandwidth allocation policy includes the allocated bandwidth for the n services at the second egress port. The implementation of these steps may refer to the implementation of steps 401 to 402 above, and will not be further described in detail in this embodiment of the present application. Accordingly, the second network device forwards packets for the n services, using a forwarding queue on the second egress port, based on the allocated bandwidth for the n services at the second egress port. In this embodiment of the present application, the allocated bandwidth for the forwarded services is determined for each egress port of each network device employing the present solution.
[0198] In the face of the dynamic nature of the network and the burstiness of traffic, the network management device can centrally perform service bandwidth allocation and network device configuration to optimize overall service performance. In order to ensure timely and effective allocation of service bandwidth, the network management device needs to clarify which services of the network operation need to be allocated bandwidth according to the scheme provided in the embodiment of the present application, that is, the services that comply with the bandwidth allocation scheme provided in the embodiment of the present application, especially in scenarios where the network device supports the coexistence of multiple bandwidth allocation schemes. In addition, the network management device needs to clearly define the source device and destination device of the service that complies with the bandwidth allocation scheme provided in the embodiment of the present application to determine the network device on the transmission path connecting the source device and the destination device for forwarding the egress port of the service.
[0199] Optionally, for any of the above-mentioned m services, the network management device may receive service connection information sent by the terminal device before executing the above-mentioned steps 401 and 402, and the service connection information includes the device identifier of the source device of the service and the device identifier of the destination device of the service, and the terminal device is the source device of the service or the destination device of the service. The network management device determines the transmission path of the service in the network based on the service connection information, and the transmission path includes the first output port of the first network device. The source device and the destination device of a service can establish a transmission control protocol (TCP) connection or a remote direct memory access (RDMA) queue pair (QP) (collectively referred to as: communication connection) to transmit data.
[0200] In an embodiment of the present application, the network management device can calculate the allocated bandwidth of the outbound port of each network device on the transmission path of the service in real time based on the bandwidth sensitivity information and service connection information of the service, so that the network device configures the forwarding queue according to the allocated bandwidth of the service at the outbound port, thereby implementing the corresponding bandwidth allocation strategy.
[0201] Optionally, the network management device may also receive a service registration request sent by the terminal device, the service registration request including a service identifier, and the network management device may determine, based on the service registration request, whether the service indicated by the service identifier complies with the bandwidth allocation scheme provided in the embodiment of the present application. Further, the network management device may send a service registration response to the terminal device.
[0202] In order to more effectively and flexibly implement the service bandwidth allocation solution provided in the embodiment of the present application, a software interface and a connection manager can be provided through a software library to facilitate the interaction between terminal devices running the service and the network management device and complete the transmission of service data.
[0203] Among them, the connection manager is responsible for information interaction with the network management device and establishment of service communication connections. For a service on a terminal device that wants to use the bandwidth allocation solution provided by the embodiment of the present application, the connection manager will communicate with the network management device to register the service. When the system needs to classify service messages according to application attributes and user needs, the network management device will return a service priority assigned to the service after receiving the registration request from the connection manager. When a service needs to communicate data, it will establish a new communication connection through the connection manager. The data messages transmitted by all communication connections associated with a service can carry the service priority corresponding to the service. It should be noted that when a service establishes or releases a communication connection, it will cause the occupation or release of new bandwidth resources. Therefore, the connection manager will notify the network management device of the establishment and release messages of the connection to facilitate the reallocation of network bandwidth. The software interface is used for the terminal device running the service to interact with the connection manager and the network management device. For example, the interaction process between the software interface on the terminal device and the connection manager and the network management device, and the network device during connection establishment / release and service bandwidth allocation can be as follows. Figure 5 As shown, the steps include the following steps A1 to A13.
[0204] In step A1, when a service running on a terminal device wants to use the solution provided by an embodiment of the present application for bandwidth allocation, the terminal device sends a service registration request to a connection manager through a software interface.
[0205] In step A2, the connection manager forwards the received service registration request to the network management device.
[0206] In step A3, after receiving the service registration request, the network management device sends a service registration response to the connection manager.
[0207] Optionally, when the network device needs to classify service messages when forwarding messages, the service registration response may include a service priority assigned to the service.
[0208] In step A4, when the service on the terminal device needs to establish a communication connection for data communication, a connection establishment request is sent to the connection manager through the software interface.
[0209] The connection manager calls the local network protocol stack interface to establish a communication connection with the destination device and associates the communication connection with the service priority. After the connection is successfully established, the connection manager returns a connection descriptor to the service to facilitate the subsequent transmission of service messages.
[0210] In step A5, the connection manager sends a connection establishment notification to the network management device. The connection establishment notification may include the device identification of the source device of the newly established communication connection, the device identification of the destination device, and service connection information such as service priority.
[0211] In step A6, after receiving the connection establishment notification, the network management device uses the bandwidth allocation scheme provided in the embodiment of the present application to allocate appropriate bandwidth to each link on the transmission path of the service establishing the communication connection (i.e., the egress port of the network device connected to the link).
[0212] In step A7, the network management device sends the corresponding bandwidth allocation policy to the network devices on the transmission path (corresponding to each link segment) to configure the network devices so that the network devices execute the corresponding bandwidth allocation policy.
[0213] In step A8, after the service transmission is completed, the terminal device sends a connection release request to the connection manager through the software interface.
[0214] The connection manager will call the network protocol stack interface to release a communication connection with the destination device.
[0215] In step A9, after the connection is released, the connection manager sends a connection release notification to the network management device so that the network management device can reallocate the released bandwidth. The connection release notification may include the device identification of the source device of the released communication connection, the device identification of the destination device, and service connection information such as service priority.
[0216] In step A10, after receiving the connection release notification, the network management device updates the bandwidth allocation mode of each link segment on the transmission path of the service of the released communication connection to fully utilize the newly released bandwidth.
[0217] In step A11 , after calculating the new bandwidth allocation mode, the network management device sends the corresponding bandwidth allocation policies to the network devices whose bandwidth allocation modes are changed, so as to reconfigure the network devices.
[0218] In step A12, when the service is no longer running in the network, or the service running on the terminal device no longer uses the solution provided by the embodiment of the present application for bandwidth allocation, the terminal device sends a service cancellation request to the connection manager through the software interface.
[0219] In step A13, the connection manager forwards the service deregistration request to the network management device.
[0220] Afterwards, the network management device invalidates information related to the service (such as service priority and bandwidth allocation).
[0221] This embodiment of the present application allocates bandwidth to registered and active services. By tracking active services, the network management device maintains global information about the routes of these services. Based on the service's transmission path and bandwidth sensitivity, the network management device can calculate the allocated bandwidth for each service on each network device's outbound port.
[0222] The order of the steps of the above-mentioned service bandwidth allocation method provided in the embodiment of the present application can be adjusted appropriately, and the steps can be increased or decreased accordingly. Any method that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application.
[0223] The following describes the virtual device in the embodiment of the present application by way of example.
[0224] For example, Figure 6 This is a schematic diagram of the structure of a network device provided in an embodiment of the present application. Figure 6 As shown, the network device 600 includes but is not limited to an acquisition module 601 and a determination module 602. Optionally, the network device 600 further includes a transceiver module 603 and / or a grouping module 604.
[0225] The acquisition module 601 is configured to acquire bandwidth sensitivity information for m services forwarded through a first egress port of a first network device in the network. The bandwidth sensitivity information for each service reflects the extent to which the performance of the service is affected by changes in available bandwidth, where m is a positive integer greater than 1. The determination module 602 is configured to determine the allocated bandwidths for the m services at the first egress port based on the bandwidth sensitivity information for the m services. The sum of the allocated bandwidths for the m services at the first egress port is equal to the total allocated bandwidth reserved for the m services at the first egress port.
[0226] Optionally, the bandwidth sensitivity information of each service is represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance change of the corresponding service under different available bandwidths compared with the reference bandwidth.
[0227] Optionally, the bandwidth sensitivity information of each service is obtained based on a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance change of the corresponding service under different available bandwidths compared to the reference bandwidth.
[0228] Optionally, the bandwidth sensitivity information of each service is represented by a bandwidth sensitivity value or a bandwidth sensitivity level determined based on a bandwidth sensitivity model corresponding to the service.
[0229] Optionally, for the bandwidth sensitivity model corresponding to each service, the bandwidth sensitivity model is a regression model fitted based on multiple groups of sample data corresponding to the service, and each group of sample data includes an available bandwidth of the service and the performance change of the service under the available bandwidth compared with the baseline bandwidth.
[0230] Optionally, the benchmark bandwidth is the total port bandwidth, the available bandwidth in the sample data is less than or equal to the total port bandwidth, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the benchmark bandwidth.
[0231] Optionally, the allocated bandwidth of a single service among the m services at the first egress port is positively correlated with the degree to which the performance of the service is affected by the change in available bandwidth.
[0232] Optionally, the bandwidth sensitivity information of each service is respectively represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the baseline bandwidth. The determination module 602 is specifically used to determine the allocated bandwidth of the m services at the first output port according to the m bandwidth sensitivity models corresponding to the m services, so that the allocated bandwidth of the m services at the first output port meets the first bandwidth allocation requirement, wherein the first bandwidth allocation requirement includes: inputting the allocated bandwidth of the m services at the first output port into the corresponding bandwidth sensitivity model, so that the sum of the performance degradation output by the m bandwidth sensitivity models reaches a minimum value.
[0233] Optionally, the determination module 602 is configured to determine allocated bandwidths of the m services at the first egress port respectively according to bandwidth sensitivity information of the m services and quality of service requirements of the m services.
[0234] Optionally, the bandwidth sensitivity information of each service is represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the baseline bandwidth. The determination module 602 is specifically used to: for each of the m services, determine the bandwidth allocation level value of the service according to the service quality requirement of the service, and the bandwidth allocation level value of the service is positively correlated with the service quality requirement of the service; according to the m bandwidth sensitivity models corresponding to the m services and the respective bandwidth allocation level values of the m services, determine the allocated bandwidth of the m services at the first output port, so that the allocated bandwidth of the m services at the first output port meets the second bandwidth allocation requirement, wherein the second bandwidth allocation requirement includes: inputting the allocated bandwidth of the m services at the first output port into the corresponding bandwidth sensitivity model, so that the sum of the products of the performance degradation output by the m bandwidth sensitivity models and the corresponding bandwidth allocation level values reaches a minimum value.
[0235] Optionally, the quality of service requirements of the service include accelerated forwarding, guaranteed forwarding and best effort, wherein the bandwidth allocation level value of the service with the quality of service requirement of accelerated forwarding is greater than the bandwidth allocation level value of the service with the quality of service requirement of guaranteed forwarding, and the bandwidth allocation level value of the service with the quality of service requirement of guaranteed forwarding is greater than the bandwidth allocation level value of the service with the quality of service requirement of best effort.
[0236] Optionally, the determination module 602 is further used to determine, when a change occurs in the service forwarded through the first output port, the allocated bandwidth of the multiple services after the change on the first output port based on the bandwidth sensitivity information of the multiple services after the change, wherein the sum of the allocated bandwidths of the multiple services after the change on the first output port is equal to the total allocated bandwidth.
[0237] Optionally, the transceiver module 603 is configured to forward the packets of the m services through the forwarding queue on the first egress port according to the allocated bandwidths of the m services on the first egress port.
[0238] Optionally, the first network device stores a correspondence between m services and k service groups, where the k service groups are obtained by grouping the m services, and each service group includes one or more services among the m services, m>k≥2, and the similarity in the degree to which the performance of different services in the same service group is affected by changes in available bandwidth is higher than the similarity in the degree to which the performance of services in different service groups is affected by changes in available bandwidth; the transceiver module 603 is specifically used to: for a message of any service among the m services, determine the service group to which the message belongs; and forward the message through a target forwarding queue corresponding to the service group to which the message belongs.
[0239] Optionally, the transceiver module 603 is specifically configured to forward the message through the target forwarding queue according to the allocated bandwidth of the target forwarding queue and the allocated bandwidth of the service to which the message belongs at the first egress port, where the allocated bandwidth of the target forwarding queue is equal to the sum of the allocated bandwidths of all services forwarded through the target forwarding queue at the first egress port.
[0240] Optionally, the grouping module 604 is configured to group the m services based on bandwidth sensitivity information of the m services using a clustering algorithm to obtain k service groups.
[0241] Optionally, the transceiver module 603 is configured to receive service grouping information corresponding to the first outbound port sent by the network management device, where the service grouping information includes a correspondence between m services and k service groups.
[0242] Optionally, the m services include one or more of computing-intensive services, memory-intensive services, I / O-intensive services, or network communication-intensive services.
[0243] For example, Figure 7 This is a schematic diagram of the structure of a network management device provided by an embodiment of the present application. Figure 7 As shown, the network management device 700 includes but is not limited to an acquisition module 701 and a determination module 702. Optionally, the network management device 700 further includes a transceiver module 703 and / or a grouping module 704.
[0244] The acquisition module 701 is configured to acquire bandwidth sensitivity information for m services forwarded through a first egress port of a first network device in the network, where the bandwidth sensitivity information for each service reflects the extent to which the performance of the service is affected by changes in available bandwidth, where m is a positive integer greater than 1. The determination module 702 is configured to determine the allocated bandwidths for the m services at the first egress port based on the bandwidth sensitivity information for the m services, where the sum of the allocated bandwidths for the m services at the first egress port equals the total allocated bandwidth reserved for the m services at the first egress port.
[0245] Optionally, the bandwidth sensitivity information of each service is represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance change of the corresponding service under different available bandwidths compared with the reference bandwidth.
[0246] Optionally, the bandwidth sensitivity information of each service is obtained based on a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance change of the corresponding service under different available bandwidths compared to the reference bandwidth.
[0247] Optionally, the bandwidth sensitivity information of each service is represented by a bandwidth sensitivity value or a bandwidth sensitivity level determined based on a bandwidth sensitivity model corresponding to the service.
[0248] Optionally, for the bandwidth sensitivity model corresponding to each service, the bandwidth sensitivity model is a regression model fitted based on multiple groups of sample data corresponding to the service, and each group of sample data includes an available bandwidth of the service and the performance change of the service under the available bandwidth compared with the baseline bandwidth.
[0249] Optionally, the benchmark bandwidth is the total port bandwidth, the available bandwidth in the sample data is less than or equal to the total port bandwidth, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the benchmark bandwidth.
[0250] Optionally, the allocated bandwidth of a single service among the m services at the first egress port is positively correlated with the degree to which the performance of the service is affected by the change in available bandwidth.
[0251] Optionally, the bandwidth sensitivity information of each service is respectively represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the baseline bandwidth. The determination module 702 is specifically used to determine the allocated bandwidth of the m services at the first output port according to the m bandwidth sensitivity models corresponding to the m services, so that the allocated bandwidth of the m services at the first output port meets the first bandwidth allocation requirement, wherein the first bandwidth allocation requirement includes: inputting the allocated bandwidth of the m services at the first output port into the corresponding bandwidth sensitivity model, so that the sum of the performance degradation output by the m bandwidth sensitivity models reaches a minimum value.
[0252] Optionally, the determination module 702 is configured to determine allocated bandwidths of the m services at the first egress port respectively according to bandwidth sensitivity information of the m services and service quality requirements of the m services.
[0253] Optionally, the bandwidth sensitivity information of each service is represented as a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the baseline bandwidth. The determination module 702 is specifically used to: for each of the m services, determine the bandwidth allocation level value of the service according to the service quality requirement of the service, and the bandwidth allocation level value of the service is positively correlated with the service quality requirement of the service; according to the m bandwidth sensitivity models corresponding to the m services and the respective bandwidth allocation level values of the m services, determine the allocated bandwidth of the m services at the first output port, so that the allocated bandwidth of the m services at the first output port meets the second bandwidth allocation requirement, wherein the second bandwidth allocation requirement includes: inputting the allocated bandwidth of the m services at the first output port into the corresponding bandwidth sensitivity model, so that the sum of the products of the performance degradation output by the m bandwidth sensitivity models and the corresponding bandwidth allocation level values reaches a minimum value.
[0254] Optionally, the quality of service requirements of the service include accelerated forwarding, guaranteed forwarding and best effort, wherein the bandwidth allocation level value of the service with the quality of service requirement of accelerated forwarding is greater than the bandwidth allocation level value of the service with the quality of service requirement of guaranteed forwarding, and the bandwidth allocation level value of the service with the quality of service requirement of guaranteed forwarding is greater than the bandwidth allocation level value of the service with the quality of service requirement of best effort.
[0255] Optionally, the determination module 702 is further used to determine, when a change occurs in the service forwarded through the first output port, the allocated bandwidth of the multiple services after the change on the first output port based on the bandwidth sensitivity information of the multiple services after the change, wherein the sum of the allocated bandwidths of the multiple services after the change on the first output port is equal to the total allocated bandwidth.
[0256] Optionally, the transceiver module 703 is configured to send a first bandwidth allocation policy to the first network device, where the first bandwidth allocation policy includes allocated bandwidths for m services at the first egress port respectively.
[0257] Optionally, the grouping module 704 is configured to use a clustering algorithm to group the m services based on their bandwidth sensitivity information to obtain k service groups, where each service group includes one or more of the m services, m>k≥2, and the similarity in the degree to which performance is affected by available bandwidth changes between different services in the same service group is higher than the similarity in the degree to which performance is affected by available bandwidth changes between services in different service groups. The transceiver module 703 is configured to send service grouping information corresponding to the first egress port to the first network device, where the service grouping information includes a correspondence between the m services and the k service groups.
[0258] Optionally, the m services include the target service, and the transmission path of the target service in the network also includes the second egress port of the second network device. Determination module 702 is further configured to determine the allocated bandwidth for the n services at the second egress port based on bandwidth sensitivity information of the n services forwarded through the second egress port, where the n services include the target service, and n is a positive integer. Transceiver module 703 is configured to send a second bandwidth allocation policy to the second network device, the second bandwidth allocation policy including the allocated bandwidth for the n services at the second egress port.
[0259] Optionally, the acquisition module 701 is used to: obtain multiple sets of sample data of the service for any of the m services, each set of sample data including an available bandwidth of the service and the performance change of the service under the available bandwidth compared with the baseline bandwidth; fit the regression model according to the multiple sets of sample data to obtain a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance change of the service under different available bandwidths compared with the baseline bandwidth.
[0260] Optionally, the m services include one or more of computing-intensive services, memory-intensive services, I / O-intensive services, or network communication-intensive services.
[0261] Regarding the apparatus in the above embodiment, the specific manner in which each module performs operations has been described in detail in the embodiment of the method, and will not be elaborated here.
[0262] The following is an example of the basic hardware structure of the network device in the embodiment of the present application.
[0263] For example, Figure 8 This is a schematic diagram of the hardware structure of a network device provided in an embodiment of the present application. Figure 8As shown, the network device 800 includes a processor 801, a forwarding chip 802 and at least one network interface 803. Figure 3 Come and see, Figure 8 The network device 800 is Figure 3 Any network device 303 shown.
[0264] Optionally, the processor 801 includes a central processing unit (CPU) and / or a dedicated hardware chip. The CPU refers to a general-purpose CPU with high scalability and flexibility. The CPU is, for example, a single-core processor (single-CPU) or a multi-core processor (multi-CPU). The dedicated hardware chip is a high-performance processing hardware module. The dedicated hardware chip includes at least one of an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a network processor (NP).
[0265] The forwarding chip 802 is used to forward requests and data. For example, the forwarding chip 802 is used by the network device 800 to forward service messages.
[0266] At least one network interface 803 includes, for example, Figure 8 The network interface 803 is a device such as a transceiver for communicating with other devices or communication networks. For example, Figure 8 The network interface 1 in communicates with the terminal device, Figure 8 The network interface 2 in the embodiment communicates with the network management device. Optionally, the network interface 803 includes at least one of a wired network interface and a wireless network interface. The wired network interface is, for example, an Ethernet interface. The Ethernet interface is, for example, an optical interface, an electrical interface, or a combination thereof. The wireless network interface is, for example, a wireless local area network (WLAN) interface, a cellular network interface, or a combination thereof.
[0267] At least one network interface 803 is connected to the forwarding chip 802, and the forwarding chip 802 is connected to the processor 801 via an internal connection 804. The internal connection 804 includes a path for transmitting data between the network interface 803, the forwarding chip 802, and the processor 801. Optionally, the internal connection 804 is a single board or a bus. For example, the internal connection 804 is Ethernet, fiber channel, PCI-E (peripheral component interconnect express, PCI Express, a high-speed serial computer bus), RapidIO (a high-performance, low-pin-count, packet-switching-based interconnect architecture), InfiniBand, or a XAUI bus (an interface extender characterized by connecting the Ethernet media access control (MAC) layer to the physical layer).
[0268] Optionally, network device 800 further includes a content addressable memory (CAM) 805. CAM 805 is, for example, a ternary content addressable memory (TCAM). Optionally, CAM 805 exists independently and is connected to forwarding chip 802 via the aforementioned internal connection 804. Alternatively, CAM 805 and forwarding chip 802 are integrated, i.e., CAM 805 functions as memory within forwarding chip 802.
[0269] Optionally, the network device 800 further includes a memory 806. The memory 806 is, for example, a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, an optical disc storage (including a compact disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code 808 in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 806 is, for example, independent and connected to the processor 801 via the internal connection 804. Alternatively, the memory 806 and the processor 801 are integrated together.
[0270] The memory 806 stores an operating system 807 and a program code 808. Optionally, the processor 801 reads the operating system 807 from the memory 806 and runs the operating system 807. The processor 801 also reads the program code 808 from the memory 806 and implements the actions performed by the network device in the above method provided in the embodiment of the present application by running the program code 808 on the operating system 807.
[0271] Optionally, the above-mentioned devices are respectively provided on independent chips, or at least partially or entirely provided on the same chip. Whether each device is provided independently on different chips or integrated on one or more chips often depends on the needs of product design. The embodiments of the present application do not limit the specific implementation of the above-mentioned devices.
[0272] The following is an example of the basic hardware structure of the network management device / analysis device in the embodiment of the present application.
[0273] For example, Figure 9 This is a hardware structure diagram of a network management device / analysis device provided in an embodiment of the present application. Figure 9 As shown, the network management device / analysis device 900 includes a processor 901 and a memory 902 , and the memory 901 and the memory 902 are connected via a bus 903 . Figure 9 The processor 901 and the memory 902 are described as being independent of each other. Optionally, the processor 901 and the memory 902 are integrated together. Figure 3 Come and see, Figure 9 The device 900 in may be Figure 3 The network management device 301 shown, or may be Figure 3 Analytical device 303 is shown.
[0274] Memory 902 is used to store computer programs, including operating systems and program code. Memory 902 can be any type of storage medium, such as ROM, RAM, EEPROM, CD-ROM, flash memory, optical storage, registers, optical disk storage, optical disc storage, magnetic disk, or other magnetic storage device.
[0275] The processor 901 is a general-purpose processor or a dedicated processor. The processor 901 may be a single-core processor or a multi-core processor. The processor 901 includes at least one circuit to execute the actions performed by the network management device / analysis device in the above method provided in the embodiment of the present application.
[0276] Optionally, the network management device / analysis device 900 further includes a network interface 904, which is connected to the processor 901 and the memory 902 via a bus 903. The network interface 904 enables the network management device / analysis device 900 to communicate with other devices.
[0277] Optionally, the network management device / analysis device 900 further includes an input / output (I / O) interface 905, which is connected to the processor 901 and the memory 902 via the bus 903. The processor 901 can receive input commands or data through the I / O interface 905. The I / O interface 905 is used to connect the network management device / analysis device 900 to input devices, such as a keyboard and a mouse. Optionally, in some possible scenarios, the network interface 904 and the I / O interface 905 are collectively referred to as a communication interface.
[0278] Optionally, the network management device / analysis device 900 further includes a display 906, which is connected to the processor 901 and the memory 902 via the bus 903. The display 906 can be used to display intermediate results and / or final results generated by the processor 901 executing the above method. In one possible implementation, the display 906 is a touch screen display to provide a human-computer interaction interface.
[0279] The bus 903 is any type of communication bus used to interconnect the internal components of the network management device / analysis device 900, such as a system bus. The embodiments of the present application illustrate the example of the aforementioned components within the network management device / analysis device 900 being interconnected via the bus 903. Alternatively, the aforementioned components within the network management device / analysis device 900 may be communicatively connected to each other using other connection methods besides the bus 903, such as interconnecting the aforementioned components within the network management device / analysis device 900 via a logical interface within the network management device / analysis device 900.
[0280] The above-mentioned devices can be provided on separate chips, or at least partially or entirely on the same chip. Whether to provide each device independently on different chips or to integrate them on one or more chips often depends on the product design requirements. The embodiments of this application do not limit the specific implementation of the above-mentioned devices.
[0281] Figure 9 The network management device / analysis device 900 shown is merely exemplary. During implementation, the network management device / analysis device 900 includes other components, which are not listed here one by one. Figure 9 The network management device / analysis device 900 shown can implement the allocation of service bandwidth by executing all or part of the steps of the method provided in the above embodiment.
[0282] An embodiment of the present application further provides a service bandwidth allocation system, comprising: a network management device and a first network device in the network.
[0283] The network management device is used to obtain bandwidth sensitivity information of m services forwarded at the first output port of the first network device, and determine the allocated bandwidth of the m services at the first output port based on the bandwidth sensitivity information of the m services. The bandwidth sensitivity information of each service is used to reflect the degree to which the performance of the service is affected by changes in available bandwidth. m is a positive integer greater than 1, and the sum of the allocated bandwidths of the m services at the first output port is equal to the total allocated bandwidth reserved for the m services at the first output port. The network management device is also used to send a first bandwidth allocation policy to the first network device. The first bandwidth allocation policy includes the allocated bandwidths of the m services at the first output port. The first network device is used to forward the messages of the m services at the first output port based on the allocated bandwidths of the m services at the first output port through the forwarding queue on the first output port.
[0284] Optionally, the network management device is also used to obtain multiple sets of sample data of the service for any of the m services, and fit a regression model based on the multiple sets of sample data to obtain a bandwidth sensitivity model corresponding to the service. Each set of sample data includes an available bandwidth of the service and the performance change of the service under the available bandwidth compared to the baseline bandwidth. The bandwidth sensitivity model is used to determine the performance change of the service under different available bandwidths compared to the baseline bandwidth.
[0285] Alternatively, the service bandwidth allocation system further includes an analysis device, for example, see Figure 3 The analysis device is used to obtain multiple sets of sample data for any of the m services, and fit a regression model based on the multiple sets of sample data to obtain a bandwidth sensitivity model corresponding to the service. Each set of sample data includes an available bandwidth for the service and the performance change of the service under the available bandwidth compared to the baseline bandwidth. The bandwidth sensitivity model is used to determine the performance change of the service under different available bandwidths compared to the baseline bandwidth. The analysis device is also used to send the bandwidth sensitivity model corresponding to the service to the network management device.
[0286] An embodiment of the present application further provides a computer-readable storage medium having instructions stored thereon. When the instructions are executed by a processor, the actions performed by the network management device or the network device in the above method embodiment are implemented.
[0287] An embodiment of the present application further provides a computer program product, including a computer program. When the computer program is executed by a processor, the computer program implements the actions performed by the network management device or the network device in the above method embodiment.
[0288] An embodiment of the present application further provides a chip, which includes a programmable logic circuit and / or program instructions. When the chip is running, it implements the actions performed by the network management device or network device in the above method embodiment.
[0289] In the above embodiments, all or part of the embodiments can be implemented using software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments can be implemented 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 the present invention 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 from one computer-readable storage medium to another. For example, 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, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a digital versatile disc (DVD)), or a semiconductor medium (eg, a solid state disk (SSD)).
[0290] Those skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware, or by a program to instruct the relevant hardware, and the program may be stored in a computer-readable storage medium, which may be a read-only memory, a disk, or an optical disk, etc.
[0291] In the embodiments of the present application, the terms “first”, “second” and “third” are used for descriptive purposes only and should not be understood as indicating or implying relative importance.
[0292] In this application, the term "and / or" simply describes an association between related objects, indicating that three possible relationships exist. For example, A and / or B can represent: A exists alone, A and B exist simultaneously, and B exists alone. In addition, the character " / " in this document generally indicates that the related objects are in an "or" relationship.
[0293] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.) and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions.
[0294] The above description is merely an optional embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the concepts and principles of the present application shall be included in the scope of protection of the present application.
Claims
1. A service bandwidth allocation method, characterized in that: The method comprises: Obtaining bandwidth sensitivity information of m services forwarded through a first egress port of a first network device in the network, where the bandwidth sensitivity information of each service is used to reflect the degree to which performance of the service is affected by a change in available bandwidth, where m is a positive integer greater than 1; Determine, based on bandwidth sensitivity information of the m services, allocated bandwidths for the m services at the first egress port, respectively, wherein a sum of the allocated bandwidths for the m services at the first egress port is equal to a total allocated bandwidth reserved by the first egress port for the m services.
2. The method according to claim 1, characterized in that The bandwidth sensitivity information of each service is represented by a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance change of the corresponding service under different available bandwidths compared with the reference bandwidth.
3. The method according to claim 1, characterized in that The bandwidth sensitivity information of each service is obtained based on a bandwidth sensitivity model corresponding to the service, and the bandwidth sensitivity model is used to determine the performance change of the corresponding service under different available bandwidths compared with the performance under the reference bandwidth.
4. The method according to claim 3, characterized in that The bandwidth sensitivity information of each service is represented by a bandwidth sensitivity value or a bandwidth sensitivity level, and the bandwidth sensitivity value or the bandwidth sensitivity level is determined based on a bandwidth sensitivity model corresponding to the service.
5. The method according to any one of claims 2 to 4, characterized in that: For the bandwidth sensitivity model corresponding to each service, the bandwidth sensitivity model is a regression model fitted based on multiple groups of sample data corresponding to the service, and each group of sample data includes an available bandwidth of the service and the performance change of the service under the available bandwidth compared with the benchmark bandwidth.
6. The method according to claim 5, characterized in that The reference bandwidth is the total port bandwidth, the available bandwidth in the sample data is less than or equal to the total port bandwidth, and the bandwidth sensitivity model is used to determine the performance degradation of the corresponding service under different available bandwidths compared to the reference bandwidth.
7. The method according to any one of claims 1 to 6, characterized in that: The allocated bandwidth of a single service among the m services at the first egress port is positively correlated with the degree to which the performance of the service is affected by the change in available bandwidth.
8. The method according to claim 7, characterized in that The bandwidth sensitivity information of each service is represented as a bandwidth sensitivity model corresponding to the service, the bandwidth sensitivity model being used to determine a performance degradation of the corresponding service under different available bandwidths compared to a baseline bandwidth. The determining, based on the bandwidth sensitivity information of the m services, the allocated bandwidths of the m services at the first outbound port includes: Based on the m bandwidth sensitivity models corresponding to the m services, allocated bandwidths for the m services at the first egress port are determined, so that the allocated bandwidths for the m services at the first egress port meet a first bandwidth allocation requirement, wherein the first bandwidth allocation requirement includes: inputting the allocated bandwidths for the m services at the first egress port into the corresponding bandwidth sensitivity models so that the sum of the performance degradations output by the m bandwidth sensitivity models reaches a minimum value.
9. The method according to any one of claims 1 to 6, characterized in that: The determining, based on the bandwidth sensitivity information of the m services, respectively allocated bandwidths of the m services at the first outbound port includes: Determine allocated bandwidths for the m services at the first egress port respectively according to the bandwidth sensitivity information of the m services and the service quality requirements of the m services.
10. The method according to any one of claims 1 to 9, characterized in that: The method is applied to the first network device, and the method further includes: The packets of the m services are forwarded through the forwarding queue on the first egress port according to the allocated bandwidths of the m services on the first egress port respectively.
11. The method according to claim 10, characterized in that The first network device stores a correspondence between the m services and k service groups, the k service groups being obtained by grouping the m services, each service group including one or more services among the m services, m>k≥2, and the similarity in the degree to which performance of different services in the same service group is affected by changes in available bandwidth is higher than the similarity in the degree to which performance of services in different service groups is affected by changes in available bandwidth; forwarding packets of the m services according to the allocated bandwidths of the m services at the first egress port through the forwarding queue on the first egress port, including: For a message of any one of the m services, determining the service group to which the message belongs; The message is forwarded through a target forwarding queue corresponding to the service group to which the service to which the message belongs belongs.
12. The method according to any one of claims 1 to 11, characterized in that: The method is applied to a network management device, and the method further includes: A first bandwidth allocation policy is sent to the first network device, where the first bandwidth allocation policy includes allocated bandwidths for the m services at the first egress port respectively.
13. The method according to claim 12, characterized in that The m services include a target service, and the target service also includes a second egress port of a second network device on a transmission path in the network. The method further includes: determining, based on bandwidth sensitivity information of n services forwarded through the second egress port, allocated bandwidths for the n services at the second egress port, where the n services include the target service, and n is a positive integer; A second bandwidth allocation policy is sent to the second network device, where the second bandwidth allocation policy includes allocated bandwidths for the n services at the second egress port.
14. A service bandwidth allocation device, characterized in that: The device includes multiple functional modules, which interact with each other to implement the method according to any one of claims 1 to 13.
15. A computer device, characterized in that: include: processor and memory; The memory is used to store a computer program, wherein the computer program includes program instructions; The processor is configured to call the computer program to implement the service bandwidth allocation method according to any one of claims 1 to 13.
16. A service bandwidth allocation system, characterized in that: include: a network management device and a first network device in the network; The network management device is configured to obtain bandwidth sensitivity information of m services forwarded by a first egress port of the first network device, and determine, based on the bandwidth sensitivity information of the m services, allocated bandwidths for the m services at the first egress port, respectively. The bandwidth sensitivity information of each service is configured to reflect the extent to which performance of the service is affected by a change in available bandwidth. m is a positive integer greater than 1, and the sum of the allocated bandwidths of the m services at the first egress port is equal to the total allocated bandwidth reserved by the first egress port for the m services. The network management device is further configured to send a first bandwidth allocation policy to the first network device, where the first bandwidth allocation policy includes allocated bandwidths for the m services at the first egress port respectively; The first network device is configured to forward the packets of the m services through the forwarding queue on the first egress port according to the allocated bandwidths of the m services at the first egress port respectively.
17. The system according to claim 16, wherein: The network management device is also used to obtain multiple groups of sample data of any one of the m services, and fit a regression model based on the multiple groups of sample data to obtain a bandwidth sensitivity model corresponding to the service. Each group of sample data includes an available bandwidth of the service and a performance change amplitude of the service under the available bandwidth compared to the baseline bandwidth. The bandwidth sensitivity model is used to determine the performance change amplitude of the service under different available bandwidths compared to the baseline bandwidth.
18. The system according to claim 16, wherein: The system also includes an analytical device; The analysis device is used to obtain multiple sets of sample data of any one of the m services, and fit a regression model based on the multiple sets of sample data to obtain a bandwidth sensitivity model corresponding to the service, where each set of sample data includes an available bandwidth of the service and a performance change amplitude of the service under the available bandwidth compared to a baseline bandwidth, and the bandwidth sensitivity model is used to determine the performance change amplitude of the service under different available bandwidths compared to the baseline bandwidth; The analysis device is further configured to send the bandwidth sensitivity model corresponding to the service to the network management device.
19. A computer-readable storage medium, characterized in that The computer-readable storage medium stores instructions, and when the instructions are executed by the processor, the service bandwidth allocation method according to any one of claims 1 to 13 is implemented.
20. A computer program product, characterized in that The method comprises a computer program, which, when executed by a processor, implements the service bandwidth allocation method according to any one of claims 1 to 13.