Path planning method and apparatus, device, system, and storage medium
By obtaining traffic prediction information and adaptive update mechanism, the path planning of the hierarchical network is optimized, the problem of load balancing in the hierarchical network is solved, and load balancing of the entire network link and improvement of service quality are achieved.
Patent Information
- Application Number
- PCT/CN2025/083892
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-29
- Filing Date
- 2025-03-20
- Publication Date
- 2025-10-02
AI Technical Summary
In hierarchical networks, existing technologies cannot effectively achieve load balancing across the entire network, resulting in congestion in upper-layer network links.
By obtaining traffic forecast information for each time period, the target forwarding path that meets the path planning objectives is planned, including link bandwidth limitation and load balancing. Local adjustment and adaptive update mechanisms are used to optimize path planning.
It achieves load balancing of the entire network link, reduces network congestion, and improves the quality of service forwarding paths and network stability.
Smart Images

Figure CN2025083892_02102025_PF_FP_ABST
Abstract
Description
Path planning method, device, equipment, system and storage medium
[0001] This application claims priority to Chinese patent application No. 202410390070.6, filed on March 29, 2024, entitled “Path planning method, device, equipment, system and storage medium,” the entire contents of which are incorporated herein by reference. Technical Field
[0002] The present application relates to the field of communication technology, and in particular to a path planning method, apparatus, device, system and storage medium. Background Art
[0003] In the field of communications technology, data transmission networks typically have a hierarchical structure, referred to as a hierarchical network. Hierarchical networks aggregate services from the bottom up. In related path planning techniques, local devices distribute traffic proportionally across different paths based on the bandwidth of their outbound ports, making links in higher-level networks more prone to congestion. Therefore, there is an urgent need for a path planning method to achieve load balancing across the entire network. Summary of the Invention
[0004] The present application provides a path planning method, apparatus, device, system and storage medium for achieving load balancing across the entire network.
[0005] In a first aspect, a path planning method is provided, the method comprising: obtaining traffic prediction information corresponding to at least one time period; and determining a target forwarding path for each service that meets a path planning objective based on the traffic prediction information corresponding to the at least one time period and at least one optional path corresponding to each service. The traffic prediction information corresponding to any time period in the at least one time period indicates the predicted traffic volume of each service transmitted by the hierarchical network in any time period, and the path planning objectives include: the service traffic volume carried by any link in the hierarchical network in any time period is less than or equal to the bandwidth capacity upper limit of any link, load balancing between multiple links connected to the same network node in the hierarchical network, and the transmission quality of the target forwarding path for any service in each service meets the quality requirements of any service.
[0006] This method calculates the predicted traffic volume for each service in at least one time period across the hierarchical network and plans target forwarding paths for each service that meet the path planning objectives. This enables global service path planning, reducing network-wide link congestion, achieving load balancing across links, and ensuring that service forwarding paths meet service quality requirements.
[0007] In one possible embodiment, the method is executed by a control device in a hierarchical network.
[0008] In one possible embodiment, a method for obtaining traffic prediction information corresponding to at least one time period includes sending a traffic collection request to each end-side device in the hierarchical network, where the traffic collection request is used to request sub-traffic prediction information corresponding to at least one time period; so that each end-side device returns sub-traffic prediction information corresponding to at least one time period based on the traffic collection request, and the sub-traffic prediction information of any time period sent by any end-side device includes the predicted traffic of each service transmitted by any end-side device in the any time period, and the predicted traffic of each service transmitted by any end-side device in the any time period is obtained based on the actual traffic of each service recorded by any end-side device; after receiving the sub-traffic prediction information sent by each end-side device based on the traffic collection request, the traffic prediction information corresponding to at least one time period is obtained according to the sub-traffic prediction information corresponding to at least one time period sent by each end-side device.
[0009] Because services are initiated by end-side devices, accurate network-wide traffic forecast information can be obtained by collecting sub-traffic forecast information from each end-side device. By issuing traffic collection requests, the sub-traffic forecast information obtained by each end-side device corresponds to at least one common time period, improving the efficiency of traffic forecast information acquisition.
[0010] In one possible implementation, before sending a traffic collection request to each end-side device in the hierarchical network, at least one time period is determined. The method for determining the at least one time period includes receiving sampling time intervals sent by each routing device in the hierarchical network, wherein the sampling time interval of each routing device is determined based on a traffic change period of each routing device, wherein the traffic change period indicates a period during which the size of the service traffic initiated by each end-side device changes; determining a global sampling interval based on the sampling time intervals sent by each routing device, and determining at least one time period based on the global sampling interval.
[0011] The global sampling interval is determined by the sampling time interval of each routing device in the hierarchical network, taking into account the traffic change cycle presented on each routing device in the hierarchical network. Therefore, at least one time period determined based on the global sampling interval is more accurate and more in line with the actual situation of traffic changes of the end-side devices in the entire network.
[0012] In one possible implementation, a method for determining a target forwarding path for each service that meets the path planning objective based on traffic prediction information corresponding to at least one time period and at least one optional path corresponding to each service includes: for any time period in at least one time period, determining a candidate forwarding path for each service that meets the path planning objective in any time period based on traffic prediction information in any time period and at least one optional path corresponding to each service; determining a reference forwarding path for each service based on the candidate forwarding path of each service in at least one time period, the reference forwarding path for any service among the services being a candidate forwarding path whose path quality meets a sorting condition among the candidate forwarding paths for any service in at least one time period, the path quality of any candidate forwarding path being determined based on at least one of the path length, the number of intermediate nodes, or the path bandwidth capacity of any candidate forwarding path; and determining a target forwarding path for each service based on the reference forwarding path of each service.
[0013] Because the complexity of single-time segment path planning is lower than that of multi-time segment path planning, splitting the multi-time segment path planning problem into multiple single-time segment path planning problems reduces the complexity of solving the multi-time segment path planning problem and improves the solution speed. Furthermore, the reference forwarding path used to determine the target forwarding path satisfies the sorting conditions, improving the accuracy of the target forwarding path determination.
[0014] In one possible embodiment, the target forwarding path of each service satisfies the load balancing between multiple links connected to the same network node in the hierarchical network, including: in multiple situations where each service is transmitted through any optional path of at least one optional path corresponding to each service, the total link utilization value achieved by the transmission of each service through the target forwarding path of each service is the smallest, the total link utilization value is the sum of the maximum link utilization values corresponding to at least one time period, the maximum link utilization value corresponding to any time period is the sum of the maximum link utilization values corresponding to multiple network nodes in any time period, the multiple network nodes include each end-side device and each aggregation device in the hierarchical network, and the maximum link utilization value corresponding to any network node is the maximum link utilization value among the links connected to any network node.
[0015] The degree of load balancing in the entire network is determined by the sum of the maximum link utilization rates of all links in the entire network. This quantifies the degree of load balancing and reduces the difficulty of planning load balancing path solutions.
[0016] In one possible embodiment, a method for determining candidate forwarding paths for each service that meets the path planning goal in any time period based on traffic prediction information for any time period and at least one optional path corresponding to each service includes obtaining the lower limit value of the maximum link utilization corresponding to each aggregation device based on the traffic prediction information for any time period; for at least one service corresponding to any end-side device in each service, determining the candidate forwarding path for at least one service that meets the path planning goal in any time period based on traffic prediction information for at least one service in any time period, at least one optional path corresponding to at least one service, and the lower limit value of the maximum link utilization corresponding to each aggregation device; determining the candidate forwarding path for each service in any time period based on the candidate forwarding path for at least one service corresponding to each end-side device in any time period.
[0017] In the path planning problem of a single time period, by determining the lower limit of the maximum link utilization corresponding to each aggregation device and splitting the sub-problems of different end-side devices, the complexity of the path planning problem of a single time period is reduced and the solution speed of the path planning problem of a single time period is improved.
[0018] In one possible embodiment, a method for obtaining the lower limit value of the maximum link utilization corresponding to each aggregation device based on the traffic prediction information of any time period includes: for multiple aggregation links connecting any aggregation device in each aggregation device, obtaining multiple link combinations of multiple aggregation links, any link combination includes a first group of aggregation links and a second group of aggregation links, and the first group of aggregation links and the second group of aggregations are different between different link combinations; for the first group of aggregation links and the second group of aggregations in any link combination, determining the maximum flow of each service converged to the first group of aggregation links; according to the total predicted flow, maximum flow and bandwidth capacity upper limit of the second group of aggregation links of each service, obtaining the lower limit value of the maximum link utilization of any aggregation device for any link combination; based on the lower limit values of the maximum link utilization of any aggregation device for multiple link combinations, obtaining the lower limit value of the maximum link utilization corresponding to any aggregation device.
[0019] The second set of aggregate links represents the potentially fully loaded aggregate links. The theoretical maximum traffic flow of each service that can be aggregated onto the first set of aggregate links is calculated. The remaining service traffic is then aggregated onto the second set of aggregate links. The ratio of the remaining service traffic flow to the upper bandwidth capacity of the second set of aggregate links is the lower bound of maximum link utilization. By enumerating the lower bounds of maximum link utilization for different link combinations, the lower bound of maximum link utilization corresponding to any aggregation device can be accurately determined.
[0020] In one possible implementation, a method for determining a target forwarding path for each service based on a reference forwarding path for each service includes locally adjusting the reference forwarding path for each service to obtain an adjusted reference forwarding path for each service; if the distance between the adjusted reference forwarding path and the path planning target is less than the distance between the reference forwarding path before adjustment and the path planning target, determining the adjusted reference forwarding path as the target forwarding path for each service; or, if the distance between the reference forwarding path before adjustment and the path planning target is greater than the distance between the adjusted reference forwarding path and the path planning target, determining the reference forwarding path before adjustment as the target forwarding path for each service.
[0021] Therefore, through local optimization, the accuracy of the multi-time period path planning solutions generated according to multiple single-time period path planning methods can be guaranteed.
[0022] In one possible implementation, when there is an optional path for each business that meets the path planning target in at least one optional path corresponding to each business, the target forwarding path for each business that meets the path planning target is determined; and when there is no optional path for each business that meets the path planning target in at least one optional path corresponding to each business, at least one time period is updated, and the traffic prediction information corresponding to at least one updated time period is re-obtained, and the target forwarding path for each business that meets the path planning target is determined based on the traffic prediction information corresponding to at least one updated time period and at least one optional path corresponding to each business.
[0023] If a path plan that meets the path planning objectives cannot be obtained, the path planning can be re-performed by adjusting the traffic sampling interval, that is, at least one time period, to achieve adaptive traffic collection across the entire network and improve the reliability of path planning.
[0024] In one possible embodiment, the method for updating at least one time period includes determining an infeasible link when there is no optional path for each service that meets the path planning objectives; determining an adjustment parameter based on the maximum link utilization and link congestion threshold of the infeasible link in at least one time period, and sending the adjustment parameter to the infeasible routing device connected to the infeasible link; receiving a sampling time interval adjusted based on the adjustment parameter sent by the infeasible routing device, and updating at least one time period based on the adjusted sampling time interval.
[0025] By accurately determining the infeasible link and directionally updating the sampling time interval according to the adjustment parameter, at least one time period can be updated efficiently and adaptively, thereby improving the convergence speed of the at least one time period after the update.
[0026] In one possible implementation, after determining a target forwarding path for each service that meets the path planning objective, a routing plan for any routing device within the hierarchical network is generated based on the target forwarding path for each service. The routing plan for each routing device is then transmitted to each routing device, enabling each routing device to forward service traffic according to the routing plan corresponding to the routing device. Because the routing plan is generated based on the target forwarding path for each service that meets the path planning objective, execution of the routing plan can ensure that transmission conditions within the hierarchical network meet the path planning objective.
[0027] In one possible implementation, after determining the target forwarding path for each service that meets the path planning objective, congestion information sent by any end-side device in the hierarchical network is also received, and the congestion message indicates that congestion occurs in the service traffic sent by any end-side device; a traffic screening request is sent to any end-side device, and the traffic screening request is used by any end-side device to determine the deviation service whose difference between the actual traffic and the predicted traffic is greater than a difference threshold; the actual traffic of the deviation service sent by any end-side device is received; and the target forwarding path of the deviation service that meets the path planning objective is determined based on the actual traffic of the deviation service, the predicted traffic of the non-deviation service in the current time period, the target forwarding path of the non-deviation service, and at least one optional path of the deviation service.
[0028] In the event of network congestion, the system identifies deviating services and plans target forwarding paths for them that meet path planning objectives. This enables real-time online path fine-tuning to eliminate network congestion and improve the stability of the hierarchical network.
[0029] In a second aspect, a path planning method is provided, which includes: receiving a traffic collection request sent by a control device in a hierarchical network, the traffic collection request is used to request sub-traffic prediction information corresponding to at least one time period; obtaining sub-traffic prediction information corresponding to at least one time period based on the traffic collection request, the sub-traffic prediction information of any time period in at least one time period indicates the predicted traffic of each service transmitted in any time period, and the sub-traffic prediction information is used by the control device to plan the target forwarding path of each service transmitted in the hierarchical network.
[0030] In a possible implementation, the method is executed by any end-side device in a hierarchical network.
[0031] In one possible implementation, the method of obtaining sub-traffic prediction information corresponding to at least one time period based on a traffic collection request includes obtaining sub-traffic prediction information corresponding to at least one time period based on the actual traffic of each recorded business based on the traffic collection request.
[0032] In a possible implementation, a signaling data packet fed back by any routing device in the hierarchical network is also received, the signaling data packet carrying a congestion identifier; congestion information is sent to the control device based on the congestion identifier, and the congestion message indicates that the service traffic is congested; a traffic screening request sent by the control device is received; a deviation service whose difference between the actual traffic and the predicted traffic is greater than a difference threshold is determined based on the traffic screening request; the actual traffic of the deviation service is sent to the control device, and the actual traffic of the deviation service is used by the control device to plan the target forwarding path of the deviation service.
[0033] On the third aspect, a path planning method is provided, which sends a sampling time interval to a control device in a hierarchical network. The sampling time interval is determined based on a traffic change period. The traffic change period indicates a period in which the size of the service traffic initiated by each end-side device in the hierarchical network changes. The sampling time interval is used by the control device to determine a global sampling interval, and at least one time period is determined with the global sampling interval as a period. The target forwarding path of each service transmitted in the hierarchical network is planned according to the traffic prediction information corresponding to at least one time period.
[0034] In a possible implementation, the method is executed by any routing device in a hierarchical network.
[0035] In one possible implementation, after sending the sampling time interval to the control device, an adjustment parameter sent by the control device is also received; the sampling time interval is adjusted based on the adjustment parameter to obtain an adjusted sampling time interval; the adjusted sampling time interval is sent to the control device, and the adjusted sampling time interval is used by the control device to update at least one time period.
[0036] In a possible implementation, the manner of adjusting the sampling time interval based on the adjustment parameter includes adjusting the sampling time interval based on the adjustment parameter and the flow rate change rate.
[0037] In one possible implementation, when congestion occurs in any transmitted service traffic, a signaling data packet is also fed back to the end-side device that initiates any service traffic. The signaling data packet carries a congestion identifier. The congestion identifier is used by the end-side device to send congestion information to the control device. The congestion message is used by the control device to plan the target forwarding path for the deviation service. The deviation service is a service in which the difference between the actual traffic and the predicted traffic is greater than the difference threshold.
[0038] In a possible implementation, a routing solution sent by the control device is further received, where the routing solution is generated based on a target forwarding path for each service; and service traffic for each service is transmitted according to the routing solution.
[0039] In possible implementations of the first, second, or third aspects, the hierarchical network is a media streaming network, and the service is a media service. The media streaming network may be a content delivery network (CDN), a distributed media network, or an over-the-top (OTT) network. This allows the method to be applied to path planning scenarios for media services, achieving load balancing within the media streaming network.
[0040] In a fourth aspect, a path planning device is provided, which includes a transceiver module and a processing module; the transceiver module is used to perform the reception and / or transmission related operations performed in any possible implementation of the first aspect, and the processing module is used to perform other operations other than the reception and / or transmission related operations performed in any possible implementation of the first aspect; or, the transceiver module is used to perform the reception and / or transmission related operations performed in any possible implementation of the second aspect, and the processing module is used to perform other operations other than the reception and / or transmission related operations performed in any possible implementation of the second aspect; or, the transceiver module is used to perform the reception and / or transmission related operations performed in any possible implementation of the third aspect, and the processing module is used to perform other operations other than the reception and / or transmission related operations performed in any possible implementation of the third aspect.
[0041] In a possible implementation, the transceiver module includes a receiving module and / or a sending module. The receiving module is used to perform reception-related operations, and the sending module is used to perform sending-related operations.
[0042] In the case where the transceiver module is used to perform the reception and / or transmission related operations performed in any possible implementation of the first aspect, and the processing module is used to perform other operations other than the reception and / or transmission related operations performed in any possible implementation of the first aspect.
[0043] A processing module is used to obtain traffic prediction information corresponding to at least one time period, where the traffic prediction information corresponding to any time period in at least one time period indicates the predicted traffic of each service transmitted through the hierarchical network in any time period; based on the traffic prediction information corresponding to at least one time period and at least one optional path corresponding to each service, a target forwarding path for each service that meets the path planning objectives is determined, where the path planning objectives include: the service traffic carried by any link in the hierarchical network in any time period is less than or equal to the bandwidth capacity upper limit of any link, load balancing between multiple links connected to the same network node in the hierarchical network, and the transmission quality of the target forwarding path of any service in each service meets the quality requirements of any service.
[0044] In one possible embodiment, a transceiver module is used to send a traffic collection request to each end-side device in a hierarchical network, where the traffic collection request is used to request sub-traffic prediction information corresponding to at least one time period; receive sub-traffic prediction information corresponding to at least one time period sent by each end-side device based on the traffic collection request, where the sub-traffic prediction information for any time period sent by any end-side device includes the predicted traffic of each service transmitted by any end-side device in any time period, and the predicted traffic of each service transmitted by any end-side device in any time period is obtained based on the actual traffic of each service recorded by any end-side device; a processing module is used to obtain traffic prediction information corresponding to at least one time period based on the sub-traffic prediction information corresponding to at least one time period sent by each end-side device.
[0045] In one possible embodiment, the processing module is also used to receive sampling time intervals sent by each routing device in the hierarchical network. The sampling time interval of any routing device is determined based on the traffic change period of any routing device. The traffic change period indicates the period in which the size of the business traffic initiated by each end-side device changes. The processing module is also used to determine the global sampling interval based on the sampling time intervals sent by each routing device, and determine at least one time period with the global sampling interval as a period.
[0046] In one possible embodiment, the processing module is used to determine, for any time period in at least one time period, a candidate forwarding path for each service in any time period that meets the path planning goal based on traffic prediction information for any time period and at least one optional path corresponding to each service; determine a reference forwarding path for each service based on the candidate forwarding path for each service in at least one time period, the reference forwarding path for any service among the services being a candidate forwarding path whose path quality meets a sorting condition among the candidate forwarding paths for any service in at least one time period, the path quality of any candidate forwarding path being determined based on at least one of the path length, the number of intermediate nodes, or the path bandwidth capacity of any candidate forwarding path; and determine a target forwarding path for each service based on the reference forwarding path for each service.
[0047] In one possible embodiment, load balancing between multiple links connected to the same network node in a hierarchical network includes: the target forwarding path of each service satisfies the load balancing between multiple links connected to the same network node in the hierarchical network, including: in multiple situations where each service is transmitted through any optional path of at least one optional path corresponding to each service, the total link utilization value achieved by the transmission of each service through the target forwarding path of each service is the smallest, the total link utilization value is the sum of the maximum link utilization values corresponding to at least one time period, the maximum link utilization value corresponding to any time period is the sum of the maximum link utilization values corresponding to multiple network nodes in any time period, the multiple network nodes include each end-side device and each aggregation device in the hierarchical network, and the maximum link utilization value corresponding to any network node is the maximum link utilization value among the links connected to any network node.
[0048] In one possible embodiment, the processing module is used to obtain the lower limit value of the maximum link utilization corresponding to each aggregation device based on the traffic prediction information of any time period; for at least one service corresponding to any end-side device in each service, determine the candidate forwarding path of at least one service that meets the path planning goal in any time period based on the traffic prediction information of at least one service in any time period, at least one optional path corresponding to at least one service, and the lower limit value of the maximum link utilization corresponding to each aggregation device; based on the candidate forwarding path of at least one service corresponding to each end-side device in any time period, determine the candidate forwarding path of each service in any time period.
[0049] In one possible embodiment, the processing module is configured to obtain, for multiple aggregation links connecting any aggregation device in each aggregation device, multiple link combinations of multiple aggregation links, where any link combination includes a first group of aggregation links and a second group of aggregation links, and the first group of aggregation links and the second group of aggregation links are different between different link combinations; determine, for the first group of aggregation links and the second group of aggregation links in any link combination, the maximum flow of each service converged to the first group of aggregation links; obtain a lower limit value of the maximum link utilization of any aggregation device for any link combination based on the total predicted flow, maximum flow of each service and the bandwidth capacity upper limit of the second group of aggregation links; and obtain a lower limit value of the maximum link utilization corresponding to any aggregation device based on the lower limit values of the maximum link utilization of any aggregation device for multiple link combinations.
[0050] In one possible implementation, a processing module is configured to locally adjust a reference forwarding path for each service to obtain an adjusted reference forwarding path for each service; if the distance between the adjusted reference forwarding path and a path planning target is less than the distance between the reference forwarding path before adjustment and the path planning target, the adjusted reference forwarding path is determined to be the target forwarding path for each service; or, if the distance between the reference forwarding path before adjustment and the path planning target is greater than the distance between the reference forwarding path before adjustment and the path planning target, the reference forwarding path before adjustment is determined to be the target forwarding path for each service.
[0051] In one possible embodiment, the processing module is further used to update at least one time period when there is no optional path for each service that meets the path planning goal in at least one optional path corresponding to each service, and to re-acquire the traffic prediction information corresponding to the at least one updated time period, and determine the target forwarding path for each service that meets the path planning goal based on the traffic prediction information corresponding to the at least one updated time period and the at least one optional path corresponding to each service.
[0052] In one possible embodiment, the processing module is used to determine an infeasible link when there is no optional path for each service that meets the path planning objectives; determine an adjustment parameter based on the maximum link utilization and link congestion threshold of the infeasible link in at least one time period, and send the adjustment parameter to the infeasible routing device connected to the infeasible link; receive a sampling time interval adjusted based on the adjustment parameter from the infeasible routing device, and update at least one time period based on the adjusted sampling time interval.
[0053] In a possible implementation, the processing module is configured to generate a routing solution for any routing device in the hierarchical network based on a target forwarding path for each service; and the transceiver module is configured to send the routing solution for any routing device to any routing device.
[0054] In one possible embodiment, the transceiver module is also used to receive congestion information sent by any end-side device in the hierarchical network, and the congestion message indicates that the service traffic sent by any end-side device is congested; send a traffic screening request to any end-side device, and the traffic screening request is used by any end-side device to determine the deviation service whose difference between the actual traffic and the predicted traffic is greater than the difference threshold; receive the actual traffic of the deviation service sent by any end-side device; the processing module is also used to determine the target forwarding path of the deviation service that meets the path planning target based on the actual traffic of the deviation service, the predicted traffic of the non-deviation service in the current time period, the target forwarding path of the non-deviation service, and at least one optional path of the deviation service.
[0055] In the case where the transceiver module is used to perform the reception and / or transmission related operations performed in any possible implementation of the second aspect, and the processing module is used to perform other operations other than the reception and / or transmission related operations performed in any possible implementation of the second aspect.
[0056] The transceiver module is used to receive a traffic collection request sent by a control device in a hierarchical network, where the traffic collection request is used to request sub-traffic prediction information corresponding to at least one time period; the processing module is used to obtain sub-traffic prediction information corresponding to at least one time period based on the traffic collection request, where the sub-traffic prediction information of any time period in at least one time period indicates the predicted traffic of each service transmitted in any time period; the transceiver module is used to send sub-traffic prediction information corresponding to at least one time period to the control device, where the sub-traffic prediction information is used by the control device to plan a target forwarding path for each service transmitted through the hierarchical network.
[0057] In a possible implementation, the processing module is configured to obtain, based on the traffic collection request, sub-traffic prediction information corresponding to at least one time period according to the recorded actual traffic of each service.
[0058] In one possible implementation, the transceiver module is further used to receive signaling data packets fed back by any routing device in the hierarchical network, the signaling data packets carrying a congestion identifier; the processing module is further used to send congestion information to the control device based on the congestion identifier, and the congestion message indicates that the service traffic is congested; the transceiver module is further used to receive a traffic screening request sent by the control device; the processing module is further used to determine, based on the traffic screening request, a deviation service in which the difference between the actual traffic and the predicted traffic is greater than a difference threshold; the transceiver module is further used to send the actual traffic of the deviation service to the control device, and the actual traffic of the deviation service is used by the control device to plan the target forwarding path of the deviation service.
[0059] In the case where the transceiver module is used to perform the reception and / or transmission related operations performed in any possible implementation of the third aspect, and the processing module is used to perform other operations other than the reception and / or transmission related operations performed in any possible implementation of the third aspect.
[0060] A transceiver module is used to send a sampling time interval to a control device in a hierarchical network. The sampling time interval is determined based on a traffic change period. The traffic change period indicates a period in which the size of the service traffic initiated by each end-side device in the hierarchical network changes. The sampling time interval is used by the control device to determine a global sampling interval, and at least one time period is determined with the global sampling interval as a period. The target forwarding path of each service transmitted through the hierarchical network is planned according to the traffic prediction information corresponding to the at least one time period.
[0061] In one possible implementation, the transceiver module is further used to receive adjustment parameters sent by the control device; the processing module is used to adjust the sampling time interval based on the adjustment parameters to obtain an adjusted sampling time interval; the transceiver module is further used to send the adjusted sampling time interval to the control device, and the adjusted sampling time interval is used for the control device to update at least one time period.
[0062] In a possible implementation, the processing module is configured to adjust the sampling time interval based on the adjustment parameter and the flow rate change rate.
[0063] In one possible embodiment, the transceiver module is also used to feedback a signaling data packet to the end-side device that initiates any business traffic when congestion occurs in any transmitted business traffic. The signaling data packet carries a congestion identifier, and the congestion identifier is used by the end-side device to send congestion information to the control device. The congestion message is used by the control device to plan the target forwarding path for the deviation business. The deviation business is a business in which the difference between the actual traffic and the predicted traffic is greater than the difference threshold.
[0064] In a possible implementation, the transceiver module is further configured to receive a routing solution sent by the control device, where the routing solution is generated based on a target forwarding path for each service; and the processing module is further configured to transmit service traffic for each service according to the routing solution.
[0065] In one possible implementation, the hierarchical network is a media streaming network, and the service is a media service.
[0066] In a fifth aspect, a network device is provided, comprising: a processor, the processor being coupled to a memory, the memory storing at least one program instruction or code, the at least one program instruction or code being loaded and executed by the processor, so that the network device implements the path planning method as described in any one of the first aspect, the second aspect or the third aspect above.
[0067] Optionally, there are one or more processors and one or more memories.
[0068] Optionally, the memory may be integrated with the processor, or the memory may be provided separately from the processor.
[0069] In the specific implementation process, the memory can be a non-transitory memory, such as a read-only memory (ROM), which can be integrated on the same chip as the processor or be set on different chips. This application does not limit the type of memory and the setting method of the memory and the processor.
[0070] In a sixth aspect, a path planning system is provided, the path planning system comprising a control device and a hierarchical network;
[0071] The control device is used to execute the method described in the first aspect or any possible implementation of the first aspect, any end-side device in the hierarchical network is used to execute the method described in the second aspect or any possible implementation of the second aspect, and any routing device in the hierarchical network is used to execute the method described in the third aspect or any possible implementation of the third aspect.
[0072] In the seventh aspect, a computer-readable storage medium is provided, wherein the storage medium stores at least one instruction, and the instruction is loaded and executed by a processor to enable the computer to implement the method of the above-mentioned first aspect or any possible implementation of the first aspect, or implement the method of the above-mentioned second aspect or any possible implementation of the second aspect, or implement the method of the above-mentioned third aspect or any possible implementation of the third aspect.
[0073] In an eighth aspect, a computer program (product) is provided, which includes: computer program code, which, when executed by a computer, enables the computer to execute the methods in the above aspects.
[0074] In a ninth aspect, a chip is provided, comprising a processor for calling and executing instructions stored in a memory from the memory, so that a communication device equipped with the chip executes the methods in the above aspects.
[0075] In the tenth aspect, another chip is provided, comprising: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected via an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute the methods in the above aspects.
[0076] It should be understood that the beneficial effects achieved by the technical solutions of aspects 2 to 10 of this application and their corresponding possible implementations can be referenced to the technical effects of the first aspect and its corresponding possible implementations, and will not be repeated here. In addition, the path planning device mentioned in aspect 4 may be the chip mentioned in aspect 9 or aspect 10, or the path planning device may also be the device mentioned in aspect 5. BRIEF DESCRIPTION OF THE DRAWINGS
[0077] FIG1 is a schematic diagram of the structure of an access network provided in an embodiment of the present application;
[0078] FIG2 is a schematic diagram of an implementation environment of a path planning method provided in an embodiment of the present application;
[0079] FIG3 is a flow chart of a path planning method provided in an embodiment of the present application;
[0080] FIG4 is a schematic diagram of a solution architecture for a path planning problem provided by an embodiment of the present application;
[0081] FIG5 is an interactive diagram of a path planning method provided in an embodiment of the present application;
[0082] FIG6 is a schematic diagram of a planning mode provided in an embodiment of the present application;
[0083] FIG7 is a schematic diagram of a long-term network path planning process provided by an embodiment of the present application;
[0084] FIG8 is a schematic diagram of an online optimization path planning process provided in an embodiment of the present application;
[0085] FIG9 is a schematic structural diagram of a path planning device provided in an embodiment of the present application;
[0086] FIG10 is a schematic diagram of the structure of a network device provided in an embodiment of the present application;
[0087] FIG11 is a schematic diagram of the structure of another network device provided in an embodiment of the present application;
[0088] FIG12 is a schematic diagram of the structure of a server provided in an embodiment of the present application. DETAILED DESCRIPTION
[0089] 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.
[0090] With the advancement of communication technology, the amount of data transmitted across networks is increasing, and network congestion is becoming increasingly common. For example, access networks often have a hierarchical structure, as shown in Figure 1. The hierarchy, from top to bottom, consists of the core network, the primary network, the secondary network, and the underlying network. The number of nodes in the underlying network is greater than the number of devices in the secondary network, which in turn is greater than the number of devices in the primary network. This results in a bottom-up convergence of services. Consequently, links in higher-level networks are more susceptible to congestion.
[0091] In the equal-cost multi-path routing (ECMP) routing strategy of the related technology, traffic is distributed to different paths in equal proportions according to the bandwidth ratio of the local device's egress port. Since the local device does not consider the traffic transmission conditions of other devices outside the local device when selecting a route, it is equivalent to the local device selecting a service route based on a single-point local perspective, and is unable to handle multi-node full-network collaborative scheduling, which usually leads to a lack of effective congestion management and control of the links in the primary network, resulting in network congestion. Therefore, in order to effectively avoid the occurrence of network congestion, the embodiment of the present application considers performing full-network full-traffic optimization from a global optimization perspective, effectively and reasonably planning the service routing strategy, and achieving optimal global resource allocation.
[0092] In related technologies, a controller dynamically predicts the service bandwidth of elephant flows and uses a simulated annealing algorithm to allocate them. Elephant flows are flows whose total number of transmitted bytes exceeds a threshold. Elephant flows occupy a large amount of network bandwidth but have low latency requirements. The simulated annealing algorithm is a general optimization algorithm with probabilistic global optimization capabilities. Through random access to the search space and probabilistic sudden jumps, it increases the probability of finding a global optimal solution. Although related technologies use controllers to provide global control over the network, they can only schedule elephant flows and cannot guarantee that the allocated paths meet service quality requirements.
[0093] An embodiment of the present application provides a path planning method, which can be applied to the implementation environment shown in Figure 2. As shown in Figure 2, the implementation environment includes a control device and a hierarchical network, and the control device is connected to the hierarchical network. The control device is responsible for network management and is deployed on the network operation side; the hierarchical network includes a multi-layer network that aggregates services from the bottom up, and the multi-layer network includes an end-side device and a routing device. The end-side device is the starting point and end point of the service traffic and is deployed at the bottom-level node of the hierarchical network; the routing device is the transmission node of the service traffic, usually carries a routing table, and the routing table specifies the sending rules of the service traffic and is deployed at the upper-level node of the hierarchical network. For example, the hierarchical network is the bottom-level network, the secondary network, and the primary network shown in Figure 1. The end-side device can be deployed at any of the bottom-level network points shown in Figure 1 or Figure 2, and the routing device can be deployed at any transmission node in the secondary network or the primary network shown in Figure 1 or Figure 2.
[0094] The apparatus mentioned in the embodiments of the present application may be a device such as a switch, router, terminal, or server, or may be a component on a device, such as a single board or line card on the device, or may be a functional module on the device, or may be a chip used to implement the method of the embodiments of the present application. The embodiments of the present application do not make specific limitations. For example, the end-side apparatus may be a terminal, or may be a component or a functional module on the terminal; the routing apparatus may be a network device such as a switch or router, or may be a component or a functional module on a network device; the control apparatus may be a device such as a controller or server, or may be a component or a functional module on a device.
[0095] Taking the control device executing the path planning method as an example, refer to Figure 3, which is a flow chart of a path planning method provided in an embodiment of the present application. This method can be applied to the implementation environment shown in Figure 2, for example, by the control device shown in Figure 2. As shown in Figure 3, the path planning method includes but is not limited to the following steps 301-302.
[0096] Step 301: Obtain traffic prediction information corresponding to at least one time period. The traffic prediction information corresponding to any time period in the at least one time period indicates the predicted traffic of each service transmitted by the hierarchical network in any time period.
[0097] In the embodiments of the present application, at least one time period may refer to a current time period or one or more time periods in the future. When at least one time period refers to multiple time periods in the future, the lengths of the multiple time periods may be the same or different, and the multiple time periods may be continuous or discontinuous. In addition, the embodiments of the present application do not limit the length of any time period; for example, any time period may be one day or one hour.
[0098] If at least one time period is multiple time periods in the future, the traffic prediction information corresponding to the multiple time periods can depict the network resource distribution of multiple time periods in the future, thereby realizing long-term global path planning. If at least one time period is a current time period, online real-time global path planning can be realized. For example, taking at least one time period including future time period 1, time period 2 and time period 3 as an example, the traffic prediction information corresponding to at least one time period indicates the predicted traffic of each business transmitted by the hierarchical network in time period 1, the predicted traffic of each business transmitted by the hierarchical network in time period 2, and the predicted traffic of each business transmitted by the hierarchical network in time period 3. The various businesses transmitted in different time periods may be the same or different.
[0099] The embodiment of the present application does not limit the method for obtaining the traffic prediction information corresponding to at least one time period. Optionally, the control device records the business traffic data transmitted historically in the hierarchical network, predicts the business traffic transmitted in at least one time period based on the historical business traffic data, and obtains the traffic prediction information corresponding to the at least one time period according to the prediction result. Alternatively, at least one time period is determined based on the implementation of steps 501 and 502 shown in Figure 5, which will not be described in detail here.
[0100] In an embodiment of the present application, at least one time period can indicate a certain flow size change trend. Optionally, a time period can represent a time interval in which the flow size changes slowly, and the start time or end time of a time period can represent a moment in which the flow size changes dramatically. Among them, traffic refers to the global traffic transmitted by the hierarchical network, and a slow change means that the difference in the flow size before and after the change is less than the difference threshold, and a dramatic change means that the difference in the flow size before and after the change is not less than the difference threshold. The difference threshold can be flexibly adjusted according to the application scenario, and the difference threshold can be a flow size value or a flow size range. Therefore, at least one time period in an embodiment of the present application can be determined based on the flow change trend in historical flow statistics. The flow change trend includes but is not limited to the change amplitude of the flow in different time periods, the repeatability of the flow within a certain time range, or the degree of fluctuation of the flow within a certain time period.
[0101] For example, if the traffic changes in historical traffic statistics show that 9:00 to 12:00 every day is the peak traffic period, that is, the traffic is large, and 12:00 to 14:00 is the low traffic period, that is, the traffic is small, then at least one time period can be determined as the time period from 9:00 to 11:00 and the time period from 11:00 to 13:00; or, if there is periodic change in the traffic changes in historical traffic statistics, that is, the traffic size changes dramatically every time period in the historical traffic statistics, then a time period can be determined every time period starting from the moment when the traffic changes dramatically, thereby determining at least one time period.
[0102] Step 302: Determine a target forwarding path for each service that meets the path planning objectives based on traffic prediction information corresponding to at least one time period and at least one optional path corresponding to each service. The path planning objectives include: the service traffic carried by any link in the hierarchical network in any time period is less than or equal to the bandwidth capacity upper limit of any link, load balancing between multiple links connected to the same network node in the hierarchical network, and the transmission quality of the target forwarding path of any service in each service meets the quality requirements of any service.
[0103] After obtaining the traffic prediction information corresponding to at least one time period, the various services transmitted by the hierarchical network in the at least one time period are determined. According to the transmission starting point and transmission end point of each service and the topological structure of the hierarchical network, at least one optional path corresponding to each service can be calculated, that is, the traffic of any service can choose any optional path of at least one optional path corresponding to any service in the hierarchical network for transmission. Different services choose different optional paths, resulting in different transmission states of the hierarchical network. The target forwarding path of each service determined in the embodiment of the present application is intended to ensure that the target forwarding path of each service can meet the path planning target. Meeting the path planning target means that among the different combination schemes of each service selecting an optional path, the transmission state of the hierarchical network resulting from the combination scheme of each service selecting the corresponding target forwarding path is closest to the path planning target.
[0104] In an embodiment of the present application, the target forwarding path of each service satisfies the load balancing between multiple links connected to the same network node in the hierarchical network, including: in multiple situations where each service is transmitted through any optional path of at least one optional path corresponding to each service, the total link utilization value achieved by the transmission of each service through the target forwarding path of each service is the smallest, and the total link utilization value is the sum of the maximum link utilization values corresponding to at least one time period, the maximum link utilization value corresponding to any time period is the sum of the maximum link utilization values corresponding to multiple network nodes in any time period, the multiple network nodes include each end-side device and each aggregation device in the hierarchical network, and the maximum link utilization value corresponding to any network node is the maximum link utilization value among the links connected to any network node.
[0105] The link utilization of any link refers to the ratio between the bandwidth carrying services on any link and the upper limit of the bandwidth capacity of any link. The aggregation device can refer to the top-level routing device in a hierarchical network. For example, the aggregation device can be the routing device in the first-level network shown in Figure 1 or Figure 2, and the aggregation link can be the link connecting the first-level network and the second-level network. Therefore, the degree of load balancing of the entire network is determined by the sum of the maximum link utilization of all links in the network, which quantifies the degree of load balancing and reduces the difficulty of planning load-balancing path solutions.
[0106] The embodiments of the present application do not limit the implementation method of determining the target forwarding path for each business that meets the path planning goal based on the traffic prediction information corresponding to at least one time period and at least one optional path corresponding to each business. Optionally, a plurality of business allocation schemes under different permutations and combinations are obtained based on at least one optional path corresponding to each business, and each business in each business allocation scheme is allocated an optional path; a business allocation scheme that meets the path planning goal is obtained based on the traffic prediction information corresponding to at least one time period; the load balancing degree corresponding to each business allocation scheme that meets the path planning goal is obtained, and whether the transmission quality of the optional path allocated to each business meets the quality requirements, and then the target forwarding path for each business is obtained based on the business allocation scheme with the highest load balancing degree and the largest number of businesses whose transmission quality of the optional path meets the quality requirements. The quality requirements may refer to the service level agreement (SLA) indicator requirements.
[0107] Optionally, a path planning problem can be constructed based on traffic prediction information corresponding to at least one time period and at least one optional path corresponding to each service. The target forwarding path for each service that meets the path planning objectives can be determined by solving the optimal solution to the path planning problem. The path planning problem is a mixed integer programming problem, which refers to a constrained optimization problem involving integer and continuous variables. The optimal solution is the value of the decision variable that achieves the optimal value of the objective function while satisfying the constraints.
[0108] In one possible implementation, the decision variables of the path planning problem include link variables and service variables. The link variables include the link utilization of any link in any time period. The service variables include the optional paths assigned to each service. Any service includes at least one optional path for transmitting any service. The objective function of the path planning problem is the sum of the maximum link utilization corresponding to at least one time period and the transmission quality score of each service. The maximum link utilization sum of any time period is the sum of the maximum link utilizations corresponding to multiple network nodes in any time period. The multiple network nodes include the end-side devices and aggregation devices of the hierarchical network. The maximum link utilization of any network node is the maximum link utilization among the links connected to any network node. The size of the transmission quality score is negatively correlated with whether the transmission quality meets the quality requirements. The constraints of the path planning problem include: one optional path is assigned to one service, and the ratio of the service traffic carried by any link in any time period to the bandwidth capacity upper limit of any link is less than or equal to the link utilization of any link in any time period.
[0109] For example, the path planning problem is shown in the following formula (1).
[0110] Among them, the decision variables are and is the link variable, representing the link utilization of link l in time period t, It is a binary variable representing whether to assign optional paths r, c to business k l represents the upper limit of the bandwidth capacity of link l. The first equality constraint Indicates that for each service k, an optional path r is selected, R k Represents the set of optional paths corresponding to business k; the second inequality constraint c l , indicating that the total traffic carried by link l cannot exceed the bandwidth capacity upper limit of link l, represents the traffic carried by link l when service k is assigned alternative path r. st stands for subject to. In mathematical proofs and linear programming problems, st specifies specific conditions or constraints that certain variables must satisfy.
[0111] The first term in the objective function The sum of the maximum link utilizations of the links connected to the end-side devices of the hierarchical network, where S represents the set of end-side devices; the second term represents the quality score of each service k when it selects the path allocation scheme r. The quality score is negatively correlated with the transmission quality. The lower the quality score, the higher the transmission quality. (k,r) It is a binary parameter, indicating whether the optional path r meets the quality requirements of service k; the third item Indicates the maximum link utilization of the links connected by the aggregation devices in the hierarchical network, H represents the aggregation device set. In addition, T represents at least one time period set, L s represents the link connected to device s, ω1, w s , ω2, ω3 and w s All are parameters.
[0112] By solving the optimal solution to the path planning problem of the above formula (1), the target forwarding path of each service that meets the path planning goal can be obtained based on the optimal solution. The embodiment of the present application does not limit the method for solving the optimal solution to the path planning problem of the above formula (1). For example, the solution can be obtained by solving constraint integer programs (SCIP). SCIP is an integer programming solver and a mixed integer linear programming solver.
[0113] In addition to the above method of determining the target forwarding path that meets the needs of each business, at least one time period can be divided into multiple single time periods, and the target forwarding path of each business in a single time period can be obtained respectively. Then, the target forwarding path of each business in a single time period can be merged to generate the target forwarding path of each business in at least one time period.
[0114] Optionally, for any time period in at least one time period, based on traffic prediction information for the time period and at least one optional path corresponding to each service, a candidate forwarding path for each service in the time period that meets the path planning objectives is determined; and a target forwarding path for each service is determined based on the candidate forwarding path for each service in the at least one time period. For example, a reference forwarding path for each service is determined based on the candidate forwarding path for each service in the at least one time period, where the reference forwarding path for each service is a candidate forwarding path whose path quality satisfies a ranking condition among the candidate forwarding paths for each service in the at least one time period; and a target forwarding path for each service is determined based on the reference forwarding path for each service. The ranking condition may be that the path quality is ranked first in descending order.
[0115] The embodiment of the present application does not limit the method for obtaining the path quality of any candidate forwarding path. Optionally, the path quality of any candidate forwarding path is determined based on at least one of the path length, the number of intermediate nodes, or the path bandwidth capacity of any candidate forwarding path. The path length may refer to the length of the physical link between the two ends of the path, the number of intermediate nodes may refer to the number of message forwarding hops from the beginning to the end of the path, and the path bandwidth capacity may refer to the average or minimum value between the bandwidth capacities of each link on the path. For example, the length of the path is negatively correlated with the level of the path quality, that is, the shorter the path length, the higher the path quality; the number of intermediate nodes is negatively correlated with the level of the path quality, that is, the fewer the number of intermediate nodes, the higher the path quality; the size of the path bandwidth capacity is positively correlated with the level of the path quality, that is, the larger the path bandwidth capacity, the higher the path quality.
[0116] Since the complexity of the path planning problem in a single time period is lower than that of the path planning problem in multiple time periods, by splitting the path planning problem in multiple time periods into multiple single time period path planning problems, the complexity of solving the path planning problem in multiple time periods is reduced and the solving speed of the path planning problem in multiple time periods is improved.
[0117] Taking the above-mentioned solution of the path planning problem to determine the target forwarding path for each service as an example, the path planning problem can be divided into path planning time sub-problems corresponding to at least one time period. The path planning time sub-problem for any time period is obtained by assigning at least one time period in the path planning problem to any time period. The forwarding paths of the same service solved by the path planning time sub-problems in different time periods are allowed to be different. Based on the traffic prediction information of any time period and at least one optional path corresponding to each service, the method for determining the candidate forwarding path for each service in any time period that meets the path planning goal includes solving the optimal solution of the path planning time sub-problem corresponding to at least one time period. Then, based on the optimal solution of the path planning time sub-problem corresponding to at least one time period, the optimal solution to the path planning problem is obtained.
[0118] Exemplarily, the path planning time sub-problem for any time period is shown in the following formula (2), where the value of t is the any time period.
[0119] In one possible embodiment, a method for determining candidate forwarding paths for each service that meets the path planning goal in any time period based on traffic prediction information for any time period and at least one optional path corresponding to each service includes obtaining the lower limit value of the maximum link utilization corresponding to each aggregation device based on the traffic prediction information for any time period; for at least one service corresponding to any end-side device in each service, determining the candidate forwarding path for at least one service that meets the path planning goal in any time period based on traffic prediction information for at least one service in any time period, at least one optional path corresponding to at least one service, and the lower limit value of the maximum link utilization corresponding to each aggregation device; determining the candidate forwarding path for each service in any time period based on the candidate forwarding path for at least one service corresponding to each end-side device in any time period.
[0120] In the path planning problem of a single time period, by determining the lower bound value of the maximum link utilization corresponding to each convergence device, the complexity of the path planning problem of a single time period is reduced and the solving speed of the path planning problem of a single time period is improved.
[0121] In one possible embodiment, a method for obtaining the lower bound of maximum link utilization corresponding to each aggregation device based on traffic prediction information in any time period includes: obtaining multiple link combinations of multiple aggregation links for multiple aggregation links connected to any aggregation device in each aggregation device, wherein any link combination includes a first group of aggregation links and a second group of aggregation links, and the first group of aggregation links and the second group of aggregation links are different for different link combinations; determining the maximum traffic of each service converged to the first group of aggregation links for the first group of aggregation links in any link combination; obtaining the lower bound of maximum link utilization for any aggregation device for any link combination based on the total predicted traffic, maximum traffic, and bandwidth capacity upper limit of the second group of aggregation links for each service; and obtaining the lower bound of maximum link utilization corresponding to any aggregation device based on the lower bound of maximum link utilization for multiple link combinations of any aggregation device. The lower bound of maximum link utilization corresponding to any aggregation device is referred to as the lower bound of maximum link utilization (MLU).
[0122] Among them, the second group of aggregation links represents the aggregation links that may be fully loaded. The maximum flow of each service that can be aggregated to the first group of aggregation links is calculated under theoretical conditions, and the remaining service flow is aggregated to the second group of aggregation links. At this time, the ratio of the remaining service flow to the bandwidth capacity upper limit of the second group of aggregation links is the MLU lower bound. By enumerating the MLU lower bounds of any aggregation device under different link combinations, the MLU lower bound corresponding to any aggregation device can be accurately determined. Since the second group of aggregation links is strongly correlated with the congested nodes during actual operation, combining it with actual network congestion information can further accelerate the acquisition of the MLU lower bound.
[0123] Optionally, the maximum flow rate of each service converged to the first group of aggregation links can be quickly determined by the maximum flow minimum cut principle. The maximum flow minimum cut principle means that in a service flow, the maximum flow rate that can reach the aggregation point from the source point is equal to the sum of the capacities of the minimum cuts. The minimum cut refers to the set of edges that can cause the service flow to be interrupted if removed from the network. The edge refers to the link. Since an aggregation link is connected to a lower-layer routing aggregation device, the maximum flow rate of each service converged to the first group of aggregation links is the maximum flow rate of each service converged to the first group of routing devices connected to the first group of aggregation links. Since the service traffic of each service is sent by each end-side device, the maximum flow rate of each service converged to the first group of routing devices is the sum of the maximum flow rates of each end-side device to each routing device in the first group of routing devices.
[0124] Among them, the method for obtaining the maximum flow from any end-side device to any routing device can include obtaining the minimum cut edge set between any end-side device and any routing device; determining the sum of the predicted flows sent by any end-side device and the sum of the bandwidth capacities of the links in the minimum cut set; if the sum of the predicted flows is greater than the sum of the bandwidth capacities, then determining that the maximum flow from any end-side device to any routing device is the sum of the bandwidth capacities; if the sum of the predicted flows is less than or equal to the sum of the bandwidth capacities, then determining that the maximum flow from any end-side device to any routing device is the sum of the predicted flows.
[0125] For each service's total predicted traffic, any traffic that is not aggregated onto the first set of aggregated links will be aggregated onto the second set of aggregated links. Therefore, after determining the maximum traffic that each service can aggregate onto the first set of aggregated links, the minimum traffic that each service can aggregate onto the second set of aggregated links can be determined based on the difference between the total predicted traffic and the maximum traffic. The ratio between the minimum traffic and the upper bandwidth capacity limit of the second set of aggregated links is the lower MLU bound for that link combination. The upper bandwidth capacity limit of the second set of aggregated links is the sum of the upper bandwidth capacity limits of each link in the second set of aggregated links.
[0126] Taking the above-mentioned path planning time sub-problem of solving any time period to determine the candidate forwarding paths for each service in any time period as an example, for the path planning time sub-problem of any time period in at least one time period, after obtaining the MLU lower bound corresponding to each aggregation device based on the traffic prediction information of any time period, the link utilization of the aggregation link connected to any aggregation device in the path planning time sub-problem can be assigned to the maximum link utilization corresponding to any aggregation device, thereby obtaining the first time sub-problem. The first time sub-problem can be expressed as the following formula (3), where the variable Indicates the maximum link utilization corresponding to device s, parameter represents the lower bound of the MLU corresponding to the aggregation device h, L low Indicates a set of links excluding aggregated links.
[0127] After obtaining the first time subproblem, the first time subproblem can be relaxed based on Lagrange multipliers to obtain a relaxed second time subproblem. The optimal solution to the second time subproblem is then solved, and the optimal solution to the path planning time subproblem corresponding to any time period is obtained based on the optimal solution to the second time subproblem. Relaxation refers to the operation of expanding the feasible domain of the mixed integer programming problem. For example, linear relaxation refers to expanding the range of integer variables to be relaxed from the integer domain to the real domain. Lagrange relaxation refers to removing the constraints to be relaxed, thereby expanding the feasible domain.
[0128] Optionally, the first time subproblem is relaxed based on the Lagrangian multiplier to obtain the relaxed second time subproblem by relaxing the capacity constraint corresponding to the aggregation link using the Lagrangian relaxation technique. For example, the aggregation link set in the link constraint is separated and the aggregation link set is calculated using L up Indicates that for L up For each link l in , define the Lagrange multiplier The capacity constraint corresponding to the aggregation link is moved to the objective function by weighting it with the penalty term through the Lagrange multiplier, so that the objective function in formula (2) becomes the following Lagrangian function: Exemplarily, the second time sub-problem is shown in the following formula (4).
[0129] Optionally, the optimal solution to the second time subproblem can be obtained by splitting the second time subproblem into single-site subproblems corresponding to each end-side device, wherein the single-site subproblem of any end-side device is obtained by separating the content related to any end-side device in the second time subproblem; solving the optimal solution of each single-site subproblem; and obtaining the optimal solution of the second time subproblem based on the optimal solution of each single-site subproblem. For example, the single-site subproblem can be shown as the following formula (5): K s Represents a service set related to device s, that is, at least one service corresponding to device s.
[0130] In an embodiment of the present application, for at least one service of any end-side device, a single-site subproblem of any end-side device can be constructed based on the traffic prediction information of at least one service in any time period, at least one optional path corresponding to at least one service, and the lower bound value of the maximum link utilization corresponding to each aggregation device; by solving the optimal solution of the single-site subproblem of any end-side device, a candidate forwarding path for at least one service in any time period that meets the path planning objective can be determined. Furthermore, based on the candidate forwarding path of at least one service corresponding to each end-side device in any time period, the candidate forwarding path for each service in any time period can be determined, which can be achieved by obtaining the optimal solution of the second time subproblem based on the optimal solution of each single-site subproblem.
[0131] Optionally, the method of obtaining the optimal solution of the second time subproblem based on the optimal solution of each single-site subproblem includes: generating a reference solution of the second time subproblem based on the optimal solution of each single-site subproblem; determining the upper and lower bounds of the second time subproblem based on the reference solution, and determining the goodness of the reference solution based on the upper and lower bounds; when the goodness is greater than the goodness threshold, obtaining the optimal solution of the second time subproblem based on the reference solution; when the goodness is less than or equal to the goodness threshold, updating the Lagrange multiplier based on the reference solution, and obtaining the updated single-site subproblems based on the updated Lagrange multiplier; solving the optimal solution of each updated single-site subproblem based on the reference solution, the upper and lower bounds; generating an updated reference solution of the second time subproblem based on the optimal solution of each updated single-site subproblem; until the goodness of the updated reference solution is greater than the goodness threshold, obtaining the optimal solution of the second time subproblem based on the updated reference solution.
[0132] Among them, the upper bound value refers to the upper bound value of the optimal value of the mixed integer programming problem, which is usually related to the target value of the feasible solution. The lower bound value refers to the lower bound value of the optimal value of the mixed integer programming problem, which is usually related to the optimal target value of the relaxation problem. The goodness of the reference solution is determined according to the distance between the upper bound value and the lower bound value. Optionally, the smaller the distance between the upper bound value and the lower bound value, the greater the goodness, and the larger the distance between the upper bound value and the lower bound value, the smaller the goodness. The goodness threshold can be flexibly adjusted according to the application scenario, and the embodiment of the present application is not limited. Taking the goodness as the ratio of the upper bound value to the lower bound value as an example, the goodness threshold can be 90%.
[0133] The process of obtaining the optimal solution to the second time subproblem based on the reference solution may include locally adjusting the reference paths of each service in the reference solution to obtain an adjusted reference solution; if the goodness of the adjusted reference solution is greater than the goodness of the reference solution, determining the adjusted reference solution as the optimal solution to the second time subproblem; and if the goodness of the adjusted reference solution is less than or equal to the goodness of the reference solution, determining the reference solution as the optimal solution to the second time subproblem. Thus, the goodness of the reference solution can be further improved through local optimization.
[0134] Thus, by solving the path planning problem for the above-mentioned single time period, the candidate forwarding paths for each service in at least one time period can be obtained. In an embodiment of the present application, after obtaining the candidate forwarding paths for each service in at least one time period, a reference forwarding path for any service among the services can be determined. The reference forwarding path for any service is the candidate forwarding path with the highest quality among the candidate forwarding paths for any service in at least one time period. The highest quality of the candidate forwarding path can mean that the transmission index of the candidate forwarding path is the best, for example, the minimum transmission delay, the lowest bandwidth utilization, or the fastest transmission speed.
[0135] Among them, a round-robin (RR) algorithm can be used to determine the reference forwarding path of any service in each service in turn. The RR algorithm is a process scheduling algorithm used to allocate appropriate resources, ensuring that different services can evenly share system resources and avoiding reduced system efficiency due to some processes occupying too many resources.
[0136] Optionally, after determining the reference forwarding path corresponding to each service, the reference forwarding path of each service can be directly used as the target forwarding path for each service. Alternatively, the reference forwarding path of each service can be locally adjusted to obtain an adjusted reference forwarding path for each service; if the distance between the adjusted reference forwarding path and the path planning target is less than the distance between the reference forwarding path before the adjustment and the path planning target, the adjusted reference forwarding path is determined to be the target forwarding path for each service; or, if the distance between the reference forwarding path before the adjustment and the path planning target is greater than the distance between the reference forwarding path before the adjustment and the path planning target, the reference forwarding path before the adjustment is determined to be the target forwarding path for each service. The distance from the path planning target can refer to the degree of load balancing. For example, the distance from the path planning target can be determined using the aforementioned quality. Thus, by selecting the highest-quality candidate forwarding path and performing local optimization, the accuracy of the multi-time period path planning solution generated based on multiple single-time period path planning methods can be ensured.
[0137] In addition, the aforementioned ability to determine the target forwarding path for each service that meets the path planning objective is premised on the existence of an optional path for each service that meets the path planning objective in at least one optional path corresponding to each service. In the event that there is no optional path for each service that meets the path planning objective in at least one optional path corresponding to each service, that is, in the event that no feasible solution to the aforementioned path planning problem exists, at least one time period can be updated, and traffic forecast information corresponding to at least one updated time period can be re-acquired. Based on the updated traffic forecast information corresponding to at least one updated time period and at least one optional path corresponding to each service, the target forwarding path for each service that meets the path planning objective can be determined.
[0138] A feasible solution is the value of the decision variable that satisfies the constraints. If a path plan fails to meet the target, the route can be replanned by adjusting the traffic sampling interval (i.e., at least one time period). This enables network-wide adaptive traffic collection and improves the reliability of route planning.
[0139] Below, the process of solving the above-mentioned path planning problem is illustrated with reference to Figure 4. The path planning problem corresponds to a multi-time slice problem, and the path planning time sub-problem corresponds to a single-time slice sub-problem. The input of the multi-time slice problem solving module is the multi-time slice problem, which includes information such as the number of time slices, the number of services, the predicted traffic of each service in each time period, and the set of optional paths for each service. The output is the target forwarding path for each service, that is, the global service path solution. Among them, for the multi-time slice problem, the service data of each time period is processed in chronological order to generate the single-time slice sub-problem corresponding to the time period, and the service path solution corresponding to the time period is solved by calling the single-time slice sub-problem solving module; the global service path solution is generated based on the service path solutions calculated for multiple time periods.
[0140] In the multi-time-slice problem-solving module, the time subproblem splitting module is used to perform relaxation operations on the input multi-time-slice problem in chronological order, allowing different service path solutions to be adopted in each time period, thereby generating multiple consecutive single-time-slice subproblems. Each single-time-slice subproblem is output to the single-time-slice subproblem-solving module for solution. The global service routing module is used to score the service path solutions for each service in different time periods using the RR algorithm based on the solution results of each single-time-slice subproblem collected from the time-slice problem, and then select the service path solution with the highest score as the final service path solution for each service.
[0141] If the final service path plan for each service is feasible, that is, it meets the aforementioned path planning objectives, the final service path plan for each service is output as the global service path plan. If the final service path plan for each service is not feasible, the final service path plan for each service is sent to the local feasibility adjustment module. The local feasibility adjustment module is used to make local feasibility adjustments to the final service path plan for each service, for example, using a local path exchange strategy to make local feasibility adjustments to the final service path plan for each service, and output the adjusted feasible service path plan as the global service path plan.
[0142] The input to the single-time-slice subproblem solving module is a single-time-slice t subproblem, which includes time period t, the predicted traffic for each service corresponding to time period t, and the set of optional paths for each service corresponding to time period t. The output is the service path plan corresponding to time period t. If the services corresponding to time period t include at least one service subset requiring path planning and a second service subset for determining a service path plan, then the input single-time-slice t subproblem includes time period t, the predicted traffic for each service corresponding to time period t, the set of optional paths for each service within the at least one service subset, and the currently deployed service path plan for each service within the second service subset. The output is the service path plan for each service within the at least one service subset.
[0143] In the single-time-slice subproblem solving module, the feasibility check module is used to make feasibility judgments based on the input single-time-slice t subproblem. For example, it identifies services with infeasible SLA indicators, i.e., services where every optional path in the optional path set does not meet the SLA indicators; and it identifies end-side devices with infeasible link capacity, i.e., the total predicted traffic of the services corresponding to the end-side devices exceeds the bandwidth capacity limit of all links connected to the end-side devices. If an infeasible service or an infeasible end-side device is identified, the infeasibility information is directly returned and the solution is discontinued. If no infeasible service or infeasible end-side device is identified, the unsolved model of the single-time-slice t subproblem is output to the MLU lower bound calculation module.
[0144] The MLU lower bound calculation module is used to identify the aggregation link constraints of the single time slice t subproblem and uses traffic relaxation technology combined with the maximum flow minimum cut principle to calculate the MLU lower bound of the aggregation device. The traffic relaxation method allows the allocation of arbitrary traffic values to the service path. The Lagrange multiplier initialization module is used to relax each aggregation link constraint using Lagrange relaxation technology and generate the corresponding Lagrange multiplier initial value. When the hot start mode is enabled, the Lagrange multiplier initial value can be the value of the Lagrange multiplier corresponding to the end of the solution of the site subproblem corresponding to time period t-1; otherwise, the Lagrange multiplier initial value is 0.
[0145] The site subproblem splitting and solving module is used to split the problem according to the site information dimension. That is, all variables and constraints related to the same site are grouped into the same subproblem, thereby generating a site subproblem to be solved for each site. The site corresponds to the end-side device in the embodiment of this application. To solve the site subproblem, an initial solution is first constructed. When the hot start mode is enabled, the initial solution is the solution output by the previous iteration; otherwise, a random initial solution is used. Then, based on this initial solution, a branch and bound algorithm is used to iteratively solve the optimal solution for the site subproblem.
[0146] The upper / lower bound update module generates the solution to the original single-time-slice t-subproblem based on the optimal solution to each site subproblem and calculates and updates the upper and lower bounds of the single-time-slice t-subproblem based on the solution. The Lagrange multiplier update module updates the Lagrange multiplier using the gradient method based on the solution to the single-time-slice t-subproblem. The module calculates the goodness of the current solution based on the upper and lower bounds. If the goodness is greater than 90%, the iteration process is exited and the current solution is output to the local optimization module. If the goodness is less than or equal to 90%, the current solution, upper and lower bounds, and updated Lagrange multiplier are output to the site subproblem splitting and solving module for iterative solution. The local optimization module employs a local path exchange strategy to further improve the goodness of the solution to the single-time-slice t-subproblem.
[0147] After processing through the above modules, a single-time-slice t service path solution is output. This single-time-slice t service path solution is the solution to the single-time-slice t subproblem. Since the single-time-slice t subproblem is derived from the multi-time-slice problem, T represents the maximum time slice corresponding to the multi-time-slice problem. After outputting the single-time-slice t service path solution, a check is performed to determine whether t is greater than or equal to T. If t is greater than or equal to T, indicating that all single-time-slice subproblems have been solved, global service routing is performed. If t is less than T, the solution t = t + 1 is executed, and the next single-time-slice subproblem is input for solution.
[0148] Based on the solution framework for the path planning problem shown in Figure 4, it can be seen that the embodiment of the present application has designed a decomposition optimization framework based on Lagrangian heuristics. Through problem establishment, feasibility check, problem relaxation, MLU lower bound calculation, Lagrangian problem construction, Lagrangian multiplier iteration, site subproblem solving, local tuning and hot start, the efficiency of model solution is effectively improved. The solution framework for the mixed integer programming problem shown in Figure 4 can be applied to other network path optimization problems or to integer programming problems with a block structure.
[0149] In summary, through the implementation of step 302, it is achieved to determine the target forwarding path for each service that meets the path planning goal based on the traffic prediction information corresponding to at least one time period and at least one optional path corresponding to each service. In one possible implementation, after determining the target forwarding path for each service that meets the path planning goal, a routing plan for any routing device in the hierarchical network is generated based on the target forwarding path for each service; and the routing plan for any routing device is sent to any routing device. This enables any routing device to forward service traffic according to the routing plan corresponding to any routing device. Since the routing plan is generated based on the target forwarding path for each service that meets the path planning goal, the execution of the routing plan can enable the hierarchical network to meet the path planning goal.
[0150] The path planning method provided in the embodiments of the present application calculates the predicted traffic volume for each service transmitted over a hierarchical network during at least one time period and then plans a target forwarding path for each service that meets the path planning objectives. This method implements global service path planning, reduces network-wide link congestion, achieves load balancing across links, and ensures that service forwarding paths meet service quality requirements.
[0151] Taking the interactive execution of the method by a control device, any end-side device in a hierarchical network, and any routing device in a hierarchical network as an example, see Figure 5, which is an interactive schematic diagram of a path planning method provided in an embodiment of the present application. The method can be executed in the implementation environment shown in Figure 2, for example, by the control device, end-side device, and routing device shown in Figure 2. As shown in Figure 5, the path planning method includes but is not limited to the following steps 501-506.
[0152] Step 501: Any routing device sends a sampling time interval to a control device. The sampling time interval is determined based on a traffic change cycle of any routing device.
[0153] The traffic variation period of any routing device refers to the period during which the volume of traffic transmitted by that routing device changes. Since traffic transmitted by any routing device is initiated by end-side devices within the hierarchical network, the traffic variation period can indicate the period during which the volume of service traffic initiated by each end-side device within the hierarchical network changes. Furthermore, the sampling interval determined based on the traffic variation period better reflects the changing patterns of traffic initiated by end-side devices.
[0154] The embodiment of the present application does not limit the method of determining the sampling time interval, and the sampling time interval can be adapted to the flow change period. For example, taking the flow change period as an example, the lower the flow change rate, the longer the sampling time interval is determined, and the higher the flow change rate, the shorter the sampling time interval is determined. The flow change rate of link l in time period t can be determined based on Calculate and send l (t-1) represents the total traffic transmitted by link l in time period t-1, send l (t) represents the total traffic transmitted by link l in time period t.
[0155] Step 502: The control device receives a sampling time interval sent by any routing device, determines a global sampling interval based on the sampling time interval sent by any routing device, and determines at least one time period with the global sampling interval as a period.
[0156] In an embodiment of the present application, the control device can receive sampling time intervals sent by each routing device in the hierarchical network. Optionally, the average value of the sampling time intervals sent by each routing device is used as the global sampling interval; or, the minimum value of the sampling time intervals sent by each routing device is used as the global sampling interval. The global sampling interval is determined by the sampling time intervals of each routing device in the hierarchical network, taking into account the traffic change cycle of each routing device in the hierarchical network. Therefore, at least one time period determined with the global sampling interval as a period is more accurate and more consistent with the traffic change cycle of the entire network.
[0157] The method of determining at least one time period with the global sampling interval as a period can be to determine a time period every time length of a global sampling interval, and the time length of any time period is the time length of the global sampling interval. For example, in the planning mode shown in Figure 6, the planning time scale indicates at least one time period, the current time is t, and the global sampling interval is 1, then the at least one time period is t to t+1, t+1 to t+2, ..., t+T-1 to t+T, and the time length of each time period is the same, which is the global sampling interval 1. Alternatively, the method of determining at least one time period with the global sampling interval as a period can also be to determine a time period every time length of an arbitrary number of global sampling intervals, and the time length of any time period is an arbitrary number of times the time length of the global sampling interval. In this case, taking the arbitrary number as 2 as an example, the at least one time period shown in Figure 6 becomes t to t+2, t+2 to t+4, ..., t+T-2 to t+T, and the time length of each time period is the same, which is 2 times the global sampling interval 1.
[0158] In step 503, the control device sends a traffic collection request to any end-side device, where the traffic collection request is used to request sub-traffic prediction information corresponding to at least one time period.
[0159] Because services are initiated by end-side devices, by collecting sub-traffic prediction information corresponding to at least one time period from each end-side device, accurate traffic prediction information corresponding to at least one time period for the entire network can be obtained. By issuing traffic collection requests, the sub-traffic prediction information obtained by each end-side device corresponds to the same at least one time period, improving the efficiency of obtaining traffic prediction information.
[0160] In step 504, any end-side device receives the traffic collection request sent by the control device, and obtains sub-traffic prediction information corresponding to at least one time period based on the traffic collection request. The sub-traffic prediction information of any time period indicates the predicted traffic of each service transmitted by any end-side device in the any time period.
[0161] In one possible implementation, any end-side device records the actual traffic of each service transmitted by any end-side device; and the method for obtaining sub-traffic prediction information corresponding to at least one time period based on a traffic collection request includes obtaining sub-traffic prediction information corresponding to at least one time period based on the recorded actual traffic of each service, based on the traffic collection request. As shown in Figure 6, any end-side device performs historical traffic collection before the current moment, obtains the actual traffic corresponding to the time period t-1 to t, the actual traffic corresponding to the time period t-2 to t-1, and so on. Then, based on the actual traffic corresponding to multiple historical time periods, the predicted traffic of each service transmitted in at least one future time period can be predicted.
[0162] The present embodiment of the present application does not limit the method for obtaining sub-traffic prediction information corresponding to at least one time period based on the recorded actual traffic of each service. Optionally, for any of the services, a prediction algorithm can be used to predict the predicted traffic corresponding to at least one future time period based on the recorded actual traffic of any service in different historical time periods. Prediction algorithms include, but are not limited to, linear regression, logistic regression, decision trees, random forests, support vector machines, neural networks, and the like.
[0163] In step 505 , any end-side device sends sub-flow prediction information corresponding to at least one time period to the control device.
[0164] After obtaining the sub-flow prediction information corresponding to at least one time period based on the flow collection request, any end-side device sends the sub-flow prediction information corresponding to the at least one time period to the control device.
[0165] In step 506, the control device obtains the traffic prediction information corresponding to at least one time period based on the sub-traffic prediction information corresponding to at least one time period sent by any end-side device; and determines the target forwarding path for each service that meets the path planning target based on the traffic prediction information corresponding to at least one time period and at least one optional path corresponding to each service.
[0166] In one possible implementation, for any time period, the flow prediction information corresponding to any time period can be directly determined based on the sub-flow prediction information corresponding to any time period sent by each end-side device; or, the sub-flow prediction information corresponding to any time period sent by each end-side device can be preprocessed, and the flow prediction information corresponding to any time period sent by each end-side device after preprocessing can be determined. Preprocessing can include operations such as outlier processing or deduplication processing. For example, if an end-side device sends sub-flow prediction information for the same time period twice, a duplicate sub-flow prediction information can be deleted based on deduplication processing.
[0167] Taking the example of determining the flow prediction information corresponding to any time period based on the sub-flow prediction information corresponding to the time period sent by each end-side device, the flow prediction information corresponding to any time period based on the sub-flow prediction information corresponding to the time period sent by each end-side device can be determined by summing the predicted flows in the sub-flow prediction information corresponding to any time period; determining the summed result as the predicted flow in the flow prediction information corresponding to any time period, or determining the product of the summed result and a proportionality coefficient as the predicted flow in the flow prediction information corresponding to any time period. The proportionality coefficient can be set based on experience or flexibly adjusted according to the application scenario.
[0168] The implementation of step 506 can be found in the implementation of steps 301 and 302 above and will not be repeated here. After the control device determines the target forwarding path for each service, it generates a routing plan for each routing device based on the target forwarding path for each service and sends it to each routing device. Each routing device receives the routing plan sent by the control device and transmits the service traffic of each service according to the routing plan.
[0169] In the case where there is no optional path for each business that meets the path planning target in at least one optional path corresponding to each business in step 302, the method of updating at least one time period includes determining an infeasible link in the case where there is no optional path for each business that meets the path planning target; determining an adjustment parameter based on the maximum link utilization and link congestion threshold of the infeasible link in at least one time period, and sending the adjustment parameter to the infeasible routing device connected to the infeasible link; and the infeasible routing device updating at least one time period based on the adjusted sampling time interval.
[0170] Optionally, the adjustment parameter is the ratio of the maximum link utilization to the link congestion threshold. The link congestion threshold can be flexibly adjusted based on experience. For example, the link congestion threshold is 0.7. l express, ρ represents the link congestion threshold, Represents maximum link utilization. By accurately identifying infeasible links and updating the sampling interval in a targeted manner based on the adjustment parameters, at least one time period can be updated efficiently and adaptively, improving the convergence speed of the updated at least one time period.
[0171] In one possible implementation, the manner in which any routing device adjusts the sampling time interval based on the adjustment parameter includes adjusting the sampling time interval based on the adjustment parameter and the flow change rate of any routing device. Optionally, the larger value of the adjustment parameter and the inverse of the flow change rate is determined, and the adjusted sampling time interval is determined based on the product of the larger value and the sampling time interval. l For example, the adjusted sampling time interval Where γ represents the flow rate change rate.
[0172] In conjunction with Figure 7, an example of a long-term network path planning scenario is provided. The long network period can be one month. The routing device may include a sampling time calculation module and a routing module, the end-side device may include a traffic prediction storage module, and the control device may include a sampling period calculation module and a path planning module.
[0173] The sampling time calculation module initializes the sampling time interval according to the traffic change cycle and sends the sampling time interval to the sampling period calculation module. Calculate the global sampling interval δ, where δ S The sampling interval sent by routing device s is represented by δ. The traffic prediction information for all services is requested from all end-side devices at a period of δ. This means that a traffic collection request is sent to the traffic prediction storage module. Based on the traffic collection request, the traffic prediction storage module obtains sub-traffic prediction information based on stored historical traffic information, i.e., the actual traffic predictions for each service, and sends this sub-traffic prediction information to the path planning module.
[0174] The path planning module collects the sub-traffic prediction information of all end-side devices, constructs and solves the multi-time-slice path planning problem to solve the global path solution. If there is a feasible solution to the multi-time-slice path planning problem, the corresponding routing solution is generated based on the service path solution in the optimal solution and sent to the routing module of each routing device. If there is no feasible solution to the multi-time-slice path planning problem, the information of the infeasible link is fed back to the sampling period calculation module. The sampling period calculation module locates the infeasible routing device corresponding to the infeasible link and calculates the adjustment parameter α. l The sampling time calculation module is sent to the infeasible routing device to increase the sampling time interval of the infeasible routing device. The sampling time calculation module adjusts the parameter α l Recalculate the new sampling time interval. If the sampling time interval changes, the sampling time calculation module resends the changed sampling time interval to the sampling period calculation module.
[0175] In addition to implementing long-term network path planning through the aforementioned planning mode, this method can also achieve online network path optimization through an online mode. The planning mode corresponds to the aforementioned multi-time slice problem, while the online mode corresponds to the aforementioned single-time slice problem.
[0176] For the online mode, when any service traffic transmitted by any routing device is congested, any routing device may feedback a signaling data packet to the end-side device at the sending end of any service traffic, and the signaling data packet carries a congestion identifier. The signaling data packet may refer to a negative acknowledgement (NACK) packet. The end-side device receives the signaling data packet fed back by any routing device in the hierarchical network; based on the congestion identifier in the signaling data packet, it sends congestion information to the control device, and the congestion message indicates that the service traffic sent by any end-side device is congested.
[0177] After receiving the congestion information sent by any end-side device in the hierarchical network, the control device sends a traffic screening request to any end-side device based on the congestion message indicating that the service traffic sent by any end-side device is congested, triggering the path tuning process in the online mode, that is, the path tuning triggering moment shown in Figure 6. After any end-side device receives the traffic screening request sent by the control device, it determines the deviation service whose difference between the actual traffic and the predicted traffic is greater than the difference threshold based on the traffic screening request, and sends the actual traffic of the deviation service to the control device. Then, the control device determines the target forwarding path of the deviation service that meets the path planning target based on the actual traffic of the deviation service, the predicted traffic of the non-deviation service in the current time period, the target forwarding path of the non-deviation service, and at least one optional path of the deviation service. Optionally, the control device determines the target forwarding path of the deviation service by constructing and solving the above-mentioned single-time slice problem.
[0178] Therefore, in the event of network congestion, by identifying deviant services and planning the target forwarding path for the deviant services that meets the path planning goals, real-time online path fine-tuning is achieved to eliminate network congestion and improve the stability of the hierarchical network.
[0179] 8 , an example of an online optimization scenario for a network path is given, where the online optimization scenario may be 15 minutes. The routing device may include a routing module, the end-side device may include a congested service identification module and a traffic prediction storage module, and the control device may include a path planning module.
[0180] When the routing module detects congestion in the routing device, it sends a congestion indicator in the signaling data packet sent back to the end-side device. The congestion service identification module triggers congestion relief based on the congestion indicator. Specifically, upon receiving the signaling data packet, the end-side device parses the data packet, identifies the congestion indicator, and sends a congestion notification to the control device. Upon receiving the congestion notification, the path planning module decides whether to trigger congestion relief. If so, it executes the congestion relief process.
[0181] In the congestion elimination process, the path planning module sends a traffic screening request to the corresponding end-side device. Based on the traffic screening request, the congested service identification module reads the predicted traffic of each service from the traffic prediction storage module, and the traffic prediction storage module returns the predicted traffic of each service to the congested service identification module. The congested service identification module identifies the deviation services with large traffic deviations based on the predicted traffic and actual traffic of each service, and sends the actual traffic of the deviation services to the path planning module. Based on the actual traffic of the deviation services, the path planning module constructs and solves the path planning problem for a single time slice, recalculates the path plan for the deviation services affected by congestion, and sends the updated routing plan for the deviation services.
[0182] Exemplarily, the path planning method provided in the embodiment of the present application can be applied to the path selection scenario of media streams. Media streams are also called streaming media, which use streaming transmission to enable audio, video or multimedia files to be played on the network. In the path selection scenario of media streams, the media stream network corresponds to the above-mentioned hierarchical network, and the media service corresponds to the above-mentioned service. The path planning method performed by the control device, the end-side device and the routing device in the media stream network can be found in the relevant description of the path planning method performed by the control device, the end-side device and the routing device in the hierarchical network shown in Figures 3 or 5 above, and will not be repeated here.
[0183] Optionally, the media streaming network can be a CDN, a distribution media network, or an OTT network. A CDN is a specialized network layer built and overlaid on the Internet, specifically designed to efficiently deliver rich multimedia content over the Internet. OTT is a manageable and controllable service that provides video content to televisions via the public Internet. The control device in an OTT network can be a server that provides video content, and the end-side devices in an OTT network can be smart TVs, OTT boxes, and servers that provide video content.
[0184] The above describes the path planning method of the embodiment of the present application. Corresponding to the above method, the embodiment of the present application also provides a path planning device. Figure 9 is a structural schematic diagram of a path planning device provided by the embodiment of the present application. The path planning device shown in Figure 9 can perform all or part of the operations performed by the method shown in Figure 3 or Figure 5. It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown therein, and the embodiment of the present application is not limited to this. As shown in Figure 9, the device includes:
[0185] The transceiver module 901 is used to perform the receiving and / or sending related operations performed by the control device in the path planning method shown in Figure 3 or Figure 5, and the processing module 902 is used to perform other operations in addition to the receiving and / or sending related operations performed by the control device in the path planning method shown in Figure 3 or Figure 5; or, the transceiver module 901 is used to perform the receiving and / or sending related operations performed by the end-side device in the path planning method shown in Figure 5, and the processing module 902 is used to perform other operations in addition to the receiving and / or sending related operations performed by the end-side device in the path planning method shown in Figure 5; or, the transceiver module 901 is used to perform the receiving and / or sending related operations performed by the routing device in the path planning method shown in Figure 5, and the processing module 902 is used to perform other operations in addition to the receiving and / or sending related operations performed by the routing device in the path planning method shown in Figure 5.
[0186] In a possible implementation, the transceiver module 901 includes a receiving module and / or a sending module. The receiving module is used to perform reception-related operations, and the sending module is used to perform transmission-related operations.
[0187] In the case where the transceiver module 901 is configured to perform the receiving and / or sending related operations performed by the control device in the path planning method shown in FIG3 or FIG5, and the processing module 902 is configured to perform other operations other than the receiving and / or sending related operations performed by the control device in the path planning method shown in FIG3 or FIG5, the processing module 902 is configured to obtain traffic prediction information corresponding to at least one time period, wherein the traffic prediction information corresponding to any time period in the at least one time period indicates the predicted traffic of each service transmitted through the hierarchical network in any time period; and based on the traffic prediction information corresponding to the at least one time period and at least one optional path corresponding to each service, determine a target forwarding path for each service that meets the path planning objectives, wherein the path planning objectives include: the service traffic carried by any link in the hierarchical network in any time period is less than or equal to the bandwidth capacity upper limit of any link, load balancing between multiple links connected to the same network node in the hierarchical network, and the transmission quality of the target forwarding path for any service in each service meets the quality requirements of any service.
[0188] In one possible embodiment, the transceiver module 901 is used to send a traffic collection request to each end-side device in the hierarchical network, where the traffic collection request is used to request sub-traffic prediction information corresponding to at least one time period; receive sub-traffic prediction information corresponding to at least one time period sent by each end-side device based on the traffic collection request, where the sub-traffic prediction information for any time period sent by any end-side device includes the predicted traffic of each service transmitted by any end-side device in any time period, and the predicted traffic of each service transmitted by any end-side device in any time period is obtained based on the actual traffic of each service recorded by any end-side device; the processing module 902 is used to obtain traffic prediction information corresponding to at least one time period based on the sub-traffic prediction information corresponding to at least one time period sent by each end-side device.
[0189] In one possible embodiment, the processing module 902 is also used to receive sampling time intervals sent by each routing device in the hierarchical network. The sampling time interval of any routing device is determined based on the traffic change period of any routing device. The traffic change period indicates the period in which the size of the business traffic initiated by each end-side device changes; the processing module 902 is also used to determine the global sampling interval based on the sampling time intervals sent by each routing device, and determine at least one time period with the global sampling interval as a period.
[0190] In one possible implementation, the processing module 902 is configured to determine, for any time period in at least one time period, a candidate forwarding path for each service that meets a path planning objective in any time period based on traffic prediction information for any time period and at least one optional path corresponding to each service; determine a reference forwarding path for each service based on the candidate forwarding paths for each service in at least one time period, the reference forwarding path for any service being a candidate forwarding path whose path quality meets a sorting condition among the candidate forwarding paths for any service in at least one time period, the path quality of any candidate forwarding path being determined based on at least one of the path length, the number of intermediate nodes, or the path bandwidth capacity of any candidate forwarding path; and determine a target forwarding path for each service based on the reference forwarding path for each service.
[0191] In one possible embodiment, the target forwarding path of each service satisfies the load balancing between multiple links connected to the same network node in the hierarchical network, including: in multiple situations where each service is transmitted through any optional path of at least one optional path corresponding to each service, the total link utilization value achieved by the transmission of each service through the target forwarding path of each service is the smallest, the total link utilization value is the sum of the maximum link utilization values corresponding to at least one time period, the maximum link utilization value corresponding to any time period is the sum of the maximum link utilization values corresponding to multiple network nodes in any time period, the multiple network nodes include each end-side device and each aggregation device in the hierarchical network, and the maximum link utilization value corresponding to any network node is the maximum link utilization value among the links connected to any network node.
[0192] In one possible implementation, the processing module 902 is used to obtain the lower limit value of the maximum link utilization corresponding to each aggregation device based on the traffic prediction information of any time period; for at least one service corresponding to any end-side device in each service, determine the candidate forwarding path of at least one service that meets the path planning goal in any time period based on the traffic prediction information of at least one service in any time period, at least one optional path corresponding to at least one service, and the lower limit value of the maximum link utilization corresponding to each aggregation device; based on the candidate forwarding path of at least one service corresponding to each end-side device in any time period, determine the candidate forwarding path of each service in any time period.
[0193] In one possible implementation, the processing module 902 is configured to obtain, for multiple aggregation links connecting any aggregation device in each aggregation device, multiple link combinations of multiple aggregation links, where any link combination includes a first group of aggregation links and a second group of aggregation links, and the first group of aggregation links and the second group of aggregations are different between different link combinations; for the first group of aggregation links and the second group of aggregations in any link combination, determine the maximum flow of each service converged to the first group of aggregation links; obtain a lower limit value of the maximum link utilization of any aggregation device for any link combination based on the total predicted flow, maximum flow of each service and the bandwidth capacity upper limit of the second group of aggregation links; and obtain a lower limit value of the maximum link utilization corresponding to any aggregation device based on the lower limit values of the maximum link utilization of any aggregation device for multiple link combinations.
[0194] In one possible implementation, the processing module 902 is used to locally adjust the reference forwarding path of each service to obtain an adjusted reference forwarding path for each service; if the distance between the adjusted reference forwarding path and the path planning target is less than the distance between the reference forwarding path before adjustment and the path planning target, the adjusted reference forwarding path is determined to be the target forwarding path for each service; or, if the distance between the reference forwarding path before adjustment and the path planning target is greater than the distance between the adjusted reference forwarding path and the path planning target, the reference forwarding path before adjustment is determined to be the target forwarding path for each service.
[0195] In one possible embodiment, the processing module 902 is also used to update at least one time period when there is no optional path for each service that meets the path planning goal in at least one optional path corresponding to each service, and re-obtain the traffic prediction information corresponding to at least one updated time period, and determine the target forwarding path for each service that meets the path planning goal based on the traffic prediction information corresponding to at least one updated time period and at least one optional path corresponding to each service.
[0196] In one possible implementation, the processing module 902 is configured to determine an infeasible link when there are no optional paths for various services that meet the path planning objectives; determine an adjustment parameter based on the maximum link utilization and link congestion threshold of the infeasible link in at least one time period, and send the adjustment parameter to an infeasible routing device connected to the infeasible link; receive a sampling time interval adjusted based on the adjustment parameter from the infeasible routing device, and update at least one time period based on the adjusted sampling time interval.
[0197] In a possible implementation, the processing module 902 is configured to generate a routing solution for any routing device in the hierarchical network based on a target forwarding path for each service; the transceiver module 901 is configured to send the routing solution to any routing device.
[0198] In one possible embodiment, the transceiver module 901 is also used to receive congestion information sent by any end-side device in the hierarchical network, where the congestion message indicates that the service traffic sent by any end-side device is congested; send a traffic screening request to any end-side device, where the traffic screening request is used by any end-side device to determine the deviation service whose difference between the actual traffic and the predicted traffic is greater than a difference threshold; receive the actual traffic of the deviation service sent by any end-side device; the processing module 902 is also used to determine the target forwarding path of the deviation service that meets the path planning target based on the actual traffic of the deviation service, the predicted traffic of the non-deviation service in the current time period, the target forwarding path of the non-deviation service, and at least one optional path of the deviation service.
[0199] In the case where the transceiver module 901 is used to perform the receiving and / or sending related operations performed by the terminal device in the path planning method shown in Figure 5, and the processing module 902 is used to perform other operations other than the receiving and / or sending related operations performed by the terminal device in the path planning method shown in Figure 5. The transceiver module 901 is used to receive a traffic collection request sent by a control device in a hierarchical network, and the traffic collection request is used to request sub-traffic prediction information corresponding to at least one time period; the processing module 902 is used to obtain sub-traffic prediction information corresponding to at least one time period based on the traffic collection request, and the sub-traffic prediction information of any time period in at least one time period indicates the predicted traffic of each service transmitted in any time period; the transceiver module 901 is used to send the sub-traffic prediction information corresponding to at least one time period to the control device, and the sub-traffic prediction information is used by the control device to plan the target forwarding path for each service transmitted through the hierarchical network.
[0200] In a possible implementation, the processing module 902 is configured to obtain sub-traffic prediction information corresponding to at least one time period according to the recorded actual traffic of each service based on the traffic collection request.
[0201] In one possible implementation, the transceiver module 901 is further used to receive a signaling data packet fed back by any routing device in the hierarchical network, the signaling data packet carrying a congestion identifier; the processing module 902 is further used to send congestion information to the control device based on the congestion identifier, and the congestion message indicates that the service traffic is congested; the transceiver module 901 is further used to receive a traffic screening request sent by the control device; the processing module 902 is further used to determine, based on the traffic screening request, a deviation service in which the difference between the actual traffic and the predicted traffic is greater than a difference threshold; the transceiver module 901 is further used to send the actual traffic of the deviation service to the control device, and the actual traffic of the deviation service is used by the control device to plan the target forwarding path of the deviation service.
[0202] In the case where the transceiver module 901 is used to perform the reception and / or transmission related operations performed by the routing device in the path planning method shown in FIG5 , and the processing module 902 is used to perform other operations other than the reception and / or transmission related operations performed by the routing device in the path planning method shown in FIG5 . The transceiver module 901 is used to send a sampling time interval to the control device in the hierarchical network. The sampling time interval is determined based on the traffic change period. The traffic change period indicates the period in which the size of the service traffic initiated by each end-side device in the hierarchical network changes. The sampling time interval is used by the control device to determine the global sampling interval, determine at least one time period with the global sampling interval as a period, and plan the target forwarding path for each service transmitted through the hierarchical network according to the traffic prediction information corresponding to the at least one time period.
[0203] In one possible implementation, the transceiver module 901 is further used to receive an adjustment parameter sent by the control device; the processing module 902 is used to adjust the sampling time interval based on the adjustment parameter to obtain an adjusted sampling time interval; the transceiver module 901 is further used to send the adjusted sampling time interval to the control device, and the adjusted sampling time interval is used for the control device to update at least one time period.
[0204] In a possible implementation, the processing module 902 is configured to adjust the sampling time interval based on the adjustment parameter and the flow rate change rate.
[0205] In one possible implementation, the transceiver module 901 is also used to feedback a signaling data packet to the end-side device that initiates any business traffic when congestion occurs in any transmitted business traffic. The signaling data packet carries a congestion identifier, and the congestion identifier is used by the end-side device to send congestion information to the control device. The congestion message is used by the control device to plan the target forwarding path for the deviation business. The deviation business is a business in which the difference between the actual traffic and the predicted traffic is greater than the difference threshold.
[0206] In a possible implementation, the transceiver module 901 is further configured to receive a routing solution sent by the control device, where the routing solution is generated based on a target forwarding path for each service; and the processing module 902 is further configured to transmit service traffic for each service according to the routing solution.
[0207] In one possible implementation, the hierarchical network is a media streaming network, and the service is a media service.
[0208] It should be understood that the device provided in FIG9 is only used as an example to illustrate the division of the above-mentioned functional modules when implementing its functions. In actual applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the device and method embodiments provided in the above embodiments belong to the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here. The beneficial effects of the device provided in FIG9 can be referred to the beneficial effects of the method shown in FIG3 or FIG5, and will not be repeated here.
[0209] Referring to Figure 10 , Figure 10 illustrates a schematic diagram of the structure of a network device 2000 provided in accordance with an exemplary embodiment of the present application. The network device 2000 illustrated in Figure 10 is configured to execute the operations involved in the path planning method illustrated in Figures 3 or 5 . The network device 2000 is, for example, a switch or router, and may be implemented using a general bus architecture.
[0210] As shown in FIG. 10 , the network device 2000 includes at least one processor 2001 , a memory 2003 , and at least one communication interface 2004 .
[0211] The processor 2001 is, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), a neural-network processing unit (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits for implementing the solution of the present application. For example, the processor 2001 includes an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. The PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. It can implement or execute the various logic blocks, modules, and circuits described in conjunction with the disclosure of the embodiments of the present invention. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.
[0212] Optionally, network device 2000 also includes a bus. The bus is used to transmit information between the various components of network device 2000. The bus may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, for example. Buses can be categorized as address buses, data buses, control buses, and the like. For ease of illustration, FIG10 shows only one line, but this does not imply that there is only one bus or only one type of bus.
[0213] The memory 2003 is, for example, a read-only memory (ROM) or other type of static storage device that can store static information and instructions, or a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including 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 desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 2003 is, for example, independent and connected to the processor 2001 via a bus. The memory 2003 can also be integrated with the processor 2001.
[0214] The communication interface 2004 uses any transceiver-like device for communicating with other devices or communication networks. The communication network can be Ethernet, a radio access network (RAN), or a wireless local area network (WLAN). The communication interface 2004 can include a wired communication interface or a wireless communication interface. Specifically, the communication interface 2004 can be an Ethernet interface, a Fast Ethernet (FE) interface, a Gigabit Ethernet (GE) interface, an Asynchronous Transfer Mode (ATM) interface, a wireless local area network (WLAN) interface, a cellular network communication interface, or a combination thereof. The Ethernet interface can be an optical interface, an electrical interface, or a combination thereof. In the embodiment of the present application, the communication interface 2004 can be used for the network device 2000 to communicate with other devices.
[0215] In a specific implementation, as an embodiment, the processor 2001 may include one or more CPUs, such as CPU0 and CPU1 shown in FIG10 . Each of these processors may be a single-core CPU processor or a multi-core CPU processor. The processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).
[0216] In a specific implementation, as an embodiment, the network device 2000 may include multiple processors, such as the processor 2001 and the processor 2005 shown in Figure 10. Each of these processors may be a single-core CPU or a multi-core CPU. The processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).
[0217] In a specific implementation, as an embodiment, the network device 2000 may further include an output device and an input device. The output device communicates with the processor 2001 and can display information in a variety of ways. For example, the output device can be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device communicates with the processor 2001 and can receive user input in a variety of ways. For example, the input device can be a mouse, a keyboard, a touch screen device, or a sensor device.
[0218] In some embodiments, the memory 2003 is used to store program code 2010 for executing the solution of the present application, and the processor 2001 can execute the program code 2010 stored in the memory 2003. That is, the network device 2000 can implement the path planning method provided by the method embodiment through the processor 2001 and the program code 2010 in the memory 2003. The program code 2010 may include one or more software modules. Optionally, the processor 2001 itself may also store program code or instructions for executing the solution of the present application.
[0219] In a specific embodiment, the network device 2000 of the embodiment of the present application may correspond to the control device in the above-mentioned method embodiments. The processor 2001 in the network device 2000 reads the instructions in the memory 2003, so that the network device 2000 shown in Figure 10 can execute all or part of the operations performed by the control device.
[0220] Specifically, the processor 2001 is used to obtain traffic prediction information corresponding to at least one time period, and the traffic prediction information corresponding to any time period indicates the predicted traffic of each service transmitted by the hierarchical network in any time period; based on the traffic prediction information corresponding to at least one time period and at least one optional path corresponding to each service, the target forwarding path of each service that meets the path planning objectives is determined, and the path planning objectives include: the service traffic carried by any link in the hierarchical network in any time period is less than or equal to the bandwidth capacity upper limit of any link, the load balancing between multiple links connected to the same network node in the hierarchical network, and the transmission quality of the target forwarding path of any service meets the quality requirements of any service.
[0221] For the sake of brevity, other optional implementations will not be described here in detail.
[0222] For another example, the network device 2000 of an embodiment of the present application may correspond to the end-side device in each of the above-mentioned method embodiments. The processor 2001 in the network device 2000 reads the instructions in the memory 2003, so that the network device 2000 shown in Figure 10 can execute all or part of the operations performed by the end-side device.
[0223] Specifically, the processor 2001 is used to receive a traffic collection request sent by a control device in a hierarchical network, where the traffic collection request is used to request sub-traffic prediction information corresponding to at least one time period; obtain sub-traffic prediction information corresponding to at least one time period based on the traffic collection request, where the sub-traffic prediction information of any time period indicates the predicted traffic of each service transmitted in any time period; send sub-traffic prediction information corresponding to at least one time period to the control device, where the sub-traffic prediction information is used by the control device to plan the target forwarding path for each service transmitted through the hierarchical network.
[0224] For the sake of brevity, other optional implementations will not be described here in detail.
[0225] For another example, the network device 2000 of an embodiment of the present application may correspond to the routing device in each of the above-mentioned method embodiments. The processor 2001 in the network device 2000 reads the instructions in the memory 2003, so that the network device 2000 shown in Figure 10 can execute all or part of the operations performed by the routing device.
[0226] Specifically, processor 2001 is used to send a sampling time interval to the overall control device of the hierarchical network. The sampling time interval is determined based on the traffic change cycle. The sampling time interval is used by the control device to determine the global sampling interval, and at least one time period is determined with the global sampling interval as a period. The target forwarding path of each service transmitted by the hierarchical network is planned according to the traffic prediction information corresponding to at least one time period.
[0227] For the sake of brevity, other optional implementations will not be described here in detail.
[0228] The network device 2000 may also correspond to the path planning device shown in FIG9 , and each functional module in the path planning device is implemented using software of the network device 2000. In other words, the functional modules included in the path planning device are generated by the processor 2001 of the network device 2000 after reading the program code 2010 stored in the memory 2003.
[0229] Among them, each step of the path planning method shown in Figure 3 or 5 is completed by the hardware integrated logic circuit or software instructions in the processor of the network device 2000. The steps of the method disclosed in conjunction with the embodiments of the present application can be directly embodied as being executed by a hardware processor, or can be executed by a combination of hardware and software modules in the processor. The software module can be located in a storage medium mature in the art such as random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, registers, etc. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware. To avoid repetition, it will not be described in detail here.
[0230] Referring to FIG. 11 , FIG. 11 shows a schematic diagram of the structure of a network device 2100 provided in another exemplary embodiment of the present application. The network device 2100 shown in FIG. 11 is configured to perform all or part of the operations involved in the path planning method shown in FIG. 3 or 5 . The network device 2100 is, for example, a switch, a router, etc., and can be implemented using a general bus architecture.
[0231] As shown in FIG. 11 , the network device 2100 includes a main control board 2110 and an interface board 2130 .
[0232] The main control board (MCB), also known as the main processing unit (MPU) or route processor card, is used to control and manage various components in network device 2100, including routing calculations, device management, device maintenance, and protocol processing. MCB 2110 includes a central processing unit (CPU) 2111 and memory 2112.
[0233] Interface board 2130 is also known as a line processing unit (LPU), line card, or service board. It provides various service interfaces and implements data packet forwarding. Service interfaces include, but are not limited to, Ethernet interfaces and POS (Packet over SONET / SDH) interfaces. Ethernet interfaces, for example, are Flexible Ethernet Clients (FlexE Clients) interfaces. Interface board 2130 includes a central processing unit (CPU) 2131, a network processor (NPU) 2132, a forwarding table memory 2134, and a physical interface card (PIC) 2133.
[0234] The central processing unit 2131 on the interface board 2130 is used to control and manage the interface board 2130 and communicate with the central processing unit 2111 on the main control board 2110 .
[0235] The network processor 2132 is used to implement message forwarding processing. The network processor 2132 can be in the form of a forwarding chip. The forwarding chip can be a network processor (NP). In some embodiments, the forwarding chip can be implemented using an application-specific integrated circuit (ASIC) or a field programmable gate array (FPGA). Specifically, the network processor 2132 is used to forward received messages based on the forwarding table stored in the forwarding entry memory 2134. If the destination address of the message is the address of the network device 2100, the message is sent to the CPU (such as the central processing unit 2131) for processing. If the destination address of the message is not the address of the network device 2100, the next hop and outgoing interface corresponding to the destination address are searched in the forwarding table based on the destination address, and the message is forwarded to the outgoing interface corresponding to the destination address. The processing of uplink messages may include processing the message inbound interface and forwarding table lookup; the processing of downlink messages may include forwarding table lookup, etc. In some embodiments, the central processing unit may also perform the functions of the forwarding chip, such as implementing software forwarding based on a general-purpose CPU, thereby eliminating the need for a forwarding chip in the interface board.
[0236] Physical interface card 2133 implements physical layer interconnection. Raw traffic enters interface board 2130 through this card, and processed packets are sent out from this physical interface card 2133. Physical interface card 2133, also known as a daughter card, can be installed on interface board 2130. It converts optical and electrical signals into packets, performs a validity check on these packets, and then forwards them to network processor 2132 for processing. In some embodiments, central processing unit 2131 can also perform the functions of network processor 2132, such as implementing software forwarding based on a general-purpose CPU, thus eliminating the need for network processor 2132 in physical interface card 2133.
[0237] Optionally, the network device 2100 includes multiple interface boards. For example, the network device 2100 further includes an interface board 2140. The interface board 2140 includes a central processing unit 2141, a network processor 2142, a forwarding table entry memory 2144, and a physical interface card 2143. The functions and implementation of each component in the interface board 2140 are the same as or similar to those of the interface board 2130 and are not described in detail here.
[0238] Optionally, network device 2100 further includes a switching fabric board 2120. Switching fabric board 2120 may also be referred to as a switch fabric unit (SFU). If network device 2100 includes multiple interface boards, switching fabric board 2120 is used to exchange data between the interface boards. For example, interface board 2130 and interface board 2140 can communicate via switching fabric board 2120.
[0239] The main control board 2110 is coupled to the interface board. For example, the main control board 2110, the interface board 2130, the interface board 2140, and the switching network board 2120 are connected to the system backplane via a system bus to achieve intercommunication. In one possible implementation, an inter-process communication (IPC) channel is established between the main control board 2110 and the interface boards 2130 and 2140, and communication is performed between the main control board 2110 and the interface boards 2130 and 2140 via the IPC channel.
[0240] Logically, network device 2100 includes a control plane and a forwarding plane. The control plane includes a main control board 2110 and a central processing unit (CPU) 2111. The forwarding plane includes various components that perform forwarding, such as a forwarding table entry memory 2134, physical interface cards 2133, and a network processor 2132. The control plane performs routing functions, generates forwarding tables, processes signaling and protocol messages, and configures and maintains the network device's status. The control plane sends the generated forwarding tables to the forwarding plane. On the forwarding plane, the network processor 2132 forwards messages received by the physical interface card 2133 based on the forwarding tables sent by the control plane. The forwarding tables sent by the control plane can be stored in the forwarding table entry memory 2134. In some embodiments, the control plane and forwarding plane can be completely separate and not located on the same network device.
[0241] It's worth noting that there may be one or more main control boards (SPUs), which can include both active and standby SPUs. There may also be one or more interface boards. The higher the network device's data processing capabilities, the more interface boards it provides. Interface boards can also have one or more physical interface cards. There may be no SPUs, one or more SPUs, and multiple SPUs can provide load balancing and redundancy. In a centralized forwarding architecture, network devices may not require SPUs; the interface boards handle service data processing for the entire system. In a distributed forwarding architecture, network devices may have at least one SPU, which enables data exchange between multiple interface boards, providing high-capacity data exchange and processing capabilities. Therefore, network devices with distributed architectures have greater data access and processing capabilities than those with centralized architectures. Alternatively, a network device can consist of a single card, without a switching fabric board (SFB), integrating the functions of the interface board and the main control board. In this case, the central processing unit (CPU) on the interface board and the CPU on the main control board can be combined into a single CPU on this card, performing the combined functions of the two. This type of network device has lower data exchange and processing capabilities (for example, low-end network devices such as switches or routers). The specific architecture used depends on the specific network deployment scenario and is not specified here.
[0242] In a specific embodiment, the network device 2100 corresponds to the path planning device shown in Figure 9. In some embodiments, the transceiver module 901 in the path planning device shown in Figure 9 corresponds to the physical interface card 2133 in the network device 2100, and the processing module 902 corresponds to the central processing unit 2111 or the network processor 2132 in the network device 2100.
[0243] Figure 12 is a schematic diagram of the structure of a server provided in an embodiment of the present application. The server may have relatively large differences due to different configurations or performances, and may include one or more processors 1201 and one or more memories 1202, wherein the one or more memories 1202 store at least one computer program, and the at least one computer program is loaded and executed by the one or more processors 1201 to enable the server to implement the path planning methods provided in the above-mentioned various method embodiments. Of course, the server may also have components such as a wired or wireless network interface, a keyboard, and an input and output interface for input and output. The server may also include other components for implementing device functions, which will not be described in detail here.
[0244] The embodiment of the present application also provides a path planning system, which includes: a control device and a hierarchical network, and the hierarchical network includes an end-side device and a routing device. For example, the control device is the network device 2000 shown in Figure 10, the network device 2100 shown in Figure 11, or the server shown in Figure 12, the end-side device is the network device 2000 shown in Figure 10, the network device 2100 shown in Figure 11, or the server shown in Figure 12, and the routing device is the network device 2000 shown in Figure 10 or the network device 2100 shown in Figure 11. The path planning method performed by the control device, any end-side device in the hierarchical network, and any routing device in the hierarchical network can be found in the relevant description of the embodiment shown in Figure 3 or 5 above, and will not be repeated here.
[0245] It should be understood that the processor described above may be a CPU, or other general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor that supports the Advanced Reduced Instruction Set Machine (ARM) architecture.
[0246] Furthermore, in an optional embodiment, the memory may include a read-only memory and a random access memory, and provide instructions and data to the processor. The memory may also include a non-volatile random access memory. For example, the memory may also store device type information.
[0247] The memory may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. Non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory may be random access memory (RAM), which is used as an external cache memory. By way of example and not limitation, many forms of RAM are available. For example, static RAM (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronized dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
[0248] An embodiment of the present application also provides a computer-readable storage medium, in which at least one instruction is stored. The instruction is loaded and executed by a processor to enable a computer to implement any of the above path planning methods.
[0249] The embodiments of the present application further provide a computer program (product), which, when executed by a computer, can enable a processor or computer to execute the corresponding steps and / or processes in the above method embodiments.
[0250] An embodiment of the present application also provides a chip, including a processor, for calling and executing instructions stored in the memory from a memory, so that a communication device equipped with the chip executes any of the above path planning methods.
[0251] An embodiment of the present application also provides another chip, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected through an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute any of the above path planning methods.
[0252] In the above embodiments, all or part of the embodiments can be implemented by 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 according to the present application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. 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 a wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) method. 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 can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state drive).
[0253] Those skilled in the art will appreciate that the various method steps and modules described in conjunction with the embodiments disclosed herein can be implemented in software, hardware, firmware, or any combination thereof. In order to clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0254] Those skilled in the art will understand that all or part of the steps of implementing the above embodiments may be accomplished by hardware, or may be accomplished by a program instructing the relevant hardware, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.
[0255] When software is used for implementation, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer program instructions. As an example, the method of the embodiment of the present application can be described in the context of a machine executable instruction, and the machine executable instruction is such as included in the program module executed in the device on the real or virtual processor of the target. Generally speaking, a program module includes a routine, a program, a library, an object, a class, a component, a data structure, etc., which performs a specific task or realizes a specific abstract data structure. In various embodiments, the function of the program module can be merged or split between the described program modules. The machine executable instruction for the program module can be executed in a local or distributed device. In a distributed device, the program module can be located in both a local and a remote storage medium.
[0256] The computer program code for realizing the method for the embodiment of the application can be written in one or more programming languages.These computer program codes can be provided to the processor of general-purpose computer, special-purpose computer or other programmable data processing device, so that program code, when being executed by computer or other programmable data processing device, causes the function / operation specified in flow chart and / or block diagram to be implemented.Program code can be executed completely on computer, partly on computer, as independent software package, partly on computer and partly on remote computer or completely on remote computer or server.
[0257] In the context of the embodiments of the present application, computer program code or related data may be carried by any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, and the like.
[0258] Examples of signals may include electrical, optical, radio, acoustic or other forms of propagated signals, such as carrier waves, infrared signals, etc.
[0259] A machine-readable medium may be any tangible medium that contains or stores a program for or in connection with an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination thereof. More detailed examples of machine-readable storage media include an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical storage device, a magnetic storage device, or any suitable combination thereof.
[0260] Those skilled in the art will clearly understand that, for the sake of convenience and brevity of description, the specific working processes of the above-described systems, devices, and modules can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0261] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the modules is merely a logical function division. In actual implementation, there may be other division methods, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or modules, or can be electrical, mechanical or other forms of connection.
[0262] The modules described as separate components may or may not be physically separate, and the components shown as modules may or may not be physical modules, that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the embodiments of the present application.
[0263] In addition, the functional modules in various embodiments of the present application may be integrated into a processing module 902, or each module may exist physically separately, or two or more modules may be integrated into a single module. The above-mentioned integrated modules may be implemented in the form of hardware or software functional modules.
[0264] If the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0265] In this application, the terms "first", "second", etc. are used to distinguish between identical or similar items that have substantially the same effects and functions. It should be understood that there is no logical or temporal dependency between "first", "second", and "nth", nor is there any limitation on quantity or execution order. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of the various examples, a first image may be referred to as a second image, and similarly, a second image may be referred to as a first image. The first image and the second image may both be images, and in some cases, may be separate and different images.
[0266] It should also be understood that in the various embodiments of the present application, the size of the serial number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0267] In this application, the term "at least one" means one or more, and the term "plurality" means two or more. For example, "plurality of second messages" means two or more second messages. The terms "system" and "network" are often used interchangeably herein.
[0268] It should be understood that the terminology used in the description of the various examples herein is for the purpose of describing particular examples only and is not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.
[0269] It should also be understood that the term "and / or" as used herein refers to and encompasses any and all possible combinations of one or more of the listed items. The term "and / or" describes an association between associated objects, indicating that three possible relationships exist. For example, "A and / or B" can represent: A exists alone, A and B exist simultaneously, or B exists alone. Furthermore, the character " / " in this application generally indicates that the associated objects are in an "or" relationship.
[0270] It will also be understood that the term “comprise” (also known as “includes,” “including,” “comprises,” and / or “comprising”) when used in this specification specifies the presence of stated features, integers, steps, operations, elements, and / or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0271] It should also be understood that the terms “if” and “if” may be interpreted to mean “when” or “upon” or “in response to determining” or “in response to detecting.” Similarly, the phrases “if it is determined that ” or “if [stated condition or event] is detected” may be interpreted to mean “upon determining ” or “in response to determining ” or “upon detecting [stated condition or event]” or “in response to detecting [stated condition or event],” depending on the context.
[0272] It should be understood that determining B based on A does not mean determining B based solely on A. B can also be determined based on A and / or other information.
[0273] It should also be understood that references throughout this specification to "one embodiment," "an embodiment," or "one possible implementation" mean that specific features, structures, or characteristics associated with that embodiment or implementation are included in at least one embodiment of the present application. Therefore, the appearance of "in one embodiment," "in an embodiment," or "one possible implementation" throughout this specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0274] The above description is only 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 principles of the present application should be included in the scope of protection of the present application.
Claims
1. A path planning method, characterized in that: The method comprises: Obtaining traffic prediction information corresponding to at least one time period, wherein the traffic prediction information corresponding to any time period of the at least one time period indicates predicted traffic of each service transmitted through the hierarchical network in the any time period; Based on the traffic prediction information corresponding to the at least one time period and the at least one optional path corresponding to each service, the target forwarding path of each service that meets the path planning objectives is determined. The path planning objectives include: the service traffic carried by any link in the hierarchical network in any time period is less than or equal to the bandwidth capacity upper limit of any link, load balancing between multiple links connected to the same network node in the hierarchical network, and the transmission quality of the target forwarding path of any service among the services meets the quality requirements of any service.
2. The method according to claim 1, characterized in that The obtaining of flow prediction information corresponding to at least one time period includes: Sending a traffic collection request to each end-side device in the hierarchical network, wherein the traffic collection request is used to request sub-traffic prediction information corresponding to the at least one time period; Receiving sub-traffic prediction information corresponding to the at least one time period respectively sent by each end-side device based on the traffic collection request, the sub-traffic prediction information for any time period sent by any end-side device includes the predicted traffic of each service transmitted by any end-side device in the any time period, and the predicted traffic of each service transmitted by any end-side device in the any time period is obtained based on the actual traffic of each service recorded by any end-side device; The flow prediction information corresponding to the at least one time period is acquired according to the sub-flow prediction information corresponding to the at least one time period sent by each end-side device.
3. The method according to claim 2, characterized in that Before sending the traffic collection request to each end-side device in the hierarchical network, the method further includes: Receiving sampling time intervals sent by each routing device in the hierarchical network, where the sampling time interval of any routing device is determined based on a traffic change period of the routing device, where the traffic change period indicates a period during which a size of a service traffic initiated by each end-side device changes; A global sampling interval is determined according to the sampling time intervals sent by the respective routing devices, and the at least one time period is determined with the global sampling interval as a period.
4. The method according to any one of claims 1 to 3, characterized in that: The determining, based on the traffic prediction information corresponding to the at least one time period and the at least one optional path corresponding to each service, a target forwarding path for each service that meets a path planning objective includes: For any time period in the at least one time period, determining, based on traffic prediction information for the any time period and at least one optional path corresponding to each service, a candidate forwarding path for each service in the any time period that meets the path planning objective; determining a reference forwarding path for each service based on the candidate forwarding paths for each service in the at least one time period, wherein the reference forwarding path for any of the services is a candidate forwarding path whose path quality satisfies a ranking condition among the candidate forwarding paths for any of the services in the at least one time period, and the path quality of any candidate forwarding path is determined based on at least one of a path length, a number of intermediate nodes, or a path bandwidth capacity of any candidate forwarding path; The target forwarding path of each service is determined according to the reference forwarding path of each service.
5. The method according to claim 4, characterized in that The target forwarding path of each service satisfies the load balancing between multiple links connected to the same network node in the hierarchical network, including: in multiple situations where each service is transmitted through any optional path of at least one optional path corresponding to each service, the total link utilization value achieved by the transmission of each service through the target forwarding path of each service is the smallest, the total link utilization value is the sum of the maximum link utilization values corresponding to at least one time period, the maximum link utilization value corresponding to any time period is the sum of the maximum link utilization values corresponding to multiple network nodes in any time period, the multiple network nodes include each end-side device and each aggregation device in the hierarchical network, and the maximum link utilization value corresponding to any network node is the maximum link utilization value among the links connected to any network node.
6. The method according to claim 5, characterized in that The determining, based on the traffic prediction information of the any time period and the at least one optional path corresponding to each service, a candidate forwarding path for each service in the any time period that meets the path planning goal includes: Obtaining the lower limit value of the maximum link utilization corresponding to each of the aggregation devices based on the traffic prediction information of any time period; For at least one service corresponding to any end-side device in each of the services, determining a candidate forwarding path for the at least one service in the any time period that meets the path planning objective based on traffic prediction information of the at least one service in the any time period, at least one optional path corresponding to the at least one service, and a lower bound value of the maximum link utilization corresponding to each aggregation device; Based on the candidate forwarding path of at least one service corresponding to each of the end-side devices in the any time period, the candidate forwarding path of each service in the any time period is determined.
7. The method according to claim 6, characterized in that The obtaining, based on the traffic prediction information of any time period, the lower bound values of the maximum link utilization corresponding to each convergence device, includes: For a plurality of aggregation links connected to any aggregation device among the aggregation devices, obtaining a plurality of link combinations of the plurality of aggregation links, wherein any link combination includes a first group of aggregation links and a second group of aggregation links, and the first group of aggregation links and the second group of aggregation links of different link combinations are different; For the first group of aggregate links and the second group of aggregate links in any one of the link combinations, determining the maximum flow of each service aggregated to the first group of aggregate links; Obtaining a lower limit value of the maximum link utilization of any aggregation device for any link combination based on the total predicted traffic of each service, the maximum traffic, and the bandwidth capacity upper limit of the second group of aggregation links; Based on the maximum link utilization lower bounds of each of the multiple link combinations by each of the aggregation devices, the maximum link utilization lower bound corresponding to each of the aggregation devices is obtained.
8. The method according to any one of claims 4 to 7, characterized in that: The determining the target forwarding path of each service according to the reference forwarding path of each service includes: Locally adjusting the reference forwarding path of each service to obtain an adjusted reference forwarding path for each service; If the distance between the adjusted reference forwarding path and the path planning target is smaller than the distance between the reference forwarding path and the path planning target before the adjustment, determining the adjusted reference forwarding path as the target forwarding path for each service; or If the distance between the reference forwarding path before adjustment and the path planning target is greater than the distance between the reference forwarding path after adjustment and the path planning target, the reference forwarding path before adjustment is determined as the target forwarding path for each service.
9. The method according to any one of claims 1 to 8, characterized in that: The method further comprises: In the event that there is no optional path for each service that meets the path planning goal in at least one optional path corresponding to each service, the at least one time period is updated, and the traffic prediction information corresponding to the at least one updated time period is re-acquired. Based on the traffic prediction information corresponding to the at least one updated time period and the at least one optional path corresponding to each service, the target forwarding path for each service that meets the path planning goal is determined.
10. The method according to claim 9, characterized in that The updating of the at least one time period includes: Determining an infeasible link when there is no optional path for each service that meets the path planning goal; determining an adjustment parameter based on a maximum link utilization rate and a link congestion threshold of the infeasible link in the at least one time period, and sending the adjustment parameter to the infeasible routing device connected to the infeasible link; Receive the sampling time interval adjusted based on the adjustment parameter and sent by the infeasible routing device, and update the at least one time period based on the adjusted sampling time interval.
11. The method according to any one of claims 1 to 10, characterized in that: After determining the target forwarding path for each service that meets the path planning goal, the method further includes: generating a routing solution for any routing device in the hierarchical network based on the target forwarding path of each service; The routing solution of any routing device is sent to any routing device.
12. The method according to any one of claims 1 to 11, characterized in that: After determining the target forwarding path for each service that meets the path planning goal, the method further includes: Receiving congestion information sent by any end-side device in the hierarchical network, wherein the congestion message indicates that congestion occurs in service traffic sent by any end-side device; Sending a traffic screening request to the any end-side device, where the traffic screening request is used by the any end-side device to determine a deviation service where the difference between the actual traffic and the predicted traffic is greater than a difference threshold; receiving the actual traffic of the deviation service sent by any end-side device; Based on the actual traffic of the deviation service, the predicted traffic of the non-deviation service in the current time period, the target forwarding path of the non-deviation service and at least one optional path of the deviation service, the target forwarding path of the deviation service that meets the path planning target is determined.
13. A path planning method, characterized in that: The method comprises: Receiving a traffic collection request sent by a control device in a hierarchical network, wherein the traffic collection request is used to request sub-traffic prediction information corresponding to at least one time period; Obtaining, based on the traffic collection request, sub-traffic prediction information corresponding to each of the at least one time period, wherein the sub-traffic prediction information of any time period in the at least one time period indicates a predicted traffic volume of each service transmitted in the any time period; Sub-traffic prediction information corresponding to the at least one time period is sent to the control device, where the sub-traffic prediction information is used by the control device to plan a target forwarding path for each service transmitted through the hierarchical network.
14. The method according to claim 13, characterized in that The acquiring, based on the traffic collection request, the sub-traffic prediction information corresponding to the at least one time period, includes: Based on the traffic collection request, sub-traffic prediction information corresponding to the at least one time period is obtained according to the recorded actual traffic of each service.
15. The method according to claim 13 or 14, characterized in that The method further comprises: receiving a signaling data packet fed back by any routing device in the hierarchical network, wherein the signaling data packet carries a congestion indicator; sending congestion information to the control device based on the congestion identifier, wherein the congestion message indicates that congestion occurs in the service traffic; receiving a traffic screening request sent by the control device; Determine, based on the traffic screening request, a deviation service where the difference between the actual traffic and the predicted traffic is greater than a difference threshold; The actual traffic of the deviation service is sent to the control device, and the actual traffic of the deviation service is used by the control device to plan a target forwarding path for the deviation service.
16. A path planning method, characterized in that: The method comprises: A sampling time interval is sent to a control device in a hierarchical network, where the sampling time interval is determined based on a traffic change period, and the traffic change period indicates a period during which the size of the service traffic initiated by each end-side device in the hierarchical network changes. The sampling time interval is used by the control device to determine a global sampling interval, and at least one time period is determined with the global sampling interval as a period. The target forwarding path for each service transmitted through the hierarchical network is planned according to the traffic prediction information corresponding to the at least one time period.
17. The method according to claim 16, characterized in that After sending the sampling time interval to the control device, the method further includes: receiving adjustment parameters sent by the control device; Adjusting the sampling time interval based on the adjustment parameter to obtain an adjusted sampling time interval; The adjusted sampling time interval is sent to the control device, where the adjusted sampling time interval is used by the control device to update the at least one time period.
18. The method according to claim 17, characterized in that The adjusting the sampling time interval based on the adjustment parameter includes: The sampling time interval is adjusted based on the adjustment parameter and the flow rate change rate.
19. The method according to any one of claims 16 to 18, characterized in that: The method further comprises: In the event of congestion in any transmitted service traffic, a signaling data packet is fed back to the end-side device that initiated any service traffic. The signaling data packet carries a congestion identifier, and the congestion identifier is used by the end-side device to send congestion information to the control device. The congestion message is used by the control device to plan the target forwarding path for the deviation service. The deviation service is a service for which the difference between the actual traffic and the predicted traffic is greater than the difference threshold.
20. The method according to any one of claims 16 to 19, characterized in that: The method further comprises: receiving a routing solution sent by the control device, where the routing solution is generated based on a target forwarding path of each service; The service traffic of each service is transmitted according to the routing solution.
21. The method according to any one of claims 1 to 20, characterized in that: The hierarchical network is a media streaming network, and the service is a media service.
22. A path planning device, characterized in that: The device comprises: A transceiver module for performing the operations related to receiving and / or sending performed in the method according to any one of claims 1-12 and 21, and a processing module for performing other operations other than the operations related to receiving and / or sending performed in the method according to any one of claims 1-12 and 21; or A transceiver module for performing the operations related to receiving and / or sending performed in the method according to any one of claims 13-15 and 21, and a processing module for performing other operations other than the operations related to receiving and / or sending performed in the method according to any one of claims 13-15 and 21; or A transceiver module is used to perform the operations related to receiving and / or sending performed in the method described in any one of claims 16-21, and a processing module is used to perform other operations besides the operations related to receiving and / or sending performed in the method described in any one of claims 16-21.
23. A network device, characterized in that: The network device includes: a processor, the processor is coupled to a memory, and the memory stores at least one program instruction or code, and the at least one program instruction or code is loaded and executed by the processor to enable the network device to implement the path planning method described in any one of claims 1-12 and 21, or to enable the network device to implement the path planning method described in any one of claims 13-15 and 21, or to enable the network device to implement the path planning method described in any one of claims 16-21.
24. A path planning system, characterized in that: The path planning system includes a control device and a hierarchical network; The control device is used to execute the path planning method described in any one of claims 1-12 and 21, any end-side device in the hierarchical network is used to execute the method described in any one of claims 13-15 and 21, and any routing device in the hierarchical network is used to execute the method described in any one of claims 16-21.
25. A computer-readable storage medium, characterized in that The computer storage medium stores at least one instruction, and the at least one instruction is loaded and executed by the processor to enable the computer to implement the path planning method according to any one of claims 1 to 21.
26. A computer program product, characterized in that The computer program product includes: computer program code, which is loaded and executed by a computer to enable the computer to implement the path planning method according to any one of claims 1 to 21.
Citation Information
Patent Citations
Differentiated QoS based multi-service hierarchical topology routing method and system
CN108173766A
Link congestion fault prediction and network autonomous management and control method based on machine learning
CN113114582A
Routing device and method
JP2000201182A
Routing path selection based on dynamical metric values
US20170078186A1
Cited By
Satellite-based routing decision making method and device and storage medium
CN121690355A
Satellite-based routing decision making method and apparatus, and storage medium
CN121690355B
Intelligent multi-service joint routing planning method for electric power communication scheduling
CN122179363A