WO2023206395A1 - 一种网络路径的计算方法及网络设备 - Google Patents

一种网络路径的计算方法及网络设备 Download PDF

Info

Publication number
WO2023206395A1
WO2023206395A1 PCT/CN2022/090387 CN2022090387W WO2023206395A1 WO 2023206395 A1 WO2023206395 A1 WO 2023206395A1 CN 2022090387 W CN2022090387 W CN 2022090387W WO 2023206395 A1 WO2023206395 A1 WO 2023206395A1
Authority
WO
WIPO (PCT)
Prior art keywords
network
path
node
target
network path
Prior art date
Application number
PCT/CN2022/090387
Other languages
English (en)
French (fr)
Inventor
徐聪
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2022/090387 priority Critical patent/WO2023206395A1/zh
Publication of WO2023206395A1 publication Critical patent/WO2023206395A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/04Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources

Definitions

  • the present application relates to the field of data transmission, and in particular to a network path calculation method and network equipment.
  • SLA service level agreement
  • the delay is required to be less than 100 milliseconds (milliseconds, ms) and the packet loss rate is less than 10 %, etc.; at the same time, the SLA of the industrial Internet usually requires multiple network performance factors.
  • smart manufacturing applications also require network delay, reliability and packet loss rate.
  • the single-objective factor routing method of "best effort” can calculate the optimal path of multi-objective factors according to the SLA requirements of different applications, thereby providing personalized quality of service (QoS) guarantee for different applications.
  • QoS quality of service
  • IGP interior gateway protocol
  • OSPF open shortest path first
  • Dijkstra algorithm the "local minimum” path calculation method
  • each network node independently calculates the optimal path to the destination node and records it; when a network node receives a data packet forwarded from a neighbor node, then Just forward the data packet directly along the locally calculated optimal path to the destination node.
  • Each hop of the end-to-end path takes the local optimal path, thereby obtaining the optimal end-to-end optimal path.
  • the network performance requirements are: first select the path with the largest bandwidth, and when it is found that multiple paths have equal bandwidth, select the path with the lowest delay. That is, the network performance requirement is a dual-objective optimization requirement of "bandwidth + delay".
  • the optimal path from Z ⁇ Y is Path1 because this path has the largest bandwidth. If according to the classic IGP algorithm, when the data packet reaches node Z from node X, node Z will take Path1 to transmit the data to the destination node Y.
  • the end-to-end bandwidth is 10 (the minimum value of the bandwidth of Path0 and Path1), and the end-to-end delay is 20 (the sum of the delays of Path0 and Path1).
  • node Z does not take the local optimal path Path1, but instead takes the non-optimal path Path2.
  • the resulting end-to-end path The performance of Y is: the end-to-end bandwidth is 10 (the minimum value of the bandwidth of Path0 and Path2), and the end-to-end delay is 15 (the sum of the delays of Path0 and Path2).
  • the performance is better than that of node Z taking the local optimal path. .
  • the end-to-end optimal path is not a splicing of the local optimal paths of each hop. Taking non-optimal paths between certain nodes may often lead to an end-to-end path that is less than the local optimal path of each hop. Taking the optimal path provides better performance. Therefore, in a multi-objective factor scenario, "local optimal path + local optimal path +... + local optimal path ⁇ global optimal path" makes it impossible to calculate the optimal network path in a multi-objective factor scenario based on the classic IGP distributed algorithm .
  • the first aspect of this application provides a network path calculation method, which is used to solve the problem of the optimal network path of multi-objective factors that cannot be solved by the classic IGP distributed algorithm, and to design a distributed multi-objective factor that can calculate any business requirements.
  • the network path calculation method improves the ability of resource allocation optimization and resource control optimization.
  • embodiments of the present application provide a method for calculating network paths.
  • This method can be deployed distributedly in network nodes, or traversed and implemented in a centralized controller; it can be applied to Overlay networks and Underlay networks. network, and can calculate the optimal network path according to any business requirements.
  • the method may include: first, determining a reachable network path starting from a source node and ending with a directly connected node of the source node.
  • a directly connected node refers to a node that is directly connected to the source node without being relayed by other nodes in the middle, This reachable network path may be called a first reachable network path (which may be one or more).
  • the reachable network path not only includes the network nodes involved in the reachable network path, but also includes the overall network performance of the entire reachable network path (such as the delay, bandwidth, Packet loss rate, etc.).
  • the source node is a network node in the network (which can be called the target network) that the target device (that is, the device with data to be sent) is connected to.
  • the network node can be a router or a server in the target network, etc. , which is specifically determined by the type of the target network involved, and is not limited in this application.
  • a node (which can be called the first node) is selected from the node set to be added to obtain a reachable network path starting from the source node and the first node as the relay.
  • This reachable network path can be called the third node.
  • the node set to be added is a set of other network nodes in the target network except the source node. It should be noted that in some embodiments of the present application, the intermediate node of the second reachable network path may not include the Other network nodes in the set to be added except the first node.
  • the intermediate nodes of the second reachable network path do not include the first network node (i.e., the source node) and the last destination node (i.e., the destination node) of the second reachable network path, but refer to the "middle" any network node.
  • the second reachable network path is A ⁇ B ⁇ C ⁇ ... ⁇ X, where A, B, C,..., and X are all network nodes
  • the intermediate node of the second reachable network path refers to B , any network node in C,..., excluding source node A and destination node X. All reachable network paths included in the first reachable network path and the second reachable network path can be called the target path (one or more).
  • the target path After that, it is determined whether there are m (m ⁇ 2) in the target path. If network paths to the same destination node exist, compare these m network paths based on n (n ⁇ 2) preset target factors to obtain the advantageous network path (one or more).
  • the advantageous network path It can be called the first advantageous network path, and the target path is updated based on the first advantageous network path.
  • the updated target path serves as the new first reachable network path. Therefore, updating the target path can also be called updating the first reachable network path.
  • Network path get the updated first reachable network path.
  • the recording of non-optimal paths is introduced. That is, the embodiments of the present application improve the traditional distributed IGP algorithm by recording additional advantageous network paths (i.e.
  • the first advantageous network path (the first advantageous network path obtained by comparing m network paths based on n target factors) can achieve the multi-objective goal of "local optimal path + local optimal path +... + local optimal path ⁇ global optimal path"
  • the end-to-end optimal path that meets the network performance requirements of multi-objective factors is accurately calculated, breaking through the limitations of all existing solutions and improving the capabilities of resource allocation optimization and resource control optimization.
  • the method may further include: deleting the first node from the set of nodes to be added, and repeatedly executing the process of deleting the first node from the set of nodes to be added. Focus on selecting the first node and subsequent steps until the set of nodes to be added is an empty set.
  • comparing m network paths based on n target factors, and obtaining the first advantageous network path may be: comparing the m network paths based on n target factors.
  • a partial order comparison is performed to obtain a second advantageous network path, where each second advantageous network path serves as the first advantageous network path.
  • This implementation method is generally suitable for relatively small networks (for example, the maximum size of real-time network (RTN) is 100 network nodes). Therefore, the number of second advantageous network paths screened out by the partial order comparison method is used. Relatively few. Therefore, even if subsequent iterative calculations are performed based on the full amount of the second dominant network path, the computational overhead of the overall multi-objective factor scenario is not large. For example, in a real-time network with 100 network nodes, all end-to-end operations can be completed in hundreds of milliseconds. Calculation of optimal paths in multi-objective factor scenarios.
  • each obtained second advantageous network path is used as a first advantageous network path to participate in subsequent iterative calculations, so that the first reachable network path obtained in the last update must include end-to-end
  • the optimal path at the end has completeness and accuracy of calculation.
  • the method may further include: when the node set to be added is an empty set after the first node, that is, there is no network node in the node set to be added, then the last The updated first reachable network path is the first reachable network path finally obtained in the current round.
  • each second advantageous network path is used as the first advantageous network path, since the end-to-end optimal path must be included in the first reachable network path last updated in the current round, it can be directly based on The network performance requirements of the data to be transmitted on the target device are determined from the first reachable network path obtained from the last update of the current round, with the source node as the starting point and the destination node corresponding to the data to be transmitted as the end point. , the first target network path is used to transmit the data to be transmitted.
  • each second advantageous network path is used as a first advantageous network path, then the first reachable path obtained by the last update
  • the network path must include the end-to-end optimal path of each destination node. It can be transmitted along the end-to-end optimal path according to the business network performance requirements, thus realizing the calculation of the optimal path in a multi-objective factor scenario for any business requirements.
  • comparing m network paths based on n target factors, and obtaining the first advantageous network path may also be: first, comparing the m network paths based on n target factors.
  • the network paths are compared in partial order to obtain the second dominant network path.
  • q are selected from the p second advantageous network paths as the first advantageous network paths, m ⁇ p ⁇ 2, p ⁇ q ⁇ 1.
  • the selected second advantageous network path is the first advantageous network path, where the selection method may be random selection, or may be based on certain selection rules (such as selecting fewer hops, greater bandwidth, etc.) Selection, this application does not limit this.
  • the method may further include: if the set of nodes to be added is an empty set after deleting the first node, that is, there are no network nodes in the set of nodes to be added, then according to the target The network performance requirements of the data to be transmitted on the device are determined from the first reachable network path obtained from the last update, with the source node as the starting point and the destination node corresponding to the data to be transmitted as the end point.
  • the second target network path is The network path is used to transmit the data to be transmitted.
  • this implementation method can be used as an improved solution for large-scale networks.
  • services with special needs such as voice, video and other services with high real-time requirements
  • it can be implemented according to the requirements on the target device.
  • an optimal path is first selected from the first reachable network path obtained from the last update to transmit it first, which can ensure the real-time nature of the service and improve the user experience.
  • the first reachable network path obtained by the last update in the current round is obtained based on the selected second advantageous network path, so that the first reachable network path calculated in the current round based on partial information
  • the reachable network path may not include the end-to-end optimal path.
  • the embodiment of the present application adopts a multi-round calculation method to gradually make the end-to-end path calculated based on the partially selected second advantageous network path each time. Converging to the global optimal path. Specifically, it can be first determined that when there are at least p second advantageous network paths, the current node set to be added is the target node set; then, the target node set is used as the new node set to be added.
  • step of selecting the first node from the set of nodes to be added is performed once to obtain the second reachable network path with the source node as the starting point and the first node as the relay and subsequent steps are one round.
  • q are selected from the p second advantageous network paths as the first advantageous network paths.
  • the operation can be randomly selected, but in subsequent rounds of calculations, the optimal path among the first advantageous network paths selected in the previous round can be used as one of the feasible solutions to iterate to the next round. For example, assume that there are currently 10 dominant paths, namely paths 1 to 10. Paths 2, 3, and 7 are randomly selected in the first round.
  • path 3 will be Record it, during the next iterative calculation, three more paths 1, 5, and 8 were randomly selected; plus the local optimal path 3 from the last time, there will be a total of four paths 1, 3, 5, and 8 this time. Participate in the calculation of subsequent paths, then record the current local optimal path (such as 5), and continue iterating until the first reachable network path obtained in the last round reaches the convergence condition or reaches the preset number of rounds.
  • the multi-round calculation method may also be: repeatedly executing the determination of the first reachable network path with the source node as the starting point and the source node's directly connected node as the end point, and thereafter steps until the target path obtained in the last round reaches the convergence condition or reaches the preset number of rounds.
  • the real-time performance of network services in multi-objective factor scenarios in large-scale networks is improved.
  • the implementation method of this application does not pursue an accurate calculation of the end-to-end optimal path at one time.
  • Such calculation overhead is too large and will affect the real-time performance of network services.
  • the embodiment of the present application improves the method of calculating the optimal path at once, and designs a progressive calculation method that selects some advantageous paths and combines multiple rounds. That is, the first round of calculation quickly calculates an approximate end-to-end path based on a small amount of path information. end-optimal path, so that real-time services can initiate service data transmission on the approximately optimal path in a timely manner, and then continuously optimize the accuracy of the approximately optimal solution through multiple rounds of iterative calculations until it converges to the true optimal path.
  • the target network path that is transmitting the data to be transmitted in the current round is the second target network path
  • the obtained target network path (for example, the optimal target network path) that meets the preset conditions is the third target network path, which means that the network performance of the third target network path is better than the second target network path.
  • the transmission path of the data to be transmitted can be switched from the second target network path to the third target network path. Switching methods include but are not limited to: switching modes at any time and switching modes once.
  • the switching mode at any time is to switch as long as the network performance (ie, the third target network path) in the first reachable network path calculated in the next round is better than the second target network path currently undergoing data transmission.
  • the principle of this switching is: as long as a better target network path is generated, it will be switched.
  • the one-time switching mode is that until the first reachable network path obtained in the last round reaches the convergence condition or reaches the preset number of rounds, the data to be transmitted always passes through the second target network path obtained in the current round (i.e., the first round). Transmit, wait for all rounds to end, and then select the third target network path that meets the preset conditions (for example, the optimal target network path in all rounds) from the first reachable network paths obtained in all rounds. switch.
  • the transmission path of the data to be sent can be switched at any time, or it can be switched once after finding the optimal one.
  • the advantage of switching at any time is: The transmission path for transmitting data is always maintained on the currently calculated optimal network path, which improves transmission efficiency.
  • the advantage of one-time switching is that there is no need to frequently change the transmission path for data to be transmitted, ensuring the stability of the transmission path. In specific application scenarios, the switching mode can be selected based on actual needs, which is flexible.
  • the method of switching the transmission path of the data to be transmitted from the second target network path to the third target network path may be: obtaining a switching instruction.
  • the switching instruction It is used to instruct the source node to wait for a preset period of time before initiating the transmission of untransmitted data packets in the data to be transmitted on the third target network path.
  • the embodiment of the present application provides a solution to the problem of data disorder and reduces the data packet loss rate.
  • the m network paths are compared in partial order based on n target factors to obtain the second advantageous network path.
  • the specific implementation method may be: first, based on the n Target factors, construct m performance arrays of these m network paths. Each performance array includes n elements arranged in order. One network path corresponds to one performance array, and one element corresponds to the selection of a target factor on the corresponding network path. value.
  • each element can be a specific value (such as bandwidth 50, delay 15, etc.), or a specific value obtained for the value range (such as a certain bandwidth range [20,50 ] has multiple values, and the specific value obtained by calculating the average, median, weighted sum, normalization, etc.) is not limited in this application.
  • the preset n target factors are metric-1, metric-2,..., metric-n (metric can be any indicator, such as bandwidth, delay, packet loss rate and other network performance indicators, or it can be any Conditional restriction target, such as the total number of hops in the path does not exceed 5 hops, etc.), and there are 2 network paths to the same destination node (i.e.
  • 2 performance arrays respectively It is the performance array (metric-a1, metric-a2, ..., metric-an) corresponding to path A and the performance array (metric-b1, metric-b2, ..., metric-bn) corresponding to path B
  • metric-a1 , metric-a2,..., metric-an are the specific values of each corresponding target factor on path A
  • metric-b1, metric-b2,..., metric-bn are the specific values of each corresponding target factor on path B.
  • the network path corresponding to the data is the second advantageous network path, and the network path corresponding to the second performance data is the non-advantage network path, where the first performance array and the second performance array are any two of the m performance arrays.
  • path A is considered to be
  • path B is a non-advantage path, and path B will be eliminated from the first reachable network paths (that is, not recorded).
  • the comparison result of comparing the value size of the elements at each corresponding position in the m performance arrays may also exist in another situation, that is, there is a first element in the first performance array
  • the value of is greater than or equal to the value of the element at the corresponding position in the second performance array
  • the value of the second element is less than or equal to the value of the element at the corresponding position in the second performance array.
  • it is determined that the network path corresponding to the first performance array and the network path corresponding to the second performance array are both second advantageous network paths, where the first element and the second element are the any two elements.
  • the performance array corresponding to path A is (metric-a1, metric-a2, ..., metric-an)
  • the performance array corresponding to path B is (metric-b1, metric-b2, ..., metric-bn)
  • path A is considered to be the stated The second dominant network path (i.e.
  • the method of selecting a network node as the first node from the set of nodes to be added may be random selection, or may be based on the network performance requirements of the data to be transmitted on the target device, Select a network node that meets the preset performance requirements from the set of nodes to be added as the first node.
  • the implementation of updating the first reachable network path based on the obtained first advantageous network path may be: for the situation where there are m network paths to the same destination node , only the first advantageous network path is retained among the first reachable network paths.
  • network paths that become non-dominant in comparison will be removed from the first reachable network path and will no longer participate in subsequent iterative processes.
  • Non-dominant network paths that do not need to be recorded will be filtered out in real time. (i.e. real-time pruning) to minimize computational overhead.
  • the target factor may be a network performance index.
  • the calculation logic is all based on the single dimension of "seeking optimality" To present, for example, find the optimal path for delay, the optimal path for packet loss, etc. In actual application scenarios, not all indicators must be optimal. Sometimes it is enough to optimize some indicators to within a certain threshold, such as the delay ⁇ 300ms, bandwidth >500Mbps, and hop count no more than 4.
  • conditional restriction targets such target factors that do not require optimal solutions are called conditional restriction targets. Therefore, in some implementations of this application, the target factors may also be conditional target targets, such as delay ⁇ 300ms, bandwidth >500Mbps, the total number of hops in the network path does not exceed the preset number of hops, etc. Specifically, this application targets The specific types of factors are not limited and can be set based on specific application scenarios and needs.
  • conditional target When the application's network performance requirements include both network performance indicators and conditional targets, then before the conditional target reaches the threshold, the conditional target is converted into a specific indicator value and participates in the calculation of the first advantageous path; when the conditional target After reaching the threshold, it will no longer participate in the calculation of the first advantageous path (that is, the corresponding network path will be directly eliminated).
  • a processing method is designed to convert the conditional target into an optimization index.
  • the parameters corresponding to the conditional target are not reached when the conditional target is not reached.
  • the optimization index is uniformly processed and participates in the partial order comparison of the performance array together with other network performance targets, thereby ensuring that the optimal solution will not be missed during the selection process of advantageous paths, so that the solution of the embodiment of this application can be guaranteed under any business requirements.
  • the accuracy of network path calculation in multi-objective factor scenarios means that the end-to-end optimal path can be correctly calculated in any complex multi-objective factor scenario.
  • the network performance indicators include at least any one of the following: bandwidth, delay, packet loss rate, jitter, and cost.
  • the target network may be an Overlay network.
  • a typical Overlay network scenario is a real-time network RTN carrying audio and video services. The RTN will adjust the delay, packet loss, and jitter based on the audio or video services. Based on the different requirements of network performance factors, the optimal end-to-end overlay network path is comprehensively calculated to meet the audio and video transmission requirements.
  • the target network can also be an underlay network. Typical underlay network scenarios include business data transmission scenarios between campus networks or cloud networks.
  • the cloud service provider can based on the VIP levels of different cloud users, Provide users with paths of different performance qualities. For example, the delay of the gold medal path is ⁇ 10ms and the packet loss is ⁇ 5%, the delay of the silver medal path is ⁇ 15ms and the packet loss is ⁇ 5%, the latency of the bronze medal path is ⁇ 20ms and the packet loss is ⁇ 5%. 10% etc. Specifically, this application does not limit the specific type of the target network.
  • the networks to which the network path calculation method provided by the embodiments of the present application are applicable are specifically described, and are of universal applicability.
  • the second aspect of the embodiments of the present application provides a network device that has the function of implementing the method of the above-mentioned first aspect or any possible implementation of the first aspect.
  • This function can be implemented by hardware, or it can be implemented by hardware executing corresponding software.
  • the hardware or software includes one or more modules corresponding to the above functions.
  • the third aspect of the embodiment of the present application provides a computer device, which may include a memory, a processor, and a bus system.
  • the memory is used to store programs, and the processor is used to call the program stored in the memory to execute the first aspect of the embodiment of the present application. Or any possible implementation method of the first aspect.
  • the fourth aspect of the embodiments of the present application provides a computer-readable storage medium.
  • the computer-readable storage medium stores instructions. When run on a computer, the computer can execute the first aspect or any one of the first aspects. Possible implementation methods.
  • the fifth aspect of the embodiment of the present application provides a computer program that, when run on a computer, causes the computer to execute the method of the above-mentioned first aspect or any possible implementation of the first aspect.
  • the sixth aspect of the embodiment of the present application provides a chip.
  • the chip (such as a CPU) includes at least one processor and at least one interface circuit.
  • the interface circuit is coupled to the processor.
  • the at least one interface circuit is used to perform a transceiver function. and sends the instructions to at least one processor.
  • the at least one processor is used to run a computer program or instructions, which has the function of implementing the method of the above-mentioned first aspect or any of the possible implementation methods of the first aspect.
  • This function can be implemented by hardware.
  • the hardware or software includes one or more modules corresponding to the above functions.
  • the interface circuit is used to communicate with other modules outside the chip.
  • Figure 1 is a schematic diagram of an example of calculating the optimal network path using the classic IGP routing calculation principle provided by the embodiment of the present application;
  • Figure 2 is an application scenario diagram of the Internet Overlay technology provided by the embodiment of this application.
  • Figure 3 is an architectural schematic diagram of the centralized algorithm provided by the embodiment of the present application.
  • Figure 4 is a schematic diagram of the principle of calculating network paths using the classic IGP distributed algorithm provided by the embodiment of the present application;
  • Figure 5 is a schematic diagram of a principle of the network path calculation method provided by the implementation of the present application.
  • Figure 6 is a schematic diagram illustrating the impact of introducing non-optimal path records on computational complexity provided by the embodiment of the present application.
  • Figure 7 is a schematic flow chart of a network path calculation method provided by an embodiment of the present application.
  • Figure 8 is a schematic diagram of an example of determining the first reachable network path provided by the embodiment of the present application.
  • Figure 9 is a schematic diagram of an example of determining a second reachable network path provided by an embodiment of the present application.
  • Figure 10 is a schematic diagram of an example of a partial order comparison method provided by an embodiment of the present application.
  • Figure 11 is a schematic diagram showing that the number of second advantageous network paths in a large-scale network gradually increases with the iterative process provided by the embodiment of the present application;
  • Figure 12 is a schematic diagram of an example of iterative calculation provided by the embodiment of the present application.
  • Figure 13 is a schematic design diagram of the multi-objective factor routing table provided by the embodiment of the present application.
  • Figure 14 is a schematic diagram of a calculation process for performing multiple rounds of random selection and calculation of target paths provided by the embodiment of the present application;
  • Figure 15 is a schematic diagram of a method for solving data transmission disorder caused by path switching provided by the embodiment of the present application.
  • Figure 16 is a schematic diagram of an application scenario of audio and video service routing in the RTN network provided by the embodiment of the present application;
  • Figure 17 is a schematic diagram comparing the calculation accuracy and performance of this solution and the existing multi-path solution of consumer cloud RTN under different RTN network scales provided by the embodiment of the present application;
  • Figure 18 is a schematic diagram comparing the calculation results of the solution of the present application and the existing solution provided by the embodiment of the present application;
  • Figure 19 is a schematic diagram of a scenario where the calculation method of Example 1 is inaccurate when there is a conditional restriction target provided by the embodiment of the present application;
  • Figure 20 is a schematic diagram of a scenario of the calculation method of Example 2 when there is a conditional restriction target provided by the embodiment of the present application;
  • Figure 21 is a schematic structural diagram of a network device provided by an embodiment of the present application.
  • Figure 22 is another schematic structural diagram of a network device provided by an embodiment of the present application.
  • the first aspect of this application provides a network path calculation method, which is used to solve the problem of the optimal network path of multi-objective factors that cannot be solved by the classic IGP distributed algorithm, and to design a distributed multi-objective factor that can calculate any business requirements.
  • the network path calculation method improves the ability of resource allocation optimization and resource control optimization.
  • Underlay network refers to the network with the basic forwarding architecture of the current data center network. As long as any two points on the data center network are reachable, it refers to the physical base layer.
  • the Underlay network can be improved through technical improvements of the physical network equipment itself, expansion of the number of equipment, bandwidth scale, etc., which includes all existing traditional network technologies.
  • the transmission path of the Internet is affected by commercial relationships and is often not the same in the network. the shortest path. For example, transmissions between two Asian nodes may be routed to Europe, increasing end-to-end latency. At the same time, because Internet routing is not aware of path performance, failures or congestion on the path are often difficult to avoid, or require a long convergence time.
  • Overlay refers to a virtualization technology model superimposed on the network architecture. Its general framework is a condition for not making large-scale modifications to the basic network. Under this circumstance, the application can be carried on the network and separated from other network services, and it is mainly based on IP-based basic network technology. Overlay technology builds a virtual network on top of the existing physical network, and upper-layer applications are only related to the virtual network.
  • FIG. 2 is an application scenario diagram of Internet Overlay technology.
  • the default link between the source device and the destination device is the network path shown by the dotted line. Assume that in the domain The cross-domain link between domain A and domain B is currently facing severe congestion, so routing based on the default link will lead to end-to-end performance degradation.
  • PoPs are deployed in domain A, domain B, and domain C respectively.
  • the PoP deployed on domain A is called PoP1
  • the PoP deployed on domain B is called PoP2
  • the PoP deployed on domain C is called PoP2.
  • the overlay backbone network controls the route from PoP1 to PoP3 as PoP1 ⁇ PoP2 ⁇ PoP3, thereby effectively bypassing the congested link between domain A and domain B and improving the overall end-to-end performance.
  • Real-time network is a specific network form of Overlay network. It is a new architecture of real-time audio and video transmission network. It is similar to the content delivery network (CDN) of live broadcast.
  • the real-time network is designed for scenarios that have strong requirements for real-time audio and video.
  • the global end-to-end delay can be controlled within 300ms through the real-time network.
  • the network nodes included in the real-time network may also be called RTN nodes.
  • the centralized algorithm Since the centralized algorithm records the full amount of path information, unlike the classic IGP distributed algorithm which only records the local optimal path, the centralized algorithm has a larger traversal space and can accurately search all paths to meet the application network performance requirements. The optimal path, so there will be no inaccurate calculation problems that occur in the classic IGP distributed algorithm in multi-objective factor scenarios.
  • centralized algorithms have problems with poor real-time performance and scalability. Centralized algorithms usually have huge computational overhead. As the network scale expands, the time complexity of accurately solving the optimal path that meets application SLA requirements is unacceptable.
  • some parts of the industry use distributed approximate optimal path algorithms, including: IGP distributed path algorithm based on multi-objective factor weighted normalization, approximate optimal path algorithm based on single-objective factor KSP, network-based Optimal path algorithm for multiple single-objective factors of sharding, etc.
  • IGP distributed path algorithm based on weighted normalization of multi-objective factors normalizes multiple objective factors into a comprehensive parameter through weighting, and calculates the IGP single-factor optimal path based on the comprehensive parameter.
  • this type of method focuses on how to design the weight distribution of different target factors so that the calculation results meet the constraints.
  • this weighted normalization method can comprehensively consider the impact of various target factors on application performance, that is, a weighted approach can be used to amplify the dominant ability of key target factors in path calculation, it cannot perform precise parameter matching according to application logic. (For example, it is impossible to accurately calculate paths with delay ⁇ 300ms, bandwidth >500Mbps, and jitter ⁇ 50ms. The weights of delay, bandwidth, or jitter can only be enlarged as much as possible to approximately meet the network performance requirements of the application.) It can only be calculated based on the application. The importance of each target factor corresponding to the network performance requirements is relatively coarse-grained weighted, which cannot meet the precise SLA requirements of network applications.
  • a new type of distributed method proposes to first calculate the optimal paths of top K based on a single factor to form a candidate solution set, and then filter out the optimal paths based on the application's network performance requirements in the candidate solution set, which is approximately equivalent to Global optimal path (i.e., approximate optimal path algorithm based on single-objective factor KSP).
  • Global optimal path i.e., approximate optimal path algorithm based on single-objective factor KSP.
  • the optimal path algorithm for multiple single-target factors based on network sharding is a logical network slicing method combined with physical links to achieve single-target factor routing calculation based on different target factors in different network shards.
  • This type of The representative solution of this method is the Felx-Algo solution jointly promoted by CISCO and Juniper.
  • the Flex-Algo solution still uses the standard IGP algorithm. The difference is that this solution allows switching of different target factors in the network with the same topology.
  • the main problem of existing distributed approximate optimal path algorithms is that they cannot accurately calculate the multi-objective optimal path that meets the application business requirements.
  • the reason for this problem is that the existing distributed approximate optimal path algorithm does not fundamentally change the IGP algorithm. Therefore, if additional target factors are introduced without changing the algorithm, usually only the approximate optimal path can be calculated. Optimal path, usually the calculation result is inaccurate, and it is impossible to obtain the global optimal path in the multi-objective factor scenario of "local optimal path + local optimal path +... + local optimal path ⁇ global optimal path" .
  • this application improves the traditional distributed IGP algorithm.
  • it can achieve "local optimal path + local optimal path +... + local optimal path ⁇ global optimal path”.
  • the end-to-end optimal path that meets the network performance requirements of applying multi-objective factors is accurately calculated with minimal computing overhead, breaking through the limitations of all existing solutions and improving resource allocation optimization and The ability to control and optimize resources.
  • the network performance requirements of the video service are: first select the path with the largest bandwidth, and when multiple paths are found, When the path bandwidths are equal, the path with the lowest delay is selected.
  • This application can use a performance array containing 2 elements to identify the bandwidth and delay of each hop link, such as (20,10) to represent the link. The bandwidth is 20 and the delay is 10 (the dimensions are ignored here).
  • the source node (here assumed to be node u in Figure 4) will add a reachable node in Figure 4 to the optimal path tree in each iteration, and update the current optimal path tree.
  • the optimal path tree Under the optimal path tree, the current optimal path and path performance from the source node to all other destination nodes (w, v, x).
  • node w and node v are added to the shortest path tree.
  • the routing table entry records that the optimal path from node u to node w is u ⁇ w, and its performance is (20,1). That is, the bandwidth is 20 and the delay is 1.
  • the optimal path from node u to node v recorded in the routing table entry is u ⁇ w ⁇ v, and its performance is (20,5). It should be noted here that there is another path u ⁇ v from node u to node v, and its performance is (10,2). However, according to the network performance requirements of the application, the path with the largest bandwidth is preferred, so the classic IGP distributed The algorithm believes that the performance of path u ⁇ w ⁇ v (20,5) is better than the performance of path u ⁇ v (10,2) because the primary performance indicator "bandwidth" of path u ⁇ w ⁇ v is larger. The classic IGP distributed algorithm only records the optimal path to each destination node.
  • the path u ⁇ w ⁇ v with a performance of (20,5) from node u to node v will not be recorded.
  • node u finds that it can reach node x via node w or node v.
  • the classic IGP distributed algorithm will sequentially compare the performance of the end-to-end path from node u to node x in the two situations, and record the optimal performance path. The specific process is as follows:
  • the performance of the optimal path u ⁇ w from node u to node w is (20,1), plus the performance of the direct path from node w to node x is (5,1),
  • the source node u comprehensively compares the performance of the end-to-end paths in the two situations and finds that the performance of the path transited by node v (10,8) is better than the performance of the end-to-end path transited by node w (5,2) , because the first optimization goal "bandwidth" is larger. Therefore, under the classic IGP distributed algorithm, the finally calculated optimal path from source node u to destination node x is: u ⁇ w ⁇ v ⁇ x, and its performance is (10,8).
  • the embodiment of this application introduces the recording of local non-optimal paths based on the classic IGP distributed algorithm.
  • two paths to node v will be calculated, namely path u ⁇ w ⁇ v and path u ⁇ v.
  • the performance of the path u ⁇ w ⁇ v is (20,5)
  • the performance of the path u ⁇ v is (10,2).
  • the performance of path u ⁇ v is not as good as the performance of path u ⁇ w ⁇ v according to the network performance requirements of the business, it is not the optimal path.
  • the path will also be recorded.
  • the embodiment of the present application can calculate the real end-to-end optimal path u ⁇ v ⁇ x based on the local non-optimal path u ⁇ v.
  • Another goal of the embodiments of the present application is to find the minimum computational cost that can ensure the accuracy of path calculation in a multi-objective factor scenario, that is, to record the minimum amount of local non-optimal paths to ensure the accuracy of the multi-objective factor scenario.
  • embodiments of this application design a partial order comparison method based on performance arrays, which can filter out local non-optimal paths that do not need to be recorded in real time during the iterative calculation process, and minimize the problem through real-time pruning. Reduce computational overhead.
  • each network node can independently execute the network path calculation method described in the embodiments of this application to calculate the path to the final destination using this network node as the source node.
  • the advantageous network path of the multi-objective factors of the destination node is obtained, and a local routing table is formed based on the obtained advantageous network path.
  • the subject performing the following steps 701 to 707 is the source node.
  • the execution can also be performed through the control node.
  • the calculation method of the network path described in the embodiment of the present application is to calculate the advantageous network path of multi-objective factors with a certain network node as the source node and reaching the final destination node.
  • the calculated advantageous network path is then sent to the network system.
  • other network nodes in the network to form a local routing table.
  • the subject that performs the following step 701 to the subsequent step 707 is the control node.
  • the execution subject of the network path calculation method provided by the embodiment of the present application can be the current source node, or it can be a control node with unified management in the target network.
  • the specific operations of different execution subjects in each step will be introduced respectively.
  • the source node and other network nodes in the target network can obtain network topology and link performance information (such as delay, bandwidth, packet loss, etc.) through the notification of IGP information. rate, etc.), when the application on the target device connected to the source node needs to transmit data (i.e., the data to be sent as described above), the application on the target device will meet its own application requirements (such as network performance requirements) It is formalized in the data packet, and then the data packet is passed to the source node. After receiving the data packet and parsing it, the source node calculates the network path based on the application requirements, network topology, and link performance information.
  • network topology and link performance information such as delay, bandwidth, packet loss, etc.
  • the execution subject is a control node
  • the network topology and link performance information is notified to other network nodes in the target network through the control node.
  • the application on the target device connected to the source node needs to transmit data
  • the application on the target device The application formalizes its application requirements in the data packet, and then passes the data packet to the control node.
  • the control node comprehensively analyzes the application requirements, network topology, and link performance information to conduct network operations. Calculate the path and then notify the calculated target path to other network nodes in the target network.
  • Figure 7 is a schematic flowchart of a network path calculation method provided by an embodiment of the present application. Specifically, it may include the following steps:
  • a reachable network path starting from a source node and ending with a directly connected node of the source node.
  • This reachable network path may be called a first reachable network path (it may be one or more).
  • directly connected nodes refer to nodes that are directly connected to the source node without being relayed by other nodes.
  • the reachable network path not only includes the network nodes involved in the reachable network path, but also includes the overall network performance of the entire reachable network path (such as the delay, bandwidth, Packet loss rate, etc.).
  • the source node is a network node in the network (which can be called the target network) that the target device (that is, the device with data to be sent) is connected to.
  • the network node can be a router or a server in the target network, etc. , which is specifically determined by the type of the target network involved, and is not limited in this application. For example, assuming that the target network is an Overlay network, and there is a device 1 (such as a mobile phone, a host, etc.) that is nearby accessed to the network node A in the Overlay network, then for the device 1, the network node A is the source node. Similarly, if another device 2 has nearby access to network node B in the overlay network, then for the device 2, network node B is the source node.
  • a device 1 such as a mobile phone, a host, etc.
  • each network node in the target network may become a source node corresponding to a certain target device, and the source node is for a specific device that needs to send data.
  • the source node is for a specific device that needs to send data.
  • only a specific target device and the network node accessed by the target device are used as source nodes for explanation.
  • the target network may be an Overlay network.
  • a typical Overlay network scenario is a real-time network RTN carrying audio and video services. The RTN will respond to delay, packet loss, Based on the different requirements of network performance factors such as jitter, the optimal end-to-end overlay network path is comprehensively calculated to meet the audio and video transmission requirements.
  • the target network can also be an underlay network. Typical underlay network scenarios include business data transmission scenarios between campus networks or cloud networks.
  • the cloud service provider can based on the VIP levels of different cloud users, Provide users with paths of different performance qualities. For example, the delay of the gold medal path is ⁇ 10ms and the packet loss is ⁇ 5%, the delay of the silver medal path is ⁇ 15ms and the packet loss is ⁇ 5%, the latency of the bronze medal path is ⁇ 20ms and the packet loss is ⁇ 5%. 10% etc. Specifically, this application does not limit the specific type of the target network.
  • the network topology determined in the target network includes a total of 10 network nodes, namely nodes 1-9, and it is assumed that the source node is node 0, and other network nodes are nodes 1-9. It is also assumed that based on the network topology, it is known that there are 4 adjacent nodes (i.e. directly connected nodes) reachable by node 0, namely node 1, node 2, node 3, and node 4.
  • the source node There are 4 first reachable network paths with the starting point and the directly connected node of the source node as the ending point, respectively: node 0 ⁇ node 1, node 0 ⁇ node 2, node 0 ⁇ node 3, node 0 ⁇ node 4, as For ease of explanation, these four first reachable network paths can be recorded as ⁇ 0 ⁇ 1,0 ⁇ 2,0 ⁇ 3,0 ⁇ 4 ⁇ .
  • step 701 can be the source node or the control node. Depending on the execution subject, the specific execution process of step 701 will be slightly different, which are introduced below:
  • the execution subject is the source node
  • the specific implementation method of determining the first reachable network path with the source node as the starting point and the directly connected node of the source node as the end point may be: the source node and other network nodes in the target network They can obtain network topology and link performance information (such as delay, bandwidth, packet loss rate, jitter, etc.) through IGP information notifications.
  • the source node determines the first reachable network path with the source node as the starting point and the source node's directly connected node as the end point based on the network topology and link performance information.
  • the specific implementation method of determining the first reachable network path starting from the source node and ending with the directly connected node of the source node may be: the control node obtains the network topology and link performance information.
  • the control node can collect performance measurement data of the target network every certain time period (for example, 1 minute), and use the collected performance measurement data to determine the connectivity status between each network node in the target network, thereby Integrating the overall network topology, the control node can also obtain link performance information based on the collected performance measurement data.
  • the control node determines the first reachable network path with the source node as the starting point and the source node's directly connected node as the end point based on the network topology and link performance information.
  • the network topology of the target network there can be many implementation methods for determining the network topology of the target network. As an example, it can be when the network performance such as delay, bandwidth, jitter, packet loss, etc. between two network nodes reaches or fails to reach the expected level. If a threshold is set, the two network nodes are considered to be disconnected. For example, when the packet loss rate between the two network nodes reaches a preset threshold (eg, 80%), the two network nodes are considered to be disconnected. As another example, you can also customize whether two network nodes in the target network are connected. For example, when the maintenance personnel need to disconnect the connection between network node A and network node B based on other restrictions, then Maintenance personnel can customize the disconnection between network node A and network node B.
  • a threshold e.g, 80%
  • step 702. Determine whether the node set to be added is an empty set. If not, perform step 703; if yes, perform step 707.
  • step 703 it is determined whether the node set to be added is an empty set, where the node set to be added is a set of other network nodes in the target network except the source node. If it is determined that the node set to be added is not an empty set (that is, there are network nodes in the node set to be added), then step 703 is executed; if it is determined that the node set to be added is an empty set (that is, there are no network nodes in the node set to be added), Then execute step 707.
  • step 702 Figure 8 is still used as an example for illustration below: Assume that the network topology determined in the target network includes a total of 10 network nodes, namely nodes 0-9, and assuming that the source node is node 0, then the node to be added The set includes nodes 1-9. For ease of explanation, the set of nodes to be added can be recorded as ⁇ 1,2,3,4,5,6,7,8,9 ⁇ .
  • step 702 the set of nodes to be added can be determined.
  • the added node set is not an empty set (because there are still 9 network nodes 1-9 in total). In this case, it will jump to step 703 to perform subsequent steps 703-706. It should be noted that the steps 706 is a repeated execution process, and is executed repeatedly until the set of nodes to be added is empty. If the node set to be added is empty, step 707 is executed.
  • step 702 performed by the execution subject is similar, and therefore will not be described separately here.
  • a node (which can be called the first node) is selected from the node set to be added to obtain the reachable path starting from the source node and the first node as the relay.
  • the reachable network path may be called the second reachable network path.
  • the intermediate nodes of the second reachable network path do not include other network nodes in the set to be added except the first node. Moreover, the intermediate nodes of the second reachable network path do not include the first network node (i.e., the source node) and the last destination node (i.e., the destination node) of the second reachable network path, but refer to the "middle" any network node.
  • the intermediate node of the second reachable network path refers to B , any network node in C,..., excluding source node A and destination node X.
  • the method of selecting a network node as the first node from the set of nodes to be added may be random selection, or may be based on the network of the target device on which the data is to be transmitted.
  • Performance requirements Select a network node that meets the preset performance requirements from the set of nodes to be added as the first node.
  • a network node can be randomly selected as the first node from the node set ⁇ 1,2,3,4,5,6,7,8,9 ⁇ to be added.
  • the network performance requirements of the data to be transmitted can also be based on the network performance requirements of the data to be transmitted (that is, the path with the lowest delay is given priority, and when multiple paths have the lowest delay at the same time, the path with the lowest delay is selected first.
  • the path with the smallest packet loss rate selects the expected local path to node 0 from the set of nodes to be added ⁇ 1,2,3,4,5,6,7,8,9 ⁇ (assuming that each network node in the target network are all connected to the source node, so it is called the "expected local path" rather than the real local path).
  • the network node with the lowest delay is used as the first node.
  • the network node with the lowest expected local path delay is node 3.
  • the first node selected is node 3.
  • the advantage of this selection method is that it can pre-select relatively more advantageous network nodes to reduce the number of subsequent advantageous network paths and the number of comparisons, thereby improving iteration efficiency. .
  • Figure 9 is used as an example below: Assume that the network topology determined in the target network includes a total of 10 network nodes, namely nodes 1-9, and assuming that the source node is node 0, then the nodes to be added are concentrated It includes nodes 1-9. For the convenience of explanation, the node set to be added can be recorded as ⁇ 1, 2, 3, 4, 5, 6, 7, 8, 9 ⁇ . It is also assumed that the node set to be added is selected from the node set to be added. If one node is node 3, then in the existing network topology, find a second reachable network path with node 0 as the starting point and node 3 as the relay, and the intermediate nodes of the second reachable network path cannot include nodes.
  • step 703 performed by the execution subject is similar, so it will not be described separately here.
  • the target path includes the first reachable network path and the second reachable network path, m ⁇ 2, n ⁇ 2.
  • all reachable network paths included in the first reachable network path and the second reachable network path can be called target paths (one or more).
  • the target factor may be a network performance indicator, such as bandwidth, delay, packet loss rate, jitter, cost, etc.
  • a network performance indicator such as bandwidth, delay, packet loss rate, jitter, cost, etc.
  • the calculation logic is presented in the single dimension of "seeking the optimal", such as seeking the optimal path with delay, Optimal path for packet loss, etc. In actual application scenarios, not all indicators must be optimal.
  • conditional restriction targets such target factors that do not require optimal solutions are called conditional restriction targets. Therefore, in some implementations of this application, the target factors may also be conditional restriction targets, such as delay ⁇ 300ms, bandwidth > 500Mbps, the total number of hops in the network path does not exceed the preset number of hops, etc. Specifically, this application targets The specific types of factors are not limited and can be set based on specific application scenarios and needs.
  • the conditional restriction target when the network performance requirements of the application include both network performance indicators and conditional restriction targets, then before the conditional restriction target reaches the threshold, the conditional restriction target is converted into a specific indicator value and participates in the first advantage path. calculation; when the conditional restriction target reaches the threshold, it will no longer participate in the calculation of the first advantageous path (that is, the corresponding network path will be directly eliminated).
  • Figure 9 is still used as an example for illustration below: It can be seen from the above description that the obtained target paths are 9, which are ⁇ 0 ⁇ 1,0 ⁇ 3 ⁇ 1,0 ⁇ 2,0 ⁇ 3. ⁇ 2,0 ⁇ 3,0 ⁇ 4,0 ⁇ 3 ⁇ 7,0 ⁇ 3 ⁇ 8,0 ⁇ 3 ⁇ 9 ⁇ .
  • 9 target paths there are 2 groups of at least two network paths with node 0 as the source node and reaching the same destination node.
  • One group is 2 network paths that reach the same destination node 1: ⁇ 0 ⁇ 1,0 ⁇ 3 ⁇ 1 ⁇ , and the other group has two network paths to the same destination node 2: ⁇ 0 ⁇ 2,0 ⁇ 3 ⁇ 2 ⁇ .
  • the two network paths ⁇ 0 ⁇ 1,0 ⁇ 3 ⁇ 1 ⁇ Comparison is performed to obtain one or more first advantageous network paths corresponding to the first group of network paths, where the number of first advantageous network paths is less than or equal to the number of the first group of network paths; similarly, for the second group
  • the network path ⁇ 0 ⁇ 2,0 ⁇ 3 ⁇ 2 ⁇ is also compared with the two network paths ⁇ 0 ⁇ 2,0 ⁇ 3 ⁇ 2 ⁇ based on the n preset target factors to obtain the second network path ⁇ 0 ⁇ 2,0 ⁇ 3 ⁇ 2 ⁇ .
  • One or more first advantageous network paths corresponding to the group of network paths wherein the number of the first advantageous network paths is less than or equal to the number of the second group of network paths.
  • the target path is updated based on the obtained first advantageous network path corresponding to each group, and the updated target path is obtained.
  • the implementation method of updating the target path based on the obtained first advantageous network path may be: when there are m network paths to the same destination node, in the target Only the first advantageous network path is retained in the path. That is to say, the network path that becomes non-advantageous in the comparison will be eliminated from the target path and will no longer participate in the subsequent iterative process. Non-advantageous network paths that do not need to be recorded will be filtered out in real time. Advantage network paths (i.e., real-time pruning) are used to minimize computational overhead.
  • the above example is still used for explanation: Assume that the first advantageous network path finally obtained after comparing the first group of network paths is ⁇ 0 ⁇ 1 ⁇ , and the final advantageous network path obtained after comparing the second group of network paths is ⁇ 0 ⁇ 1 ⁇ .
  • the obtained first advantageous network path is ⁇ 0 ⁇ 3 ⁇ 2 ⁇ , then delete the path ⁇ 0 ⁇ 3 ⁇ 1,0 ⁇ 2 ⁇ among these 9 target paths, and the updated target paths will be 7, respectively.
  • the specific implementation method of obtaining the first advantageous network path can be: performing a partial order comparison of m network paths based on n target factors. After the partial order comparison, the network path is more advantageous or the network cannot be compared. The paths are all regarded as the dominant network paths, and the dominant network path obtained at this time can be called the second dominant network path.
  • n target factors are metric-1, metric-2,..., metric-n (metric can be any indicator, such as bandwidth, delay, packet loss rate and other network performance indicators, or it can be any Conditional restriction target, such as the total number of hops in the path does not exceed 5 hops, etc.), and there are 2 network paths to the same destination node (i.e.
  • 2 performance arrays respectively It is the performance array (metric-a1, metric-a2, ..., metric-an) corresponding to path A and the performance array (metric-b1, metric-b2, ..., metric-bn) corresponding to path B
  • metric-a1 , metric-a2,..., metric-an are the specific values of each corresponding target factor on path A
  • metric-b1, metric-b2,..., metric-bn are the specific values of each corresponding target factor on path B.
  • each element in the first performance array is greater than or equal to the element at the corresponding position in the second performance array.
  • the network path corresponding to the first performance data is the second advantageous network path
  • the network path corresponding to the second performance data is the non-advantage network path, where the first performance array and the second performance array are m Any two of the individual performance arrays.
  • the above example is still used as an example: Since the performance array corresponding to path A is (metric-a1, metric-a2,..., metric-an), the performance array corresponding to path B is (metric-b1, metric -b2,...,metric-bn), if each indicator in the performance array of path A is better than or equal to the indicator at the corresponding position in the performance array of path B, that is: metric_a1 ⁇ metric_b1, metric_a2 ⁇ metric_b2,...,metric_an ⁇ metric_bn, then path A is considered to be the second advantageous network path.
  • path B is a non-advantage path, and path B will be eliminated from the target path (that is, not recorded).
  • the network path corresponding to the first performance array and the network path corresponding to the second performance array are both second advantageous network paths, where the first element and the second element are the any two elements.
  • the above example is also used as an example: Since the performance array corresponding to path A is (metric-a1, metric-a2,..., metric-an), the performance array corresponding to path B is (metric-b1, metric -b2,...,metric-bn), if each indicator in the performance array of path A is better than or equal to the indicator at the corresponding position in the performance array of path B, that is: metric_a1 ⁇ metric_b1, metric_a2 ⁇ metric_b2,...,metric_an ⁇ metric_bn, then path A is considered to be the second advantageous network path (i.e.
  • the network nodes involved in the specific network path are shown in Figure 10, and their performance arrays are P0: (bandwidth 20, delay 5), P1: (bandwidth 10, delay 2), P2: (bandwidth 20, delay 2) Delay 10), P3: (Bandwidth 10, delay 6), P4: (Bandwidth 18, delay 10).
  • paths P2 and P4 do not need to be recorded because both attributes are worse than or equal to P0; path P3 does not need to be recorded because both attributes are worse than or equal to P1. Record; and the advantages and disadvantages of paths P0 and P1 cannot be compared (because the bandwidth of path P0 is better than P1, and the delay of path P1 is better than P0), so these two paths are recorded as the second advantageous path.
  • the partial order comparison method based on performance arrays described in the embodiments of this application achieves maximum path information specification, that is, records the minimum number of non-optimal paths while ensuring the accuracy of multi-objective factor requirements.
  • the proof process is as follows: Assuming that all the second advantageous network paths obtained by the partial order reduction method of performance arrays in the embodiment of this application cannot guarantee the accuracy of the multi-objective factor requirements, it means that a certain hop or several hops in the optimal end-to-end path The local path of the hop is not included in the second advantageous network path calculated by the method of the embodiment of the present application; it is assumed here that a certain hop PathM in the optimal end-to-end path is not included in the third advantageous network path calculated by the method of the embodiment of the present application.
  • the more advantageous network path after partial order comparison or the network path whose advantages and disadvantages cannot be compared will be regarded as the second advantageous network path.
  • the first advantageous network path is obtained based on the obtained second advantageous network path. It should be noted that in the embodiment of the present application, obtaining the first advantageous network path based on the second advantageous network path has different situations. The different situations are described below, including but not limited to:
  • Scenario 1 Each second dominant network path serves as the first dominant network path.
  • the situation generally applies to a relatively small network scale (for example, the maximum size of the RTN network is 100 network nodes), so the number of second advantageous network paths screened out by the partial order comparison method of performance arrays is relatively small. Therefore, even if subsequent iterative calculations are performed based on the full number of second dominant network paths, the computational overhead of the overall multi-objective factor scenario is not large. For example, in an RTN network with 100 network nodes, all end-to-end operations can be completed in hundreds of milliseconds. Calculation of optimal paths in multi-objective factor scenarios.
  • Scenario 2 When there are at least p second advantageous network paths, q are selected from the p second advantageous network paths as the first advantageous network paths, m ⁇ p ⁇ 2, p ⁇ q ⁇ 1.
  • the second most advantageous network path to a subsequent destination node has been expanded to 8 (Path0 ⁇ Path7), thus causing the network path calculation to become increasingly inefficient.
  • the services carried in the network are real-time services, the degradation of computing efficiency of the network path will affect the real-time nature of the services.
  • embodiments of the present application provide an improved solution to further optimize the computing overhead of multi-objective factor scenarios in large-scale networks to meet the needs of real-time services for fast computing.
  • the selected second advantageous network path is the first advantageous network path, where the selection method may be random selection, or may be based on certain selection rules (such as selecting fewer hops, greater bandwidth, etc.) Selection, this application does not limit this. It should be noted here that in some embodiments of the present application, if multiple rounds of calculations need to be repeated, in the first round, q are selected from the p second advantageous network paths as the first advantageous network paths. The operation can be randomly selected, but in subsequent rounds of calculations, the optimal path among the first advantageous network paths selected in the previous round can be used as one of the feasible solutions to iterate to the next round. For example, assume that there are currently 10 dominant paths, namely paths 1 to 10. Paths 2, 3, and 7 are randomly selected in the first round.
  • path 3 will be Record it, during the next iterative calculation, three more paths 1, 5, and 8 were randomly selected; plus the local optimal path 3 from the last time, there will be a total of four paths 1, 3, 5, and 8 this time. Participate in the calculation of subsequent paths, then record the current local optimal path (such as 5), and continue iterating until the target path obtained in the last round reaches the convergence condition or reaches the preset number of rounds.
  • step 704 performed by the execution subject is similar, and therefore will not be described separately here.
  • the first node can be deleted from the set of nodes to be added, and the updated target path can be used as the new first reachable network path.
  • the first advantageous network path finally obtained after comparing the first group of network paths is ⁇ 0 ⁇ 1 ⁇
  • the first advantageous network path finally obtained after comparing the second group of network paths is ⁇ 0 ⁇ 3 ⁇ 2 ⁇
  • the updated target paths will be 7, which are ⁇ 0 ⁇ 1,0 ⁇ 3 ⁇ 2,0 ⁇ 3,0 ⁇ 4,0 ⁇ 3 ⁇ 7,0 ⁇ 3 ⁇ 8,0 ⁇ 3 ⁇ 9.
  • the updated target path ⁇ 0 ⁇ 1,0 ⁇ 3 ⁇ 2,0 ⁇ 3,0 ⁇ 4,0 ⁇ 3 ⁇ 7,0 ⁇ 3 ⁇ 8,0 ⁇ 3 ⁇ 9 ⁇ is used as the new first reachable
  • the network path participates in the subsequent repeated execution of steps 702 to 705, and in this iteration, the network nodes still included after node 3 is deleted from the node set to be added are ⁇ 1, 2, 4, 5, 6, 7 ,8,9 ⁇ .
  • step 705 performed by the execution subject is similar, so it will not be described separately here.
  • steps 702 to 705 are repeatedly executed until the set of nodes to be added is empty.
  • the network topology determined in the target network includes a total of 10 network nodes, namely nodes 1-9, and assume that the source node is node 0, and other networks
  • the nodes are nodes 1-9.
  • node 0 has 4 reachable adjacent nodes (that is, directly connected nodes), namely node 1, node 2, node 3, and node 4.
  • the second reachable network path with node 0 as the starting point and node 3 as the relay can be found as ⁇ 0 ⁇ 3 ⁇ 1,0 ⁇ 3 ⁇ 2,0 ⁇ 3 ⁇ 7,0 ⁇ 3 ⁇ 8,0 ⁇ 3 ⁇ 9 ⁇ .
  • the target path is ⁇ 0 ⁇ 1,0 ⁇ 3 ⁇ 1,0 ⁇ 2,0 ⁇ 3 ⁇ 2,0 ⁇ 3,0 ⁇ 4,0 ⁇ 3 ⁇ 7,0 ⁇ 3 ⁇ 8,0 ⁇ 3 ⁇ 9 ⁇ , 9 items in total.
  • the set is ⁇ 1,2,4,5,6,7,8,9 ⁇ (the number of iterations at this time can be recorded as 1); then, in the second iteration (that is, the number of iterations is recorded as 2), it is judged to be added Whether the node set is empty, as shown in Figure 12, the node set to be added at this time is ⁇ 1,2,4,5,6,7,8,9 ⁇ , assuming that the first node selected from the node set to be added is the node 6, then in the existing network topology, the second reachable network path with node 0 as the starting point and node 6 as the relay can be found as ⁇ 0 ⁇ 3 ⁇ 6 ⁇ 1,0 ⁇ 3 ⁇ 6 ⁇ 2, 0 ⁇ 6 ⁇ 3,0 ⁇ 6 ⁇ 4,0 ⁇ 6 ⁇ 5,0 ⁇ 6 ⁇ , 6 entries in total.
  • the new first reachable network path obtained in the first iteration is ⁇ 0 ⁇ 1,0 ⁇ 3 ⁇ 2,0 ⁇ 3,0 ⁇ 4,0 ⁇ 3 ⁇ 7,0 ⁇ 3 ⁇ 8,0 ⁇ 3 ⁇ 9 ⁇ , 7 items in total.
  • the network paths to the same destination node among these 9 target paths are compared in partial order, that is, ⁇ 0 ⁇ 1,0 ⁇ 3 ⁇ 6 ⁇ 1 ⁇ , ⁇
  • the four groups of network paths 0 ⁇ 3 ⁇ 2,0 ⁇ 3 ⁇ 6 ⁇ 2 ⁇ , ⁇ 0 ⁇ 3,0 ⁇ 6 ⁇ 3 ⁇ , ⁇ 0 ⁇ 4,0 ⁇ 6 ⁇ 4 ⁇ are compared in partial
  • the set of nodes to be added is ⁇ 1,2,4,5,7, 8,9 ⁇ (The number of iterations can be recorded as 2 at this time); after that, follow the similar steps mentioned above to continue to determine whether the node set to be added is empty and the subsequent operation process until the node set to be added is empty.
  • step 706 performed by the execution subject is similar, and therefore will not be described separately here.
  • the target network path starting from the source node and ending with the destination node corresponding to the data to be transmitted from the first reachable network path obtained from the last update.
  • the target The network path is used to transport the data to be transmitted.
  • the first reachable network path obtained in the last update will be the first reachable network path finally obtained in the current round.
  • rounds are different from the number of iterations. Rounds refer to the number of times step 701 to step 706 is executed. Each execution of steps 701 to step 706 is one round; and the number of iterations refers to the number of times steps 701 to 706 are executed. Repeat steps 702 to 706 until the set of nodes to be added is empty. Steps 702 to 705 are executed once for one iteration. One round may include one or more iterations.
  • obtaining the first advantageous network path based on the second advantageous network path has different situations, such as the above-mentioned situation one and situation two.
  • the situations are slightly different for different situations, which are introduced respectively below:
  • Each second dominant network path serves as the first dominant network path.
  • the number of second advantageous network paths screened out by the partial order comparison method of performance arrays is relatively small. Therefore, even if subsequent iterative calculations are performed based on the full amount of the second dominant network path, the computational overhead of the overall multi-objective factor scenario is not large.
  • the end-to-end optimal path must be included in the first reachable network path last updated in the current round. Accordingly, it can be directly based on the network performance requirements of the data to be transmitted on the target device.
  • a network node (such as a source node, a control node, etc.) can record the last updated first reachable network path to all other network nodes in the multi-destination factor routing table, and then proceed according to the network of the data to be transmitted.
  • Performance requirements Calculate the optimal path among the advantageous network paths to each destination node, and mark the optimal path. After the optimal path to all destination nodes is calculated, the network node reads the destination node in the application data packet header. IP address, forward each data packet of the data to be sent to the next hop network node according to the optimal path to the IP address.
  • Figure 12 is still used as an example below: Assume that the first reachable network path obtained by the last update in the current round contains 12 network paths, which are ⁇ 0 ⁇ 1,0 ⁇ 3 ⁇ 6 ⁇ 1,0 ⁇ 7 ⁇ 2,0 ⁇ 8 ⁇ 3,0 ⁇ 4,0 ⁇ 6 ⁇ 5,0 ⁇ 6,0 ⁇ 3 ⁇ 9 ⁇ 7,0 ⁇ 2 ⁇ 8,0 ⁇ 3 ⁇ 8,0 ⁇ 1 ⁇ 8,0 ⁇ 7 ⁇ 9 ⁇ . If the data to be transmitted on the target device (assumed to be host 1, connected to node 0) needs to be sent to the destination device (assumed to be host 2), the destination device is connected to node 8, and the data to be transmitted is The network performance requirements are: give priority to the path with the lowest delay.
  • node 8 When multiple paths have the lowest delay at the same time, then give priority to the path with the smallest packet loss rate (that is, the dual target factor of delay + packet loss rate). It can be seen from the above that the destination node corresponding to the data to be transmitted is node 8, and from the first reachable network path obtained by the last update in the current round, it can be seen that node 0 is the starting point and the destination node 8 corresponding to the data to be transmitted is the end point. There are three network paths in total, namely ⁇ 0 ⁇ 2 ⁇ 8,0 ⁇ 3 ⁇ 8,0 ⁇ 1 ⁇ 8 ⁇ .
  • the optimal path obtained is ⁇ 0 ⁇ 3 ⁇ 8 ⁇ , then the path ⁇ 0 ⁇ 3 ⁇ 8 ⁇ is the first target network path. Finally, the data to be transmitted is processed based on the first target network path ⁇ 0 ⁇ 3 ⁇ 8 ⁇ . transmission.
  • the routing table entries are fixed after the IP address is determined (for example, the cost-optimal route will always be taken). Each network node runs address-by-address routing, so as long as the source/destination IP address Once determined, the routing table calculates a unique route for the pair of addresses.
  • the embodiments of this application are targeted at the multi-target factor scenario.
  • any two network nodes in the network may need to record multiple advantageous paths instead of a single optimal path; in addition, In the multi-objective factor scenario, the same source/destination node will have multiple different optimal paths due to differences in application network performance requirements. Network nodes also need to distinguish the paths of different business data.
  • this application also designs a distributed multi-objective factor routing table per application (either per specific application or per application type (such as social networking, game, etc.)), as shown in Figure 13. .
  • multi-target factor path calculation can be performed based on the SLA requirements of different applications.
  • the same source/destination node may take different paths due to different services carried, so it is a per-service routing. , so there will be a situation as shown in Figure 13.
  • application A and application B have different network performance requirements, different routing tables are needed to record the optimal paths for different applications.
  • the optimal path among the reachable network paths is marked with *, and the entries of other records in the routing table are all the first reachable network paths.
  • the application A and application B may be a specific application (for example, application A is WeChat, application B is QQ, etc.), or they may represent application types (such as , application A refers to social applications, application B refers to shopping applications), among which the application types can be distinguished in advance, and each specific application can be divided into a specific application type, and then the network node can Maintain routing tables for each specific application or application type.
  • One application or application type corresponds to one network performance requirement.
  • Figure 13 illustrates a specific implementation of a multi-objective factor routing table according to an embodiment of the present application.
  • This application is This is not limited.
  • the routing table adopts per-application (also called per-service) routing, there is one routing table for each type of application (unlike other solutions for per-IP routing, all services share one table entry), and each path is recorded in the routing table
  • Multiple performance parameters can be called the multi-objective factor routing table described in the embodiments of this application.
  • the multi-objective factor routing table needs to specify the specific network performance requirements of each type of application, as well as the optimal path among the multiple advantageous paths calculated using the embodiments of this application under the network performance requirements, otherwise it cannot Data is forwarded correctly.
  • the calculation method of the network path corresponding to scenario 1 allows the iterative calculation of the end-to-end path based on the non-optimal local path by introducing the record of the local non-optimal path, so as to achieve the goal of "local optimal path + local
  • the accuracy of the optimal path is ensured in the multi-objective factor scenario of "optimal path +...+ local optimal path ⁇ global optimal path”; and the advantageous path screening method based on partial order comparison of performance vectors ensures the accuracy of path calculation. It also ensures that the minimum amount of non-optimal path records is introduced, thus optimizing the computational overhead to the greatest extent and ensuring the efficiency of optimal path calculation.
  • the advantageous path screening method based on partial order comparison of performance arrays can filter out non-advantage paths that do not need to be recorded to the greatest extent during the iterative calculation process, thus optimizing the calculation overhead to the greatest extent and ensuring the efficiency of the calculation.
  • Scenario 2 is an improved solution for large-scale networks.
  • the first reachable network path obtained from the last update of the current round can be based on the network performance requirements of the data to be transmitted on the target device.
  • the first reachable network path obtained in the last update of the current round is obtained based on the selected second advantageous network path, so the first reachable network path calculated in the current round based on partial information may not include end-to-end Optimal path.
  • the end-to-end path calculated based on the partially selected second advantageous network path each time gradually converges to the global optimum by using a multi-round calculation method.
  • the path may be to repeatedly execute the above steps 701 to 706 until the first reachable network path obtained in the last round reaches the convergence condition or reaches the preset number of rounds (for example, reaches 50 times).
  • p 4
  • the target network path that is transmitting the data to be transmitted in the current round is the second target network path
  • the next target network path is the second target network path.
  • the target network path that meets the preset conditions is the third target network path, which means that the network performance of the third target network path is better than the second target network path, in this case, the transmission path of the data to be transmitted can be switched from the second target network path to the third target network path.
  • the switching method can include but is not limited to:
  • This switching mode is suitable for a single round of calculation. Specifically, as long as the first reachable network path calculated in the next round has network performance (i.e., the third target network path) that is better than the second target network path currently undergoing data transmission. , and switch.
  • the principle of this switching is: as long as a better target network path is generated, it will be switched.
  • the advantage of this switching at any time is that the transmission path of the data to be transmitted is always maintained on the optimal network path currently calculated, which improves transmission efficiency.
  • the transmission path may be switched after calculating the first reachable network path of the current round in each round. This is because in each round In the next round of calculation, if the records of the previous round of optimal paths are introduced, each switching can be optimized towards a better path.
  • This application does not discuss the specific implementation of the random switching mode. limited.
  • This switching mode is suitable for multiple rounds of calculations. Specifically, until the first reachable network path obtained in the last round reaches the convergence condition or reaches the preset number of rounds, the data to be transmitted always passes through the current round (i.e., the first round). ) for transmission, and after all rounds are completed, select the third target network path that meets the preset conditions from the first reachable network paths obtained in all rounds (for example, in all rounds the optimal target network path) to switch.
  • the advantage of this one-time switching is that there is no need to frequently change the transmission path of the data to be transmitted, ensuring the stability of the transmission path.
  • Figure 14 horizontally represents the iterative calculation process of the first reachable network path in each round of the dominant path tree, and each box records the current destination.
  • the number of dominant paths of the node; the vertical representation is the calculation of the first reachable network path of the multi-round dominant path tree, and the information interaction relationship between each round and the next round of calculation.
  • each end-to-end path calculated based on partial information is not globally optimal, so there are subsequent rounds of recalculation of the first reachable network path.
  • delay-sensitive services can first transmit data along the currently calculated approximately optimal path. If subsequent calculations optimize the approximately optimal path, The transmission path of business data can be switched at any time to further improve service quality.
  • a total of three paths (Path0, Path2 and Path3) participate in the calculation of the destination path of node 5, and so on, until the calculation of the corresponding destination paths of all destination nodes is completed. Since the randomly selected path in the second round of calculation may be different from the previous round, and the optimal path from the previous round is added to participate in this round of path calculation, after this round of calculation, the optimal network to reach each destination node The path may have changed. At this time, the data to be transmitted that has been transmitted along the previous round of calculation results can be switched to a new path (ie, the third target network path) for continued transmission (here, the anytime switching mode is taken as an example).
  • each destination node when calculating the first reachable network path in the third round, each destination node still randomly selects 2 second advantageous network paths, plus the optimal path in the second round of path selection, a total of 3 paths participate in the next step.
  • the destination path of the node is calculated iteratively, and then the optimal path from the source node to each destination node is further updated.
  • the end-to-end path calculated based on randomly selected local paths will eventually converge to the global optimal path, which is the same as the calculation result based on the full number of advantageous paths.
  • the advantage of the embodiments of this application is that it can first calculate an approximately optimal path for real-time services to initiate data transmission, and gradually optimize and adjust the current transmission path to the optimal path during the service transmission process, which is especially suitable for large-scale networks. middle.
  • the transmission of the data to be transmitted since the transmission of the data to be transmitted has already started after the first round of calculation of the first reachable network path is completed, it is possible to update the arrival and arrival data after each subsequent round of calculation is completed.
  • the optimal path of the destination node corresponding to the data to be transmitted so it is possible to frequently adjust the transmission path of the data.
  • the transmission path is switched during the data transmission process, it may cause out-of-order data transmission.
  • Figure 15 shows a data transmission out-of-order problem caused by path switching: when the business data completes the transmission of data packet No. 17, the network node calculates a new optimal path, and then transmits the subsequent data (data No. 18 The data after the packet) is switched to the new path, and because the delay of the new path is better than the original path, the order of the data packets arriving at the destination node is confused. For example, data packet No. 18 and No. 19 precede data packet No. 15. The data packet reaches the destination node. When the classic TCP protocol discovers that the data is out of order, the out-of-order data will be processed as packet loss, so it will initiate data retransmission and degrade the transmission performance.
  • embodiments of the present application also provide a solution to the problem of data disorder, that is, when the network node (such as the source node) obtains the switching instruction, it waits for a preset period of time before switching to the new path (that is, the third target node). The transmission of untransmitted data packets in the data to be transmitted is initiated on the network path).
  • the specific solution is also shown in Figure 15: After calculating the new transmission path, the network node waits for a period of time ⁇ t before initiating subsequent data transmission on the new path.
  • the waiting time ⁇ t can be the delay difference between the new path and the old path. This can ensure that the first data packet transmitted by the new path (ie, data packet No. 18) will not be earlier than The last packet transmitted by the original path (i.e., data packet No. 17) reaches the destination node, thereby achieving order preservation of data transmission during path switching.
  • the calculation method of the network path corresponding to scenario 2 improves the real-time performance of network services in multi-objective factor scenarios in large-scale networks.
  • This solution does not seek to accurately calculate the end-to-end optimal path at one time. This would cause too much computational overhead and would affect the real-time performance of network services.
  • this solution improves the traditional route calculation method of calculating the optimal path in one go, and designs a progressive calculation method that randomly selects some advantageous paths and combines them with multiple rounds: the first round of calculation quickly calculates an approximate terminal based on a small amount of path information.
  • the optimal path to the end so that real-time services can initiate service data transmission on the approximately optimal path in time, and then continuously optimize the accuracy of the approximately optimal solution through multiple rounds of iterative calculations until it converges to the real optimal path.
  • delayed transmission is also used to maintain the order of business data during path switching.
  • the network path calculation method described in the embodiment of the present application is a general method, which can be deployed in a distributed manner in network nodes or traversed in a centralized controller; it can be applied to overlay networks and can also be applied to overlay networks. Underlay network; can calculate the optimal path according to any network performance requirements.
  • Example 1 Audio and video service routing scenario in RTN network.
  • FIG 16 is a schematic diagram of an application scenario of audio and video service routing in an RTN network provided by an embodiment of the present application, in which a network node in the RTN network may be called an RTN node or an RTN server.
  • the network path calculation method provided by the embodiment of this application can be implemented in the RTN network as shown in Figure 16. Since the RTN network belongs to the Overlay network, the routing strategy can be customized on the centralized control node through application layer software. There is no need to modify the hardware of the physical equipment, and it is easier to implement first. At the same time, the audio and video services carried by the RTN network usually need to consider multiple factors such as network delay, jitter, and packet loss when calculating the transmission path.
  • Application The scenario matches the embodiment scheme of this application.
  • Case 1 When the packet loss rate of multiple end-to-end paths is less than 10%, the path with the lowest delay is preferred; when multiple paths have the lowest delay at the same time, the path with the smallest delay jitter is prioritized.
  • Case 3 When the packet loss rates of multiple end-to-end paths are above 20%, the path with the lowest packet loss rate is given priority. When the packet loss rates of multiple paths are simultaneously the lowest, the path with the lowest delay is given priority.
  • control node there is a unified management node (i.e., control node) in the RTN network.
  • a general RTN network will have such a management node. If there is no management node, each RTN node needs to calculate the target path separately.
  • the control node is Taking the execution subject as an example), it is responsible for collecting performance measurement data between network nodes (including measurement of delay, jitter and packet loss rate) and delegating it to each RTN node; the path calculation process is also completed at the control node, and the specific calculation The results are then distributed to each RTN node.
  • the specific implementation steps of this example solution in this multi-objective factor scenario can be as follows:
  • Step 1 The control node collects RTN network information.
  • This step of operation is performed by the control node of the RTN network and is continuously performed periodically throughout the operating hours of the RTN network (regardless of whether there is specific data transmission service).
  • the specific actions are as follows:
  • the control node collects performance measurement data of the RTN network every certain time period (for example, 1 minute).
  • Specific network measurement performance indicators include delay, jitter, and packet loss rate.
  • the control node judges the connectivity between RTN nodes through the performance measurement results (i.e., performance measurement data) (for example, if the packet loss rate exceeds 90%, the two nodes are considered not connected), and based on the The connectivity status integrates the topological structure of the RTN network, that is, the network topology.
  • the RTN node When a device (such as a mobile phone, personal computer, smart watch and other terminal equipment) is connected to the RTN node, the RTN node notifies the device's IP address and RTN node identification to the control node, and the control node completes the device IP and RTN node mapping table. After the mapping table is completed, the control node replies to the corresponding RTN node.
  • a device such as a mobile phone, personal computer, smart watch and other terminal equipment
  • control node obtains a periodically updated device IP and RTN node mapping table, as well as a periodically updated RTN network topology and performance measurement data.
  • Step 2 The source device advertises the network performance requirements of the service.
  • This step is performed jointly by the source device and the RTN node. This step is initiated when an application of a specific source device needs to initiate data transmission.
  • the specific action process is as follows:
  • the source device (for example, host 1) is connected to an RTN node in the RTN network, and the RTN node notifies the control node of the information about host 1 through step 1.3 described above.
  • the RTN node After receiving the reply from the control node that performed step 1.3, the RTN node replies to host 1 and allows it to initiate data transmission.
  • Host 1 notifies the destination node IP and service network performance requirements to the RTN node it is connected to, and the RTN node further feeds back to the control node.
  • steps 2.1 to 2.3 need to be performed to notify the RTN node and control node of the communication addresses of different services and the network performance requirements of the service.
  • Step 3 The control node calculates the target path in a multi-target factor scenario and releases the routing table. This step of operation starts after the control node receives the service network performance of host 1 relayed by the RTN node, and is executed by the control node. After this step of operation is completed, host 1 can perform data transmission operations.
  • the specific action process is as follows:
  • the control node receives the network performance requirements of the business on host 1 forwarded by the RTN node.
  • the control node filters the network performance indicators that the application cares about in the local measurement information records (that is, the performance measurement data in 1.1) (in this example, the performance indicators that the application cares about are delay, packet loss, and jitter). Form a hop-by-hop link performance array (delay, packet loss rate, jitter), and match the performance arrays one by one to each overlay path in the RTN network topology.
  • the control node finds the IDs of the RTN nodes connected to host 1 and host 2 in the node mapping table based on the IP of host 1 and the IP of the destination device (for example, host 2).
  • the two RTN nodes are called respectively.
  • the control node uses the source RTN node as the source node, uses all other RTN nodes as the destination node, and uses the indicators in the selected performance array (i.e., delay, packet loss, and jitter) as the target factors to execute the steps described in the embodiments of this application.
  • the calculation method of network path, the specific execution steps are as follows:
  • step 3.4.4 If the set of nodes to be added is not empty, proceed to step 3.4.4 to update a node to be added (i.e., the first node mentioned above) to the dominant path tree.
  • step 3.4.5 If the node set to be added is empty, proceed to step 3.4.5 to calculate the advantageous path to each RTN node (i.e., the target path described above).
  • the path with the lowest packet loss rate among all the dominant paths is selected as the dominant path; if there are multiple paths losing data at the same time, In the case of the lowest packet rate, the path with the lowest delay will be selected as the optimal path among multiple paths with the lowest packet loss rate for recording.
  • the local routing table may only include advantageous path information, and then each RTN node will calculate the optimal path based on the network performance requirements of the service; the local routing table may also be a control node The optimal path is calculated based on the network performance requirements of the business, and then the optimal path information is directly delivered to the RTN nodes of each hop to form a local routing table. It should also be noted that the operation of forming the local routing table can be completed by the control node or by each RTN node itself, which is not limited in this application.
  • Each RTN node along the way receives the optimal path information and/or advantageous path information issued by the control node to form a local routing table (i.e., the multi-objective factor routing table mentioned above), or, each RTN node along the way receives The local routing table delivered by the control node.
  • a local routing table i.e., the multi-objective factor routing table mentioned above
  • Step 4 The source device initiates service data transmission, and the RTN node forwards the data packet. This operation is completed jointly by the source device and all RTN nodes along the optimal path, and continues throughout the entire service data transmission process.
  • the specific action process is as follows:
  • the RTN node After receiving the routing table issued by the control node (or forming a local routing table itself), the RTN node replies with a confirmation message to the control node.
  • control node After receiving the confirmation information from all RTN nodes on the optimal path, the control node initiates a data transmission permission signal to the source RTN node.
  • the source RTN node After receiving the data transmission permission signal, the source RTN node forwards the signal to host 1.
  • host 1 After receiving the signal allowing data transmission, host 1 sends the service data to the source RTN node.
  • the source RTN node and subsequent RTN nodes on the optimal path forward the data to the destination RTN node along the optimal path according to the information in the routing table, and the destination RTN node forwards the data to host 2.
  • step 1, step 2 and step 4 are unique data transmission processes for RTN networks. These three steps will change with the changes in application scenarios, such as Underlay physics.
  • the data transmission process in the device router will be different from the steps in this embodiment (but the overall method is similar), and step 3 is the core implementation of this solution.
  • step 3 It can be found from the process of step 3 that it is the advantageous path rather than the optimal path that determines the subsequent iterative calculation results. Therefore, the network performance requirements of the service only need to be used when calculating the optimal path in step 3.4.5.
  • steps 3.1 to 3.4 of the previous iteration it was mainly the set of advantageous paths that were incomparable between the performance arrays that determined the information recorded in the routing table entries. Therefore, if the network performance requirements of the business change but the target factors remain unchanged (for example, the optimal path calculation is still based on the three factors of delay, packet loss, and jitter, but the network performance requirements are different from this solution), then step 3 You only need to update the optimal path screening method in step 3.4.5, and no modification or adjustment is required in the previous steps. Therefore, this solution has strong adaptability to changes in business network performance requirements.
  • this application obtained the existing network data of the consumer cloud RTN network and the solution of the multi-objective factor scenario of the current RTN network, and further compared this solution with RTN in RTN networks of different sizes.
  • the performance and accuracy of existing network solutions in multi-objective factor scenarios were compared, and the comparison results are shown in Figure 17.
  • the calculation method currently adopted by the RTN network of the consumer cloud for multi-objective factor scenarios is the above-mentioned approximate optimal path algorithm based on single-objective factor KSP.
  • the existing method of RTN network is based on the KSP algorithm and calculates the 10 paths with the shortest end-to-end delay to form a candidate path set; then, according to the network performance requirements of "case 1 is better than case 2 than case 3", The optimal path among the 10 candidate paths is screened and recorded as the end-to-end optimal path.
  • this solution can achieve the most accurate and optimal calculation according to the application network performance requirements in the top 10 delay path sets.
  • Optimal path calculation but the multi-objective factor optimal performance path may not necessarily appear in the top 10 delay path set.
  • the top 10 delay paths may have poor packet loss, bandwidth or cost and other other factors. In this case, the top 10 delay paths The collection will miss the path with the best global performance.
  • Figure 18 lists the calculation results of this solution and the existing solution of the RTN network.
  • the calculation results of the solution of this application and the existing RTN solution appear The difference: From the calculation results of node 0 reaching node 1, node 10, node 11, node 17 and node 20, it can be seen that the optimal path calculated by this application scheme, according to this implementation Judging from the network performance requirements of the services in this example, they all fall into case 1; when the existing RTN solution calculates the optimal path for the same source/destination node, the calculated paths all fall into case 2 and case 3.
  • the computing efficiency of the proposed solution is higher in a large-scale network (more than 50 nodes) scenario. Improved by hundreds of times. Therefore, the solution of this application can not only ensure the absolute accuracy of multi-objective factor calculation, but also greatly improve the calculation efficiency.
  • Example 2 A scenario in which network performance indicators and conditional restriction targets coexist in multi-objective factors.
  • the calculation logic is mainly presented in the dimension of "seeking the optimal", such as finding the optimal path with delay in case 1, case 3 Find the optimal path for packet loss, etc.
  • not all indicators are required to be optimal.
  • this kind of optimization objective that does not require the optimal solution a conditional restriction objective.
  • Figure 19 shows the optimal path calculation error scenario that occurs when only network performance indicators are filtered in partial order when network performance indicators and conditional constraints exist in the network performance requirements of the business.
  • the optimization goals are bandwidth and delay, and the limiting condition is the number of hops.
  • the specific business requirements are: among paths with no more than 4 hops, the path with the largest bandwidth is preferred; when the bandwidth of multiple paths is maximum at the same time , giving priority to the path with the lowest delay. It is essentially a dual-objective optimal path calculation of bandwidth + delay, and the number of hops is a constraint. It only needs to meet no more than 4 hops, and there is no need to optimize to the extreme value.
  • the hop count of all paths does not exceed the threshold of 4 hops, they are all valid paths.
  • a partial order comparison is performed based on the dual attributes (bandwidth, delay), and the selected advantageous paths are P0 and P1 (the dual attributes of P0 are both better than or equal to P2 and P4, and the dual attributes of P1 are both better than or equal to P3; P0 and P1 cannot In comparison, P0 bandwidth is better, while P1 delay is better).
  • the control node calculates that there are only two possible paths to node B through node A, namely P0+P AB : (bandwidth 19, delay 8) , hop count 5, and P1+P AB : (bandwidth 10, delay 5), hop count 3; because the path P0+P AB and hop count exceeded the threshold limit, it was filtered out, and was finally calculated according to the technical solution of Example 1
  • the optimal path of node B is: P1+P.
  • the performance of path AB is: bandwidth 10, delay 5.
  • path P4 was eliminated due to the weak performance of the "bandwidth + delay" dual factors. If this path P4 can be recorded, the path to node B will be calculated when When the optimal path is selected, there will be one more candidate path P4+P AB in the candidate path set: (bandwidth 18, delay 13), hop count 4. The hop count of the new path P4+P AB still does not exceed the threshold, but compared with the optimal path P1+P AB calculated based on partial order screening of the optimization target performance array, the new path has better performance (larger bandwidth). Therefore, when business requirements are complex and there are both network performance indicators and conditional restriction targets, inaccurate calculations may still occur only by optimizing the partial order comparison of network performance indicators.
  • this Example 2 improves the solution to ensure the accuracy of multi-objective factor calculations when business requirements include both network performance indicators and constraint targets, making this solution applicable to Calculation of network paths in any multi-objective factor scenario.
  • Example 2 improves the calculation method of the advantageous path and the optimal path in step 3.
  • the specific implementation process of the new calculation method can be simply summarized as follows in Figure 20:
  • the conditional restriction target of the current path does not reach the threshold, the conditional restriction targets and the network performance indicators will be combined into a unified performance array, and based on the entire path to the destination node, The unified performance array performs partial order comparison and advantageous path screening; when the path's constraint target exceeds the threshold, it will no longer participate in the subsequent partial order comparison of the unified performance array.
  • the final selected advantageous path is: P0 , P1 and P4 (when three-factor arrays are compared in partial order, P0 and P4 cannot be compared because although P0 has better bandwidth and latency than P4, P4 has better hop count than P0).
  • the control node will simultaneously record P0, P1 and P4 as the advantageous path to node A, and participate in subsequent iterative calculations.
  • the embodiments of this application design a processing method for converting the conditional target into an optimization index.
  • the parameters corresponding to the conditional target are in Before reaching the threshold, the optimization indicators are uniformly processed and participate in the partial order comparison of the performance array together with other network performance targets, thereby ensuring that the optimal solution will not be missed during the selection process of advantageous paths, so that the solution of the embodiment of this application can meet any business needs.
  • This ensures the accuracy of network path calculation in multi-objective factor scenarios, that is, the end-to-end optimal path can be correctly calculated in any complex multi-objective factor scenario.
  • Example 1 and Example 2 introduced above are only two specific scenarios in which the network path calculation method provided by the embodiment of the present application is applied, and the network path calculation method provided by the embodiment of the present application does not apply. Limited to the above scenario, this application will not go into details.
  • Figure 21 is a schematic structural diagram of a network device provided by an embodiment of the present application.
  • the network device 2100 may specifically include: a determination module 2101 for determining that the source node is the starting point and the directly connected node of the source node is The first reachable network path of the end point, the source node is the network node accessed by the target device in the target network; the selection module 2102 is used to select the first node from the set of nodes to be added, and obtain the first node with the source node as the starting point.
  • the comparison module 2103 is used to reach the same destination if there are m in the target path Network paths of nodes, then compare the m network paths based on n target factors to obtain the first advantageous network path, and update the first reachable network path based on the first advantageous network path to obtain the updated first A reachable network path, the target path includes the first reachable network path and the second reachable network path, m ⁇ 2, n ⁇ 2.
  • the network device 2100 also includes an update module 2104, configured to delete the first node from the set of nodes to be added, and trigger the selection module 2102, the comparison module 2103 and the update module 2104 to execute repeatedly until the The node set to be added is an empty set.
  • the comparison module 2103 is specifically used to perform a partial order comparison of the m network paths based on n target factors to obtain the second advantageous network path, and each second advantageous network path is used as the third advantageous network path. A dominant network path.
  • the selection module 2102 is also used to: when the set of nodes to be added is an empty set after deleting the first node, according to the network performance requirements of the data to be transmitted on the target device, obtain from the last update Among the first reachable network paths, a first target network path is determined with the source node as the starting point and the destination node corresponding to the data to be transmitted as the end point, and the first target network path is used to transmit the data to be transmitted.
  • the comparison module 2103 is specifically also used to perform a partial order comparison of the m network paths based on n target factors to obtain a second advantageous network path; in the second advantageous network path, there are at least p
  • q are selected as the first advantageous network paths, m ⁇ p ⁇ 2, p ⁇ q ⁇ 1.
  • the selection module 2102 is also used to: when the set of nodes to be added is an empty set after deleting the first node, according to the network performance requirements of the data to be transmitted on the target device, obtain from the last update Among the first reachable network paths, a second target network path is determined with the source node as the starting point and the destination node corresponding to the data to be transmitted as the end point, and the second target network path is used to transmit the data to be transmitted.
  • the network device 2100 also includes: a loop trigger module 2105, which is used to trigger the repeated execution of the determination module 2101, the judgment module 2102, the selection module 2102, the comparison module 2103 and the update module 2104, Until the target path obtained in the last round reaches the convergence condition or reaches the preset number of rounds.
  • a loop trigger module 2105 which is used to trigger the repeated execution of the determination module 2101, the judgment module 2102, the selection module 2102, the comparison module 2103 and the update module 2104, Until the target path obtained in the last round reaches the convergence condition or reaches the preset number of rounds.
  • the loop trigger module 2105 can be used to: determine that when there are at least p second advantageous network paths, the current set of nodes to be added is the target node set; use the target node set as the new set of nodes to be added.
  • the node set triggers the selection module 2102, the comparison module 2103 and the update module 2104 to execute repeatedly until the first reachable network path obtained in the last round reaches the convergence condition or reaches the preset number of rounds.
  • the selection module 2102 is specifically configured to switch the transmission path of the data to be transmitted from the second target network path to a third target network path.
  • the third target network path is a plurality of rounds. One of the target paths obtained this time satisfies the preset condition, and the network performance of the third target network path is better than the network performance of the second target network path.
  • the selection module 2102 is specifically also used to obtain a switching instruction.
  • the switching instruction is used to instruct the source node to wait for a preset period of time before initiating untransmitted data packets in the data to be transmitted on the third target network path. transmission.
  • the comparison module 2103 is specifically used to: construct m performance arrays of the m network paths based on the n target factors, each performance array including n elements arranged in an orderly manner, One network path corresponds to a performance array, and one element corresponds to the specific value of a target factor on the corresponding network path; the value of each element in the first performance array is greater than or equal to the value of the element at the corresponding position in the second performance array. If there is a value, it is determined that the network path corresponding to the first performance array is the second advantageous network path, and the first performance array and the second performance array are any two of the m performance arrays.
  • the comparison module 2103 is specifically configured to: there is a value of the first element in the first performance array that is greater than or equal to the value of the element at the corresponding position in the second performance array, and the If the value of the second element in the first performance array is less than or equal to the value of the element at the corresponding position in the second performance array, determine the network path corresponding to the first performance array and the network path corresponding to the second performance array.
  • the network paths are all the second advantageous network paths, and the first element and the second element are any two elements in the first performance array.
  • the selection module 2102 is specifically configured to: based on the network performance requirements of the data to be transmitted on the target device, select the first node that meets the preset performance requirements from the set of nodes to be added.
  • the update module 2104 is specifically configured to: when there are m network paths to the same destination node, only retain the first advantageous network path, and retain the target of the first advantageous network path. The path is used as the first reachable network path after the update.
  • the target factors at least include any one or more of the following: network performance indicators, or conditional restriction targets.
  • the network performance indicators include at least any of the following: bandwidth, delay, packet loss rate, jitter, and cost.
  • the target network includes at least one of the following: Overlay network, or Underlay network.
  • the embodiment of the present application also provides a network device.
  • Figure 22 is a schematic structural diagram of the network device provided by the embodiment of the present application. For convenience of explanation, only the parts related to the embodiment of the present application are shown. If the specific technical details are not disclosed, please refer to the method section of the embodiments of this application.
  • the network device 2200 can be deployed with the modules described in the corresponding embodiment of Figure 21 to implement the functions of the network device 2100 in the corresponding embodiment of Figure 21. Specifically, the network device 2200 is implemented by one or more servers.
  • the network device 2200 may vary greatly due to different configurations or performance, and may include one or more central processing units (CPU) 2222 and memory 2232, and one or more storage media 2230 for storing application programs 2242 or data 2244. (For example, one or more mass storage devices). Among them, the memory 2232 and the storage medium 2230 may be short-term storage or persistent storage.
  • the program stored in the storage medium 2230 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations on the network device 2200 .
  • the central processor 2222 may be configured to communicate with the storage medium 2230 and execute a series of instruction operations in the storage medium 2230 on the network device 2200 .
  • Network device 2200 may also include one or more power supplies 2226, one or more wired or wireless network interfaces 2250, one or more input and output interfaces 2258, and/or, one or more operating systems 2241, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM and more.
  • operating systems 2241 such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM and more.
  • the central processor 2222 is used to execute the network path calculation method in the corresponding embodiment of FIG. 7 .
  • the central processor 2222 can be used to: first, determine a reachable network path with the source node as the starting point and the directly connected node of the source node as the end point.
  • the reachable network path can be called the first reachable network path (can be is one or more). It should be noted that the reachable network path not only includes the network nodes involved in the reachable network path, but also includes the overall network performance of the entire reachable network path (such as the delay, bandwidth, Packet loss rate, etc.).
  • the source node is a network node in a network (which may be called a target network) to which the target device (that is, the device to which data is to be sent) is connected. After that, it is determined whether the node set to be added is an empty set, where the node set to be added is a set of other network nodes in the target network except the source node. If it is determined that the node set to be added is not an empty set (that is, the node set to be added is If there are network nodes in the node set), then select a node (which can be called the first node) from the node set to be added to obtain a reachable network path with the source node as the starting point and the first node as the relay.
  • a node which can be called the first node
  • the reachable network path may be called the second reachable network path.
  • the intermediate nodes of the second reachable network path do not include other network nodes in the set to be added except the first node.
  • the intermediate nodes of the second reachable network path do not include the first network node (i.e., the source node) and the last destination node (i.e., the destination node) of the second reachable network path, but refer to the "middle" any network node.
  • the intermediate node of the second reachable network path refers to B , any network node in C,..., excluding source node A and destination node X.
  • All reachable network paths included in the first reachable network path and the second reachable network path can be called target paths (one or more). If there are m network paths to the same destination node in the target path, Then compare the m network paths based on n target factors to obtain the first advantageous network path, and update the target path based on the first advantageous network path to obtain the updated target path, where m ⁇ 2, n ⁇ 2.
  • the first node can be deleted from the set of nodes to be added, and the updated target path can be used as the new first reachable network path.
  • the updated target path After using the updated target path as the new first reachable network path, repeat the above steps of determining whether the node set to be added is empty and subsequent steps until the node set to be added is empty.
  • central processing unit 2222 can also be used to execute any step in the method embodiment corresponding to Figure 7 in this application.
  • specific content please refer to the description in the method embodiment shown above in this application, which is not included here. Again.
  • the embodiments of the present application also provide a computer-readable storage medium, which stores a program for signal processing. When it is run on a computer, it causes the computer to execute the steps described in the foregoing embodiments. steps performed.
  • the device embodiments described above are only illustrative.
  • the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physically separate.
  • the physical unit can be located in one place, or it can be distributed across multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • the connection relationship between modules indicates that there are communication connections between them, which can be specifically implemented as one or more communication buses or signal lines.
  • the present application can be implemented by software plus necessary general hardware. Of course, it can also be implemented by dedicated hardware including dedicated integrated circuits, dedicated CPUs, dedicated memories, Special components, etc. to achieve. In general, all functions performed by computer programs can be easily implemented with corresponding hardware. Moreover, the specific hardware structures used to implement the same function can also be diverse, such as analog circuits, digital circuits or special-purpose circuits. circuit etc. However, for this application, software program implementation is a better implementation in most cases. Based on this understanding, the technical solution of the present application can be embodied in the form of a software product in essence or that contributes to the existing technology.
  • the computer software product is stored in a readable storage medium, such as a computer floppy disk. , U disk, mobile hard disk, read only memory (ROM), random access memory (RAM), magnetic disk or optical disk, etc., including a number of instructions to make a computer device (which can be a personal computer, training equipment, or network equipment, etc.) to execute the methods described in various embodiments of this application.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
  • the computer instructions may be stored in or transmitted from one computer-readable storage medium to another, for example, the computer instructions may be transferred from a website, computer, training device, or data
  • the center transmits to another website site, computer, training equipment or data center through wired (such as coaxial cable, optical fiber, digital subscriber line) or wireless (such as infrared, wireless, microwave, etc.) means.
  • the computer-readable storage medium may be any available medium that a computer can store, or a data storage device such as a training device, a data center, or other integrated media that contains one or more available media.
  • the available media may be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., high-density digital video discs (DVD)), or semiconductor media (e.g., solid state disks) ,SSD)), etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请公开了一种网络路径的计算方法及网络设备,可应用于数据传输领域,包括:确定以源节点为起点、源节点的直连节点为终点的第一可达网络路径,并从待添加节点集中选择第一节点,得到以源节点为起点、第一节点为中继的第二可达网络路径,若在第一/二可达网络路径中存在m条以同一目的节点为终点的路径,则基于n个目标因素对m条路径进行比较,得到第一优势网络路径,并基于第一优势网络路径更新第一可达网络路径,m≥2,n≥2。本申请对传统IGP算法进行改进,通过记录额外的第一优势网络路径,能够在多目标因素场景之中精确计算出满足应用多目标因素的网络性能需求的端到端最优路径,提高了资源分配优化和资源控制优化的能力。

Description

一种网络路径的计算方法及网络设备 技术领域
本申请涉及数据传输领域,尤其涉及一种网络路径的计算方法及网络设备。
背景技术
随着消费娱乐互联网向产业互联网的逐渐过渡,网络上承载越来越多的产业应用(如,智能制造、远程操控等)。不同于社交娱乐、消费购物等互联网业务,产业应用通常对服务级别协议(service level agreement,SLA)有着更加的严格要求,如,要求时延小于100毫秒(millisecond,ms)、丢包率小于10%等;同时,产业互联网的SLA通常对多个网络性能因素有需求,如智能制造类应用同时对网络时延、可靠性和丢包率均有需求,因此需要底层网络改变传统尽力而为(best effort)的单目标因素的路由方式,可以根据不同应用的SLA需求,进行多目标因素的最优路径的计算,从而为不同的应用提供个性化的服务质量(quality of service,QoS)保障。
而经典的内部网关协议(interior gateway protocol,IGP),如开放的最短路径优先(open shortest path first,OSPF),采用的计算路径的方法(代表性的如Dijkstra算法)主要思想是利用“局部最优路径+局部最优路径+…=全局最优路径”的原理,各个网络节点独立计算到达目的节点的最优路径并记录;当某个网络节点收到邻居节点转发而来的数据包,则直接走本地计算的到达目的节点的最优路径转发该数据包即可。端到端路径的每一跳都走局部最优路径,从而得到最优的端到端最优路径。如图1中的(a)子示意图所示的网络拓扑,节点X到节点Z有一条路径Path0(时延为10,这里忽略量纲),节点Z到目的节点Y有三条路径,分别为Path1(时延为5)、Path2(时延为10)、Path3(时延为15),节点Z到节点Y的路径中Path1为局部最优路径(因为Path1时延最低)。因此在经典IGP分布式算法中,节点Z只记录局部最优路径Path1,当邻居节点X将业务的数据包传输给节点Z之后,节点Z会走局部最优路径Path1将数据包传输至目的节点Y。由此,当X→Z、Z→Y两跳都走局部最优路径时,得到X→Z→Y的端到端最优路径。这种“局部最优路径+局部最优路径+…=全局最优路径”的原理,在单目标因素场景是成立的。然而,经典分布式IGP算法所依赖的“局部最优路径+局部最优路径+…=全局最优路径”的原理,在多个目标因素的场景是不成立的。如图1中的(b)子示意图所示,还是同样的X→Z→Y的网络拓扑,假设这次每条路径有两个性能指标:时延和带宽(即2个目标因素),其中节点X到节点Z有一条路径为Path0(带宽10、时延10,这里均忽略量纲),节点Z到节点Y有三条路径Path1(带宽20、时延10)、Path2(带宽10、时延5)、Path3(带宽15、时延15)。假设网络上承载的是视频类业务,其网络性能需求是:首先选择带宽最大路径,当发现多条路带宽相等时,选择时延最低的路径。即该网络性能需求是一个“带宽+时延”的双目标优化需求。按照应用的网络性能需求,Z→Y的最优路径为Path1,因为该路径带宽最大。如果按照经典的IGP算法,当数据包由节点X到达节点Z之后,节点Z会走Path1将数据包括传输至目的节点Y,这样端到端路径X→Z(Path1)→Y的性能为:端到端带宽为10(Path0、 Path1带宽取最小值),端到端时延为20(Path0、Path1时延相加)。但是可以发现,当数据包从节点X传输至节点Z节点后,节点Z不走局部最优路径Path1,而改走非最优路径Path2,这样得到的端到端路径X→Z(Path2)→Y的性能为:端到端带宽为10(Path0、Path2带宽取最小值),端到端时延为15(Path0、Path2时延相加),性能反而比节点Z走局部最优路径更好。
由此可见,在多目标因素场景中,端到端最优路径不是每一跳局部最优路径拼接而成,某些节点之间走非最优路径往往可能得到的端到端路径比每跳走最优路径性能更优。因此,在多目标因素场景中“局部最优路径+局部最优路径+…+局部最优路径≠全局最优路径”,使得基于经典IGP分布式算法无法计算多目标因素场景的最优网络路径。
发明内容
本申请第一方面提供了一种网络路径的计算方法,用于针对经典IGP分布式算法无法求解多目标因素的最优网络路径的问题,设计能够计算任意业务需求的分布式多目标因素的优势网络路径计算方法,提高了资源分配优化和资源控制优化的能力。
基于此,本申请实施例提供以下技术方案:
第一方面,本申请实施例提供了一种网络路径的计算方法,该方法可以在网络节点中分布式部署,也可以在集中控制器中遍历实现;可以应用于Overlay网络,也可以应用于Underlay网络,并可以按照任意的业务需求进行最优网络路径的计算。该方法可以包括:首先,确定以源节点为起点、该源节点的直连节点为终点的可达网络路径,直连节点是指与源节点直接连接且中间不经过其他节点中继的节点,该可达网络路径可称为第一可达网络路径(可以是一条或多条)。需要注意的是,所述的可达网络路径不仅包括可达网络路径所涉及到的网络节点,还包括整个可达网络路径的整体网络性能(如,该可达网络路径的时延、带宽、丢包率等)。其中,该源节点为目标设备(即有待发送的数据的设备)所接入的网络(可称为目标网络)中的网络节点,该网络节点可以是路由器,也可以是目标网络中的服务器等,具体由所涉及的目标网络的类型决定,本申请对此不做限定。之后,从待添加节点集中选择一个节点(可称为第一节点),以得到以该源节点为起点、该第一节点为中继的可达网络路径,该可达网络路径可称为第二可达网络路径。其中,待添加节点集为该目标网络中除源节点之外的其他网络节点的集合,需要说明的是,在本申请的一些实施方式中,第二可达网络路径的中间节点可以不包括该待添加集中除第一节点之外的其他网络节点。并且,所述的第二可达网络路径的中间节点不包括第二可达网络路径的第一个网络节点(即源节点)和最后一个目的节点(即目的节点),而是指“中间”的任意网络节点。例如,假设第二可达网络路径为A→B→C→…→X,其中A、B、C、…、X均为网络节点,那么该第二可达网络路径的中间节点指的是B、C、…中的任意网络节点,而不包括源节点A和目的节点X。第一可达网络路径和第二可达网络路径所包括的所有可达网络路径就可称为目标路径(一条或多条),之后,判断在目标路径中是否存在m(m≥2)条到达同一目的节点的网络路径,若存在,则基于n(n≥2)个预设的目标因素对这m条网络路径进行比较,以得到优势网络路径(一条或多条),该优势网络路径可称为第一优势 网络路径,并基于第一优势网络路径更新该目标路径,更新后的目标路径作为新的第一可达网络路径,因此,更新目标路径也可称为更新第一可达网络路径,得到更新后的第一可达网络路径。
在本申请上述实施方式中,在经典IGP分布式算法的基础上,引入非最优路径的记录,即本申请实施例对传统的分布式IGP算法进行改进,通过记录额外的优势网络路径(即基于n个目标因素对m条网络路径进行比较后得到的第一优势网络路径),能够在“局部最优路径+局部最优路径+…+局部最优路径≠全局最优路径”的多目标因素场景之中精确计算出满足应用多目标因素的网络性能需求的端到端最优路径,突破所有现有方案的局限,提高了资源分配优化和资源控制优化的能力。
在第一方面的一种可能的实现方式中,在得到更新后的第一可达网络路径之后,该方法还可以包括:从待添加节点集中删除该第一节点,并重复执行从待添加节点集中选择第一节点及之后的步骤,直至待添加节点集为空集。
在本申请上述实施方式中,通过迭代的过程,能够算得在该目标网络中,从源节点到任意一个目标节点为终点的网络路径都是优势网络路径,计算精确。
在第一方面的一种可能的实现方式中,基于n个目标因素对m条网络路径进行比较,得到第一优势网络路径的方式可以是:基于n个目标因素对所述m条网络路径进行偏序比较,得到第二优势网络路径,其中,每个第二优势网络路径均作为所述第一优势网络路径。这种实现方式一般适用于网络规模相对较小(如实时网络(real time network,RTN)的规模最大为100个网络节点),因此采用偏序比较方法所筛选出的第二优势网络路径的数量相对也相对较少。因此即便基于全量的第二优势网络路径进行后续迭代计算,整体多目标因素场景的计算开销也不大,例如,在100个网络节点的实时网络中,可以在百毫秒量级完成所有端到端多目标因素场景的最优路径的计算。
在本申请上述实施方式中,得到的每个第二优势网络路径均作为第一优势网络路径以参加到后续的迭代计算中,使得最后一次更新得到的第一可达网络路径中一定包含端到端的最优路径,具备完备性以及计算的精确性。
在第一方面的一种可能的实现方式中,该方法还可以包括:待添加节点集在所述第一节点后为空集的情况下,即该待添加节点集中没有网络节点,则最后一次更新得到的第一可达网络路径就为当前轮次最终得到的第一可达网络路径。在每个第二优势网络路径均作为第一优势网络路径的情形下,由于端到端的最优路径一定是包含在当前轮次最后一次更新的第一可达网络路径中,据此可直接根据目标设备上待传送数据的网络性能需求,从当前轮次的最后一次更新得到的第一可达网络路径中确定以源节点为起点、待传送数据对应的目的节点为终点的第一目标网络路径,该第一目标网络路径就用于传输所述待传送数据。
在本申请上述实施方式中,在多次迭代计算直至待添加节点集为空的情况下,若每个第二优势网络路径均作为第一优势网络路径,则最后一次更新得到的第一可达网络路径一定包含每个目的节点端到端的最优路径,根据业务网络性能需求沿端到端的最优路径传输即可,从而实现了任意业务需求的多目标因素场景下最优路径的计算。
在第一方面的一种可能的实现方式中,基于n个目标因素对m条网络路径进行比较,得到第一优势网络路径的方式还可以是:首先,基于n个目标因素对所述m条网络路径进行偏序比较,得到第二优势网络路径。并在第二优势网络路径存在至少p条的情况下,从p条第二优势网络路径中选择q条作为第一优势网络路径,m≥p≥2,p≥q≥1。选取出来的第二优势网络路径就是所述的第一优势网络路径,其中,选取方式可以是随机选取,也可以是基于一定的选取规则(如,选取跳数更少、带宽更大等)进行选取,本申请对此不做限定。
在本申请上述实施方式中,当到达某同一目的节点的第二优势网络路径数目达到一定数量p(如,p=4)时,为了保证计算的高效性,后续不再基于全量的第二优势网络路径迭代计算,而是在当前得到的第二优势网络路径中选取q(如,q=2)条进行迭代计算,从而优化计算开销。
在第一方面的一种可能的实现方式中,所述方法还可以包括:若待添加节点集在删除所述第一节点后为空集,即该待添加节点集中没有网络节点,则根据目标设备上待传送数据的网络性能需求,从最后一次更新得到的第一可达网络路径中确定以源节点为起点、待传送数据对应的目的节点为终点的第二目标网络路径,该第二目标网络路径就用于传输所述待传送数据。
在本申请上述实施方式中,这种实现方式可以作为一种针对大规模网络的改进方案,对于有特殊需求的业务(如,实时性要求高的语音、视频等业务),可根据目标设备上待传送数据的网络性能需求,先从最后一次更新得到的第一可达网络路径中先选择一条最优路径先传输,能够保证业务的实时性,提高用户使用体验。
在第一方面的一种可能的实现方式中,当前轮次最后一次更新得到的第一可达网络路径是基于选取的第二优势网络路径得到的,这样当前轮次基于部分信息算得的第一可达网络路径中可能不包括端到端最优路径,基于此,本申请实施方式通过采用多轮次计算的方法使每次基于部分选取的第二优势网络路径计算出来的端到端路径逐渐收敛至全局最优路径,具体地,可以是先确定在第二优势网络路径存在至少p条时,当前的待添加节点集为目标节点集;之后,将目标节点集作为新的待添加节点集,重复执行从待添加节点集中选择第一节点,得到以所述源节点为起点、所述第一节点为中继的第二可达网络路径及之后的步骤,直至最后一个轮次得到的第一可达网络路径达到收敛条件或达到预设轮次数(如,达到50次)。其中,执行一次从待添加节点集中选择第一节点,得到以所述源节点为起点、所述第一节点为中继的第二可达网络路径及之后的步骤为一个轮次。这里需要注意的是,在本申请的一些实施方式中,若需要重复多轮次计算,则在第一轮次中的从p条第二优势网络路径中选择q条作为第一优势网络路径的操作可以是随机选取,但在之后的轮次计算中,上一轮选取的第一优势网络路径中的最优路径可以作为可行解之一迭代到下一轮次中去。例如,假设当前全量优势路径有10个,分别为路径1~10,第一轮随机选择了路径2、3和7,发现这三个路径里面的最优路径为3,则3号路径会被记录下来,下一次迭代计算的时候,又随机选出了三条路径1、5和8;再加上上一次的局部最优路径3,因此本次会有1、3、5、8一共四条路径参与后续路径的计算,再记录当前的局部最优路 径(如5),继续迭代,直至最后一个轮次得到的第一可达网络路径达到收敛条件或达到预设轮次数。需要说明的是,在本申请的一些实施方式中,多轮次计算的方法也可以是:重复执行确定以源节点为起点、源节点的直连节点为终点的第一可达网络路径及之后的步骤,直至最后一个轮次得到的目标路径达到收敛条件或达到预设轮次数。
在本申请上述实施方式中,提高了大规模网络中多目标因素场景下网络业务的实时性。本申请实施方式不追求一次精确算出端到端最优路径,这样计算开销太大,会影响网络业务的实时性。相对地,本申请实施方式改进了一次性算出最优路径的方法,设计了选择部分优势路径结合多轮次的渐进式计算方法,即首轮计算基于少量路径信息迅速计算出一个近似的端到端最优路径,以便实时类业务可以及时在近似最优路径上发起业务数据传输,之后通过多轮迭代计算不断优化近似最优解的精度,直至收敛至真正的最优路径。
在第一方面的一种可能的实现方式中,假设根据目标设备上待传送数据的网络性能需求,当前轮次正在传输待传送数据的目标网络路径为第二目标网络路径,而经过下一轮或多轮计算后,得到的满足预设条件的目标网络路径(如,最优目标网络路径)为第三目标网络路径,意味着第三目标网络路径的网络性能优于第二目标网络路径,在这种情况下,可以将待传送数据的传输路径由第二目标网络路径切换至第三目标网络路径。切换方式包括但不限于:随时切换模式和一次切换模式。其中,随时切换模式是只要下一轮计算得到的第一可达网络路径中存在网络性能(即第三目标网络路径)优于当前正在进行数据传输的第二目标网络路径,就进行切换。这种切换的原理是:只要有更优的目标网络路径产生,就切换。一次切换模式是在最后一个轮次得到的第一可达网络路径达到收敛条件或达到预设轮次数之前,待传送数据一直经由当前轮次(即第一轮次)得到的第二目标网络路径进行传输,等所有轮次结束后,再从所有轮次得到的第一可达网络路径中选择满足预设条件的第三目标网络路径(如,所有轮次中的最优目标网络路径)进行切换。
在本申请上述实施方式中,若在迭代过程中有更好的路径,则待发送数据的传输路径可随时切换,也可以是找到最优的那个后一次性切换,随时切换的好处在于:待传送数据的传输路径始终保持在当前计算得到的最优网络路径上,提高了传输效率;一次性切换的好处则在于:不必频繁更替待传送数据的传输路径,保证传输路径的稳定性。再具体的应用场景中,可基于实际需要进行切换模式的选择,具备灵活性。
在第一方面的一种可能的实现方式中,将所述待传送数据的传输路径由所述第二目标网络路径切换至第三目标网络路径的方式具体可以是:获取切换指令,该切换指令用于指示源节点等待预设时长后再在第三目标网络路径上发起待传送数据中未传数据包的传输。
在本申请上述实施方式中,由于在首轮第一可达网络路径计算结束之后,待传送数据的传输就已经开始,因此后续每一轮计算完成后都有可能更新到达与该待传送数据对应的目的节点的最优路径,因此有可能频繁调整数据的传输路径,而当数据在传输过程中进行传输路径的切换时,则有可能引起数据传输的乱序问题。基于此,本申请实施方式提供了一种解决数据乱序问题的方案,降低了数据丢包率。
在第一方面的一种可能的实现方式中,基于n个目标因素对所述m条网络路径进行偏序比较,得到第二优势网络路径的具体实现方式可以是:首先基于所述的n个目标因素, 构建这m条网络路径的m个性能数组,每个性能数组中包括有序排列的n个元素,一条网络路径对应一个性能数组,一个元素对应一个目标因素在对应网络路径上的取值。需注意的是,每个元素的取值可以是具体的取值(如带宽50、时延15等),也可以是针对取值区间得到的具体取值(如,某带宽区间[20,50]有多个值,求平均数、中位数、加权求和、归一化等得到的具体取值),本申请对此不做限定。例如,假设预设的n个目标因素分别为metric-1、metric-2、…、metric-n(metric可以为任意指标,如带宽、时延、丢包率等网络性能指标,也可以为任意条件限制目标,如路径总跳数不超过5跳等),且到达同一目的节点的网络路径共有2条(即m=2),分别为路径A和路径B,则构建2个性能数组,分别为与路径A对应的性能数组(metric-a1、metric-a2、…、metric-an)以及与路径B对应的性能数组(metric-b1、metric-b2、…、metric-bn),metric-a1、metric-a2、…、metric-an为路径A上各个对应的目标因素的具体取值,metric-b1、metric-b2、…、metric-bn为路径B上各个对应的目标因素的具体取值。之后,比较这m个性能数组中每个对应位置处元素的取值大小,第一性能数组中每个元素的取值均大于或等于第二性能数组中对应位置处元素,则确定第一性能数据对应的网络路径为第二优势网络路径,第二性能数据对应的网络路径则为非优势网络路径,其中,第一性能数组和第二性能数组为m个性能数组中的任意两个。例如,如果路径A性能数组中的每一项指标都优于或等于路径B性能数组中对应位置处的指标,即:metric_a1≥metric_b1、metric_a2≥metric_b2、…、metric_an≥metric_bn,则认为路径A为所述的第二优势网络路径,对应地,则路径B为非优势路径,路径B会从第一可达网络路径中剔除(即不被记录)。
在本申请上述实施方式中,具体阐述了偏序比较的具体实现方式,具备可实现性。
在第一方面的一种可能的实现方式中,比较m个性能数组中每个对应位置处元素的取值大小的比较结果还可能存在另外一种情形,即第一性能数组中存在第一元素的取值大于或等于第二性能数组中对应位置处元素的取值,且第二元素的取值小于或等于第二性能数组中对应位置处元素的取值。在这种情形下,确定第一性能数组对应的网络路径以及第二性能数组对应的网络路径均为第二优势网络路径,其中,第一元素以及第二元素为所述第一性能数组中的任意两个元素。例如,由于路径A对应的性能数组为(metric-a1、metric-a2、…、metric-an),路径B对应的性能数组为(metric-b1、metric-b2、…、metric-bn),如果路径A性能数组中的每一项指标都优于或等于路径B性能数组中对应位置处的指标,即:metric_a1≥metric_b1、metric_a2≥metric_b2、…、metric_an≥metric_bn,则认为路径A为所述的第二优势网络路径(即第一种情形),否则(如,metric_a1≥metric_b1、metric_a2<metric_b2),就认为路径A与路径B无法比较出优劣(忽略具体应用的网络性能需求),两个路径均需要作为第二优势路径被保留。
在本申请上述实施方式中,具体阐述了利用偏序比较方法进行比较后,出现另一种比较结果后的处理方式,使得最终得到的第一可达网络路径具备完备性。
在第一方面的一种可能的实现方式中,从待添加节点集中选择某个网络节点作为第一节点的方式可以是随机进行选择,也可以是基于目标设备上待传送数据的网络性能需求,从待添加节点集中选择满足预设性能要求的某个网络节点作为第一节点。
在本申请上述实施方式中,具体阐述了从待添加节点集中选取第一节点的几种方式,具备可选择性。
在第一方面的一种可能的实现方式中,基于所得到的第一优势网络路径更新该第一可达网络路径的实现方式可以是:对于到达同一目的节点存在所述m条网络路径的情况,在第一可达网络路径中仅保留该第一优势网络路径。
在本申请上述实施方式中,在比较中成为非优势的网络路径会从该第一可达网络路径中剔除,不再参与后续的迭代过程,通过实时过滤掉不需要被记录的非优势网络路径(即实时剪枝)来最小化计算开销。
在第一方面的一种可能的实现方式中,目标因素可以是网络性能指标,而由于在业界不管是集中式算法,还是分布式近似最优路径算法(如,基于多目标因素加权归一的IGP分布式路径算法、基于单目标因素KSP的近似最优路径算法、基于网络分片的多个单目标因素的最优路径算法等),计算逻辑都是以“求最优”这个单一的维度来呈现,如,求时延最优路径、丢包最优路径等。而在实际的应用场景中,未必所有的指标都要求最优,有时候往往有些指标优化到一定阈值之内就可以了,比如所述的时延<300ms、带宽>500Mbps、跳数不超过4跳等,在本申请实施例中,称此类无需求得最优解的目标因素称为条件限制目标。因此,在本申请的一些实施方式中,目标因素也可以是条件限制目标,如,时延<300ms、带宽>500Mbps、网络路径的总跳数不超过预设跳数等,具体本申请对目标因素的具体类型不做限定,可基于具体的应用场景以及需求自行设定。当应用的网络性能需求既存在网络性能指标又存在条件限制目标时,那么在条件限制目标未达到阈值之前,条件限制目标转化为具体的指标值参与到第一优势路径的计算;当条件限制目标达到阈值后,则不再参与到第一优势路径的计算(即直接剔除对应网络路径)。
在本申请上述实施方式中,针对经典IGP分布式算法无法计算条件限制下的最优路径这一局限性,设计了条件限制目标转换为优化指标的处理方法,条件限制目标对应的参数在未到达阈值之前统一按照优化指标处理,与其它网络性能目标共同参与性能数组的偏序比较,从而保证优势路径筛选过程中不会漏掉最优解,使得本申请实施例方案可以在任意业务需求下保证多目标因素场景下网络路径计算的准确性,即在任意复杂的多目标因素场景下,都能够正确算出端到端最优路径。
在第一方面的一种可能的实现方式中,网络性能指标至少包括如下任意一种:带宽、时延、丢包率、抖动、成本。
在本申请上述实施方式中,具体阐述了网络性能指标的几种常用形式,具备广泛适用性和灵活性。
在第一方面的一种可能的实现方式中,目标网络可以是Overlay网络,典型的Overlay网络场景如承载音视频业务的实时网络RTN,RTN会根据音频或者视频业务对于时延、丢包、抖动等网络性能因素的不同需求,综合计算满足音视频传输需求的最优端到端Overlay网络路径。此外,目标网络也可以是Underlay网络,典型的Underlay网络场景如园区网或云网之间业务数据传输的场景,在园区网场景中,需要根据不同办公应用对网络不同性能参数的诉求(如视频会议类业务需要抖动小+丢包低,桌面云业务需要大带宽+低时延等) 规划路由器的最优数据转发路径;云网场景中,云服务提供商可以根据不同云用户的VIP等级,为用户提供不同性能质量的路径,如,金牌路径的时延<10ms且丢包<5%、银牌路径的时延<15ms且丢包<5%、铜牌路径的时延<20ms且丢包<10%等。具体本申请对目标网络的具体类型不做限定。
在本申请上述实施方式中,具体阐述了本申请实施例提供的网络路径的计算方法可适用的网络,具备普适性。
本申请实施例第二方面提供一种网络设备,该网络设备具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请实施例第三方面提供一种计算机设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本申请实施例第一方面或第一方面任意一种可能实现方式的方法。
本申请实施例第四方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的方法。
本申请实施例第五方面提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任意一种可能实现方式的方法。
本申请实施例第六方面提供了一种芯片,该芯片(如,CPU)包括至少一个处理器和至少一个接口电路,该接口电路和该处理器耦合,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,至少一个处理器用于运行计算机程序或指令,其具有实现如上述第一方面或第一方面任意一种可能实现方式的方法的功能,该功能可以通过硬件实现,也可以通过软件实现,还可以通过硬件和软件组合实现,该硬件或软件包括一个或多个与上述功能相对应的模块。此外,该接口电路用于与该芯片之外的其它模块进行通信。
附图说明
图1为本申请实施例提供的经典IGP路由计算原理在计算最优网络路径的一个实例示意图;
图2为本申请实施例提供的互联网Overlay技术的一个应用场景图;
图3为本申请实施例提供的集中式算法的一个架构示意图;
图4为本申请实施例提供的经典IGP分布式算法计算网络路径的一个原理示意图;
图5为本申请实施例提供的本申请实施提供的网络路径的计算方法的一个原理示意图;
图6为本申请实施例提供的引入非最优路径记录对计算复杂度影响的一个示意图;
图7为本申请实施例提供的网络路径的计算方法的一个流程示意图;
图8为本申请实施例提供的确定第一可达网络路径的一个实例示意图;
图9为本申请实施例提供的确定第二可达网络路径的一个实例示意图;
图10为本申请实施例提供的进行偏序比较方法的一个实例示意图;
图11为本申请实施例提供的在大规模网络中第二优势网络路径的数量随着迭代的过程逐步增大的一个示意图;
图12为本申请实施例提供的进行迭代计算的一个实例示意图;
图13为本申请实施例提供的多目标因素路由表的一个设计示意图;
图14为本申请实施例提供的进行多轮随机选择计算目标路径的一个计算过程示意图;
图15为本申请实施例提供的解决路径切换引起数据传输乱序的一个方法示意图;
图16为本申请实施例提供的RTN网络中音视频业务路由的一个应用场景示意图;
图17为本申请实施例提供的不同RTN网络规模下本方案与消费者云RTN现有多路径方案的计算准确性和性能的一个比较示意图;
图18为本申请实施例提供的本申请方案与现有方案计算结果的一个对比示意图;
图19为本申请实施例提供的当存在条件限制目标时实例一的计算方式出现计算不准确的一个场景示意图;
图20为本申请实施例提供的当存在条件限制目标时实例二计算方式的一个场景示意图;
图21为本申请实施例提供的网络设备的一个结构示意图;
图22为本申请实施例提供的网络设备的另一结构示意图。
具体实施方式
本申请第一方面提供了一种网络路径的计算方法,用于针对经典IGP分布式算法无法求解多目标因素的最优网络路径的问题,设计能够计算任意业务需求的分布式多目标因素的优势网络路径计算方法,提高了资源分配优化和资源控制优化的能力。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本申请实施例涉及了许多关于网络的相关知识,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的相关术语和概念进行介绍。应理解的是,相关的概念解释可能会因为本申请实施例的具体情况有所限制,但并不代表本申请仅能局限于该具体情况,在不同实施例的具体情况可能也会存在差异,具体此处不做限定。
(1)Underlay网络
Underlay网络是指当前数据中心网路基础转发架构的网络,只要数据中心网络上任意两点路由可达即可,指的是物理基础层。可以通过物理网络设备本身的技术改良、扩大设备数量、带宽规模等完善Underlay网络,其包含了一切现有的传统网络技术。
(2)Overlay网络
由于互联网由多个运营商/互联网服务提供商(internet service provider,ISP)/自治域组成,域间的互联存在着复杂的商业关系,互联网的传输路径受商业关系影响,往往不会是网络中的最短路径。例如,两个亚洲节点间的传输可能会被绕到欧洲,进而增加了端到端的时延。同时,由于互联网的路由对路径性能不感知,路径中的失败或拥塞往往很难避免,或需要很长的收敛时间。
为解决互联网路径的非最优问题,业界提出互联网Overlay技术,Overlay在网络技术领域中指的是一种网络架构上叠加的虚拟化技术模式,其大体框架是对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其它网络业务分离,并且以基于IP的基础网络技术为主。Overlay技术是在现有的物理网络之上构建一个虚拟网络,上层应用只与虚拟网络相关。
具体地,通过在互联网上不同地区的数据中心放置转发单元(也可称为网络节点),相互连接互相调度,在现有的公共互联网(即Underlay网络)基础上构建一层新的虚拟覆盖网络(即Overlay网络)。中间部署的网络节点可称为转发中继(可记为PoP)。为便于理解,请参阅图2,图2为互联网Overlay技术的一个应用场景图,在图2中,源端设备到目的端设备之间的默认链路为虚线所示的网络路径,假设在域A和域B间的跨域链路当前面临严重的拥塞,那么依然按照该默认链路进行路由会导致端到端性能下降。而通过Overlay技术,在域A、域B和域C中分别部署有PoP,其中,域A上部署的PoP称为PoP1,域B上部署的PoP称为PoP2,域C上部署的PoP称为PoP3。Overlay骨干网控制PoP1到PoP3的路由为PoP1→PoP2→PoP3,从而有效绕开域A和域B间的拥塞链路,提升整体端到端表现。
(3)实时网络(real time network,RTN)
实时网络是属于Overlay网络的一种具体网络形式,是一个全新架构的音视频实时传输网络。其类似于直播的内容分发网络(content delivery network,CDN),实时网络是对音视频的实时性有强烈要求的场景而设计的,原理上全球端到端的时延通过实时网络可以控制在300ms以内。在本申请实施例中,实时网络所包括的网络节点也可称为RTN节点。
由于经典IGP分布式算法无法计算多目标因素的最优路径,因此当遇到多目标因素的网络路径计算需求时,业界绝大多数采用集中式算法,即:采用集中式的架构,将全量路径信息以及不同网络应用的网络性能需求统一汇总到集中的网络控制器(可称为集中控制器)当中,集中控制器再基于全量路径信息计算出针对不同应用网络性能需求的最优路径。典型的集中式多目标因素网络路径计算的架构如图3所示,集中控制器算出最优端到端路径之后,会将路径下发到沿途的各个网络节点上,完成数据转发。
由于集中式算法记录了全量的路径信息,而不像经典IGP分布式算法只记录局部最优路径,因此集中式算法的遍历空间更大,可以在全量路径中精确遍搜索出满足应用网络性能需求的最优路径,因此不会有经典IGP分布式算法在多目标因素场景中出现的算不准确的问题。但是集中式算法存在实时性和可扩展性差的问题,集中式算法计算开销通常极大,随着网络规模的扩大,精确求解满足应用SLA需求的最优路径,其时间复杂度不可接受。相关实测数据表示,在2K个节点,10K条链路级别的网络规模下,集中式的完成针 对特定应用SLA需求的集中式多目标因素计算最优路径,其周期大概为一天,而业务对实时的需求为亚秒级。因此,集中式算法由于有实时性和可扩展性的限制,不适用于大规模的网络环境或实时类的网络业务。
除了集中式算法,业界还有一部分采用的是分布式近似最优路径算法,包括:基于多目标因素加权归一的IGP分布式路径算法、基于单目标因素KSP的近似最优路径算法、基于网络分片的多个单目标因素的最优路径算法等。例如,基于多目标因素加权归一的IGP分布式路径算法就是通过加权的方式,将多个目标因素归一化为一个综合参数,并基于该综合参数进行IGP单因素最优路径计算。在这种加权归一的方法下,不同目标因素的权值设定最终会影响计算结果。对此,该类方法重点在于如何设计不同目标因素的权值分配,使计算结果满足约束条件。这种加权归一的方法虽然能够综合考虑各个目标因素对应用性能的影响,即可以采用加权的方式来放大关键的目标因素在路径计算时的主导能力,但无法按照应用逻辑进行精确的参数匹配(如,无法精确计算时延<300ms、带宽>500Mbps、抖动<50ms的路径,只能将时延、带宽或抖动的权值尽量放大,以近似满足应用的网络性能需求),只能根据应用的网络性能需求所对应的各目标因素的重要程度做较为粗粒度的加权,无法满足网络应用的精确SLA需求。针对此问题,新的一类分布式方法提出先基于单因素算出top K的最优路径组成候选解集,之后在候选解集中基于应用的网络性能需求筛选出最优路径,将其近似等同于全局最优路径(即基于单目标因素KSP的近似最优路径算法)。虽然在KSP算法所计算出的单目标因素top K解空间中可以实现按照应用网络性能需求的精确最优路径计算,但多目标因素最优性能的路径未必出现在单目标因素top K解空间当中(如,以时延为目标因素,基于KSP算法计算出了时延top10的路径,但时延top10路径有可能丢包、带宽或成本等其它目标因素较差,此时时延top10路径的解空间将会漏掉全局性能最优路径)。而基于网络分片的多个单目标因素的最优路径算法则是结合物理链路的逻辑网络分片方法,以实现在不同网络分片中基于不同的目标因素计算单目标因素路由,该类方法的代表方案是CISCO公司和Juniper公司联合推动的Felx-Algo方案,Flex-Algo方案依然采用标准的IGP算法,不同的是该方案允许在同样拓扑的网络中切换不同的目标因素。如以时延为目标因素和以带宽为算目标因素,在同样的网络拓扑下,可能因链路的性能不同而得到不同的端到端最优路由。结合物理网络的逻辑分片方法,可以为不同的应用在不同的网络分片中分别按照带宽或时延因素,计算不同的最优端到端路由,从而提供差异化的服务质量。但如之前分析,每个应用通常都对多个目标因素有性能需求(如,同时对时延、带宽、抖动等多个指标有需求),因此每个网络分片内部往往也需要基于多目标因素进行路径计算,Flex-Algo方案无法实现这个功能。
综上所述,现有的分布式近似最优路径算法存在的主要问题是无法精确计算出满足应用业务需求的多目标最优路径。导致这个问题的原因是:现有的分布式近似最优路径算法并未从根本上对IGP算法进行改变,因此在不改变该算法的前提下引入额外的目标因素,通常只能计算出近似最优路径,通常计算的结果不准确,也就无法在“局部最优路径+局部最优路径+…+局部最优路径≠全局最优路径”的多目标因素场景之中求得全局最优路径。
因此,本申请为解决上述问题,对传统的分布式IGP算法进行改进,通过记录额外的局部优势网络路径,能够在“局部最优路径+局部最优路径+…+局部最优路径≠全局最优路径”的多目标因素场景之中,以最小的计算开销精确计算出满足应用多目标因素的网络性能需求的端到端最优路径,突破所有现有方案的局限,提高了资源分配优化和资源控制优化的能力。
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
首先,对本申请实施例提供的网络路径的计算方法的核心原理进行说明,以视频类业务的双目标因素场景为例,假设视频类业务的网络性能需求是:首先选择带宽最大路径,当发现多条路带宽相等时,选择时延最低的路径。这是一个“带宽+时延”的双目标优化场景,本申请可以用一个包含2个元素的性能数组来标识每跳链路的带宽和时延,如(20,10)表示该条链路带宽为20、时延为10(这里忽略量纲)。
如图4所示,传统的IGP分布式算法,源节点(这里假设为图4中的节点u)每次迭代会将图4中的一个可达节点加入最优路径树当中,并更新当前最优路径树下,源节点到所有其它目的节点(w,v,x)的当前最优路径及路径性能。如第三次迭代时,节点w和节点v加入了最短路径树当中,此时路由表项中记录了节点u到节点w的最优路径为u→w,其性能为(20,1),即带宽为20、时延为1。而路由表项中记录的节点u到节点v的最优路径为u→w→v,其性能为(20,5)。这里需要注意的是,节点u到节点v还存在着另一条路径u→v,其性能为(10,2),但按照应用的网络性能需求,优先选择带宽最大的路径,因此经典IGP分布式算法认为路径u→w→v的性能(20,5)优于路径u→v的性能(10,2),因为路径u→w→v的首要性能指标“带宽”更大。而经典IGP分布式算法只会记录去每个目的节点的最优路径,因此路由表项中节点u去节点v只会记录性能为(20,5)的路径u→w→v,不会记录性能为(10,2)的路径u→v。进一步计算节点u到节点x的最优路径时,节点u发现可以通过节点w或者节点v中转而到达节点x。经典IGP分布式算法会依次比较两种情况下节点u到达节点x的端到端路径的性能,并记录最优性能路径,具体过程如下:
1)如果经节点w中转,节点u到达节点w的最优路径u→w的性能为(20,1),再加上节点w到节点x的直连路径的性能为(5,1),得到的端到端路径u→w→x的性能为(20,1)+(5,1)=(5,2),即带宽取两跳中最小值min(20,5)=5,时延为两跳相加add(1,1)=2。
2)如果经节点v中转,节点u到达节点v的最优路径u→w→v的性能为(20,5),再加上节点v到节点x的直连路径的性能为(10,3),得到的端到端路径u→w→v→x的性能为(20,5)+(10,3)=(10,8)。
此时源节点u综合比较两种情况下的端到端路径的性能,发现经过节点v中转的路径性能(10,8)优于经过节点w中转的端到端路径的性能(5,2),因为第一优化目标“带宽”更大。因此在经典IGP分布式算法下,最终算得的源节点u到目的节点x的最优路径为:u→w→v→x,其性能为(10,8)。
然而可以发现,经过节点v中转时,如果节点u到节点v不走局部最优路径u→w→v, 而走局部非最优路径u→v,之后再走节点v到节点x的直连路径,得到的端到端路径u→v→x的性能为(10,2)+(10,3)=(10,5),比经典IGP分布式算法中每一跳都走最优路径得到的IGP最优路径u→w→v→x的性能(10,8)更优,因为路径u→v→x的带宽与经典IGP分布式算法算得的端到端路径u→w→v→x相同,时延却更小。然而在经典IGP分布式算法的迭代计算过程当中,当计算到达目的节点v的最优路径时,由于路径u→w→v的性能(20,5)比路径u→v的性能(10,2)更优(因为路径u→w→v的带宽更大),因此经典IGP路由表项中没有记录局部非最优路径u→v,因此无法基于局部非最优路径u→v计算出端到端最优路径u→v→x。
针对该问题,本申请实施例在经典IGP分布式算法的基础上,引入局部非最优路径的记录。如图5所示,本申请实施例可以在第二次迭代节点w加入最优路径树之后,会算出有两条到达节点v的路径,分别为路径u→w→v和路径u→v,其中,路径u→w→v的性能为(20,5),路径u→v的性能为(10,2)。但不同于经典IGP分布式算法,在本申请实施例中,尽管根据业务的网络性能需求,路径u→v的性能不如路径u→w→v的性能,并非是最优路径,但在本申请实施例中该路径也会被记录下来。这样,在下一次迭代计算到达节点x的最优路径时,本申请实施例可以基于局部非最优路径u→v,计算出真正的端到端最优路径u→v→x。
引入非最优路径的记录,在解决多目标因素场景下最优路径的准确性问题的同时,可能会带来算路效率降低的新问题:在引入非最优路径记录之后,迭代计算需要遍历和比较更多的路径。如图6所示,假设一个三跳的网络拓扑,源节点到中间节点1的路径有N1条,中间节点1到中间节点2路径有N2条,中间节点2到目的节点的路径有N3条。若采用经典IGP分布式算法,每一跳只会计算并记录局部最优路径,并将逐跳最优路径拼接为端到端的最优路径,其计算复杂度为O(N1+N2+N3),计算开销最小但会算错最优路径;随着引入的非最优路径越来越多,算路的结果将会越来越准确,最极端情况是:当记录所有非最优路径(即全量路径)信息时,计算全局最优路径的复杂度将会增大为O(N1*N2*N3),此时必然能准确遍历出端到端多目标因素场景下的最优路径,但计算开销可能会很大。基于此,本申请实施例的另一目标就是找出能够保证多目标因素场景下路径计算准确的最小计算开销,即记录最少量的局部非最优路径,保证多目标因素场景的准确性。
针对计算复杂度优化的问题,本申请实施例设计了基于性能数组的偏序比较方法,能够在迭代计算的过程中实时过滤掉不需要被记录的局部非最优路径,通过实时剪枝来最小化计算开销。
在介绍完本申请实施例网络路径的计算方法的原理之后,下面对本申请实施例提供的网络路径的计算方法的具体过程进行说明。需要说明的是,在实际的网络系统(即目标网络)当中,可以是每个网络节点独立执行本申请实施例所述的网络路径的计算方法,以计算以本网络节点为源节点、到达最终的目的节点的多目标因素的优势网络路径,并基于得到的优势网络路径形成本地路由表。在这种情况下,执行下述步骤701至步骤707的主体是该源节点。
但需要注意的是,在本申请的另一些实施方式中,如果该网络系统中存在一个统一的 性能测试的网络节点(也可称为控制节点、管理节点等),也可以通过该控制节点执行本申请实施例所述的网络路径的计算方法,以计算以某个网络节点为源节点、到达最终的目的节点的多目标因素的优势网络路径,计算得到的优势网络路径再下发给网络系统中的其他网络节点以形成本地路由表。在这种情况下,执行下述步骤701至后续的步骤707的主体则是该控制节点。
因此,在本申请实施例中,本申请实施例提供的网络路径的计算方法的执行主体可以是当前的源节点,也可以是目标网络中具有统一管理的控制节点,针对不同的执行主体的情形,将分别介绍不同执行主体在各个步骤中的具体操作情况。
具体地,若执行主体为源节点,则该源节点与目标网络中的其他网络节点之间可以互相通过IGP信息的通告来获得网络拓扑及链路性能信息(如,时延、带宽、丢包率等),当接入该源节点的目标设备上的应用需要传输数据(即上述所述的待发送的数据)时,该目标设备上的应用将自身的应用需求(如,网络性能需求)形式化于数据包当中,之后,将该数据包传递给该源节点,该源节点在收到数据包并解析之后,综合应用需求以及网络拓扑、链路性能信息进行网络路径的计算。若执行主体为控制节点,则通过该控制节点向目标网络中的其他网络节点通告网络拓扑及链路性能信息,当接入该源节点的目标设备上的应用需要传输数据时,该目标设备上的应用将自身的应用需求形式化于数据包当中,之后,将该数据包传递给控制节点,该控制节点在收到数据包并解析之后,综合应用需求以及网络拓扑、链路性能信息进行网络路径的计算,并将计算得到的目标路径再通告给目标网络中的其他各个网络节点。
具体请参阅图7,图7为本申请实施例提供的网络路径的计算方法的一个流程示意图,具体可以包括如下步骤:
701、确定以源节点为起点、源节点的直连节点为终点的第一可达网络路径。
首先,确定以源节点为起点、该源节点的直连节点为终点的可达网络路径,该可达网络路径可称为第一可达网络路径(可以是一条或多条)。其中,直连节点是指与源节点直接连接且中间不经过其他节点中继的节点。需要注意的是,所述的可达网络路径不仅包括可达网络路径所涉及到的网络节点,还包括整个可达网络路径的整体网络性能(如,该可达网络路径的时延、带宽、丢包率等)。其中,该源节点为目标设备(即有待发送的数据的设备)所接入的网络(可称为目标网络)中的网络节点,该网络节点可以是路由器,也可以是目标网络中的服务器等,具体由所涉及的目标网络的类型决定,本申请对此不做限定。例如,假设该目标网络为Overlay网络,有个设备1(如,手机、主机等)就近接入了该Overlay网络中的网络节点A,则对于该设备1来说,网络节点A就是所述的源节点。类似地,若另一个设备2就近接入了该Overlay网络中的网络节点B,则对于该设备2来说,网络节点B就是所述的源节点。也就是说,该目标网络中的每个网络节点都可能成为某个目标设备对应的源节点,该源节点是对于某个具体的、有待发送数据的设备来说的。在本申请实施例中,为便于阐述,仅以某个特定的目标设备以及该目标设备接入的网络节点为源节点为例进行说明。
需要说明的是,在本申请的一些实施方式中,目标网络可以是Overlay网络,典型的 Overlay网络场景如承载音视频业务的实时网络RTN,RTN会根据音频或者视频业务对于时延、丢包、抖动等网络性能因素的不同需求,综合计算出满足音视频传输需求的最优端到端Overlay网络路径。此外,目标网络也可以是Underlay网络,典型的Underlay网络场景如园区网或云网之间业务数据传输的场景,在园区网场景中,需要根据不同办公应用对网络不同性能参数的诉求(如视频会议类业务需要抖动小+丢包低,桌面云业务需要大带宽+低时延等)规划路由器的最优数据转发路径;云网场景中,云服务提供商可以根据不同云用户的VIP等级,为用户提供不同性能质量的路径,如,金牌路径的时延<10ms且丢包<5%、银牌路径的时延<15ms且丢包<5%、铜牌路径的时延<20ms且丢包<10%等。具体本申请对目标网络的具体类型不做限定。
为便于理解步骤701,下面举例进行示意:具体请参阅图8,假设目标网络中确定的网络拓扑一共包括10个网络节点,分别为节点1-9,并假设源节点为节点0,其他网络节点为节点1-9,又假设基于该网络拓扑可知节点0可达的相邻节点(即直连节点)有4个,分别为节点1、节点2、节点3、节点4,因此,以源节点为起点、源节点的直连节点为终点的第一可达网络路径共有4条,分别为:节点0→节点1、节点0→节点2、节点0→节点3、节点0→节点4,为便于阐述,这4条第一可达网络路径可记为{0→1,0→2,0→3,0→4}。
由于步骤701的执行主体可以是源节点,也可以是控制节点。执行主体不同,步骤701的具体执行过程会略有不同,下面分别进行介绍:
(1)执行主体为源节点
在执行主体为源节点的情况下,确定以源节点为起点、该源节点的直连节点为终点的第一可达网络路径的具体实现方式可以是:源节点与目标网络中的其他网络节点之间可以互相通过IGP信息的通告来获得网络拓扑及链路性能信息(如,时延、带宽、丢包率、抖动等)。源节点再基于该网络拓扑及链路性能信息来确定以该源节点为起点、源节点的直连节点为终点的第一可达网络路径。
(2)执行主体为控制节点
在执行主体为控制节点的情况下,确定以源节点为起点、该源节点的直连节点为终点的第一可达网络路径的具体实现方式可以是:该控制节点获取网络拓扑以及链路性能信息。例如,该控制节点可以每隔一定时间周期(如,1分钟)收集目标网络的性能测量数据,并通过收集的性能测量数据来判断目标网络中的各个网络节点两两之间的连通状况,从而整合出整体的网络拓扑,此外,该控制节点还可以基于收集的性能测量数据得到链路性能信息。之后,控制节点再基于该网络拓扑及链路性能信息来确定以源节点为起点、源节点的直连节点为终点的第一可达网络路径。
需要说明的是,确定目标网络的网络拓扑的实现方式可以有多种,作为一个示例,可以是当两个网络节点之间的时延、带宽、抖动、丢包等网络性能达到或未达到预设阈值,就认为这两个网络节点不连通,例如,当两个网络节点之间的丢包率达到预设阈值(如,80%),则认为这两个网络节点不连通。作为另一示例,也可以是自定义设置目标网络中的某两个网络节点之间是否连通,例如,当维护人员基于其他限制要求需要断开网络节点 A与网络节点B之间的连通,则维护人员可以自定义设置网络节点A与网络节点B之间不连通。
702、判断待添加节点集是否为空集,若否,则执行步骤703;若是,则执行步骤707。
之后,判断待添加节点集是否为空集,其中,待添加节点集为该目标网络中除源节点之外的其他网络节点的集合。若确定该待添加节点集不是空集(即该待添加节点集中还有网络节点),则执行步骤703;若确定该待添加节点集是空集(即该待添加节点集中没有网络节点),则执行步骤707。
为便于理解步骤702,下面依然以图8为例进行示意:假设目标网络中确定的网络拓扑一共包括10个网络节点,分别为节点0-9,并假设源节点为节点0,则待添加节点集中就包括节点1-9,为便于阐述,该待添加节点集可记为{1,2,3,4,5,6,7,8,9},在执行步骤702时,可确定该待添加节点集不为空集(因为还有1-9共9个网络节点),在这种情况下,会跳转到步骤703,以执行后续的步骤703-706,其中需要注意的是,步骤706是个重复执行的过程,重复执行直至该待添加节点集为空。若该待添加节点集为空,则执行步骤707。
这里需要说明的是,不管执行主体是源节点还是控制节点,执行主体执行步骤702的过程是类似的,因此此处不再分别进行说明。
703、从待添加节点集中选择第一节点,得到以源节点为起点、第一节点为中继的第二可达网络路径。
在确定了待添加节点集不为空的情况下,从待添加节点集中选择一个节点(可称为第一节点),以得到以该源节点为起点、该第一节点为中继的可达网络路径,该可达网络路径可称为第二可达网络路径。
需要说明的是,在本申请的一些实施方式中,第二可达网络路径的中间节点不包括该待添加集中除第一节点之外的其他网络节点。并且,所述的第二可达网络路径的中间节点不包括第二可达网络路径的第一个网络节点(即源节点)和最后一个目的节点(即目的节点),而是指“中间”的任意网络节点。例如,假设第二可达网络路径为A→B→C→…→X,其中A、B、C、…、X均为网络节点,那么该第二可达网络路径的中间节点指的是B、C、…中的任意网络节点,而不包括源节点A和目的节点X。
还需要说明的是,在本申请的另一些实施方式中,从待添加节点集中选择某个网络节点作为第一节点的方式可以是随机进行选择,也可以是基于目标设备上待传送数据的网络性能需求,从待添加节点集中选择满足预设性能要求的某个网络节点作为第一节点。
为便于理解上述选择第一节点的过程,下面依然以图8为例进行说明:假设待传送数据的网络性能需求是:优先选择时延最低路径,当多条路径同时时延最低时,再优先选择丢包率最小的路径(即时延+丢包率双目标因素)。在本申请的一些实施方式中,可以从待添加节点集{1,2,3,4,5,6,7,8,9}中随机选取一个网络节点作为第一节点,这种选择方式的好处在于无需考虑额外因素;在本申请的另一些实施方式中,还可以基于该待传送数据的网络性能需求(即优先选择时延最低路径,当多条路径同时时延最低时,再优先选择丢包率 最小的路径)从待添加节点集{1,2,3,4,5,6,7,8,9}选择与节点0的预期局部路径(前提是假设目标网络中的各个网络节点均与该源节点连通,因此称为“预期局部路径”,而非真实的局部路径)时延最低的一个网络节点作为该第一节点,假设预期局部路径时延最低的网络节点为节点3,则选择出的第一节点就为节点3,这种选择方式的好处则在于可预先选择出相对更具优势的网络节点,以减少后续得到的优势网络路径的数量以及比较次数,从而提高迭代效率。
为便于理解步骤703,下面以图9为例进行示意:假设目标网络中确定的网络拓扑一共包括10个网络节点,分别为节点1-9,并假设源节点为节点0,则待添加节点集中就包括节点1-9,为便于阐述,该待添加节点集可记为{1,2,3,4,5,6,7,8,9},又假设从该待添加节点集中选择的第一节点为节点3,则在已有的网络拓扑中,找出以节点0为起点、节点3为中继的第二可达网络路径,且该第二可达网络路径的中间节点不能包括节点{1,2,4,5,6,7,8,9}。由图9可知,假设以节点0为起点、节点3为中继的第二可达网络路径共有5条,分别为{0→3→1,0→3→2,0→3→7,0→3→8,0→3→9}。
这里需要说明的是,不管执行主体是源节点还是控制节点,执行主体执行步骤703的过程是类似的,因此此处不再分别进行说明。
704、若在目标路径中存在m条到达同一目的节点的网络路径,则基于n个目标因素对该m条网络路径进行比较,得到第一优势网络路径,并基于第一优势网络路径更新目标路径,得到更新后的目标路径,目标路径包括第一可达网络路径以及第二可达网络路径,m≥2,n≥2。
在本申请实施例中,第一可达网络路径和第二可达网络路径所包括的所有可达网络路径就可称为目标路径(一条或多条),例如图9所示,第一可达网络路径共4条,分别为{0→1,0→2,0→3,0→4},第二可达网络路径共5条,分别为{0→3→1,0→3→2,0→3→7,0→3→8,0→3→9},则得到的目标路径为4+5=9条,分别为{0→1,0→3→1,0→2,0→3→2,0→3,0→4,0→3→7,0→3→8,0→3→9}。
之后,判断在目标路径中是否存在m(m≥2)条到达同一目的节点的网络路径,若存在,则基于n(n≥2)个预设的目标因素对这m条网络路径进行比较,以得到优势网络路径(一条或多条),该优势网络路径可称为第一优势网络路径,并基于第一优势网络路径更新该目标路径,得到更新后的目标路径。
需要说明的是,在本申请的一些实施方式中,目标因素可以是网络性能指标,如,带宽、时延、丢包率、抖动、成本等。这里需要注意的是,由于在业界不管是集中式算法,还是分布式近似最优路径算法(如,上述所述的基于多目标因素加权归一的IGP分布式路径算法、基于单目标因素KSP的近似最优路径算法、基于网络分片的多个单目标因素的最优路径算法等),计算逻辑都是以“求最优”这个单一的维度来呈现,如,求时延最优路径、丢包最优路径等。而在实际的应用场景中,未必所有的指标都要求最优,有时候往往有些指标优化到一定阈值之内就可以了,比如所述的时延<300ms、带宽>500Mbps、跳数不超过4跳等,在本申请实施例中,称此类无需求得最优解的目标因素称为条件限制目标。因此,在本申请的一些实施方式中,目标因素也可以是条件限制目标,如,时延< 300ms、带宽>500Mbps、网络路径的总跳数不超过预设跳数等,具体本申请对目标因素的具体类型不做限定,可基于具体的应用场景以及需求自行设定。在本申请实施例中,当应用的网络性能需求既存在网络性能指标又存在条件限制目标时,那么在条件限制目标未达到阈值之前,条件限制目标转化为具体的指标值参与到第一优势路径的计算;当条件限制目标达到阈值后,则不再参与到第一优势路径的计算(即直接剔除对应网络路径)。
为便于理解该步骤704,下面依然以图9为例进行示意:由上述描述可知,得到的目标路径为9条,分别为{0→1,0→3→1,0→2,0→3→2,0→3,0→4,0→3→7,0→3→8,0→3→9}。在这9条目标路径中,以节点0为源节点、到达同一目的节点的至少两条网络路径共有2组,一组是到达同一目的节点1的网络路径共有2条:{0→1,0→3→1},另一组是到达同一目的节点2的网络路径也有2条:{0→2,0→3→2}。以第一组网络路径{0→1,0→3→1}为例:基于n(n≥2)个预设的目标因素对这2条网络路径{0→1,0→3→1}进行比较,以得到与第一组网络路径对应的一条或多条第一优势网络路径,其中,第一优势网络路径的数量小于或等于第一组网络路径的数量;类似地,对于第二组网络路径{0→2,0→3→2},同样是基于这n个预设的目标因素对这2条网络路径{0→2,0→3→2}进行比较,以得到与第二组网络路径对应的一条或多条第一优势网络路径,其中,第一优势网络路径的数量小于或等于第二组网络路径的数量。最后,基于所得到的各个组对应的第一优势网络路径更新该目标路径,得到更新后的目标路径。
需要说明的是,在本申请的一些实施方式中,基于所得到的第一优势网络路径更新该目标路径的实现方式可以是:对于到达同一目的节点存在所述m条网络路径的情况,在目标路径中仅保留该第一优势网络路径,也就是说,在比较中成为非优势的网络路径会从该目标路径中剔除,不再参与后续的迭代过程,通过实时过滤掉不需要被记录的非优势网络路径(即实时剪枝)来最小化计算开销。
为便于理解上述实时剪枝的过程,依然以上述例子进行说明:假设对第一组网络路径比较后最终得到的第一优势网络路径为{0→1},对第二组网络路径比较后最终得到的第一优势网络路径为{0→3→2},则在这9条目标路径中删除路径{0→3→1,0→2},更新后的目标路径就为7条,分别为{0→1,0→3→2,0→3,0→4,0→3→7,0→3→8,0→3→9}。
需要说明的是,在本申请的一些实施方式中,若在目标路径中存在m条到达同一目的节点的网络路径,则基于n个目标因素对该m条网络路径进行比较(这里忽略应用的具体网络性能需求),得到第一优势网络路径的具体实现方式可以是:基于n个目标因素对m条网络路径进行偏序比较,偏序比较后更优势的网络路径或无法比较出优劣的网络路径均作为优势网络路径,此时得出的优势网络路径可称为第二优势网络路径。下面对如何进行偏序比较的一个具体实现方式进行介绍:
首先基于所述的n个目标因素,构建这m条网络路径的m个性能数组,每个性能数组中包括有序排列的n个元素,一条网络路径对应一个性能数组,一个元素对应一个目标因素在对应网络路径上的具体取值。例如,假设预设的n个目标因素分别为metric-1、metric-2、…、metric-n(metric可以为任意指标,如带宽、时延、丢包率等网络性能指标,也可以为任意条件限制目标,如路径总跳数不超过5跳等),且到达同一目的节点的网络 路径共有2条(即m=2),分别为路径A和路径B,则构建2个性能数组,分别为与路径A对应的性能数组(metric-a1、metric-a2、…、metric-an)以及与路径B对应的性能数组(metric-b1、metric-b2、…、metric-bn),metric-a1、metric-a2、…、metric-an为路径A上各个对应的目标因素的具体取值,metric-b1、metric-b2、…、metric-bn为路径B上各个对应的目标因素的具体取值。之后,比较这m个性能数组中每个对应位置处元素的取值大小,比较的结果会出现如下不同情形:
(1)第一性能数组中每个元素的取值均大于或等于第二性能数组中对应位置处元素。
在这种情况下,确定第一性能数据对应的网络路径为第二优势网络路径,第二性能数据对应的网络路径则为非优势网络路径,其中,第一性能数组和第二性能数组为m个性能数组中的任意两个。
为便于理解,依然以上述例子为例进行说明:由于路径A对应的性能数组为(metric-a1、metric-a2、…、metric-an),路径B对应的性能数组为(metric-b1、metric-b2、…、metric-bn),如果路径A性能数组中的每一项指标都优于或等于路径B性能数组中对应位置处的指标,即:metric_a1≥metric_b1、metric_a2≥metric_b2、…、metric_an≥metric_bn,则认为路径A为所述的第二优势网络路径,对应地,则路径B为非优势路径,路径B会从目标路径中剔除(即不被记录)。
(2)第一性能数组中存在第一元素的取值大于或等于第二性能数组中对应位置处元素的取值,且第二元素的取值小于或等于第二性能数组中对应位置处元素的取值。
在这种情况下,确定第一性能数组对应的网络路径以及第二性能数组对应的网络路径均为第二优势网络路径,其中,第一元素以及第二元素为所述第一性能数组中的任意两个元素。
为便于理解,同样以上述例子为例进行说明:由于路径A对应的性能数组为(metric-a1、metric-a2、…、metric-an),路径B对应的性能数组为(metric-b1、metric-b2、…、metric-bn),如果路径A性能数组中的每一项指标都优于或等于路径B性能数组中对应位置处的指标,即:metric_a1≥metric_b1、metric_a2≥metric_b2、…、metric_an≥metric_bn,则认为路径A为所述的第二优势网络路径(即第一种情形),否则(如,metric_a1≥metric_b1、metric_a2<metric_b2),就认为路径A与路径B无法比较出优劣(忽略具体应用的网络性能需求),两个路径均需要作为第二优势路径被保留。
为进一步加深对偏序比较方法的理解,下面以一个具体的实例对上述比较过程进行说明:具体请参阅图10,以2个目标因素“带宽+时延”为例,假设由同一个网络节点x为起点、到达同一目的节点y的网络路径(该网络路径中间可能跨过了一个或多个其他网络节点)共有5(即m=5)条,分别为P0、P1、P2、P3、P4,具体的网络路径所涉及的网络节点如图10所示,其性能数组分别为P0:(带宽20,时延5),P1:(带宽10,时延2),P2:(带宽20,时延10),P3:(带宽10,时延6),P4:(带宽18,时延10)。根据本申请实施例所述的偏序比较筛选方法可知,路径P2和P4由于双属性均差于或等于P0,因此无需被记录;路径P3由于双属性均差于或等于P1,因此也无需被记录;而路径P0和P1无法比较出优劣(因为路径P0的带宽优于P1,而路径P1的时延优于P0),因此这两个 路径均作为第二优势路径被记录。
可以理论证明,本申请实施例所述的基于性能数组的偏序比较方法实现了最大限度的路径信息规约,即记录了最少量的非最优路径同时保证多目标因素需求的准确性。证明过程如下:假设本申请实施例基于性能数组的偏序规约方法得到的所有第二优势网络路径不能保证多目标因素需求的准确性,那说明最优端到端路径中的某一跳或几跳的局部路径不包含在本申请实施例方法所规约出的第二优势网络路径当中;这里假设最优端到端路径中的某一跳PathM不包含在本申请实施例方法所计算出的第二优势网络路径当中,并且“PathM+其它跳路径”组成了真正的多目标因素的最优路径(即本方案的路径计算错误),那么根据第二优势网络路径的计算规则,本申请实施例方法所计算的第二优势网络路径当中一定能找到另一条路径PathN,使得PathN的所有性能指标都优于或等于PathM(否则会出现PathN与PathM无法比较出优劣的情况,那么PathM也会出现在第二优势网络路径当中,与假设矛盾),进一步则可以得出“PathN+其它跳路径”性能优于或等于“PathM+其它跳路径”,即本申请找到了一条比端到端最优路径性能更优的端到端路径,显然这不符合逻辑。因此,假设错误,即基于本申请实施例方法所筛选出的第二优势网络路径中一定包括多目标因素的端到端最优路径。
综上所述,在基于n个目标因素对m条网络路径进行偏序比较,偏序比较后更优势的网络路径或无法比较出优劣的网络路径均作为第二优势网络路径。之后,再根据具体的需求,基于得到的第二优势网络路径得到第一优势网络路径。需要注意的是,在本申请实施例中,基于第二优势网络路径得到第一优势网络路径具有不同的情形,下面对不同情形进行说明,包括但不限于:
情形一、每个第二优势网络路径均作为第一优势网络路径。
情形一般适用于网络规模相对较小(如RTN网络的规模最大为100个网络节点),因此采用性能数组的偏序比较方法所筛选出的第二优势网络路径的数量相对也相对较少。因此即便基于全量的第二优势网络路径进行后续迭代计算,整体多目标因素场景的计算开销也不大,例如,在100个网络节点的RTN网络中,可以在百毫秒量级完成所有端到端多目标因素场景的最优路径的计算。
情形二、在第二优势网络路径存在至少p条的情况下,从p条第二优势网络路径中选择q条作为第一优势网络路径,m≥p≥2,p≥q≥1。
假设当本申请实施例所述的网络路径的计算方法应用在超大规模网络(如,网络节点达到上万个的规模)时,可能出现第二优势网络路径的记录数量随着迭代计算的进行而逐步增大的情况,此时基于全量的第二优势网络路径进行迭代计算也会有比较大的计算开销。如图11所示,在超大规模的网络中,每次迭代记录的第二优势网络路径会越来越大:一开始到达某目的节点第二优势网络路径只有两条:Path0和Path1,随着迭代计算的进行,到达某后续目的节点的第二优势网络路径已经扩大为8条(Path0~Path7),因此也导致网络路径计算的效率越来越低。此时,如果网络中承载的业务为实时类业务的话,网络路径的计算效率退化会影响到业务的实时性。
针对该问题,本申请实施例提供了一种改进方案,以实现在大规模网络中进一步优化 多目标因素场景的计算开销,达到满足实时类业务对快速计算的需求这一目的。
具体的改进方案就是所述情形二所述的方案,即在第二优势网络路径存在至少p条的情况下,从p条第二优势网络路径中选择q条作为第一优势网络路径,m≥p≥2,p≥q≥1。也就是说,当到达某同一目的节点的第二优势网络路径数目达到一定数量p(如,p=4)时,为了保证计算的高效性,后续不再基于全量的第二优势网络路径迭代计算,而是在当前得到的第二优势网络路径中选取q(如,q=2)条进行迭代计算,从而优化计算开销。选取出来的第二优势网络路径就是所述的第一优势网络路径,其中,选取方式可以是随机选取,也可以是基于一定的选取规则(如,选取跳数更少、带宽更大等)进行选取,本申请对此不做限定。这里需要注意的是,在本申请的一些实施方式中,若需要重复多轮次计算,则在第一轮次中的从p条第二优势网络路径中选择q条作为第一优势网络路径的操作可以是随机选取,但在之后的轮次计算中,上一轮选取的第一优势网络路径中的最优路径可以作为可行解之一迭代到下一轮次中去。例如,假设当前全量优势路径有10个,分别为路径1~10,第一轮随机选择了路径2、3和7,发现这三个路径里面的最优路径为3,则3号路径会被记录下来,下一次迭代计算的时候,又随机选出了三条路径1、5和8;再加上上一次的局部最优路径3,因此本次会有1、3、5、8一共四条路径参与后续路径的计算,再记录当前的局部最优路径(如5),继续迭代,直至最后一个轮次得到的目标路径达到收敛条件或达到预设轮次数。
这里需要说明的是,不管执行主体是源节点还是控制节点,执行主体执行步骤704的过程是类似的,因此此处不再分别进行说明。
705、从待添加节点集中删除第一节点,并将更新后的目标路径作为新的第一可达网络路径。
在得到更新后的目标路径之后,就可从待添加节点集中删除该第一节点,并将更新后的目标路径作为新的第一可达网络路径。
例如依然以图9为例进行示意:由于第一可达网络路径共4条,分别为{0→1,0→2,0→3,0→4},第二可达网络路径共5条(从待添加节点集中选择的第一节点为节点3),分别为{0→3→1,0→3→2,0→3→7,0→3→8,0→3→9},则得到的目标路径为4+5=9条,分别为{0→1,0→3→1,0→2,0→3→2,0→3,0→4,0→3→7,0→3→8,0→3→9}。此时这9条目标路径是更新前的目标路径。假设在这9条目标路径中,以节点0为源节点、到达同一目的节点的至少两条网络路径共有2组,一组是到达同一目的节点1的网络路径共有2条:{0→1,0→3→1},另一组是到达同一目的节点2的网络路径也有2条:{0→2,0→3→2}。又假设对第一组网络路径比较后最终得到的第一优势网络路径为{0→1},对第二组网络路径比较后最终得到的第一优势网络路径为{0→3→2},则在这9条目标路径中删除路径{0→3→1,0→2},更新后的目标路径就为7条,分别为{0→1,0→3→2,0→3,0→4,0→3→7,0→3→8,0→3→9。更新后的目标路径{0→1,0→3→2,0→3,0→4,0→3→7,0→3→8,0→3→9}就作为新的第一可达网络路径参与到后续重复执行步骤702至步骤705的过程中,且在这一次迭代中,待添加节点集删除节点3后还包括的网络节点就为{1,2,4,5,6,7,8,9}。
这里需要说明的是,不管执行主体是源节点还是控制节点,执行主体执行步骤705的 过程是类似的,因此此处不再分别进行说明。
706、重复执行步骤702至步骤705。
在将更新后的目标路径作为新的第一可达网络路径之后,重复执行步骤702至步骤705,直至该待添加节点集为空。
为便于理解这个重复执行的过程,下面以图12为例进行示意:假设目标网络中确定的网络拓扑一共包括10个网络节点,分别为节点1-9,并假设源节点为节点0,其他网络节点为节点1-9,又假设基于该网络拓扑可知节点0可达的相邻节点(即直连节点)有4个,分别为节点1、节点2、节点3、节点4。因此,以源节点为起点、源节点的直连节点为终点的第一可达网络路径共有4条,记为{0→1,0→2,0→3,0→4}(此时迭代次数可记为0);这时候判断待添加节点集是否为空,由图12可知,此时待添加节点集为{1,2,3,4,5,6,7,8,9},假设从该待添加节点集中选择的第一节点为节点3,则在已有的网络拓扑中,可以找出以节点0为起点、节点3为中继的第二可达网络路径为{0→3→1,0→3→2,0→3→7,0→3→8,0→3→9}。则目标路径为{0→1,0→3→1,0→2,0→3→2,0→3,0→4,0→3→7,0→3→8,0→3→9},共9条。在基于上述方式对这9条目标路径中到达同一目的节点的网络路径进行偏序比较后,在这9条目标路径中删除路径{0→3→1,0→2},更新后的目标路径就为7条,分别为{0→1,0→3→2,0→3,0→4,0→3→7,0→3→8,0→3→9},此时待添加节点集为{1,2,4,5,6,7,8,9}(此时迭代次数可记为1);之后,在第2次迭代(即迭代次数记为2)时,判断待添加节点集是否为空,由图12可知,此时待添加节点集为{1,2,4,5,6,7,8,9},假设从该待添加节点集中选择的第一节点为节点6,则在已有的网络拓扑中,可以找出以节点0为起点、节点6为中继的第二可达网络路径为{0→3→6→1,0→3→6→2,0→6→3,0→6→4,0→6→5,0→6},共6条。由于在第1次迭代中得到的新的第一可达网络路径为{0→1,0→3→2,0→3,0→4,0→3→7,0→3→8,0→3→9},共7条。则第2次迭代中得到的目标路径为6+7=13条,为{0→1,0→3→6→1,0→3→2,0→3→6→2,0→3,0→6→3,0→4,0→6→4,0→6→5,0→6,0→3→7,0→3→8,0→3→9},同样地,在基于上述方式对这9条目标路径进行偏序比较后,在这9条目标路径中到达同一目的节点的网络路径进行偏序比较,即对{0→1,0→3→6→1}、{0→3→2,0→3→6→2}、{0→3,0→6→3}、{0→4,0→6→4}这4组网络路径进行偏序比较,比较后的结果假设是{0→1,0→3→6→1}均为第二优势网络路径(即无法比较出优劣),且{0→3→6→2}、{0→3}、{0→4}为第二优势网络路径,则从这13条网络路径中删除路径{0→3→2,0→6→3,0→6→4},更新后的目标路径就为10条,分别为{0→1,0→3→6→1,0→3→6→2,0→3,0→4,0→6→5,0→6,0→3→7,0→3→8,0→3→9},这10条目标路径就作为第3次迭代时的第一可达网络路径,此时待添加节点集为{1,2,4,5,7,8,9}(此时迭代次数可记为2);之后,按照上述类似的步骤继续判断待添加节点集是否为空以及后续的操作过程,直至待添加节点集为空。
这里需要说明的是,不管执行主体是源节点还是控制节点,执行主体执行步骤706的过程是类似的,因此此处不再分别进行说明。
707、根据目标设备上待传送数据的网络性能需求,从最后一次更新得到的第一可达网络路径中确定以源节点为起点、待传送数据对应的目的节点为终点的目标网络路径,该 目标网络路径用于传输该待传送数据。
若确定待添加节点集为空,即该待添加节点集中没有网络节点,则最后一次更新得到的第一可达网络路径就为当前轮次最终得到的第一可达网络路径。
这里需要注意的是,在本申请实施例中,轮次与迭代次数不同,轮次是指执行步骤701至步骤706的次数,执行步骤701至步骤706一次为一个轮次;而迭代次数是指重复执行步骤702至步骤706直至待添加加节点集为空次数,执行步骤702至步骤705一次为一个迭代次数,一个轮次中可能包含一个或多个迭代次数。
还需要说明的是,由步骤704可知,基于第二优势网络路径得到第一优势网络路径具有不同的情形,如上述所述的情形一和情形二。在本申请的一些实施方式中,对于不同的情形,情况略有不同,下面分别进行介绍:
(1)对于情形一:每个第二优势网络路径均作为第一优势网络路径。
由于情形一般适用于网络规模相对较小(如RTN网络的规模最大为100个网络节点),因此采用性能数组的偏序比较方法所筛选出的第二优势网络路径的数量相对也相对较少。因此即便基于全量的第二优势网络路径进行后续迭代计算,整体多目标因素场景的计算开销也不大。
因此,在这种情形下,端到端的最优路径一定是包含在当前轮次最后一次更新的第一可达网络路径中,据此可直接根据目标设备上待传送数据的网络性能需求,从当前轮次的最后一次更新得到的第一可达网络路径中确定以源节点为起点、待传送数据对应的目的节点为终点的第一目标网络路径,并基于该第一目标网络路径传输所述待传送数据。例如,网络节点(如,源节点、控制节点等)可以将到达所有其它网络节点的最后一次更新得到的第一可达网络路径记录于多目标因素路由表当中,之后再按照待传送数据的网络性能需求,计算到达每个目的节点的优势网络路径中的最优路径,并对最优路径进行标注,到达所有目的节点的最优路径计算完成之后,网络节点读取应用数据包头中的目的节点IP地址,按照去往该IP地址的最优路径,将所述待发送数据的各个数据包转发至下一跳网络节点。
为便于理解这个过程,下面依然以图12为例进行示意:假设当前轮次最后一次更新得到的第一可达网络路径包含12条网络路径,分别为{0→1,0→3→6→1,0→7→2,0→8→3,0→4,0→6→5,0→6,0→3→9→7,0→2→8,0→3→8,0→1→8,0→7→9}。若目标设备(假设为主机1,接入的是节点0)上待传送数据需要发送至目的端设备(假设为主机2),该目的端设备接入的是节点8,且该待传送数据的网络性能需求是:优先选择时延最低路径,当多条路径同时时延最低时,再优先选择丢包率最小的路径(即时延+丢包率双目标因素)。由上述可知,该待传送数据对应的目的节点为节点8,并由当前轮次最后一次更新得到的第一可达网络路径可知,以节点0为起点、待传送数据对应的目的节点8为终点的网络路径共有3条,分别为{0→2→8,0→3→8,0→1→8},之后,根据上述所述的待传送数据的网络性能需求,得到的最优路径为{0→3→8},则该路径{0→3→8}就是所述的第一目标网络路径,最后,基于该第一目标网络路径{0→3→8}对该待传送数据进行传输。
这里需要说明的是,传统的路由,当IP地址确定之后路由表项也随之固定(如,永远 走代价最优路由),每个网络节点运行逐地址路由,因此只要源/目的的IP地址确定了,路由表也就针对该对地址计算出了唯一确定的路由。而不同于IGP单目标因素场景,本申请实施例针对的是多目标因素场景,针对同一网络性能需求,网络中任意两个网络节点可能需要记录多条优势路径而非单条最优路径;另外,多目标因素场景本身同一源/目的节点会因为应用网络性能需求的差异而存在多个不同的最优路径,网络节点也需要对不同业务数据的路径进行区分。对此,本申请还设计了逐应用(可以是逐具体的应用,也可以是逐应用类型(如,社交类、游戏类等))的分布式多目标因素路由表,具体如图13所示。本申请实施例由于是多目标因素场景,因此可针对不同应用的SLA需求进行多目标因素的路径计算,同样的源/目的节点可能因承载的业务不同而走不同的路径,因此是逐业务路由,因此会出现如图13所示的情况,同样的源/目的地址对,由于应用A与应用B的网络性能需求不同,因此需要不同的路由表来对不同应用的最优路径进行记录,对于每一个应用,路由表中需要记录各路径的不同性能指标(Metric1,Metric2,Metric3,…),以便于迭代计算;另外,运用本申请实施例所述的网络路径的计算方法,即便在同一个应用路由表中,也会对同一个目的地址记录多个不同第一可达网络路径(即更新后的目标路径)及对应路径性能,因此需要在表项中指出针对具体应用的最优路径。在用户输入路由表展示的命令后,除了需要展示逐应用的路由表外,还需要指定每一类业务的具体网络性能需求,以及该网络性能需求下采用本申请方案所计算出的多个第一可达网络路径中的最优路径,如图13中用*来标识最优路径,路由表中的其它记录的表项均为第一可达网络路径。本申请实施例通过设计与本申请实施例所述的网络路径的计算方法相匹配的多目标因素路由表,实现了相同源/目的地址对之间基于不同应用的区别路由,突破了传统路由表仅能进行逐地址对路由的局限性。
需要注意的是,在本申请实施例中,所述的应用A和应用B可以是某具体的应用(如,应用A为微信、应用B为QQ等),也可以表示的是应用类型(如,应用A指的是社交类应用、应用B指的是购物类应用),其中,应用类型可事先区分好,每个具体的应用都可以划分到某个具体的应用类型下,然后网络节点可以维护每种具体的应用下或应用类型下的路由表,一种应用或应用类型对应一种网络性能需求。
还需要注意的是,图13为本申请实施例示意的多目标因素路由表的一个具体实现方式,在本申请的另一些实施方式中,还可以有其他呈现形式的路由表设计,本申请对此不做限定。只要该路由表采用的是逐应用(也可称逐业务)路由,每类应用一个路由表(不同于其它方案逐IP路由,所有业务共用一个表项),且路由表中记录了每条路径的多个性能参数,则都可称为本申请实施例所述的多目标因素路由表。需要注意的是,多目标因素路由表需要指定每一类应用的具体网络性能需求,以及该网络性能需求下采用本申请实施例方案所计算出的多个优势路径中的最优路径,否则无法正确转发数据。
综上所述,情形一对应的网络路径的计算方法,通过引入局部非最优路径的记录,允许基于非最优局部路径进行端到端路径的迭代计算,从而在“局部最优路径+局部最优路径+…+局部最优路径≠全局最优路径”的多目标因素场景下保证最优路径的准确性;而基于性能向量偏序比较的优势路径筛选方法,在保证算路准确的基础上还保证了引入最少 量的非最优路径记录,因此最大程度优化了计算开销,保证最优算路的高效性。而基于性能数组的偏序比较的优势路径筛选方法,可以在迭代计算的过程中最大限度的过滤掉不需要被记录的非优势路径,因此最大程度优化了计算开销,保证了计算的高效性。
(2)对于情形二:在第二优势网络路径存在至少p条的情况下,从p条第二优势网络路径中选择q条作为第一优势网络路径,m≥p≥2,p≥q≥1。
情形二是一种针对大规模网络的改进方案,具体实现可以简单概括为:随着迭代计算的进行,当到达某同一目的节点所记录的第二优势网络路径数目达到一定数量p(如,p=4)时,为了保证计算的高效性,后续不再基于全量的第二优势网络路径迭代计算,而是在当前得到的第二优势网络路径中选取q(如,q=2)条进行迭代计算,从而优化计算开销。对于有特殊需求的业务(如,实时性要求高的语音、视频等业务),可根据目标设备上待传送数据的网络性能需求,从当前轮次的最后一次更新得到的第一可达网络路径中确定以源节点为起点、待传送数据对应的目的节点为终点的第二目标网络路径,并基于该第二目标网络路径传输所述待传送数据。该过程与上述情形一对应的处理过程是类似的,此处不予赘述。
然而,当前轮次最后一次更新得到的第一可达网络路径是基于选取的第二优势网络路径得到的,这样当前轮次基于部分信息算得的第一可达网络路径中可能不包括端到端最优路径,基于此,在本申请的另一些实施方式中,通过采用多轮次计算的方法使每次基于部分选取的第二优势网络路径计算出来的端到端路径逐渐收敛至全局最优路径,具体地,可以是重复执行上述步骤701至步骤706,直至最后一个轮次得到的第一可达网络路径达到收敛条件或达到预设轮次数(如,达到50次)。
以随机选取的方式为例,具体多轮计算的方法为:下一轮计算第一可达网络路径时,当到达某同一目的节点的第二优势网络路径数目达到一定数量p(如,p=4)时,同样采用从中随机选取q个第二优势网络路径进行后续迭代计算的办法。但与前一轮次计算可以存在不同的是,本轮次计算可以将上一轮所记录的局部最优路径也加入本轮次待随机选取的第二优势网络路径当中,一起参与后续的迭代计算。这样,当多轮反复计算之后,基于随机部分信息所算得的端到端路径将最终收敛至全局最优解。
这里需要说明的是,在本申请的一些实施方式中,假设根据目标设备上待传送数据的网络性能需求,当前轮次正在传输待传送数据的目标网络路径为第二目标网络路径,而经过下一轮或多轮计算后,得到的满足预设条件的目标网络路径(如,最优目标网络路径)为第三目标网络路径,意味着第三目标网络路径的网络性能优于第二目标网络路径,在这种情况下,可以将待传送数据的传输路径由第二目标网络路径切换至第三目标网络路径。这里需要注意的是,切换的方式可以包括但不限于:
a、随时切换模式
这种切换模式适用单轮计算,具体地,只要下一轮计算得到的第一可达网络路径中存在网络性能(即第三目标网络路径)优于当前正在进行数据传输的第二目标网络路径,就进行切换。这种切换的原理是:只要有更优的目标网络路径产生,就切换。这种随时切换的好处在于:待传送数据的传输路径始终保持在当前计算得到的最优网络路径上,提高了 传输效率。
此外,还需要说明的是,在本申请的一些实施方式中,也可以是每轮次计算完当前轮次的第一可达网络路径后,都进行传输路径的切换,这是因为在每个下一轮次计算中,若都引入了上一轮最优路径的记录之后,可以使得每次切换都向着更好的一条路来优化,具体本申请对随机切换模式的具体实现方式此不做限定。
b、一次切换模式
这种切换模式适用多轮计算,具体地,在最后一个轮次得到的第一可达网络路径达到收敛条件或达到预设轮次数之前,待传送数据一直经由当前轮次(即第一轮次)得到的第二目标网络路径进行传输,等所有轮次结束后,再从所有轮次得到的第一可达网络路径中选择满足预设条件的第三目标网络路径(如,所有轮次中的最优目标网络路径)进行切换。这种一次切换的好处则在于:不必频繁更替待传送数据的传输路径,保证传输路径的稳定性。
为便于理解,下面以图14所示的计算过程为例进行说明:图14中横向表示每轮优势路径树第一可达网络路径的迭代计算过程,每个方框中记录了当前到达当前目的节点的优势路径数目;而纵向表示的是多轮优势路径树第一可达网络路径计算,每轮与下一轮计算之间的信息交互关系。
从图14中可以看出,第一轮第一可达网络路径计算(即第一轮目标路径的计算过程)时,当算到第三个目的节点(假设为节点3)时,第二优势网络路径数目达到了4条(Path0,Path1,Path2,Path3),这里假设p=4,此时为了优化计算开销,随机从4条第二优势网络路径中选择2条(即q=2)参与到下一网络节点(假设为节点4)的目的路径的迭代计算中,如图14中,第一轮计算时节点3随机选择的路径为Path1和Path2,两条路径中性能更好的是Path2。假设在之后在计算节点4的第二优势网络路径时也算出了4条路径,同样随机选择了两条路径(Path0和Path2)参与下一网络节点(假设为节点5)的目的路径的迭代计算中,并记录了两条路径中性能最优的路径Path0,以此类推,直至完成所有目的节点的目的路径计算。由于从节点3开始缩减了迭代计算的信息量,因此导致基于部分信息算出的每条端到端路径并非是全局最优的,于是有了后面的多轮第一可达网络路径的再次计算。另外,在当前轮次的第一可达网络路径计算结束之后,对于时延敏感类的业务可以先沿当前计算的近似最优路径进行数据传输,如果后续计算对近似最优路径进行了优化,可以随时切换业务数据的传输路径,进一步提高服务质量。
第二轮第一可达网络路径计算时,同样到了第三个目的节点时算出了4条第二优势网络路径,同样随机选择两条路径参与节点4的目的路径计算,假设第二轮次随机到了Path0和Path1,再加上上一轮节点3的最优随机路径Path2,一共3条路径(Path0,Path1及Path2)参与到节点4的目的路径的计算中,同时记录3条路径中性能最优的路径Path0;同样地,节点4算出了4条第二优势网络路径之后,也随机选择2条路径进行节点5的目的路径的计算,假设第二轮次随机到了Path2和Path3两条路径,再加上上一轮的最优随机路径Path0,一共3条路径(Path0,Path2及Path3)参与节点5的目的路径的计算,以此类推,直至完成所有目的节点各自对应的目的路径的计算。由于第二轮次计算随机选择的 路径可能与上一轮不同,另外又加入了上一轮的最优路径参与本轮的路径计算,因此本轮计算之后,到达每个目的节点的最优网络路径有可能发生了变化,此时已经沿上一轮计算结果传输的待传送数据可以切换到新的路径(即第三目标网络路径)上继续传输(这里以随时切换模式为例)。
同理,第三轮第一可达网络路径计算时,每个目的节点依然随机选择2条第二优势网络路径,再加上第二轮选择路径中的最优路径共3条路径参与下一节点的目的路径迭代计算,之后进一步更新源节点到每个目的节点的最优路径。这样当经过多轮重复计算之后,基于随机选择的局部路径所计算出的端到端路径最终将收敛至全局最优路径,与基于全量优势路径的计算结果相同。但本申请实施例的好处就在于:可以先算出一个近似最优路径让实时类业务发起数据传输,并在业务传输的过程中逐渐优化调整当前传输路径至最优路径,尤其适用于大规模网络中。
另外需要注意的是,在本申请实施例中,由于在首轮第一可达网络路径计算结束之后,待传送数据的传输就已经开始,因此后续每一轮计算完成后都有可能更新到达与该待传送数据对应的目的节点的最优路径,因此有可能频繁调整数据的传输路径,而当数据在传输过程中进行传输路径的切换时,则有可能引起数据传输的乱序问题。
图15则展示了一个因路径切换而引起的数据传输乱序问题:当业务数据传输完17号数据包时,网络节点算出了一条新的最优路径,于是将后续的数据传输(18号数据包之后的数据)切换到新路径上进行,而由于新路径的时延优于原路径,使得数据包到达目的节点的顺序出现了混乱,如,18号数据包和19号数据包先于15号数据包到达目的节点。而经典TCP协议当发现数据乱序时,对于乱序的数据一并按照丢包处理,因此会发起数据重传从而使传输性能退化。
基于此,本申请实施例还提供了一种解决数据乱序问题的方案,即网络节点(如,源节点)在获取到切换指令时,等待预设时长后再在新路径(即第三目标网络路径)上发起待传送数据中未传数据包的传输。具体的解决方案也在图15中进行了展示:当计算出新的传输路径之后,网络节点等待一段时间Δt后,再在新路径发起后续数据传输。在本申请的一些实施方式中,等待的时间Δt可以为新路径与旧路径之间的时延差,这样可以保证新路径传输的第一个数据包(即18号数据包)不会早于原路径传输的最后一个包(即17号数据包)到达目的节点,从而实现了路径切换过程中数据传输的保序。
综上所述,情形二对应的网络路径的计算方法提高了大规模网络中多目标因素场景下网络业务的实时性。本方案不追求一次精确算出端到端最优路径,这样计算开销太大,会影响网络业务的实时性。相对地,本方案改进了传统路由计算一次性算出最优路径的方法,设计了随机选择部分优势路径结合多轮次的渐进式计算方法:首轮计算基于少量路径信息迅速计算出一个近似的端到端最优路径,以便实时类业务可以及时在近似最优路径上发起业务数据传输,之后通过多轮迭代计算不断优化近似最优解的精度,直至收敛至真正的最优路径。另外,针对路径切换可能引发的数据传输乱序问题,还通过延迟传输以实现路径切换时业务数据的保序。
需要说明的是,本申请实施例所述的网络路径的计算方法为通用方法,可以在网络节 点中分布式部署,也可以在集中控制器中遍历实现;可以应用于Overlay网络,也可以应用于Underlay网络;可以按照任意的网络性能需求进行最优路径的计算。
为进一步理解本申请实施例方案,接下来以两个实例为典型,对本申请实施例提供的网络路径的计算方法在具体的应用场景中的实现过程。
实例一、RTN网络中音视频业务路由场景。
图16为本申请实施例提供的RTN网络中音视频业务路由的一个应用场景示意图,其中RTN网络中的网络节点可称为RTN节点或RTN服务器。本申请实施例提供的网络路径的计算方法可以在如图16所示的RTN网络中予以实施,由于RTN网络属于Overlay网络,路由策略可以在集中的控制节点上,通过应用层软件来订制,无需对物理设备的硬件改动,先对实现起来更容易;同时,RTN网络承载的音视频类业务,通常在计算传输路径时需要综合考虑网络的时延、抖动、丢包等多个因素,应用场景与本申请实施例方案相匹配。
在本实例中,假设视音频类业务的网络性能需求总结如下:
情况1、当多条端到端路径的丢包率小于10%时,优先选择时延最低路径;当多条路径同时时延最低时,再优先选择时延抖动最小的路径。
情况2、当多条端到端路径的丢包率都在10%~20%时,将50ms时延折算为10%的丢包率,从而将时延与丢包率统一成一个综合的性能指标,优先选择该综合性能指标最优的路径;
情况3、当多条端到端路径的丢包率都在20%以上时,优先选择丢包率最低的路径,当多条路径丢包率同时最低时,再优先选择时延最低的路径。
当情况1、情况2、情况3中的两个或多个同时存在时,如,端到端的所有路径中,既有丢包率小于10%的,又有丢包率大于20%的,还有丢包率在10%~20%的,则按照“情况1优于情况2优于情况3”的顺序选择路径:如果存在情况1的路径,优先返回情况1的最优路径;没有情况1路径时,优先返回情况2的最优路径。
另外,RTN网络中有统一的管理节点(即控制节点,一般的RTN网络都会有这样一个管理节点,若存在没有管理节点的情形,则各个RTN节点各自需要各自计算目标路径,这里以控制节点为执行主体为例进行说明),负责收集网络节点之间的性能测量数据(包括时延、抖动和丢包率的测量)并下放给各个RTN节点;路径计算过程也统一在控制节点完成,具体计算结果再下发到各个RTN节点上。根据RTN网络的现网计算逻辑,本实例方案在该多目标因素场景下的具体实施步骤可以如下所示:
步骤1:控制节点收集RTN网络信息。
该步操作由RTN网络的控制节点执行,在整个RTN网络的运营时间(无论是否有具体数据传输业务)周期性持续执行。具体动作如下:
1.1、控制节点每隔一定时间周期(如,1分钟)收集RTN网络的性能测量数据,具体网络测量的性能指标包括时延、抖动以及丢包率。
1.2、控制节点通过性能测量结果(即性能测量数据)判断RTN节点之间的连通性(如,丢包率超过90%,则认为两个节点不连通),并根据RTN节点两两之间的连通状况,整合 出RTN网络的拓扑架构,即网络拓扑。
1.3、当有设备(如,手机、个人电脑、智能手表等终端设备)接入RTN节点时,RTN节点将该设备的IP地址与RTN节点标识通告给控制节点,控制节点完成设备IP与RTN节点的映射表。映射表完成后,控制节点答复对应的RTN节点。
1.4、上述步骤结束后,控制节点得到一个周期性更新的设备IP与RTN节点映射表,以及一个周期性更新的RTN网络拓扑和性能测量数据。
步骤2:源设备通告业务的网络性能需求。
该步操作由源设备和RTN节点共同执行,当某个具体的源设备的应用需要发起数据传输时启动该步骤。具体动作流程如下:
2.1、源设备(如,主机1)接入RTN网络中的某个RTN节点,该RTN节点通过上述所述的步骤1.3向控制节点通告主机1的信息。
2.2、RTN节点收到执行了步骤1.3的控制节点的答复后,答复主机1并准许其发起数据传输。
2.3、主机1将目的节点IP及业务的网络性能需求通告给其接入的RTN节点,RTN节点进一步反馈至控制节点。
这里需要注意的是,主机1上每当有一个新的业务要发起数据传输时,都需要执行步骤2.1~2.3,通告RTN节点及控制节点不同业务的通信地址以及业务的网络性能需求。
步骤3:控制节点进行多目标因素场景下的目标路径计算并下放路由表。该步操作在控制节点收到RTN节点中转的主机1的业务网络性能之后开始执行,由控制节点执行,该步操作结束之后主机1才能进行数据传输操作。具体动作流程如下:
3.1、控制节点接收到RTN节点转发的主机1上业务的网络性能需求。
3.2、控制节点在本地测量信息记录(即1.1中的性能测量数据)中,筛选应用所关心的网络性能指标(本实例中,应用关心的性能指标为时延、丢包、抖动三项),组成逐跳链路的性能数组(时延,丢包率,抖动),并将性能数组一一匹配至RTN网络拓扑的每一段Overlay路径之上。
3.3、控制节点根据主机1的IP与目的设备(如,主机2)的IP,在节点映射表中找到主机1与主机2所接入的RTN节点的ID,这里称这两个RTN节点分别为源RTN节点与目的RTN节点。
3.4、控制节点以源RTN节点为源节点,以其它所有RTN节点为目的节点,以选取的性能数组中的指标(即时延、丢包、抖动)为目标因素,执行本申请实施例所述的网络路径的计算方法,具体执行步骤如下:
3.4.1、将源RTN节点纳入目标路径(也可称为优势路径树)当中,将其它所有RTN节点纳入待添加节点集合当中。
3.4.2、计算源节点到可达目的节点(即直连节点)的可达网络路径,并将可达网络路径的路径性能更新于优势路径树当中。
3.4.2、判断待添加节点集是否为空,并根据判断结果进入不同的分支步骤:
a、如果待添加节点集非空,则进入步骤3.4.4,更新一个待添加节点(即上述所述的第 一节点)至优势路径树中。
b、如果待添加节点集为空,则进入步骤3.4.5,计算到达每个RTN节点的优势路径(即上述所述的目标路径)。
3.4.4、从待添加节点集中选择一个新的RTN节点,添加至优势路径树中,具体执行步骤如下:
3.4.4.1、在待添加节点集中,选取到优势路径树中所有节点时延最低的RTN节点,添加至优势路径树。
3.4.4.2、以新加入节点为中继,更新通过新节点中转的所有目的节点的可达路径集合。
3.4.4.3、对优势路径树中每个RTN节点的所有可达路径,执行“时延、丢包、抖动”三因素的偏序比较,记录优势路径。
3.4.4.4、将到达每个节点的新优势路径记录于优势路径树中,并从待添加节点集中删除本次选择的节点。
3.4.4.5、优势路径树更新结束,返回步骤3.4.3继续判断是否需要更新优势路径树。
3.4.5、计算源RTN节点去任意一个目的RTN节点的最优路径(当业务数据确定要发给哪个目的设备时,目的RTN节点就确定了,因此所有其他的RTN节点都可能是目的RTN节点),具体执行步骤如下:
3.4.5.1、将到达目的节点的所有优势路径按照丢包率所属区间,分为情况1(丢包率<10%)、情况2(10%≤丢包率≤20%)、情况3(丢包率>20%)三类。
3.4.5.2、根据情况1/情况2/情况3中路径数目是否为空,进入不同分支步骤:
a、如果存在属于情况1的优势路径,则在情况1优势路径中选择时延最优路径作为最优路径;如果存在多条路径同时时延最优的情况,则在多个时延最优路径中选择抖动最小路径作为最优路径进行记录。
b、如果情况1优势路径为空,但存在属于情况2的优势路径,则将情况2中的所有优势路径按照“metric_total=丢包率+时延/5”的计算方式,将丢包率与时延两个因素统一折算为一个综合因素metric_total,并将metric_total最小的路径作为最优路径进行记录。
c、如果情况1与情况2的优势路径均为空,则说明所有优势路径均属于情况3,此时在所有优势路径中选择丢包率最低的路径作为优势路径;如果存在多条路径同时丢包率最低的情况,则在多个丢包率最低的路径中选择时延最低路径作为最优路径进行记录。
3.4.5.3、将最优路径信息和优势路径信息(即目标路径)下放至沿途各跳的RTN节点,形成本地路由表。需要注意的是,在本申请的一些实施方式中,本地路由表可以只包括优势路径信息,再由各个RTN节点去基于业务的网络性能需求各自计算最优路径;本地路由表也可以是控制节点基于业务的网络性能需求计算好最优路径,然后直接给各跳的RTN节点直接下发最优路径信息以形成本地路由表。还需要注意的是,形成本地路由表操作可以由控制节点完成,也可以由各个RTN节点自身完成,本申请对此不做限定。
3.5、每个沿途RTN节点收到控制节点下发的最优路径信息和/或优势路径信息,形成本地路由表(即上述所述的多目标因素路由表),或,每个沿途RTN节点接收控制节点下发的本地路由表。
步骤4:源设备发起业务数据传输,RTN节点转发数据报文。该步操作由源设备和最优路径沿途的所有RTN节点共同完成,持续整个业务数据传输过程的始终。具体动作流程如下:
4.1、RTN节点接收到控制节点下发的路由表(或自身形成本地路由表)后,向控制节点回复确认信息。
4.2、控制节点收到最优路径上所有RTN节点的确认信息之后,向源RTN节点发起允许数据传输信号。
4.3、源RTN节点收到允许数据传输信号后,将该信号转发至主机1。
4.4、主机1收到允许数据传输的信号后,将业务数据发送至源RTN节点。
4.5、源RTN节点及最优路径上的后续RTN节点,根据路由表的信息,将数据沿最优路径转发至目的RTN节点,由目的RTN节点转发至主机2。
4.6、业务数据传输完成之后,主机1终止数据传输,该最优路径上的RTN节点停止数据报文转发。
需要说明的是,上述方案的四个主要步骤当中,步骤1、步骤2和步骤4是针对RTN网络的特有数据传输流程,这三个步骤会随着应用场景的变化而变化,如,Underlay物理设备路由器中的数据传输流程则会与该实施例中的步骤不同(但整体方法是类似的),步骤3则是本方案的核心实现。
从步骤3的流程中可以发现,决定后续迭代计算结果的是优势路径而非最优路径,因此业务的网络性能需求仅仅在步骤3.4.5中计算最优路径的时候需要用到。之前迭代的步骤3.1~3.4当中,主要是性能数组相互之间不可比较的优势路径集合决定了路由表项中记录的信息。因此,如果业务的网络性能需求发生变化但各目标因素不变(如,还是基于时延、丢包和抖动三个因素进行最优路径计算,但网络性能需求与本方案不同),则步骤3中只需在步骤3.4.5更新最优路径的筛选方法即可,前序步骤无需进行任何修改调整,因此本方案对业务的网络性能需求变化具有很强的适应能力。
为了进一步说明本申请实施例的技术效果,本申请获取到了消费者云RTN网络的现网数据以及当前RTN网络的多目标因素场景的方案,并进一步在不同规模的RTN网络中,对本方案与RTN网络现有方案的多目标因素场景的性能及准确性进行了比较,比较结果如图17所示。
与本申请方案不同,消费者云的RTN网络当前采用的多目标因素场景的计算方法是上述所述的基于单目标因素KSP的近似最优路径算法。具体地,RTN网络现有方法基于KSP算法,计算出端到端时延最短的10条路径,组成候选路径集合;之后,根据“情况1优于情况2优于情况3”的网络性能需求,筛选10条候选路径中的最优路径将其作为端到端的最优路径进行记录。
该方法的缺点也在之前进行了介绍,在异构性较强的网络当中,极容易出现计算不准确的问题:该方案在时延top 10路径集合中可以实现按照应用网络性能需求的精确最优路径计算,但多目标因素最优性能路径未必一定出现在时延top 10的路径集合当中,如,时延top10路径有可能丢包、带宽或成本等其它因素较差,此时时延top10路径集合将会漏掉 全局性能最优路径。
为了进一步说明该方案的计算不准确问题,图18中列举了本方案与RTN网络现有方案的计算结果。从图18中可以看到,在一个50个节点的RTN网络当中,以0号节点为源节点计算到其它节点的多目标因素最优路径时,本申请方案和RTN现有方案出现了计算结果的不同:从计算0号节点到达1号节点、10号节点、11号节点、17号节点和20号节点的计算结果中可以看出,本申请方案所计算出的最优路径,按照本实施例的业务的网络性能需求来看均属于情况1;而RTN现有方案计算同样源/目的节点的最优路径时,算出的路径均属于情况2及情况3。根据“情况1优于情况2优于情况3”的计算逻辑,显然本申请方案所计算出的端到端最优路径明显优于RTN现有方案的计算结果。而造成RTN现有方案计算不准的原因,就是出现了top 10路径集合没有涵盖综合性能最优路径的情况:可以看到RTN现有方案所算路径的时延(latency)指标优于本申请方案,但整体性能(即时延+抖动+丢包综合考虑)均弱于本申请方案。因此,本申请方案相比现有方案,计算准确性得到了优化,前面介绍中也证明了本申请方案在任意网络状况和业务的网络性能需求下,均能保证计算结果的绝对正确。
另外,通过比较图17中本申请方案和消费者云RTN网络现有方案的计算效率可以发现,本申请方案相比RTN网络现有方案,在大规模网络(50节点以上)场景下,计算效率提高了百倍量级。因此,本申请方案不仅可以保证多目标因素计算的绝对准确性,还大幅度的提高了计算效率。
实例二、多目标因素中网络性能指标和条件限制目标同时存在的场景。
在实例一所示的应用场景中,业务的网络性能需求虽然涵盖了多个因素,但是计算逻辑主要以“求最优”这个维度来呈现,如情况1中求时延最优路径,情况3中求丢包最优路径等等。而在有些应用场景中,未必所有的指标都要求最优,有时候往往有些性能指标优化到一定阈值之内就可以了,如时延<300ms、带宽>500Mbps、跳数不超过4跳等,这里我们称此类无需求得最优解的优化目标为条件限制目标。
如果实际应用中业务的网络性能需求比实例一中的更复杂,当多目标因素中网络性能指标与条件限制目标同时存在时,仅依靠优化目标性能数组(即性能数组中只包括网络性能指标)的偏序比较方法筛选优势路径,依然有可能出现计算错误的情况。
图19展示了当网络性能指标与条件限制目标同时存在于业务的网络性能需求当中时,仅对网络性能指标作偏序筛选时出现的最优路径计算错误的场景。在该场景中,优化目标为带宽和时延,限制条件为跳数,具体的业务需求为:在跳数不超过4跳的路径中,优先选择带宽最大路径;当多条路径带宽同时最大时,优先选择时延最低路径。本质上为带宽+时延的双目标最优路径计算,而跳数作为约束条件,只需满足不超过4跳即可,无需优化至极值。假设本实施例的应用场景依然为RTN网络的控制节点集中式计算,按照实例一中的实现方法,基于二维性能数组(带宽,时延)进行优势路径筛选和迭代计算,而跳数则以4为阈值对可达路径进行过滤筛选。如图19所示,迭代计算至以节点A为目的节点的所有可达路径有5条,分别为:P0:(带宽20,时延5)、跳数4;P1:(带宽10,时延2)、跳数2;P2:(带宽20,时延10)、跳数4;P3:(带宽10,时延2)、跳数2;P4:(带宽18, 时延10)、跳数3。由于所有路径的跳数均未超过阈值4跳,因此均为有效路径。此时基于(带宽,时延)双属性进行偏序比较,筛选出的优势路径为P0及P1(P0双属性均优于等于P2及P4,P1双属性均优于等于P3;P0和P1无法比较,P0带宽更优,而P1时延更优)。继续迭代计算,假设节点A后面存在直连节点B,节点A与节点B的直连路径的性能为P AB:(带宽19,时延3)。此时控制节点的记录中,到达节点A的优势路径为P0及P1,因此控制节点计算经过节点A到达节点B的可能路径只有两条,即P0+P AB:(带宽19,时延8)、跳数5,及P1+P AB:(带宽10,时延5)、跳数3;由于路径P0+P AB、跳数超过阈值限制因此被过滤掉,最终按照实例一的技术方案算得到达节点B的最优路径为:P1+P AB路径的性能为:带宽10、时延5。
然而如图19所示,在节点A优势路径筛选过程中因为“带宽+时延”双因素性能较弱被淘汰掉的路径P4,如果该路径P4能够被记录下来的话,在计算到达节点B的最优路径时,候选路径集中则会多一条候选路径P4+P AB:(带宽18,时延13)、跳数4。新路径P4+P AB的跳数依然不超过阈值,但是相比于基于优化目标性能数组偏序筛选所算出的最优路径P1+P AB,新路径的性能更优(带宽更大)。因此,当业务的需求较为复杂,同时存在网络性能指标与条件限制目标时,仅通过优化网络性能指标的偏序比较,依然可能出现计算不准确的情况。
针对实例一方案种存在的该局限性,本实例二对方案进行改进,在业务需求同时存在网络性能指标与限制条件目标时,依然保证多目标因素计算的准确性,从而使本方案可以适用于任意的多目标因素场景下网络路径的计算。
基于此,本实例二的技术方案在实例一实现流程的基础上,对步骤3中优势路径和最优路径的计算方法进行改进,具体新计算方法的实现流程结合图20可以简单概括为:当业务需求中同时存在网络性能指标与条件限制目标时,如果当前路径的条件限制目标未达到阈值,则将条件限制目标与网络性能指标共同组成统一的性能数组,在到达目的节点的全路径中基于统一性能数组进行偏序比较和优势路径筛选;当路径的限制条件目标超过阈值时,则不再参与后续统一性能数组的偏序比较。
还是以图19所示的“带宽+时延”双因素优化以及跳数限制不超过4跳为例,本实例中,具体的技术方案实现调整如下:
计算迭代至以节点A为目的节点时,目的节点A的可达路径有5条,分别为:P0:(带宽20,时延5)、跳数4;P1:(带宽10,时延2)、跳数2;P2:(带宽20,时延10)、跳数4;P3:(带宽10,时延2)、跳数2;P4:(带宽18,时延10)、跳数3。由于所有路径的跳数均未超过阈值4跳,因此此时5条路径以“带宽,时延,跳数)”三因素的统一性能数组进行偏序比较,最终筛选得到的优势路径为:P0、P1及P4(当三因素的数组进行偏序比较时,P0和P4无法比出优劣,因为P0虽然带宽和时延优于P4,但P4的跳数优于P0)。此时,控制节点会将P0、P1及P4同时作为到达节点A的优势路径进行记录,并参与后续迭代计算。
进一步,当计算到达节点B的路径时,基于之前的优势记录,候选路径中会出现3条候选路径:P0+P AB(带宽19,时延8,跳数5)、P1+P AB(带宽10,时延5,跳数3)及 P4+P AB(带宽18,时延13,跳数4);由于路径P0+P AB的跳数超过阈值限制因此被过滤掉,最终到达节点B的优势路径为:P1+P AB及P4+P AB。之后,在进行最优路径计算时,可以发现P4+P AB的性能更优(带宽更大),因此最终记录的到达目的节点B的最优路径为P4+P AB。本实例的方案将限制条件目标额外引入到了性能数组的偏序比较当中,从而成功避免了阈值限制对候选路径筛选带来的误差。
综上所述,本申请实施例方案针对经典IGP分布式算法无法计算条件限制下的最优路径这一局限性,设计了条件限制目标转换为优化指标的处理方法,条件限制目标对应的参数在未到达阈值之前统一按照优化指标处理,与其它网络性能目标共同参与性能数组的偏序比较,从而保证优势路径筛选过程中不会漏掉最优解,使得本申请实施例方案可以在任意业务需求下保证多目标因素场景下网络路径计算的准确性,即在任意复杂的多目标因素场景下,都能够正确算出端到端最优路径。
应理解的是,上文介绍的实例一和实例二只是本申请实施例提供的网络路径的计算方法所应用的两个具体场景,本申请实施例提供的网络路径的计算方法在应用时并不限于上述场景,具体本申请对此不予赘述。
在上述实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体参阅图21,图21为本申请实施例提供的网络设备的一个结构示意图,该网络设备2100具体可以包括:确定模块2101,用于确定以源节点为起点、该源节点的直连节点为终点的第一可达网络路径,该源节点为目标网络中目标设备接入的网络节点;选择模块2102,用于从待添加节点集中选择第一节点,得到以源节点为起点、第一节点为中继的第二可达网络路径,待添加节点集为目标网络中除所述源节点之外的其他网络节点的集合;比较模块2103,用于若在目标路径中存在m条到达同一目的节点的网络路径,则基于n个目标因素对该m条网络路径进行比较,得到第一优势网络路径,并基于该第一优势网络路径更新该第一可达网络路径,得到更新后的第一可达网络路径,该目标路径包括该第一可达网络路径以及该第二可达网络路径,m≥2,n≥2。
在一种可能的设计中,该网络设备2100还包括更新模块2104,用于从该待添加节点集中删除该第一节点,并触发选择模块2102、比较模块2103以及更新模块2104重复执行,直至该待添加节点集为空集。
在一种可能的设计中,比较模块2103,具体用于:基于n个目标因素对该m条网络路径进行偏序比较,得到第二优势网络路径,每个第二优势网络路径均作为该第一优势网络路径。
在一种可能的设计中,选择模块2102,还用于:待添加节点集在删除第一节点后为空集的情况下,根据目标设备上待传送数据的网络性能需求,从最后一次更新得到的第一可达网络路径中确定以源节点为起点、待传送数据对应的目的节点为终点的第一目标网络路径,第一目标网络路径用于传输待传送数据。
在一种可能的设计中,比较模块2103,具体还用于:基于n个目标因素对该m条网络路径进行偏序比较,得到第二优势网络路径;在该第二优势网络路径存在至少p条的情况下,从该p条第二优势网络路径中选择q条作为第一优势网络路径,m≥p≥2,p≥q≥1。
在一种可能的设计中,选择模块2102,还用于:待添加节点集在删除第一节点后为空集的情况下,根据目标设备上待传送数据的网络性能需求,从最后一次更新得到的第一可达网络路径中确定以源节点为起点、待传送数据对应的目的节点为终点的第二目标网络路径,第二目标网络路径用于传输待传送数据。
在一种可能的设计中,该网络设备2100还包括:循环触发模块2105,该循环触发模块2105用于触发确定模块2101、判断模块2102、选择模块2102、比较模块2103以及更新模块2104重复执行,直至最后一个轮次得到的目标路径达到收敛条件或达到预设轮次数。
在一种可能的设计中,该循环触发模块2105可以用于:确定在第二优势网络路径存在至少p条时,当前的待添加节点集为目标节点集;将目标节点集作为新的待添加节点集,触发选择模块2102、比较模块2103以及更新模块2104重复执行,直至最后一个轮次得到的第一可达网络路径达到收敛条件或达到预设轮次数。
在一种可能的设计中,选择模块2102,具体还用于:将该待传送数据的传输路径由该第二目标网络路径切换至第三目标网络路径,该第三目标网络路径为多个轮次得到的目标路径中满足预设条件的一个,该第三目标网络路径的网络性能优于该第二目标网络路径的网络性能。
在一种可能的设计中,选择模块2102,具体还用于:获取切换指令,切换指令用于指示源节点等待预设时长后再在第三目标网络路径上发起待传送数据中未传数据包的传输。
在一种可能的设计中,比较模块2103,具体还用于:基于该n个目标因素,构建该m条网络路径的m个性能数组,每个性能数组中包括有序排列的n个元素,一条网络路径对应一个性能数组,一个元素对应一个目标因素在对应网络路径上的具体取值;在第一性能数组中每个元素的取值均大于或等于第二性能数组中对应位置处元素的取值的情况下,确定该第一性能数组对应的网络路径为该第二优势网络路径,该第一性能数组和该第二性能数组为该m个性能数组中的任意两个。
在一种可能的设计中,比较模块2103,具体还用于:在该第一性能数组中存在第一元素的取值大于或等于该第二性能数组中对应位置处元素的取值,且该第一性能数组中存在第二元素的取值小于或等于该第二性能数组中对应位置处元素的取值的情况下,确定该第一性能数组对应的网络路径以及该第二性能数组对应的网络路径均为该第二优势网络路径,该第一元素以及该第二元素为该第一性能数组中的任意两个元素。
在一种可能的设计中,选择模块2102,具体还用于:基于该目标设备上待传送数据的网络性能需求,从该待添加节点集中选择满足预设性能要求的第一节点。
在一种可能的设计中,更新模块2104,具体用于:对于到达同一目的节点存在该m条网络路径的情况,仅保留所述第一优势网络路径,并将保留第一优势网络路径的目标路径作为更新后的第一可达网络路径。
在一种可能的设计中,该目标因素至少包括如下任意一种或多种:网络性能指标,或,条件限制目标。
在一种可能的设计中,该网络性能指标至少包括如下任意一种:带宽、时延、丢包 率、抖动、成本。
在一种可能的设计中,目标网络至少包括如下任意一种:Overlay网络,或,Underlay网络。
需要说明的是,图21提供的网络设备2100中各模块/单元之间的信息交互、执行过程等内容,与本申请中图7对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供了一种网络设备,请参阅图22,图22是本申请实施例提供的网络设备一种结构示意图,为便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该网络设备2200上可以部署有图21对应实施例中所描述的模块,用于实现图21对应实施例中网络设备2100的功能,具体的,网络设备2200由一个或多个服务器实现,网络设备2200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)2222和存储器2232,一个或一个以上存储应用程序2242或数据2244的存储介质2230(例如一个或一个以上海量存储设备)。其中,存储器2232和存储介质2230可以是短暂存储或持久存储。存储在存储介质2230的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对网络设备2200中的一系列指令操作。更进一步地,中央处理器2222可以设置为与存储介质2230通信,在网络设备2200上执行存储介质2230中的一系列指令操作。
网络设备2200还可以包括一个或一个以上电源2226,一个或一个以上有线或无线网络接口2250,一个或一个以上输入输出接口2258,和/或,一个或一个以上操作系统2241,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本申请实施例中,中央处理器2222,用于执行图7对应实施例中的网络路径的计算方法。例如,中央处理器2222可以用于:首先,确定以源节点为起点、该源节点的直连节点为终点的可达网络路径,该可达网络路径可称为第一可达网络路径(可以是一条或多条)。需要注意的是,所述的可达网络路径不仅包括可达网络路径所涉及到的网络节点,还包括整个可达网络路径的整体网络性能(如,该可达网络路径的时延、带宽、丢包率等)。其中,该源节点为目标设备(即有待发送的数据的设备)所接入的网络(可称为目标网络)中的网络节点。之后,判断待添加节点集是否为空集,其中,待添加节点集为该目标网络中除源节点之外的其他网络节点的集合,若确定该待添加节点集不是空集(即该待添加节点集中还有网络节点),则从待添加节点集中选择一个节点(可称为第一节点),以得到以该源节点为起点、该第一节点为中继的可达网络路径,该可达网络路径可称为第二可达网络路径。需要说明的是,在本申请的一些实施方式中,第二可达网络路径的中间节点不包括该待添加集中除第一节点之外的其他网络节点。并且,所述的第二可达网络路径的中间节点不包括第二可达网络路径的第一个网络节点(即源节点)和最后一个目的节点(即目的节点),而是指“中间”的任意网络节点。例如,假设第二可达网络路径为A→B→C→…→X,其中A、B、C、…、X均为网络节点,那么该第二可达网络路径的中间节点指的是B、C、…中的任意网络节点,而不包括源节点A和目的节点X。第一可达网络路径和第二可达网络路径所包括的所有可达网络路径就可称为目标路径(一条或多条), 若在目标路径中存在m条到达同一目的节点的网络路径,则基于n个目标因素对该m条网络路径进行比较,得到第一优势网络路径,并基于第一优势网络路径更新所述目标路径,得到更新后的目标路径,其中,m≥2,n≥2。在得到更新后的目标路径之后,就可从待添加节点集中删除该第一节点,并将更新后的目标路径作为新的第一可达网络路径。在将更新后的目标路径作为新的第一可达网络路径之后,重复执行上述判断待添加节点集是否为空以及之后的步骤,直至该待添加节点集为空。
需要说明的是,中央处理器2222还可以用于执行与本申请中图7对应的方法实施例中任意一个步骤,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述所示实施例描述中所执行的步骤。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算 机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。

Claims (36)

  1. 一种网络路径的计算方法,其特征在于,包括:
    确定以源节点为起点、所述源节点的直连节点为终点的第一可达网络路径,所述源节点为目标网络中目标设备接入的网络节点;
    从待添加节点集中选择第一节点,得到以所述源节点为起点、所述第一节点为中继的第二可达网络路径,所述待添加节点集为所述目标网络中除所述源节点之外的其他网络节点的集合;
    若在目标路径中存在m条以同一目的节点为终点的网络路径,则基于n个目标因素对所述m条网络路径进行比较,得到第一优势网络路径,并基于所述第一优势网络路径更新所述第一可达网络路径,得到更新后的第一可达网络路径,所述目标路径包括所述第一可达网络路径以及所述第二可达网络路径,m≥2,n≥2。
  2. 根据权利要求1所述的方法,其特征在于,在所述得到更新后的第一可达网络路径之后,所述方法还包括:
    从所述待添加节点集中删除所述第一节点,并重复执行从所述待添加节点集中选择第一节点及之后的步骤,直至所述待添加节点集为空集。
  3. 根据权利要求2所述的方法,其特征在于,所述基于n个目标因素对所述m条网络路径进行比较,得到第一优势网络路径包括:
    基于n个目标因素对所述m条网络路径进行偏序比较,得到第二优势网络路径,每个第二优势网络路径均作为所述第一优势网络路径。
  4. 根据权利要求3所述的方法,其特征在于,所述方法还包括:
    所述待添加节点集在删除所述第一节点后为空集的情况下,根据所述目标设备上待传送数据的网络性能需求,从最后一次更新得到的第一可达网络路径中确定以所述源节点为起点、所述待传送数据对应的目的节点为终点的第一目标网络路径,所述第一目标网络路径用于传输所述待传送数据。
  5. 根据权利要求2所述的方法,其特征在于,所述基于n个目标因素对所述m条网络路径进行比较,得到第一优势网络路径包括:
    基于n个目标因素对所述m条网络路径进行偏序比较,得到第二优势网络路径;
    在所述第二优势网络路径存在至少p条的情况下,从所述p条第二优势网络路径中选择q条作为第一优势网络路径,m≥p≥2,p≥q≥1。
  6. 根据权利要求5所述的方法,其特征在于,所述方法还包括:
    所述待添加节点集在删除所述第一节点后为空集的情况下,根据所述目标设备上待传送数据的网络性能需求,从最后一次更新得到的第一可达网络路径中确定以所述源节点为起点、所述待传送数据对应的目的节点为终点的第二目标网络路径,所述第二目标网络路径用于传输所述待传送数据。
  7. 根据权利要求6所述的方法,其特征在于,所述方法还包括:
    确定在所述第二优势网络路径存在至少p条时,当前的待添加节点集为目标节点集;
    将所述目标节点集作为新的待添加节点集,重复执行所述从待添加节点集中选择第一 节点,得到以所述源节点为起点、所述第一节点为中继的第二可达网络路径及之后的步骤,直至最后一个轮次得到的第一可达网络路径达到收敛条件或达到预设轮次数,其中,执行一次从待添加节点集中选择第一节点,得到以所述源节点为起点、所述第一节点为中继的第二可达网络路径及之后的步骤为一个轮次。
  8. 根据权利要求7所述的方法,其特征在于,所述方法还包括:
    将所述待传送数据的传输路径由所述第二目标网络路径切换至第三目标网络路径,所述第三目标网络路径为多个轮次得到的目标路径中满足预设条件的一个,所述第三目标网络路径的网络性能优于所述第二目标网络路径的网络性能。
  9. 根据权利要求8所述的方法,其特征在于,所述将所述待传送数据的传输路径由所述第二目标网络路径切换至第三目标网络路径包括:
    获取切换指令,所述切换指令用于指示所述源节点等待预设时长后再在所述第三目标网络路径上发起所述待传送数据中未传数据包的传输。
  10. 根据权利要求3-9中任一项所述的方法,其特征在于,所述基于n个目标因素对所述m条网络路径进行偏序比较,得到第二优势网络路径包括:
    基于所述n个目标因素,构建所述m条网络路径的m个性能数组,每个所述性能数组中包括有序排列的n个元素,一条所述网络路径对应一个所述性能数组,一个所述元素对应一个目标因素在对应网络路径上的取值;
    在第一性能数组中每个元素的取值均大于或等于第二性能数组中对应位置处元素的取值的情况下,确定所述第一性能数组对应的网络路径为所述第二优势网络路径,所述第一性能数组和所述第二性能数组为所述m个性能数组中的两个。
  11. 根据权利要求10所述的方法,其特征在于,所述方法还包括:
    在所述第一性能数组中存在第一元素的取值大于或等于所述第二性能数组中对应位置处元素的取值,且所述第一性能数组中存在第二元素的取值小于或等于所述第二性能数组中对应位置处元素的取值的情况下,确定所述第一性能数组对应的网络路径以及所述第二性能数组对应的网络路径均为所述第二优势网络路径,所述第一元素以及所述第二元素为所述第一性能数组中的两个元素。
  12. 根据权利要求1-11中任一项所述的方法,其特征在于,所述从所述待添加节点集中选择第一节点包括:
    基于所述目标设备上待传送数据的网络性能需求,从所述待添加节点集中选择满足预设性能要求的第一节点。
  13. 根据权利要求1-12中任一项所述的方法,其特征在于,所述基于所述第一优势网络路径更新所述第一可达网络路径,得到更新后的第一可达网络路径包括:
    仅保留所述第一优势网络路径,并将保留所述第一优势网络路径的目标路径作为所述更新后的第一可达网络路径。
  14. 根据权利要求1-13中任一项所述的方法,其特征在于,所述目标因素至少包括如下任意一种或多种:
    网络性能指标,或,条件限制目标。
  15. 根据权利要求14所述的方法,其特征在于,所述网络性能指标至少包括如下任意一种:
    带宽、时延、丢包率、抖动、成本。
  16. 根据权利要求1-15中任一项所述的方法,其特征在于,所述目标网络至少包括如下任意一种:
    Overlay网络,或,Underlay网络。
  17. 一种网络设备,其特征在于,包括:
    确定模块,用于确定以源节点为起点、所述源节点的直连节点为终点的第一可达网络路径,所述源节点为目标网络中目标设备接入的网络节点;
    选择模块,用于从待添加节点集中选择第一节点,得到以所述源节点为起点、所述第一节点为中继的第二可达网络路径,所述待添加节点集为所述目标网络中除所述源节点之外的其他网络节点的集合;
    比较模块,用于若在目标路径中存在m条到达同一目的节点的网络路径,则基于n个目标因素对所述m条网络路径进行比较,得到第一优势网络路径,并基于所述第一优势网络路径更新所述第一可达网络路径,得到更新后的第一可达网络路径,所述目标路径包括所述第一可达网络路径以及所述第二可达网络路径,m≥2,n≥2。
  18. 根据权利要求17所述的网络设备,其特征在于,所述网络设备还包括更新模块,用于:
    从所述待添加节点集中删除所述第一节点,并触发所述选择模块、所述比较模块以及所述更新模块重复执行,直至所述待添加节点集为空集。
  19. 根据权利要求18所述的网络设备,其特征在于,所述比较模块,具体用于:
    基于n个目标因素对所述m条网络路径进行偏序比较,得到第二优势网络路径,每个第二优势网络路径均作为所述第一优势网络路径。
  20. 根据权利要求19所述的网络设备,其特征在于,所述选择模块,还用于:
    所述待添加节点集在删除所述第一节点后为空集的情况下,根据所述目标设备上待传送数据的网络性能需求,从最后一次更新得到的第一可达网络路径中确定以所述源节点为起点、所述待传送数据对应的目的节点为终点的第一目标网络路径,所述第一目标网络路径用于传输所述待传送数据。
  21. 根据权利要求18所述的网络设备,其特征在于,所述比较模块,具体还用于:
    基于n个目标因素对所述m条网络路径进行偏序比较,得到第二优势网络路径;
    在所述第二优势网络路径存在至少p条的情况下,从所述p条第二优势网络路径中选择q条作为第一优势网络路径,m≥p≥2,p≥q≥1。
  22. 根据权利要求21所述的网络设备,其特征在于,所述选择模块,还用于:
    所述待添加节点集在删除所述第一节点后为空集的情况下,根据所述目标设备上待传送数据的网络性能需求,从最后一次更新得到的第一可达网络路径中确定以所述源节点为起点、所述待传送数据对应的目的节点为终点的第二目标网络路径,所述第二目标网络路径用于传输所述待传送数据。
  23. 根据权利要求22所述的网络设备,其特征在于,所述网络设备还包括循环触发模块,用于:
    确定在所述第二优势网络路径存在至少p条时,当前的待添加节点集为目标节点集;
    将所述目标节点集作为新的待添加节点集,触发所述选择模块、所述比较模块以及所述更新模块重复执行上述所述步骤,直至最后一个轮次得到的第一可达网络路径达到收敛条件或达到预设轮次数,其中,执行一次从待添加节点集中选择第一节点,得到以所述源节点为起点、所述第一节点为中继的第二可达网络路径及之后的步骤为一个轮次。
  24. 根据权利要求23所述的网络设备,其特征在于,所述选择模块,具体还用于:
    将所述待传送数据的传输路径由所述第二目标网络路径切换至第三目标网络路径,所述第三目标网络路径为多个轮次得到的目标路径中满足预设条件的一个,所述第三目标网络路径的网络性能优于所述第二目标网络路径的网络性能。
  25. 根据权利要求24所述的网络设备,其特征在于,所述选择模块,具体还用于:
    获取切换指令,所述切换指令用于指示所述源节点等待预设时长后再在所述第三目标网络路径上发起所述待传送数据中未传数据包的传输。
  26. 根据权利要求19-25中任一项所述的网络设备,其特征在于,所述比较模块,具体还用于:
    基于所述n个目标因素,构建所述m条网络路径的m个性能数组,每个所述性能数组中包括有序排列的n个元素,一条所述网络路径对应一个所述性能数组,一个所述元素对应一个目标因素在对应网络路径上的取值;
    在第一性能数组中每个元素的取值均大于或等于第二性能数组中对应位置处元素的取值的情况下,确定所述第一性能数组对应的网络路径为所述第二优势网络路径,所述第一性能数组和所述第二性能数组为所述m个性能数组中的任意两个。
  27. 根据权利要求26所述的网络设备,其特征在于,所述比较模块,具体还用于:
    在所述第一性能数组中存在第一元素的取值大于或等于所述第二性能数组中对应位置处元素的取值,且所述第一性能数组中存在第二元素的取值小于或等于所述第二性能数组中对应位置处元素的取值的情况下,确定所述第一性能数组对应的网络路径以及所述第二性能数组对应的网络路径均为所述第二优势网络路径,所述第一元素以及所述第二元素为所述第一性能数组中的任意两个元素。
  28. 根据权利要求17-27中任一项所述的网络设备,其特征在于,所述选择模块,具体还用于:
    基于所述目标设备上待传送数据的网络性能需求,从所述待添加节点集中选择满足预设性能要求的第一节点。
  29. 根据权利要求17-28中任一项所述的网络设备,其特征在于,所述比较模块,具体用于:
    仅保留所述第一优势网络路径,并将保留所述第一优势网络路径的目标路径作为所述更新后的第一可达网络路径。
  30. 根据权利要求17-29中任一项所述的网络设备,其特征在于,所述目标因素至少 包括如下任意一种或多种:
    网络性能指标,或,条件限制目标。
  31. 根据权利要求30所述的网络设备,其特征在于,所述网络性能指标至少包括如下任意一种:
    带宽、时延、丢包率、抖动、成本。
  32. 根据权利要求17-31中任一项所述的网络设备,其特征在于,所述目标网络至少包括如下任意一种:
    Overlay网络,或,Underlay网络。
  33. 一种网络设备,包括处理器和存储器,所述处理器与所述存储器耦合,其特征在于,
    所述存储器,用于存储程序;
    所述处理器,用于执行所述存储器中的程序,使得所述网络设备执行如权利要求1-16中任一项所述的方法。
  34. 一种计算机可读存储介质,其特征在于,包括程序,当其在计算机上运行时,使得计算机执行如权利要求1-16中任一项所述的方法。
  35. 一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行如权利要求1-16中任一项所述的方法。
  36. 一种芯片,其特征在于,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行如权利要求1-16中任一项所述的方法。
PCT/CN2022/090387 2022-04-29 2022-04-29 一种网络路径的计算方法及网络设备 WO2023206395A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/090387 WO2023206395A1 (zh) 2022-04-29 2022-04-29 一种网络路径的计算方法及网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/090387 WO2023206395A1 (zh) 2022-04-29 2022-04-29 一种网络路径的计算方法及网络设备

Publications (1)

Publication Number Publication Date
WO2023206395A1 true WO2023206395A1 (zh) 2023-11-02

Family

ID=88516903

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/090387 WO2023206395A1 (zh) 2022-04-29 2022-04-29 一种网络路径的计算方法及网络设备

Country Status (1)

Country Link
WO (1) WO2023206395A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117915377A (zh) * 2024-03-19 2024-04-19 中铁四局集团有限公司 一种无线mesh网络的自组织方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030021233A1 (en) * 2001-07-26 2003-01-30 Alcatel Method of selecting transmission paths and a communication network using the method
US20070263544A1 (en) * 2006-05-15 2007-11-15 Ipflex Inc. System and method for finding shortest paths between nodes included in a network
CN101493329A (zh) * 2008-01-23 2009-07-29 华东师范大学 一种多目标点路径规划方法和装置
CN101543114A (zh) * 2006-11-07 2009-09-23 摩托罗拉公司 促进在多跳网络中进行路径选择的系统和方法
CN102749084A (zh) * 2012-07-10 2012-10-24 南京邮电大学 一种面向海量交通信息的路径选择方法
CN104573880A (zh) * 2015-02-09 2015-04-29 山西大学 一种路径优化方法
CN105430707A (zh) * 2015-11-03 2016-03-23 国网江西省电力科学研究院 一种基于遗传算法的无线传感网多目标优化路由方法
US20180367595A1 (en) * 2017-06-15 2018-12-20 Cisco Technology, Inc. Propagating an intelligent walker agent in a network to perform a computation
CN110679120A (zh) * 2017-04-24 2020-01-10 微软技术许可有限责任公司 通信网络节点

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030021233A1 (en) * 2001-07-26 2003-01-30 Alcatel Method of selecting transmission paths and a communication network using the method
US20070263544A1 (en) * 2006-05-15 2007-11-15 Ipflex Inc. System and method for finding shortest paths between nodes included in a network
CN101543114A (zh) * 2006-11-07 2009-09-23 摩托罗拉公司 促进在多跳网络中进行路径选择的系统和方法
CN101493329A (zh) * 2008-01-23 2009-07-29 华东师范大学 一种多目标点路径规划方法和装置
CN102749084A (zh) * 2012-07-10 2012-10-24 南京邮电大学 一种面向海量交通信息的路径选择方法
CN104573880A (zh) * 2015-02-09 2015-04-29 山西大学 一种路径优化方法
CN105430707A (zh) * 2015-11-03 2016-03-23 国网江西省电力科学研究院 一种基于遗传算法的无线传感网多目标优化路由方法
CN110679120A (zh) * 2017-04-24 2020-01-10 微软技术许可有限责任公司 通信网络节点
US20180367595A1 (en) * 2017-06-15 2018-12-20 Cisco Technology, Inc. Propagating an intelligent walker agent in a network to perform a computation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117915377A (zh) * 2024-03-19 2024-04-19 中铁四局集团有限公司 一种无线mesh网络的自组织方法及系统

Similar Documents

Publication Publication Date Title
US10880206B2 (en) Multipath selection system and method for datacenter-centric metro networks
Lin et al. QoS-aware adaptive routing in multi-layer hierarchical software defined networks: A reinforcement learning approach
US10097469B2 (en) Network traffic shaping for low power and lossy networks
EP2911348B1 (en) Control device discovery in networks having separate control and forwarding devices
EP2904745B1 (en) Method and apparatus for accelerating forwarding in software-defined networks
EP1705845B1 (en) Load distributing method
US8089882B2 (en) Load-aware network path configuration
KR101604599B1 (ko) 하이브리드 네트워크들에서의 통신 경로 정보 제공
CN113395210A (zh) 一种计算转发路径的方法及网络设备
US8509075B2 (en) Data-type-based network path configuration
CN107852362A (zh) 网格路径选择
JP6921322B2 (ja) プログラマブルネットワーク技術に基づくマルチホストネットワークのルーティング転送方法
WO2023206395A1 (zh) 一种网络路径的计算方法及网络设备
Gorbil et al. Supporting QoS traffic at the network layer in multi-hop wireless mobile networks
CN114500354B (zh) 一种交换机控制方法、装置、控制设备及存储介质
CN107454647A (zh) 周期性路由信息的发送方法及装置
JP2009284448A (ja) オーバーレイネットワーク通信経路制御方法とシステムおよびプログラム
US9825850B2 (en) Network controlling method and network controller
WO2023216726A1 (zh) 多种网络传输方法及其相关设备
Nguyen et al. Accumulative-load aware routing in software-defined networks
Nithin et al. Efficient load balancing for multicast traffic in data center networks using SDN
Le et al. A reinforcement learning-based solution for intra-domain egress selection
US11909623B2 (en) Device presence method and system for mesh network management
JP2012060263A (ja) ネットワーク調査方法およびネットワーク調査装置
JP6633502B2 (ja) 通信装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22939244

Country of ref document: EP

Kind code of ref document: A1