Load sharing method and related device

By obtaining the remaining bandwidth and path information of multiple paths and performing data flow path switching, the problem of poor load sharing effect in the prior art is solved, and more efficient network bandwidth utilization and load balancing are achieved.

CN119603233APending Publication Date: 2025-03-11HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311163218.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-09-08
Publication Date
2025-03-11

AI Technical Summary

Technical Problem

The existing load sharing processing algorithms are difficult to effectively handle the data volume differences between data streams in big data transmission scenarios, resulting in poor load sharing effect.

Method used

By obtaining the remaining bandwidth, link overlap information and load change trends of multiple paths with the same starting point and end point, path switching of data streams is performed to ensure that data streams are transmitted on paths with better load sharing effects.

Benefits of technology

It improves the maximum utilization rate of network bandwidth resources, effectively improves the load sharing effect, and avoids load imbalance on the path.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119603233A_ABST
    Figure CN119603233A_ABST
Patent Text Reader

Abstract

The invention discloses a load sharing method, relates to the technical field of communication, and can effectively improve the load sharing effect of multiple paths. According to the embodiment of the invention, the residual bandwidth of the plurality of paths with the same starting point and the same ending point and the link overlapping information and / or the load change trend of the plurality of paths are / is used as the reference information of the load sharing processing, so that the path switching of the data flow in the plurality of paths can be realized; therefore, the data flow on the path with the smaller residual bandwidth can be switched to other paths which have no link overlapping with the original path, have no load change trend and have better residual bandwidth as far as possible, the maximum utilization of network bandwidth resources is ensured, and the load sharing effect is effectively improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a load sharing method and related devices. Background Art

[0002] With the development of science and technology and the advent of the big data era, the amount of data that needs to be transmitted on the network has exploded. For example, the shooting data of a film and television base needs to be transmitted to a post-production center for storage and processing; for another example, scientific research data such as genetic data, meteorological data or astronomical data needs to be transmitted to a storage center or computing center in a different place for processing.

[0003] In the scenario of large data transmission, the data flow is often large in volume and has certain timeliness requirements. Therefore, in order to ensure the efficiency of data transmission, load sharing is often performed during the data transmission process to ensure load sharing between different paths in the network and improve the utilization of network bandwidth resources.

[0004] The current load sharing processing algorithm is usually a hash algorithm based on the five-tuple information, that is, a path is selected for the data flow based on the five-tuple information of the data flow. Therefore, data flows with different five-tuple information are often assigned to different paths for transmission, thereby ensuring that the data flows can be distributed to different paths as evenly as possible. However, in some cases (such as when the data volume between different data flows is very different), the current load sharing processing algorithm may not be able to achieve an effective load sharing effect. Summary of the invention

[0005] The present application provides a load sharing method, which can ensure the maximum utilization of network bandwidth resources and effectively improve the load sharing effect.

[0006] In a first aspect, the present application provides a load sharing method, which is applied to a first network device. The method includes: the first network device obtains the remaining bandwidth of multiple paths, and the multiple paths have the same starting point and the same end point. Since the multiple paths have the same starting point and the same end point, for a data flow, the data flow can reach the destination address specified by the data flow when it is transmitted on any one of the multiple paths.

[0007] Then, the first network device receives the path information sent by the second network device, and the path information includes link overlap information between multiple paths, and / or load change trends of multiple paths. Since each path is composed of one or more links, different paths may have the same links, and the link overlap information is used to indicate overlapping links between different paths. The load change trend of multiple paths can refer to the load change trend of each path in the multiple paths at a future time, that is, how the load of each path at a future time will change compared to the load at the current time.

[0008] Finally, the first network device performs load sharing processing on the data streams in the multiple paths according to the remaining bandwidth and path information of the multiple paths, and the load sharing processing is used to switch the bearer path of the data stream. That is, the bearer path of the data stream in the multiple paths is switched, so as to ensure that the data volume of the data streams carried on the multiple paths is as balanced as possible. Among them, in the process of switching the bearer path of any data stream, other paths are actually selected from the multiple paths to carry the data stream, that is, the bearer path before switching and the bearer path after switching corresponding to the data stream belong to multiple paths.

[0009] In this scheme, by obtaining the remaining bandwidth of multiple paths with the same starting point and the same end point, as well as the link overlap information and / or load change trend of the multiple paths as reference information for load sharing processing, path switching of data streams in multiple paths can be achieved, so that the data streams on the paths with smaller remaining bandwidth can be switched to other paths with no link overlap with the original path, better load change trend and remaining bandwidth as much as possible, thereby ensuring the maximum utilization of network bandwidth resources and effectively improving the load sharing effect.

[0010] In one possible implementation, the first network device performs load sharing processing on data streams in multiple paths according to the remaining bandwidth and path information of the multiple paths, including: the first network device determines a first data stream among the multiple data streams carried by the multiple paths and determines at least one alternative path among the multiple paths according to the remaining bandwidth of the multiple paths, the first data stream being a data stream that requires switching the carrying path; the first network device then switches the first data stream from the original path to a target path in at least one alternative path; after the carrying path switching of the first data stream is implemented, the load on the original path is reduced, while the load on the target path is increased, thereby improving the load sharing effect between the multiple paths.

[0011] Among them, in at least one alternative path, the switching priority of the alternative path that has no overlapping links with the original path is higher than the alternative path that has overlapping links with the original path, and the switching priority of the alternative path whose load change trend is a decrease in load is higher than the alternative path whose load change trend is an increase in load.

[0012] In short, when selecting the switching path for the first data stream, try to select a path that has no overlapping links with the original path of the first data stream and a path whose load change trend is decreasing, so as to ensure the load sharing effect after the first data stream is switched.

[0013] In a possible implementation, the transmission time of the first data flow is not greater than the first threshold, for example, the transmission time of the first data flow is not greater than 5 seconds or 30 seconds, that is, the first data flow is a data flow newly flowing into the data transmission network.

[0014] In this solution, by switching the path of the data flow newly flowing into the data transmission network without switching the data flow that has flowed into the data transmission network for a long time, the impact of adjusting the path of the data flow on the data transmission network can be avoided as much as possible, thereby ensuring the operational stability of the data transmission network.

[0015] In a possible implementation, the first data flow is a data flow with the largest data volume on a path with the smallest remaining bandwidth among multiple paths. That is, the original path where the first data flow is located is the path with the smallest remaining bandwidth among multiple paths, and the first data flow is the data flow with the largest data volume in the original path.

[0016] In this solution, by giving priority to switching the path of the data flow with the largest data volume on the path with the smallest remaining bandwidth, the load of the path with the smallest remaining bandwidth can be effectively alleviated, and then the load between this path and other paths can be balanced, thereby quickly improving the load sharing effect of multiple paths.

[0017] In a possible implementation manner, the load variation trends of the multiple paths include future load states of the multiple paths.

[0018] Since the first network device can obtain the remaining bandwidth of each path, the first network device can actually determine the load status of each path at the current time. In this way, by combining the future load status of multiple paths sent by the second network device and the current load status of multiple paths known by the first network device, the first network device can determine the load change trend of multiple paths.

[0019] In a possible implementation, the load change trends of the multiple paths include state transition information of the multiple paths, and the state transition information is used to indicate the transition probability of the paths between multiple load states. That is, for any path, the state transition information of the path can indicate the probability of the path transferring from any load state to another load state.

[0020] In this scheme, by sending the transition probability of the path between multiple load states to the first network device, the first network device can determine the specific load change trend of each path, and thus avoid switching the data flow to the path where the load is likely to increase as much as possible, thereby ensuring the load sharing effect after the data flow switches the path.

[0021] In a possible implementation, the first network device determines the total load of the multiple paths and the load sharing degree of the multiple paths according to the remaining bandwidth of the multiple paths. The load sharing degree of the multiple paths is used to indicate the load distribution on the multiple paths. The higher the load sharing degree of the multiple paths, the more balanced the loads distributed on the multiple paths; the lower the load sharing degree of the multiple paths, the more unbalanced the loads distributed on the multiple paths.

[0022] Then, in response to the total load and the load sharing degree satisfying the preset conditions, the first network device determines to trigger the load sharing process for the data flows in the multiple paths. The preset conditions are, for example, that the total load of the multiple paths is greater than a certain threshold value, and the load sharing degree is lower than a certain degree value. That is, only when the total load of the multiple paths is large and the loads between different paths are not balanced enough, will the load sharing process for the data flows in the multiple paths be triggered.

[0023] In this solution, by setting preset conditions related to the total load and the degree of load sharing, the network device will trigger the execution of load sharing processing only when specific conditions are met, thereby reducing the computing overhead caused by executing invalid load sharing processing.

[0024] In a possible implementation, when congestion occurs on multiple paths, the first network device determines a second data flow among the multiple data flows based on the remaining transmission amounts of the multiple data flows carried by the multiple paths and limits the transmission rate of the second data flow.

[0025] In this solution, when multiple paths reach the transmission bottleneck, since load sharing of data flows in multiple paths can no longer improve the utilization rate of overall network resources, some data flows in multiple paths are speed-limited to ensure that most data flows can be transmitted within the expected transmission time.

[0026] In one possible implementation, the second data stream is the data stream with the largest remaining transmission amount among multiple data streams; or, the second data stream is the data stream with the largest remaining time ratio among multiple data streams, and the remaining time ratio is the ratio between the estimated remaining transmission time of the data stream and the estimated total transmission time, and the estimated remaining transmission time is related to the remaining transmission amount of the data stream.

[0027] Specifically, the larger the remaining transmission volume of a data stream or the larger the remaining time ratio, the longer the remaining transmission time of the data stream. Therefore, after limiting the transmission rate of these data streams, the transmission rate of these data streams can be increased again according to the actual network load during the subsequent long-term transmission process, thereby ensuring that the overall transmission time of these data streams can meet expectations. In addition, limiting the remaining transmission volume or the remaining time ratio of data streams can ensure that the data streams with smaller remaining transmission volume are transmitted as soon as possible, thereby freeing up more bandwidth and shortening the time when the data stream transmission rate is affected.

[0028] In a possible implementation, the first network device is an edge device of a network where multiple paths are located, and each data flow on the multiple paths flows through the first network device. The second network device is a controller that can collect and obtain path information in the entire network (for example, collect link information reported by each network device to obtain path information of the entire network).

[0029] The second aspect of the present application provides a load sharing method, including: obtaining the transmission time of multiple data streams carried in multiple paths, the multiple paths having the same starting point and the same end point; performing load sharing processing on the target data streams in the multiple paths, the target data stream being a data stream whose transmission time is not greater than a first threshold, and the load sharing processing is used to switch the carrying path of the first data stream. The target data stream may include one or more data streams in the multiple paths.

[0030] In this solution, during the load sharing process, only the data streams with shorter transmission time are switched paths, avoiding adjustments to the data streams with longer transmission time. This can improve the network load sharing effect while minimizing the impact of data stream switching paths on the network, thereby ensuring network stability.

[0031] A third aspect of the present application provides a load sharing device, which is deployed on a first network device, and includes: an acquisition module, used to obtain the remaining bandwidth of multiple paths, and the multiple paths have the same starting point and the same end point; a receiving module, used to receive path information sent by a second network device, the path information includes link overlap information between the multiple paths, and / or load change trends of the multiple paths; a processing module, used to perform load sharing processing on data flows in the multiple paths according to the remaining bandwidth of the multiple paths and the path information, and the load sharing processing is used to switch the bearer path of the data flow.

[0032] In one possible implementation, the processing module is further used to: determine a first data stream among multiple data streams carried by multiple paths and determine at least one alternative path among multiple paths according to the remaining bandwidth of the multiple paths, the first data stream being a data stream that needs to switch the carrying path; switch the first data stream from the original path to a target path in at least one alternative path; wherein, in the at least one alternative path, a switching priority of an alternative path that has no overlapping links with the original path is higher than an alternative path that has overlapping links with the original path, and a switching priority of an alternative path whose load change trend is a decreasing load is higher than an alternative path whose load change trend is an increasing load.

[0033] In a possible implementation manner, the transmission time of the first data stream is not greater than a first threshold.

[0034] In a possible implementation manner, the first data flow is a data flow with the largest data volume on a path with the smallest remaining bandwidth among the multiple paths.

[0035] In a possible implementation manner, the load variation trends of the multiple paths include future load states of the multiple paths.

[0036] In a possible implementation, the load variation trends of the multiple paths include state transition information of the multiple paths, where the state transition information is used to indicate transition probabilities of the paths between multiple load states.

[0037] In one possible implementation, the processing module is further used to: determine the total load of the multiple paths and the load sharing degree of the multiple paths based on the remaining bandwidth of the multiple paths; in response to the total load and the load sharing degree meeting preset conditions, determine to trigger load sharing processing for the data streams in the multiple paths.

[0038] In a possible implementation, the processing module is further used to: when congestion occurs in multiple paths, determine a second data flow among the multiple data flows based on the remaining transmission capacity of the multiple data flows carried by the multiple paths; and limit the transmission rate of the second data flow.

[0039] In a possible implementation, the second data stream is a data stream having the largest remaining transmission amount among the multiple data streams;

[0040] Or, the second data stream is the data stream with the largest remaining time ratio among multiple data streams, the remaining time ratio is the ratio between the estimated remaining transmission time of the data stream and the estimated total transmission time, and the estimated remaining transmission time is related to the remaining transmission amount of the data stream.

[0041] In a possible implementation, the first network device is an edge device of a network where the multiple paths are located, and the second network device is a controller.

[0042] The fourth aspect of the present application provides a load sharing device, including: an acquisition module, used to obtain the transmission time of multiple data streams carried in multiple paths, and the multiple paths have the same starting point and the same end point; a processing module, used to perform load sharing processing on the target data streams in the multiple paths, the target data stream is a data stream whose transmission time is not greater than a first threshold, and the load sharing processing is used to switch the carrying path of the first data stream.

[0043] In a fifth aspect, the present application provides a network device, including a processor and a memory. The memory is used to store program codes, and the processor is used to call the program codes in the memory so that the network device executes a method in any one of the implementation modes of the first aspect or the second aspect.

[0044] A sixth aspect of the present application provides a computer-readable storage medium storing instructions, which, when executed on a computer, enables the computer to execute a method as in any one of the embodiments of the first aspect.

[0045] A seventh aspect of the present application provides a computer program product, which, when executed on a computer, enables the computer to execute a method as in any one of the embodiments of the first aspect.

[0046] In an eighth aspect, the present application provides a chip, comprising one or more processors. Some or all of the processors are used to read and execute computer instructions stored in a memory to execute the method in any possible implementation of any of the above aspects. Optionally, the chip also includes a memory. Optionally, the chip also includes a communication interface, and the processor is connected to the communication interface. The communication interface is used to receive data and / or information to be processed, the processor obtains data and / or information from the communication interface, processes the data and / or information, and outputs the processing results through the communication interface. Optionally, the communication interface is an input / output interface or a bus interface. The method provided in the present application is implemented by a chip, or by multiple chips in collaboration.

[0047] The solutions provided in the second to eighth aspects are used to implement or cooperate with the method provided in the first aspect, and therefore can achieve the same or corresponding beneficial effects as the first aspect, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0048] Figure 1 A schematic diagram of a load sharing effect of a related technology provided in an embodiment of the present application;

[0049] Figure 2 A schematic diagram of an application architecture of a load sharing method provided in an embodiment of the present application;

[0050] Figure 3 A flow chart of a load sharing method provided in an embodiment of the present application;

[0051] Figure 4 A schematic diagram of a path structure of a data transmission network provided in an embodiment of the present application;

[0052] Figure 5A A schematic diagram of not considering link overlap information when performing load sharing provided by an embodiment of the present application;

[0053] Figure 5B A schematic diagram of performing load sharing in combination with link overlap information provided in an embodiment of the present application;

[0054] Fig. 6A A schematic diagram of an embodiment of the present application that does not consider the load change trend when performing load sharing;

[0055] Figure 6B A schematic diagram of performing load sharing in combination with a load change trend provided in an embodiment of the present application;

[0056] Fig. 7A A schematic diagram of an embodiment of the present application providing a method of performing load sharing without considering link overlap information and load change trend;

[0057] Figure 7B A schematic diagram of performing load sharing by combining link overlap information and load change trend provided in an embodiment of the present application;

[0058] Figure 8 A schematic diagram of an implementation of an access assessment provided in an embodiment of the present application;

[0059] Fig. 9 A schematic diagram of interactions during the implementation of an access assessment provided in an embodiment of the present application;

[0060] Fig.10 A schematic diagram of an execution of elastic transmission acceleration provided in an embodiment of the present application;

[0061] Fig.11 An interactive schematic diagram of an execution process of elastic transmission acceleration provided in an embodiment of the present application;

[0062] Fig.12 A schematic diagram of a plurality of head node devices with different tuning strategies provided in an embodiment of the present application;

[0063] Fig.13 A schematic diagram of the structure of a load sharing device provided in an embodiment of the present application;

[0064] Fig.14 A schematic diagram of the structure of a network device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0065] The following describes the embodiments of the present application in conjunction with the accompanying drawings. Obviously, the described embodiments are only embodiments of a part of the present application, rather than all embodiments. It is known to those skilled in the art that with the development of technology and the emergence of new scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.

[0066] The terms "first", "second" and the like in the specification and claims of this application and the above drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.

[0067] The word “exemplary” is used exclusively herein to mean “serving as an example, example, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.

[0068] At present, the HASH algorithm based on quintuple information in the related technology can effectively realize data load sharing in most scenarios, that is, to ensure that different paths can relatively evenly carry data flows with similar data volumes. However, in some scenarios, the HASH algorithm in the related technology still has certain limitations and it is difficult to effectively ensure the load sharing effect on different paths.

[0069] For example, see Figure 1 , Figure 1 A schematic diagram of a load sharing effect of a related technology provided in an embodiment of the present application. Figure 1 As shown, since the HASH algorithm of the related art determines the carrying path of the data flow based on the five-tuple information of the data flow (i.e., the source Internet Protocol (IP) address, source port, destination IP address, destination port and transport layer protocol), data flows with different five-tuple information are often allocated to different paths, thereby ensuring that different paths can carry data flows of similar numbers as much as possible. In this way, when the data volume of multiple data flows is relatively balanced, there is no obvious size difference, and the number of data flows is relatively large, sharing of data flows of similar numbers on different paths is roughly equivalent to sharing of bandwidth in proportion.

[0070] However, in some scenarios, the difference in data volume between different data flows may be relatively large. For example, when there is a need for data backup, data synchronization, or large data file transmission between data centers, elephant flows (i.e., data flows with large data volume and long duration) may appear between data centers. In this way, the following two problems may arise when implementing load sharing processing based on the HSAH algorithm in the relevant technology: 1. The load sharing of elephant flows is uneven, that is, there are elephant flows on some paths, but not on some paths, resulting in congestion on some paths and light load on other paths; 2. The traffic on the path may change in real time (for example, the data volume of some data flows gradually decreases over time). The use of traditional HASH algorithms to implement load sharing processing is likely to aggravate load imbalance, resulting in insufficient bandwidth utilization on some paths.

[0071] Based on this, an embodiment of the present application provides a load sharing method, which can realize path switching of data streams in multiple paths by obtaining the remaining bandwidth of multiple paths with the same starting point and the same end point, as well as the link overlap information and / or load change trend of multiple paths as reference information for load sharing processing, so that the data streams on the paths with smaller remaining bandwidth can be switched to other paths with no link overlap with the original path, better load change trend and remaining bandwidth as much as possible, thereby ensuring the maximum utilization of network bandwidth resources and effectively improving the load sharing effect.

[0072] See also Figure 2 , Figure 2 A schematic diagram of an application architecture of a load sharing method provided in an embodiment of the present application. Figure 2 As shown, the load sharing method provided in this embodiment can be applied to network devices in a data transmission network, especially to edge devices in the data transmission network. For example, Figure 2 The data transmission network shown includes network devices 1 to 5, where network devices 1 and 5 are edge devices in the data transmission network. The edge device is a device that provides an entry point in the data transmission network, that is, the data flow enters the data transmission network from the edge device. In addition, the edge device can select a suitable bearer path for the data flow entering the data transmission network to transmit, and switch the bearer path for the data flow in transmission. For example, in Figure 2 In the example, network device 1 and network device 5 can select one of paths 1 to 3 for transmission for a data flow entering the data transmission network.

[0073] In addition, there may be one or more edge devices in the data transmission network, and different edge devices may be deployed in different geographical locations, thereby providing different access points for data flows.

[0074] In this embodiment, the data transmission network may be, for example, a backbone network, a metropolitan area network, a cloud dedicated line network, and a data center interconnect (DCI) network, and the edge device may be a device located at the edge of the above-mentioned backbone network or metropolitan area network, such as a head node device in the backbone network, a provider edge device (provider edge, PE), a customer premises equipment (Customer Premise Equipment, CPE), and an egress device or ingress device of a data center. In addition, the transmission protocol adopted by the data transmission network may be, for example, segment routing (Segment Routing IPv6, SRv6) based on the IPv6 forwarding plane and a segment routing policy (Segment Routing Policy, SRPolicy). In general, this embodiment does not limit the type of data transmission network and the transmission protocol used.

[0075] The above describes the application scenarios of the load sharing method provided in the embodiment of the present application. The following describes in detail the execution process of the load sharing method provided in the embodiment of the present application. Figure 3 , Figure 3 A flow chart of a load sharing method provided in an embodiment of the present application. Figure 3 As shown, the load sharing method provided in the embodiment of the present application includes the following steps 301-303.

[0076] Step 301: A first network device obtains remaining bandwidths of multiple paths, where the multiple paths have the same starting point and the same end point.

[0077] In this embodiment, the first network device is, for example, an edge device of a network where multiple paths are located, and can provide an access point for data flow to access the multiple paths. Moreover, for a data flow flowing through any one of the multiple paths, the data flow can flow into the path from the first network device, or flow out of the path from the first network device. That is, for a data flow flowing through any one of the multiple paths, the first network device is the starting point or end point on the path through which the data flow flows.

[0078] Since multiple paths have the same starting point and the same end point, for a data flow, the data flow can reach the destination address specified by the data flow when it is transmitted on any of the multiple paths. In other words, switching the carrying path of a data flow between multiple paths will not affect the normal transmission of the data flow.

[0079] In addition, during the normal data transmission process of multiple paths, the first network device can obtain the remaining bandwidth of each path in the multiple paths. Specifically, since any data stream on each path in the above-mentioned multiple paths flows into or out of the path from the first network device, the first network device can collect information about the data stream flowing into each path, including the duration of the data stream and the data volume of the data stream. Moreover, the total bandwidth of each path on the multiple paths is fixed, so when the first network device knows the data volume of the data stream flowing into each path, the first network device can determine the remaining bandwidth of each path, that is, how much data volume each path can continue to accommodate. In addition, the first network device can also obtain the remaining bandwidth of multiple paths in other ways, such as receiving the remaining bandwidth of multiple paths sent by other network devices, and this embodiment does not specifically limit this.

[0080] Step 302: The first network device receives path information sent by the second network device, where the path information includes link overlap information between multiple paths and / or load change trends of multiple paths.

[0081] In this embodiment, the second network device is, for example, a controller in the network where the above-mentioned multiple paths are located, and can collect the path information in the entire network (for example, collect the link information reported by each network device, and then obtain the path information of the entire network). In this way, the second network device can periodically send the path information to the first network device, or send the path information to the first network device when the path information changes.

[0082] The path information is the related information of the above multiple paths, which can indicate the link overlap between multiple paths and / or the load change of each path itself. Specifically, in multiple paths, each path can be composed of one or more links. A link refers to a point-to-point physical line between two network devices. Therefore, when a path includes two network devices, it means that the path includes only one link; when a path includes more than two network devices, it means that the path includes multiple links. For example, Figure 2 As shown, path 1 includes two links, namely, a link between network device 1 and network device 2 and a link between network device 2 and network device 5.

[0083] Since each path is composed of one or more links, different paths may have the same links, resulting in link overlap on multiple paths. Figure 4 , Figure 4 A schematic diagram of a data transmission network path structure provided in an embodiment of the present application. Figure 4 As shown, Figure 4The data transmission network in includes three paths, namely path 1, path 2 and path 3. Among them, path 1 includes the link between network device 1 and network device 2, the link between network device 2 and network device 3, and the link between network device 3 and network device 5; path 2 includes the link between network device 1 and network device 3, and the link between network device 3 and network device 5; path 3 includes the link between network device 1 and network device 4, and the link between network device 4 and network device 5. In this way, Figure 4 The link overlap situation of the three paths shown in FIG. 1 is that path 1 and path 2 have overlapping links, and the overlapping link is the link between network device 3 and network device 5 .

[0084] For example, Figure 4 Taking the multiple paths shown in FIG. 1 as an example, when the first network device receives link overlap information between multiple paths from the second network device, the link overlap information may specifically be: path 1 and path 2 have overlapping links, and the overlapping link is link X (where link X is used to identify the link between network device 3 and network device 5). Alternatively, the link overlap information may be as shown in Table 1 below.

[0085] Table 1

[0086] Path identification 01 02 03 01 1 02 1 1 03 0 0 1

[0087] In Table 1, any two paths correspond to a value, and the value is 0 or 1 to indicate whether there are overlapping links between the two paths. When the value is 0, it means that there are no overlapping links between the two paths; when the value is 1, it means that there are overlapping links between the two paths. As shown in Table 1, the value corresponding to path 1 and path 2 is 1, which means that there are overlapping links between path 1 and path 2.

[0088] It should be noted that if one or more of the above-mentioned multiple paths have overlapping links with other paths other than the above-mentioned multiple paths (i.e., multiple paths not handled by the first network device), the path information sent by the second network device may also include link overlapping information between the one or more paths and other paths. In other words, the path information sent by the second network device includes both link overlapping information between different paths in the multiple paths that the first network device is responsible for and link overlapping information between one or more paths in the multiple paths that the first network device is responsible for and other paths, thereby ensuring that the first network device can obtain the real link status of each path in the entire network.

[0089] In addition, the load change trend of multiple paths may refer to the load change trend of each path in the multiple paths at a future time, that is, how the load of each path at a future time will change compared to the load at the current time. For example, if the load change trend of a path is a decrease in load, it means that the load of the path will decrease in the future; if the load change trend of a path is an increase in load, it means that the load of the path will increase in the future.

[0090] There are multiple implementation methods for the second network device to send the load change trends of multiple paths to the first network device.

[0091] In a possible implementation, the second network device sends the identifier of each path and the load change trend corresponding to the identifier of each path to the first network device, as shown in Table 2.

[0092] Table 2

[0093] Path identification Load change trend 01 Get bigger 02 Get bigger 03 Smaller

[0094] In another possible implementation, the second network device sends the future load states of multiple paths to the first network device. Since the first network device can obtain the remaining bandwidth of each path, the first network device can actually determine the load state of each path at the current time. In this way, by combining the future load states of multiple paths sent by the second network device and the current load states of multiple paths known by the first network device, the first network device can determine the load change trend of multiple paths.

[0095] In addition, in order to facilitate the representation of the load state of the path, in this embodiment, multiple range intervals can be set for the load of the path, and each range interval corresponds to a load state. When the load of the path is within a certain range interval, it can be determined that the load state of the path is the load state corresponding to the range interval. For example, when the total bandwidth of the path is 1000 megabytes (Mbyte, MB), assuming that the unit of the load is MB, when the load of the path is within the range interval [0,300), the load state of the path is light load; when the load of the path is within the range interval [300,700), the load state of the path is medium load; when the load of the path is within the range interval [700,1000], the load state of the path is heavy load.

[0096] It should be noted that, since different paths may have different bandwidths, the range intervals set for the loads of paths with different bandwidths may also be different. For example, assuming that the total bandwidth of the path is 5000MB, when the load of the path is in the range [0,1500), the load state of the path is light load; when the load of the path is in the range [1500,3500), the load state of the path is medium load; when the load of the path is in the range [3500,5000], the load state of the path is heavy load.

[0097] Alternatively, in order to uniformly represent the range interval corresponding to the load of each path, multiple bandwidth utilization range intervals may be set, so as to determine the load state actually corresponding to the path based on the bandwidth utilization of each path (i.e., the ratio of the actual load of the path to the total bandwidth). For example, when the bandwidth utilization of the path is in the range interval [0, 30%), the load state of the path is light load; when the load of the path is in the range interval [30%, 70%), the load state of the path is medium load; when the load of the path is in the range interval [70%, 100%), the load state of the path is heavy load.

[0098] For example, Figure 4 Taking the multiple paths shown in FIG. 3 as an example, the load change trend of the multiple paths sent by the second network device to the first network device is specifically shown in Table 3.

[0099] Table 3

[0100] Path identification Future load status 01 Overload 02 Overload 03 Light load

[0101] When the current load status of path 1, path 2 and path 3 is medium load, combined with the future load status shown in Table 3, the first network device can determine that the load change trends of path 1, path 2 and path 3 are increasing, increasing and decreasing respectively.

[0102] In another possible implementation, the second network device sends state transition information of multiple paths to the first network device, where the state transition information is used to indicate the transition probability of the path between multiple load states. That is, for any path, the state transition information of the path can indicate the probability of the path transitioning from any load state to another load state. In this way, the first network device can determine the load state with the highest transition probability as the load change trend of the path based on the current load state of the path and the state transition information of the path. For example, Figure 4 Taking the path 1 shown in the figure as an example, the state transition information of the path 1 is specifically shown in Table 4.

[0103] Table 4

[0104] State transition probability Light load Medium Load Overload Light load 0.7 0.2 0.1 Medium Load 0.3 0.5 0.2 Overload 0.1 0.3 0.6

[0105] As shown in Table 4, when path 1 is currently in a light load state, there is a 0.7 probability that it will continue to remain in a light load state, a 0.2 probability that it will transition to a medium load state, and a 0.1 probability that it will transition to a heavy load state.

[0106] Step 303: The first network device performs load sharing processing on the data flows in the multiple paths according to the remaining bandwidths of the multiple paths and the path information. The load sharing processing is used to switch the bearer path of the data flow.

[0107] After receiving the path information sent by the second network device, the first network device can perform load sharing processing on the data streams in the multiple paths based on the remaining bandwidth of each path in the multiple paths and the path information. That is, the carrying paths of the data streams in the multiple paths are switched to ensure that the data volume of the data streams carried on the multiple paths is as balanced as possible. Among them, in the process of switching the carrying path of any data stream, other paths are actually selected from the multiple paths to carry the data stream, that is, the carrying path before switching and the carrying path after switching corresponding to the data stream belong to multiple paths.

[0108] In the process of performing load sharing, the remaining bandwidth of multiple paths, as well as the link overlap information and / or load change trends of multiple paths are actually used as reference information for load sharing. The data stream on the path with smaller remaining bandwidth is switched to other paths with no link overlap with the original path, better load change trends and remaining bandwidth as much as possible, to ensure that after the data stream switches the bearer path, there can be a better load sharing effect between multiple paths.

[0109] To facilitate understanding of the effect of performing load sharing processing in combination with the link overlap information of the path and the load change trend in this embodiment, the comparison of the effects before and after the load sharing processing will be described in detail with reference to specific examples.

[0110] See also Figure 5A and Figure 5B , Figure 5A A schematic diagram of not considering link overlap information when performing load sharing provided by an embodiment of the present application; Figure 5B A schematic diagram of performing load sharing in combination with link overlap information provided in an embodiment of the present application. Figure 5A and Figure 5B The network scenarios they target are the same, but the way to perform load sharing is different. Figure 5AAs shown, the data transmission network includes path 1 to path 3, and the current remaining bandwidths of these three paths are 12, 12, and 3, respectively. Link overlap information is not considered when performing load sharing, and the specific adjustment plan is: adjust 3MB of data flow from path 3 to path 1, and adjust 3MB of data flow from path 3 to path 2. Then, when link overlap information is not considered, after the load sharing process is performed, the expected remaining bandwidths on path 1 to path 3 are all 9. However, since path 1 and path 2 actually have overlapping links in the data transmission network, after the current adjustment plan is executed, the actual remaining bandwidths on path 1 to path 3 are 6, 6, and 9, respectively. Obviously, if link overlap information is not considered when there are overlapping links between paths, the effect of performing load sharing will be poor.

[0111] like Figure 5B As shown in the figure, when the load sharing process is performed in combination with the link overlap information, the adjustment scheme is specifically: adjust the 2MB data flow from path 3 to path 1, and adjust the 2MB data flow from path 3 to path 2. In this way, the expected remaining bandwidth and the actual remaining bandwidth after the load sharing process are the same, that is, the actual remaining bandwidths on path 1-path 3 are 8, 8, and 7 respectively. In other words, when there are overlapping links between paths, performing the load sharing process in combination with the link overlap information can effectively improve the effect of the load sharing process.

[0112] See also Fig. 6A and Figure 6B , Fig. 6A A schematic diagram of an embodiment of the present application that does not consider the load change trend when performing load sharing; Figure 6B A schematic diagram of performing load sharing in combination with load change trends provided in an embodiment of the present application. Fig. 6A and Figure 6B The network scenarios they target are the same, but the way to perform load sharing is different. Fig. 6AAs shown, the data transmission network includes paths 1 to 3, and the current remaining bandwidths of the three paths are 20, 8, and 20, respectively. When performing load sharing, the load change trend is not considered, and the specific adjustment plan is: adjust the 4MB data flow from path 2 to path 1, and adjust the 4MB data flow from path 2 to path 3. Then, when the load change trend is not considered, after the load sharing process is performed, the expected remaining bandwidths on paths 1 to 3 are all 16. However, since the load change trend of path 1 is actually an increase in remaining bandwidth (i.e., a decrease in load), and the load change trend of path 3 is a decrease in remaining bandwidth (i.e., an increase in load), after the load sharing process is performed, the actual remaining bandwidth of path 1 may be greater than 16, while the actual remaining bandwidth of path 3 may be less than 16. Obviously, if the load change trend of the path is not considered, the effect of performing the load sharing process will be poor, resulting in repeated switching of the data flow carrying path.

[0113] like Figure 6B As shown, when performing load sharing processing in combination with the load change trend, the adjustment plan is specifically: adjusting the 6MB data flow from path 2 to path 1, and adjusting the 2MB data flow from path 2 to path 3. In this way, the expected remaining bandwidth and the actual remaining bandwidth after the load sharing processing are the same, that is, the actual remaining bandwidth of path 1 is more than 14, the actual remaining bandwidth of path 2 is 16, and the actual remaining bandwidth of path 3 is less than 18. In this way, performing load sharing processing in combination with the load change trend can make the actual remaining bandwidths between different paths as close as possible, and the difference will not become larger over time, that is, there is no need to adjust the data flow carrying path back and forth. In other words, performing load sharing processing in combination with the load change trend of the path can effectively improve the effect of load sharing processing.

[0114] See also Fig. 7A and Figure 7B , Fig. 7A A schematic diagram of an embodiment of the present application providing a method of performing load sharing without considering link overlap information and load change trend; Figure 7B A schematic diagram of performing load sharing by combining link overlap information and load change trend provided in an embodiment of the present application. Fig. 7A and Figure 7B The network scenarios they target are the same, but the way to perform load sharing is different.

[0115] like Fig. 7AAs shown, the data transmission network includes paths 1 to 3, and the current remaining bandwidths of the three paths are 12, 12, and 3, respectively. When performing load sharing, the link overlap information and the load change trend are not considered, and the adjustment scheme is specifically: adjusting 3MB of data flow from path 3 to path 1, and adjusting 3MB of data flow from path 3 to path 2. Then, when the load change trend is not considered, after the load sharing process is performed, the expected remaining bandwidths on paths 1 to 3 are all 9. However, since the load change trends of paths 1 and 2 are actually the remaining bandwidth decreasing (i.e., the load increases), the load change trend of path 3 is the remaining bandwidth increasing (i.e., the load decreases), and path 1 and path 2 have overlapping links, after the load sharing process is performed, the actual remaining bandwidth of path 1 is less than 6, the actual remaining bandwidth of path 2 is less than 6, and the actual remaining bandwidth of path 3 is more than 9. Obviously, if the link overlap information and the load change trend of the path are not considered, the effect of performing the load sharing process will be poor, resulting in repeated switching of the data flow carrying path.

[0116] like Figure 7B As shown, when the load sharing process is performed in combination with the link overlap information and the load change trend, the adjustment scheme is specifically: adjust the 1.5MB data flow from path 3 to path 1, and adjust the 1.5MB data flow from path 3 to path 2. In this way, the expected remaining bandwidth and the actual remaining bandwidth after the load sharing process are close, that is, the actual remaining bandwidth of path 1 is less than 9, the actual remaining bandwidth of path 2 is less than 9, and the actual remaining bandwidth of path 3 is more than 6. In this way, the load sharing process is performed in combination with the link overlap information and the load change trend, so that the actual remaining bandwidths between different paths can be as close as possible, and the difference will not become larger over time, that is, there is no need to adjust the bearer path of the data flow back and forth.

[0117] It should be noted that in this embodiment, the load sharing process is performed on the first network device. Since the data streams on multiple paths will flow through the first network device, the first network device can obtain the remaining bandwidth on each path in real time, and then perform the load sharing process based on the remaining bandwidth on each path in real time, which can effectively ensure the timeliness of the load sharing process. In addition, since the path information such as the link overlap information between the paths and the load change trend usually does not change much in a short period of time (for example, within a few minutes), the second network device can be issued periodically or when the path information changes. In this way, in practical applications, the timeliness of the load sharing process performed by the first network device can be maintained at the millisecond level. If the load sharing method mentioned in this solution is performed on the second network device as a controller, the network devices in the network need to continuously report the remaining bandwidth and other information to the second network device, which has a large bandwidth overhead and will cause the second network device to obtain the remaining bandwidth with a high delay, thereby making it difficult for the second network device to perform the load sharing process in a timely and effective manner (the timeliness of performing the load sharing process is above the minute level).

[0118] In addition, since the load sharing process is performed on a group of paths with the same starting point and end point, and the actual network topology may have a large number of different groups of paths, if the load sharing process is performed centrally on the second network device as the controller, it will greatly increase the processing pressure of the second network device, thereby affecting the processing efficiency of the second network device, and often making it difficult for the second network device to perform load sharing at the fine granularity of the path. In this embodiment, the solution is performed on the first network device as an edge device in the network topology, which can ensure that each edge device is only responsible for one or more groups of paths related to the device, effectively reducing the processing pressure of the device, ensuring that the device can perform load sharing at such a fine granularity as the path, and ensuring the load sharing effect.

[0119] For ease of understanding, the following will describe in detail how to perform load sharing processing by combining link overlap information and load change trends.

[0120] Optionally, in the process of performing load sharing processing, the first network device determines the first data flow among the multiple data flows carried by the multiple paths and determines at least one alternative path among the multiple paths according to the remaining bandwidth of the multiple paths. The first data flow is a data flow that needs to switch the carrying path. The first data flow is, for example, a data flow with the largest amount of data on the path with the smallest remaining bandwidth among the multiple paths. That is, the original path where the first data flow is located is the path with the smallest remaining bandwidth among the multiple paths, and the first data flow is the data flow with the largest amount of data in the original path. In addition, at least one alternative path is, for example, a path with a remaining bandwidth greater than the data amount of the first data flow, that is, each of the at least one alternative path has additional idle bandwidth to carry the first data flow.

[0121] Then, the first network device switches the first data flow from the original path to a target path in at least one alternative path. After the bearer path switching of the first data flow is implemented, the load on the original path is reduced, while the load on the target path is increased, thereby improving the load sharing effect between multiple paths.

[0122] Among them, in at least one alternative path, the switching priority of the alternative path that has no overlapping links with the original path is higher than the alternative path that has overlapping links with the original path, and the switching priority of the alternative path whose load change trend is a decrease in load is higher than the alternative path whose load change trend is an increase in load.

[0123] Since the load of a path is related to the load of all links on the path, the remaining bandwidth of a path is actually the remaining bandwidth corresponding to the smallest link in the remaining bandwidth on the path. Therefore, after the data stream is switched to an alternative path with overlapping links on the original path, the load of the original path may not be reduced. Therefore, when selecting the path that actually needs to be switched from the alternative paths, the switching priority of the alternative path that does not overlap with the original path is higher than the alternative path that has overlapping links with the original path. For the load change trend of the alternative path, if the load change trend of the alternative path is increasing, then after the data stream is switched to the alternative path, it is very likely that the load of the alternative path will increase in the future, resulting in more unbalanced overall loads on multiple paths. Therefore, when selecting the path that actually needs to be switched from the alternative paths, the switching priority of the alternative path with a load change trend of decreasing load is higher than the alternative path with a load change trend of increasing load.

[0124] In short, when selecting the switching path for the first data stream, try to select a path that has no overlapping links with the original path of the first data stream and a path whose load change trend is decreasing, so as to ensure the load sharing effect after the first data stream is switched.

[0125] In actual applications, when the first network device simultaneously obtains the link overlap information and load change trends of multiple paths sent by the second network device, when the first network device performs load sharing processing based on the link overlap information and the load change trends, the priority of the link overlap information is higher than the priority of the load change trend.

[0126] Specifically, in the process of determining the target path to which the first data stream needs to be switched, the expected load sharing effect after the first data stream is switched to each of the at least one alternative path can be determined based on the remaining bandwidth of each path in the multiple paths and the link overlap information between the multiple paths (i.e., determining whether the overall load sharing effect improves after the first data stream is switched to any one of the alternative paths). For the alternative paths whose load sharing effect is expected to improve after switching the first data stream, the target path is further determined based on the load change trend in these alternative paths, i.e., the alternative paths whose expected load sharing effect improves and whose load change trend is decreasing or unchanged are selected as the target paths as much as possible.

[0127] Optionally, the transmission time of the first data stream is not greater than a first threshold. The value of the first threshold can be determined or adjusted according to an actual application scenario, and this embodiment does not specifically limit this. For example, the first threshold is 5 seconds or 10 seconds, that is, the transmission time of the first data stream is not greater than 5 seconds or 10 seconds.

[0128] In this embodiment, the first network device may be pre-configured with a tuning strategy for load sharing processing, and the tuning strategy is used to indicate priority adjustment of data streams with shorter transmission time (for example, the above-mentioned data streams with transmission time not greater than the first threshold). In this way, during the process of the first network device performing load sharing processing, the first network device selects data streams that meet the conditions indicated by the tuning strategy (i.e., target data streams with transmission time not greater than the first threshold) from multiple paths, and the first network device then performs load sharing processing on these selected target data streams based on the method introduced in the above embodiment. In this way, by pre-configuring the priority processing of data streams with shorter transmission time, the path switching of data streams on the newly incoming path can be prioritized as much as possible, avoiding switching of data streams that have been in the path for a long time, thereby minimizing the impact of the path switching of data streams on the data transmission service as much as possible, and improving the stability of the data transmission network.

[0129] It should be noted that, when the tuning strategy is used to indicate that only data streams with shorter transmission time can be adjusted, the first network device can only select data streams with shorter transmission time to perform path switching when performing load sharing processing, and cannot select data streams with longer transmission time to perform path switching. When the tuning strategy is used to indicate that data streams with shorter transmission time are adjusted first and data streams with longer transmission time can also be adjusted, the first network device can give priority to data streams with shorter transmission time to perform path switching when performing load sharing processing, and when switching data streams with shorter transmission time can no longer achieve a better load sharing effect, select data streams with longer transmission time to perform path switching.

[0130] The above embodiment introduces the process of how a network device performs load sharing processing on data flows in multiple paths. However, in actual applications, it is not necessary to perform load sharing processing on data flows at all times. In some cases, performing load sharing processing on data flows may not be able to effectively improve the utilization rate of network resources, that is, it cannot bring benefits to data transmission. Based on this, this embodiment provides a method for triggering the execution of load sharing processing, which will trigger the execution of load sharing processing only when specific conditions are met, thereby reducing the computing overhead caused by performing invalid load sharing processing.

[0131] Optionally, when the remaining bandwidth of the above-mentioned multiple paths is obtained, the first network device determines the total load of the multiple paths and the load sharing degree of the multiple paths according to the remaining bandwidth of the multiple paths. Since the total bandwidth of each path is fixed, when determining the remaining bandwidth of each path, the load of each path can also be uniquely determined (that is, the load of the path is the difference between the total bandwidth of the path and the remaining bandwidth). In this way, the total load of the multiple paths is the sum of the load of each path in the multiple paths.

[0132] In addition, the load sharing degree of multiple paths is used to indicate the load distribution on multiple paths. The higher the load sharing degree of multiple paths, the more balanced the loads distributed on the multiple paths; the lower the load sharing degree of multiple paths, the more unbalanced the loads distributed on the multiple paths. Specifically, the load sharing degree of multiple paths is calculated based on the bandwidth utilization of the multiple paths, for example. After determining the bandwidth utilization of each path based on the total bandwidth and the remaining bandwidth of each path, the highest bandwidth utilization and the lowest bandwidth utilization of the multiple paths are determined, and the load sharing degree of the multiple paths is determined based on the difference between the highest bandwidth utilization and the lowest bandwidth utilization. The greater the difference between the highest bandwidth utilization and the lowest bandwidth utilization, the lower the load sharing degree of the multiple paths; the smaller the difference between the highest bandwidth utilization and the lowest bandwidth utilization, the higher the load sharing degree of the multiple paths.

[0133] After determining the total loads and load sharing degrees of the multiple paths, it is determined whether the total loads and load sharing degrees of the multiple paths meet preset conditions. Furthermore, if the total loads and load sharing degrees of the multiple paths meet the preset conditions, the first network device determines to trigger the execution of load sharing processing on the data flows in the multiple paths.

[0134] The preset condition can be determined or adjusted according to the actual situation of the data transmission network. For example, the preset condition is that the total load of multiple paths is greater than a certain threshold, and the load sharing degree is lower than a certain degree value. That is, only when the total load of multiple paths is large and the loads between different paths are not balanced enough, will the load sharing process for the data flows in the multiple paths be triggered.

[0135] Alternatively, the first network device can determine a probability of triggering the execution of load sharing processing based on the total load of multiple paths and the degree of load sharing, and determine whether to execute the load sharing processing based on the probability. For example, a first probability value can be determined based on the total load of multiple paths, and a second probability value can be determined based on the degree of load sharing, and the probability of triggering the execution of load sharing processing is the product of the first probability value and the second probability value. Specifically, when the total load of multiple paths is less than threshold 1 (that is, multiple paths are in a light load state), the first probability value is 0; when the total load of multiple paths is not less than threshold 1 and less than threshold 2 (that is, multiple paths are in a medium load state), the first probability value is greater than 0 and less than 1, and the greater the total load of multiple paths, the greater the first probability value; when the total load of multiple paths is not less than threshold 2 (that is, multiple paths are in a heavy load state), the first probability value is 1. When the load sharing degree is represented by the difference between the highest bandwidth utilization and the lowest bandwidth utilization among multiple paths (hereinafter referred to as bandwidth utilization difference), when the bandwidth utilization difference is less than threshold A, the second probability value is 0; when the bandwidth utilization difference is not less than threshold A and greater than threshold B, the second probability value is a value greater than 0 and less than 1, and the greater the bandwidth utilization difference, the greater the second probability value; when the bandwidth utilization difference is not less than threshold B, the second probability value is 1. Optionally, the medium threshold 1 may be, for example, the minimum value of the critical values ​​of each path in the multiple paths being in a medium load state.

[0136] After obtaining the first probability value and the second probability value based on the above method, other methods may be used to determine the probability of triggering the execution of the load sharing process. For example, the probability of triggering the execution of the load sharing process may be a weighted sum of the first probability value and the second probability value. For another example, the probability of triggering the execution of the load sharing process may be the maximum value of the first probability value and the second probability value.

[0137] In this solution, by setting preset conditions based on the total load of multiple paths and the degree of load balancing, it is possible to ensure that the bandwidth resource utilization in the data transmission network will be improved as much as possible after the load sharing process is executed, and avoid executing invalid load sharing processing and incurring additional computing overhead.

[0138] It is understandable that, when some of the multiple paths have a certain amount of remaining bandwidth, only by performing load sharing can the loads between different paths be distributed as evenly as possible, thereby improving the utilization of network resources. However, when multiple paths have reached a transmission bottleneck, performing load sharing on the data flows in the multiple paths can no longer improve the utilization of the overall network resources. In this case, in this embodiment, some of the data flows in the multiple paths are speed-limited, thereby ensuring that most of the data flows can complete the transmission according to the expected transmission time.

[0139] Exemplarily, when congestion occurs in multiple paths, it means that the multiple paths have reached a transmission bottleneck, and it is impossible to further improve the data transmission efficiency by performing load sharing. Based on this, the first network device determines the second data stream in the multiple data streams based on the remaining transmission volume of the multiple data streams carried by the multiple paths, and limits the transmission rate of the second data stream. In this way, by limiting the transmission rate of some data streams in multiple paths, a certain amount of bandwidth space can be freed up for multiple paths, avoiding problems such as data packet loss caused by different data streams in multiple paths competing for bandwidth resources, and ensuring that other data streams can obtain a higher transmission rate and complete the transmission as soon as possible.

[0140] Optionally, the second data stream with limited transmission rate is, for example, one or more data streams with the largest remaining transmission amount among the multiple data streams. Alternatively, the second data stream is one or more data streams with the largest remaining time ratio among the multiple data streams, where the remaining time ratio is the ratio between the estimated remaining transmission time of the data stream and the estimated total transmission time, and the estimated remaining transmission time is related to the remaining transmission amount of the data stream.

[0141] Specifically, the larger the remaining transmission volume of a data stream or the larger the remaining time ratio, the longer the remaining transmission time of the data stream. Therefore, after limiting the transmission rate of these data streams, the transmission rate of these data streams can be increased again according to the actual network load during the subsequent long-term transmission process, thereby ensuring that the overall transmission time of these data streams can meet expectations. In addition, limiting the remaining transmission volume or the remaining time ratio of data streams can ensure that the data streams with smaller remaining transmission volume are transmitted as soon as possible, thereby freeing up more bandwidth and shortening the time when the data stream transmission rate is affected.

[0142] It should be noted that in actual applications, when the first network device determines that multiple paths are congested, it can select one or more data streams to limit the speed in order from large to small according to the remaining transmission volume or the remaining time ratio, and when selecting the data stream to limit the speed, try to select as few data streams as possible to limit the speed so as not to affect the normal transmission of too many data streams.

[0143] To facilitate understanding, the execution process of the load sharing method provided in the embodiment of the present application will be described in detail below with reference to specific examples.

[0144] Specifically, in practical applications, this embodiment mainly achieves low cost (high resource utilization) and timeliness guarantee of large data volume transmission from three aspects, namely: access evaluation, elastic transmission acceleration and timeliness guarantee.

[0145] Admission assessment refers to the assessment of whether the current network can accept data transmission services based on the current network load and whether it can be guaranteed to be within the timeliness requirements for large data volume transmission requests submitted by a single or multiple users (such as total data volume and timeliness requirements). If the current network cannot accept data transmission services, the estimated transmission time will be returned for the customer's reference and decision-making.

[0146] When a data transmission service is allowed to access the network and starts transmitting data, a data flow-level tuning solution is calculated based on the remaining bandwidth of the path and combined with the link overlap information and load change trend of the path, to achieve the goals of dynamic network load sharing, maximum resource utilization, and multi-path transmission acceleration.

[0147] Finally, during data transmission, when path congestion is detected and optimization is ineffective, appropriate data flows are selected for speed limit according to certain rules and algorithms to ensure the timeliness of the business.

[0148] The following first introduces the specific execution process of admission evaluation in detail. Taking the data transmission network that deploys SR policy tunnels to implement data transmission as an example, the specific process of admission evaluation can be executed on the head node device of the SR policy tunnel or on the controller.

[0149] For example, see Figure 8 , Figure 8 A schematic diagram of an implementation of an access assessment provided in an embodiment of the present application. Figure 8As shown, before the user needs to use the data transmission network to realize data transmission, he / she first inputs his / her own demand for data transmission (i.e., user demand). User demand may include, for example, user identification, user data flow identification (such as source IP address and destination IP address), total amount of data of the data flow to be transmitted, expected transmission time or expected average bandwidth and other demand information. In addition, when the head node device performs access evaluation, it is necessary to measure the remaining bandwidth of multiple paths in the network; when the controller performs access evaluation, the controller needs to collect the remaining bandwidth of multiple paths measured by the network devices in the network.

[0150] The process of the head node device or controller performing admission evaluation specifically includes the following steps 1 to 3.

[0151] Step 1: Determine an available bandwidth profile of each path, where the available bandwidth profile includes, for example, an average available bandwidth profile and a minimum available bandwidth profile.

[0152] Specifically, the available bandwidth portrait of the path is calculated based on the cumulative residual bandwidth of the path at multiple moments in historical time. Generally, since the business traffic carried on the path is not fixed, the residual bandwidth of the path is not a stable value. For example, if the residual bandwidth of the path is counted once per second, there will be 3,600 residual bandwidths in one hour. If the statistics are taken for one day to one week, more residual bandwidth can be obtained. If the residual bandwidth measured at each moment is taken as a sequence, the distribution of the residual bandwidth values ​​in the sequence can be seen. For example, 95% of the data is below a certain value, which is called P95 in the industry; the maximum value of the sequence is called the peak value. In some embodiments, the P95 value can be used as the available bandwidth portrait of the path. In addition, in addition to the method described above, other time series data processing methods can also be used to characterize the available bandwidth portrait; the essence is to obtain a single available bandwidth portrait based on the time series bandwidth sequence.

[0153] Optionally, when calculating the average available bandwidth profile and the minimum available bandwidth profile of the path, an exponential smoothing method can be used. Taking the calculation of the average available bandwidth profile as an example, assuming that the average value of the residual bandwidth of the first N moments (1->N) is Ave-1, and the average value of the residual bandwidth of the sliding window M moments (1+M->N+M) is Ave-M, then the average available bandwidth profile is a1*Ave-1+…+am*Ave-m. Similarly, when the residual bandwidth at multiple moments is obtained, the minimum available bandwidth profile is obtained by dividing the multiple moments into multiple time periods, and determining the minimum residual bandwidth in each time period, and then performing weighted summation on the minimum residual bandwidth in multiple time periods.

[0154] Step 2: Determine available transmission paths based on the available bandwidth profile.

[0155] After determining the available bandwidth profile of each path, since an SR policy tunnel includes one or more paths and data transmission services can often be divided into multiple data flows on different paths, the maximum bandwidth of the path that can be used to carry data transmission services can be calculated based on methods such as maximum flow or multi-commodity flow, thereby determining the available transmission path.

[0156] Specifically, in the process of determining the available transmission paths, the available bandwidth portraits of all paths in each SR policy tunnel that can be used to carry data transmission services can be added together to obtain the available bandwidth corresponding to the SR policy tunnel with the largest available bandwidth as the transmission bandwidth, and the SR policy tunnel with the largest available bandwidth is used as the tunnel that carries the data transmission service. Among them, after adding the average available bandwidth portraits of all paths in the SR policy tunnel, the average transmission bandwidth can be obtained; after adding the minimum available bandwidth portraits of all paths in the SR policy tunnel, the minimum transmission bandwidth can be obtained.

[0157] Step 3: Evaluate whether the transmission duration can be guaranteed.

[0158] After determining the available transmission paths for the data transmission service, and determining the average transmission bandwidth and the minimum transmission bandwidth of the available transmission paths, the expected theoretical transmission duration interval can be determined based on the total amount of data, the average transmission bandwidth and the minimum transmission bandwidth specified by the data transmission service. Among them, the expected minimum theoretical transmission duration is the total amount of data / average transmission bandwidth, and the expected maximum theoretical transmission duration is the total amount of data / minimum transmission bandwidth, that is, the expected theoretical transmission duration interval is (total amount of data / minimum transmission bandwidth, total amount of data / average transmission bandwidth). Since the user requirements submitted by the user also include the expected transmission duration, it is possible to determine whether the expected transmission duration falls within the expected theoretical transmission duration interval to determine the transmission duration that can guarantee the data transmission service. Generally speaking, if the expected transmission duration falls within the expected theoretical transmission duration interval or the expected transmission duration is greater than the expected maximum transmission duration, the admission evaluation result is that the data transmission service can be accepted; if the expected transmission duration is less than the expected minimum theoretical transmission duration, the admission evaluation result is that the data transmission service cannot be accepted.

[0159] For example, an example of user requirements and admission evaluation results is shown in Table 5.

[0160] Table 5

[0161]

[0162] In Table 5, the expected transmission duration of the data transmission service with the user ID of 00 is greater than the expected maximum transmission duration, so the admission result is that the data transmission service can be accepted (Y); the expected transmission duration of the data transmission service with the user ID of 01 is less than the expected minimum transmission duration, so the admission result is that the data transmission service cannot be accepted (N); the expected transmission duration of the data transmission service with the user ID of 02 is greater than the expected maximum transmission duration, so the admission result is that the data transmission service can be accepted (Y); the expected transmission duration of the data transmission service with the user ID of 03 is equal to the expected maximum transmission duration, so the admission result is that the data transmission service can be accepted (Y).

[0163] For example, see Fig. 9 , Fig. 9 The following is a schematic diagram of the interaction during the implementation of an access assessment provided in an embodiment of the present application. Fig. 9 As shown, the process of implementing admission assessment includes the following steps.

[0164] 1. Start the function: The user selects the [Start demand access assessment] function in the interface of the controller or network device to start the setting.

[0165] 2. Parameter setting: Users set [user required parameters]. If no setting is made, the system default parameters will be used.

[0166] 3. Collection configuration: The controller sends collection-related parameter configuration to the network device to obtain link load data.

[0167] 4. Data collection and upload: Multiple network devices upload device-side information such as the remaining bandwidth of the path in the SR Policy tunnel or the link occupied bandwidth to the controller.

[0168] 5. Admission evaluation calculation: The controller or head node device calls the admission evaluation algorithm module based on the data reported and recorded by the network equipment to calculate whether the data transmission service is allowed, the expected minimum transmission time, and the expected maximum transmission time.

[0169] 6. Confirmation of evaluation results: The controller or head node device generates a presentation text based on the calculated access evaluation results, such as "The business requirements you currently submit can be met by theoretical evaluation, and the estimated transmission time is x hours-hours. This data may be biased and is for reference only. Please check the specific transmission time and acceleration ratio deviation after the task is completed", and the user is notified on the interface. Customers can confirm whether they need to place an order based on the presented access evaluation results, and customers can also modify the configuration and re-evaluate.

[0170] 7. Work order issuance: If the user clicks to confirm the data transmission, the controller updates the current task table.

[0171] 8. Transmission information collection and reporting: After data transmission is completed, report the transmission duration information.

[0172] 9. Revenue statistics display: The controller calculates the transmission acceleration information reported by the network equipment, counts the currently completed tasks, the deviation between the transmission time and the estimated time, the acceleration ratio and other information, and displays the revenue.

[0173] The specific execution process of elastic transmission acceleration is described in detail below. Taking the case where the data transmission network deploys SRpolicy tunnel to realize data transmission as an example, the specific process of elastic transmission acceleration can be executed on the head node device of the SR policy tunnel (i.e., the first network device in the above embodiment), and the head node device needs to obtain the link overlap information and load change trend of the path from the controller (i.e., the second network device in the above embodiment).

[0174] For example, see Fig.10 , Fig.10 A schematic diagram of the execution of elastic transmission acceleration provided in an embodiment of the present application.

[0175] First, the controller sends the link overlap information between paths to the head node device. Specifically, the controller may trigger the sending of the link overlap information between paths to the head node when the path changes or a new path is added; the controller may also send the link overlap information between paths to the head node device periodically (for example, every 5 minutes or 30 minutes). Furthermore, the controller may send the link overlap information of the paths related to the head node device only to each head node device.

[0176] Secondly, the controller also sends the load change trend, such as the load change trend of the path or the load change trend of the link, to the head node device. When the controller sends the load change trend of the link, the head node device determines the load change trend of the path according to the load change trend of one or more links constituting the path.

[0177] Finally, after obtaining the link overlap information and load change trend sent by the controller, the head node device performs load sharing processing on multiple paths based on the load sharing method introduced in the above embodiment, thereby switching the data flow on the path with heavier load to the path with lighter load, thereby improving the utilization of network resources.

[0178] It should be noted that the controller can obtain the link load reported by the network equipment in the data transmission network during operation, so that the controller can predict the load change trend of each link based on the load situation of each link in the historical period, and then determine the load change trend of each path in combination with the load change trend of each link. For example, the controller can predict the load change trend of the link based on the Markov chain method, or predict the load change trend of the link based on traffic prediction models such as differential autoregressive moving average model, machine learning model and autoregressive conditional Poisson model.

[0179] Taking the Markov chain method as an example, the load state of the link can be discretized into three levels: low (L), medium (M) and high (H), and a Markov chain model is established for each link (such as link A, link B and link C) to describe the transition probability between load states. For example, assuming that the link bandwidth is 100Mbps, the load state can be defined as: a link load of 0-30Mbps is a low load state, a link load of 30-70Mbps is a medium load state, and a link load of 70-100Mbps is a high load state.

[0180] The state transition equation of the Markov chain is generated based on the state transition probability. For each link, the transition probability between various load states is calculated based on the collected historical load data. The transition probability is expressed as the probability of transitioning from one state to another. For example, on link A, the probability of transitioning from a low load state to a medium load state is 0.2.

[0181] After obtaining the load status of the link at multiple historical moments, the number of state transitions of the link can be counted: traverse the collected link load data and count the number of transitions between each state. For example, the number of transitions from the low load state to the medium load state (L->M), the number of transitions from the low load state to the high load state (L->H), etc. Then, the number of state transitions is used to calculate the transition probability. For each state i, the probability of transitioning from state i to state j is calculated as: P(i->j) = number of transitions (i->j) / total number of transitions from state i.

[0182] In this way, by calculating the transition probability from each load state to any other load state, the state transition probability matrix on the link can be obtained. For each link or path, a state transition probability matrix can be constructed, as shown in Table 4 above.

[0183] See also Fig.11 , Fig.11 The following is an interactive diagram of the execution process of elastic transmission acceleration provided by the embodiment of the present application. Fig.11 As shown, the process of achieving elastic transmission acceleration includes the following steps.

[0184] 1. Start function: The user selects the [Auto Tuning] function on the controller interface to start the setting, otherwise manual confirmation is required by default.

[0185] 2. Parameter setting: The user sets [user required parameters, such as tuning threshold, etc.]. If no setting is made, the system default parameters will be used.

[0186] 3. Collection configuration and form distribution:

[0187] First, the network equipment in the data transmission network collects information such as link load and link remaining bandwidth, and sends the collected link information to the controller; then, the controller sends the "link overlap table" and "state transition probability table" to the head node device, thereby realizing the sending of link overlap information and load change trends.

[0188] 4. Data collection and upload:

[0189] Multiple network devices in the data transmission network send device-side information such as path remaining bandwidth or link occupied bandwidth to the controller. The head node device measures the path remaining bandwidth.

[0190] 5. Forwarding plane flow-level tuning calculation: The head node device decides whether to perform tuning calculation based on the currently measured remaining bandwidth of the path; and superimposes the table information sent by the controller for calculation, and outputs the tuning plan [flow ID to be adjusted, target path ID to be adjusted].

[0191] 6. Confirm the tuning results: If automatic tuning is enabled, you can skip this step; if automatic tuning is not enabled, the tuning plan will be output and wait for user confirmation.

[0192] 7. Implementation of the optimization plan: The head node device implements the calculated optimization plan.

[0193] It should be noted that the head node device may be pre-configured with a tuning strategy, or the controller may send the tuning strategy to the head node device. The tuning strategy is used to indicate which data flows the head node device can load share. For example, when the tuning strategy is new flow tuning, the head node device only performs load sharing on data flows in multiple paths whose transmission time is less than a certain threshold (hereinafter referred to as new flows); when the tuning strategy is global tuning, the head node device can perform load sharing on all data flows in multiple paths; when the tuning strategy is adaptive tuning, the head node device preferentially performs load sharing on new flows in multiple paths, and when performing load sharing on new flows cannot further improve the load sharing effect, it then performs load sharing on data flows in multiple paths whose transmission time is not less than a certain threshold (hereinafter referred to as old flows).

[0194] For example, see Fig.12 , Fig.12 A schematic diagram of a plurality of head node devices with different tuning strategies provided in an embodiment of the present application. Fig.12 As shown in the figure, both provider edge devices (PE) 1 and PE2 are head node devices, and different tuning strategies are configured on PE1 and PE2. Among them, the tuning strategy of PE1 is new flow tuning, that is, adjusting the bearer path of new flows; the tuning strategy of PE2 is global tuning, that is, it can adjust the bearer path of all data flows. Among them, the flow table of PE1 before tuning is shown in Table 6, and the flow table of PE1 after tuning is shown in Table 7.

[0195] Table 6

[0196] Flow ID path Transmission time(s) 1.a SR-List 1.2 10000 1.b SR-List 1.3 20000 1.c SR-List 1.3 500 1.d SR-List 1.3 5

[0197] Table 7

[0198] Flow ID path Transmission time(s) 1.a SR-List 1.2 10005 1.b SR-List 1.3 20005 1.c SR-List 1.3 505 1.d SR-List 1.1 10

[0199] It can be seen from Table 6 and Table 7 that after performing new flow optimization, PE1 adjusts the bearer path of data flow 1.d, that is, switches data flow 1.d from SR-List 1.3 to SR-List 1.1.

[0200] Among them, the flow table before PE2 performs the tuning is shown in Table 8, the flow table after PE2 performs the first step of tuning is shown in Table 9, and the flow table after PE2 performs the second step of tuning is shown in Table 10.

[0201] Table 8

[0202] Flow ID path Transmission time(s) 2.a SR-List 2.2 10000 2.b SR-List 2.3 20000 2.c SR-List 2.3 500 2.d SR-List 2.3 5

[0203] Table 9

[0204] Flow ID path Transmission time(s) 2.a SR-List 2.2 10005 2.b SR-List 2.3 20005 2.c SR-List 2.1 505 2.d SR-List 2.3 10

[0205] Table 10

[0206] Flow ID path Transmission time(s) 2.a SR-List 2.2 10010 2.b SR-List 2.1 20010 2.c SR-List 2.1 510 2.d SR-List 2.1 15

[0207] It can be seen from Tables 8, 9, and 10 that PE2 first adjusts the bearer path of data flow 2.c, that is, switches data flow 2.c from SR-List 2.3 to SR-List 2.1; secondly, PE2 adjusts the bearer path of data flows 2.b and 2.d, that is, switches both data flows 2.b and 2.d from SR-List 2.3 to SR-List 2.1.

[0208] Combining the above tuning methods of PE1 and PE2, it can be seen that configuring different tuning strategies on different head node devices can ensure the tuning effect while minimizing the data flow that needs to be adjusted, thereby ensuring network stability.

[0209] The following will further introduce in detail the specific implementation process of the timeliness guarantee of the data transmission service during the transmission process.

[0210] Timeliness guarantee refers to how to ensure that business data is transmitted within a certain period of time in the scenario of large-scale data flow transmission. Specifically, the head node device usually needs to collect the transmission rate of business data and the load status of the network, sense congestion and perform dynamic data flow rate limiting operations to ensure the timeliness of multi-business transmission.

[0211] First, for data flows with large data volumes, set the initial speed limit value, which can be set according to the peak rate selected by the user. If the user does not select the initial speed limit value, it can be set by default according to the current bandwidth of the system, or according to the average bandwidth expected by the user.

[0212] Secondly, for data flows with large data volumes, the cumulative amount of data transmitted is counted, and the remaining transmission volume and the remaining time ratio are calculated. The remaining transmission time ratio needs to be estimated based on the actual average rate during the cumulative transmission period.

[0213] During the transmission of data streams, congestion awareness is performed (i.e., the total available bandwidth of the tunnel is perceived to be decreasing). For example, the available bandwidth of multiple paths in the SR Policy tunnel continues to decrease, and the absolute value approaches 0 or a threshold; or the available bandwidth of multiple paths in the SRPolicy tunnel accounts for the historical maximum available bandwidth. The ratio approaches 0 or a threshold; or the presence of congestion is perceived based on the packet loss rate of the data stream or the transmission time of the data packet. If congestion occurs during the transmission of the data stream, some data streams are selected for speed limiting. In the process of speed limiting, in order to maximize the timeliness of most data streams, the corresponding data streams are selected from large to small based on the calculated remaining transmission volume or remaining time ratio, that is, the data streams with large remaining transmission volume or long remaining time are selected as much as possible for speed limiting.

[0214] During the transmission of data streams, congestion relief perception is also performed. When the above congestion signal is significantly relieved, the speed-limited data stream is pulled back to increase the transmission rate of the data stream. Among them, the speed limit value of the data stream is recommended to be changed between the peak rate, the expected average bandwidth, and the minimum guaranteed bandwidth.

[0215] See also Fig.13 , Fig.13A structural schematic diagram of a load sharing device provided for an embodiment of the present application. In one possible example, the load sharing device is deployed on a first network device, and the load sharing device includes: an acquisition module 1301, used to obtain the remaining bandwidth of multiple paths, the multiple paths have the same starting point and the same end point; a receiving module 1302, used to receive path information sent by a second network device, the path information includes link overlap information between multiple paths, and / or load change trends of multiple paths; a processing module 1303, used to perform load sharing processing on data streams in multiple paths according to the remaining bandwidth of the multiple paths and the path information, and the load sharing processing is used to switch the bearer path of the data stream.

[0216] In one possible implementation, the processing module 1303 is further used to: determine a first data stream among multiple data streams carried by the multiple paths and determine at least one alternative path among the multiple paths according to the remaining bandwidth of the multiple paths, the first data stream being a data stream that needs to switch the carrying path; switch the first data stream from the original path to a target path in at least one alternative path; wherein, in the at least one alternative path, a switching priority of an alternative path that has no overlapping links with the original path is higher than an alternative path that has overlapping links with the original path, and a switching priority of an alternative path whose load change trend is a decreasing load is higher than an alternative path whose load change trend is an increasing load.

[0217] In a possible implementation manner, the transmission time of the first data stream is not greater than a first threshold.

[0218] In a possible implementation manner, the first data flow is a data flow with the largest data volume on a path with the smallest remaining bandwidth among the multiple paths.

[0219] In a possible implementation manner, the load variation trends of the multiple paths include future load states of the multiple paths.

[0220] In a possible implementation, the load variation trends of the multiple paths include state transition information of the multiple paths, where the state transition information is used to indicate transition probabilities of the paths between multiple load states.

[0221] In one possible implementation, the processing module 1303 is further used to: determine the total load of the multiple paths and the load sharing degree of the multiple paths based on the remaining bandwidth of the multiple paths; in response to the total load and the load sharing degree satisfying preset conditions, determine to trigger load sharing processing for the data streams in the multiple paths.

[0222] In a possible implementation, the processing module 1303 is further used to: when congestion occurs on multiple paths, determine a second data flow among the multiple data flows based on the remaining transmission amounts of the multiple data flows carried by the multiple paths; and limit the transmission rate of the second data flow.

[0223] In a possible implementation, the second data stream is a data stream having the largest remaining transmission amount among the multiple data streams;

[0224] Or, the second data stream is the data stream with the largest remaining time ratio among multiple data streams, the remaining time ratio is the ratio between the estimated remaining transmission time of the data stream and the estimated total transmission time, and the estimated remaining transmission time is related to the remaining transmission amount of the data stream.

[0225] In a possible implementation, the first network device is an edge device of a network where the multiple paths are located, and the second network device is a controller.

[0226] In another possible example, the acquisition module 1301 is used to obtain the transmission time of multiple data streams carried in multiple paths, and the multiple paths have the same starting point and the same end point; the processing module 1303 is used to perform load sharing processing on the target data streams in the multiple paths, the target data stream is a data stream whose transmission time is not greater than a first threshold, and the load sharing processing is used to switch the carrying path of the first data stream.

[0227] Fig.14 A schematic diagram of the structure of a network device provided in an embodiment of the present application. The network device is equipped with the above Fig.13 The load sharing device and the network equipment are implemented by a general bus architecture.

[0228] The network device includes at least one processor 1401 , a communication bus 1402 , a memory 1403 , and at least one communication interface 1404 .

[0229] Optionally, the processor 1401 is a general-purpose CPU, NP, microprocessor, or one or more integrated circuits for implementing the solution of the present application, such as an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or a combination thereof. The above-mentioned PLD is a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.

[0230] The communication bus 1402 is used to transmit information between the above components. The communication bus 1402 is divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one thick line is used in the figure, but it does not mean that there is only one bus or one type of bus.

[0231] Optionally, the memory 1403 is a read-only memory (ROM) or other types of static storage devices that can store static information and instructions. Alternatively, the memory 1403 is a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions. Alternatively, the memory 1403 is 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 compressed optical disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of an instruction or data structure and can be accessed by a computer, but is not limited to this. Optionally, the memory 1403 exists independently and is connected to the processor 1401 through the communication bus 1402. Optionally, the memory 1403 and the processor 1401 are integrated together.

[0232] The communication interface 1404 uses any transceiver-like device for communicating with other devices or communication networks. The communication interface 1404 includes a wired communication interface. Optionally, the communication interface 1404 also includes a wireless communication interface. Among them, the wired communication interface is, for example, an Ethernet interface. The Ethernet interface is an optical interface, an electrical interface or a combination thereof. The wireless communication interface is a wireless local area network (WLAN) interface, a cellular network communication interface or a combination thereof, etc.

[0233] In a specific implementation, as an embodiment, the processor 1401 includes one or more CPUs, such as Fig.14 CPU0 and CPU1 are shown in the figure.

[0234] In a specific implementation, as an embodiment, the network device includes multiple processors, such as Fig.141401 and 1405 are shown in FIG. Each of these processors is a single-CPU or a multi-CPU. A processor herein refers to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).

[0235] In some embodiments, the memory 1403 is used to store the program code 1414 for executing the solution of the present application, and the processor 1401 executes the program code 1414 stored in the memory 1403. In other words, the network device implements the above method embodiment through the processor 1401 and the program code 1414 in the memory 1403.

[0236] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can be referenced to each other, and each embodiment focuses on the differences from other embodiments. Wherein, A refers to B, which means that A is the same as B or A is a simple variation of B.

[0237] The terms "first" and "second" in the description and claims of the embodiments of the present application are used to distinguish different objects, rather than to describe the specific order of the objects, and cannot be understood as indicating or implying relative importance. For example, the first speed-limited channel and the second speed-limited channel are used to distinguish different speed-limited channels, rather than to describe the specific order of the speed-limited channels, and cannot be understood as the first speed-limited channel being more important than the second speed-limited channel.

[0238] In the embodiments of the present application, unless otherwise specified, “at least one” means one or more, and “plurality” means two or more.

[0239] The above embodiments can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, 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 instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in accordance with the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. 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 a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (Digital Subscriber Line, DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server, data center, etc. that contains one or more available media integrated. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a DVD), or a semiconductor medium (eg, a solid state disk (SSD)).

[0240] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the scope of the technical solutions of the embodiments of the present application.

Claims

1. A load sharing method, characterized in that: include: The first network device obtains remaining bandwidth of multiple paths, where the multiple paths have the same starting point and the same end point; The first network device receives path information sent by the second network device, where the path information includes link overlap information between the multiple paths and / or load change trends of the multiple paths; The first network device performs load sharing processing on the data flows in the multiple paths according to the remaining bandwidths of the multiple paths and the path information, wherein the load sharing processing is used to switch the bearer path of the data flow.

2. The method according to claim 1, characterized in that The first network device performs load sharing processing on the data flows in the multiple paths according to the remaining bandwidths of the multiple paths and the path information, including: The first network device determines, according to the remaining bandwidths of the multiple paths, a first data flow among the multiple data flows carried by the multiple paths and determines at least one alternative path among the multiple paths, wherein the first data flow is a data flow that needs to switch the carrying path; The first network device switches the first data flow from an original path to a target path in the at least one alternative path; Among them, among the at least one alternative path, the switching priority of the alternative path that has no overlapping links with the original path is higher than the alternative path that has overlapping links with the original path, and the switching priority of the alternative path whose load change trend is a decreasing load is higher than the alternative path whose load change trend is an increasing load.

3. The method according to claim 2, characterized in that The transmission time of the first data stream is not greater than a first threshold.

4. The method according to claim 2 or 3, characterized in that: The first data flow is a data flow with the largest data volume on a path with the smallest remaining bandwidth among the multiple paths.

5. The method according to any one of claims 1 to 4, characterized in that: The load variation trends of the plurality of paths include future load states of the plurality of paths.

6. The method according to any one of claims 1 to 5, characterized in that: The load variation trends of the multiple paths include state transition information of the multiple paths, where the state transition information is used to indicate transition probabilities of the paths between multiple load states.

7. The method according to any one of claims 1 to 6, characterized in that: The method further comprises: The first network device determines the total load of the multiple paths and the load sharing degree of the multiple paths according to the remaining bandwidth of the multiple paths; In response to the total load and the load sharing degree satisfying a preset condition, the first network device determines to trigger a load sharing process for the data flows in the multiple paths.

8. The method according to any one of claims 1 to 7, characterized in that: The method further comprises: When congestion occurs on the multiple paths, the first network device determines a second data flow from among the multiple data flows based on remaining transmission amounts of the multiple data flows carried by the multiple paths; The first network device limits a transmission rate of the second data flow.

9. The method according to claim 8, characterized in that The second data stream is the data stream with the largest remaining transmission amount among the multiple data streams; Or, the second data stream is the data stream with the largest remaining time ratio among the multiple data streams, and the remaining time ratio is the ratio between the estimated remaining transmission time of the data stream and the estimated total transmission time, and the estimated remaining transmission time is related to the remaining transmission amount of the data stream.

10. The method according to any one of claims 1 to 9, characterized in that: The first network device is an edge device of a network where the multiple paths are located, and the second network device is a controller.

11. A load sharing method, characterized in that: include: Obtaining the transmission time of multiple data streams carried in multiple paths, wherein the multiple paths have the same starting point and the same end point; Load sharing processing is performed on target data flows in the multiple paths, the target data flows are data flows whose transmission time is not greater than a first threshold, and the load sharing processing is used to switch the bearing path of the first data flow.

12. A load sharing device, characterized in that: The device is deployed on a first network device, and the device includes: An acquisition module, used for acquiring remaining bandwidths of a plurality of paths, wherein the plurality of paths have a same starting point and a same end point; A receiving module, configured to receive path information sent by a second network device, wherein the path information includes link overlap information between the multiple paths and / or load change trends of the multiple paths; The processing module is used to perform load sharing processing on the data flows in the multiple paths according to the remaining bandwidths of the multiple paths and the path information, wherein the load sharing processing is used to switch the bearer path of the data flow.

13. The device according to claim 12, characterized in that The processing module is further used for: Determine a first data flow among the multiple data flows carried by the multiple paths according to the remaining bandwidths of the multiple paths and determine at least one candidate path among the multiple paths, wherein the first data flow is a data flow that needs to switch the carrying path; Switching the first data flow from an original path to a target path in the at least one alternative path; Among them, among the at least one alternative path, the switching priority of the alternative path that has no overlapping links with the original path is higher than the alternative path that has overlapping links with the original path, and the switching priority of the alternative path whose load change trend is a decreasing load is higher than the alternative path whose load change trend is an increasing load.

14. The device according to claim 13, characterized in that The transmission time of the first data stream is not greater than a first threshold.

15. The device according to claim 13 or 14, characterized in that The first data flow is a data flow with the largest data volume on a path with the smallest remaining bandwidth among the multiple paths.

16. The device according to any one of claims 12 to 15, characterized in that: The load variation trends of the plurality of paths include future load states of the plurality of paths.

17. The device according to any one of claims 12 to 16, characterized in that: The load variation trends of the multiple paths include state transition information of the multiple paths, where the state transition information is used to indicate transition probabilities of the paths between multiple load states.

18. The device according to any one of claims 12 to 17, characterized in that: The processing module is further used for: Determining, according to the remaining bandwidths of the multiple paths, a total load of the multiple paths and a load sharing degree of the multiple paths; In response to the total load and the load sharing degree satisfying a preset condition, determining to trigger the load sharing process for the data flows in the multiple paths.

19. The device according to any one of claims 12 to 18, characterized in that: The processing module is further used for: When congestion occurs on the multiple paths, determining a second data flow from the multiple data flows based on remaining transmission amounts of the multiple data flows carried by the multiple paths; The transmission rate of the second data flow is limited.

20. The device according to any one of claims 12 to 19, characterized in that: The first network device is an edge device of a network where the multiple paths are located, and the second network device is a controller.

21. A load sharing device, characterized in that: include: An acquisition module, used for acquiring the transmission time of multiple data streams carried in multiple paths, wherein the multiple paths have the same starting point and the same end point; The processing module is used to perform load sharing processing on the target data streams in the multiple paths, the target data stream is a data stream whose transmission time is not greater than a first threshold, and the load sharing processing is used to switch the bearing path of the first data stream.

22. A network device, comprising a processor and a memory, wherein the memory is used to store program codes, and the processor is used to call the program codes in the memory so that the network device executes the method according to any one of claims 1 to 11.

23. A computer-readable storage medium storing instructions, which, when executed on a computer, enable the computer to execute the method according to any one of claims 1 to 11.

24. A computer program product, characterized in that The computer program product comprises program codes, and when a computer runs the computer program product, the computer executes the method according to any one of claims 1 to 11.