WO2018219420A1 - Apparatus and method for providing a robust routing configuration - Google Patents

Apparatus and method for providing a robust routing configuration Download PDF

Info

Publication number
WO2018219420A1
WO2018219420A1 PCT/EP2017/062851 EP2017062851W WO2018219420A1 WO 2018219420 A1 WO2018219420 A1 WO 2018219420A1 EP 2017062851 W EP2017062851 W EP 2017062851W WO 2018219420 A1 WO2018219420 A1 WO 2018219420A1
Authority
WO
WIPO (PCT)
Prior art keywords
routing
traffic
configurations
processor
configuration
Prior art date
Application number
PCT/EP2017/062851
Other languages
French (fr)
Inventor
Stefano PARIS
Jeremie Leguay
Antonio Capone
Ilario FILIPPINI
Davide SANVITO
Original Assignee
Huawei Technologies Co., Ltd.
Politecnico Di Milano
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 Huawei Technologies Co., Ltd., Politecnico Di Milano filed Critical Huawei Technologies Co., Ltd.
Priority to PCT/EP2017/062851 priority Critical patent/WO2018219420A1/en
Publication of WO2018219420A1 publication Critical patent/WO2018219420A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing

Definitions

  • the present disclosure relates to the field network routing, and more particularly to providing network configurations in varying traffic conditions.
  • Traffic engineering plays a crucial role in network management since it permits to optimize and load balancing the utilization of network resources.
  • SDN Software-defined networking
  • Dynamic TE uses the information collected by the monitoring tool to predict the next system state and compute the optimal routing configuration for the predicted state.
  • the measurements can be collected over a short period of time to predict the system evolution in the near future.
  • the accuracy of the prediction highly affects the performance (e.g., traffic congestion, delay, or cost) of the routing configuration.
  • the routing configuration will be far from the optimal operational point of the system due to the low accuracy of the prediction.
  • Dynamic TE requires network reconfiguration each time the system changes, thus increasing the signaling overhead caused by the control messages sent to all network devices.
  • network reconfiguration introduces instability that eventually affects the performance.
  • Dynamic TE reconfigures the network each time a new event like a traffic change or link failure occurs in the network.
  • a monitoring system is used by Dynamic TE methods to collect information over a relatively short period of time and predict the future evolution of the system. For example, a certain number of past traffic matrices is used to predict the next traffic matrix. This prediction is used as an input of TE techniques to reconfigure the network. Sophisticated methods like linear programming can be used to compute the best of the network configuration any time the traffic changes. However, reconfiguring the network too frequently can affect its stability, since programming hardware equipment takes time. Therefore, frequent network reconfiguration can result in worse performance. For this reason, methods to reduce the network reconfiguration have been proposed.
  • Dynamic TE methods depend on the accuracy of the prediction method used to estimate the evolution of the system. Indeed, prediction errors can lead to large deviations of the network performance optimized by Dynamic TE methods.
  • Stable TE e.g., oblivious routing
  • objective function e.g., traffic congestion, delay, or cost.
  • Stable TE keeps the network configuration stable, but it suffers low optimality/efficiency in terms of performance.
  • Stable TE computes a single configuration that provides bounded performance loss in case of prediction errors or unpredictable events with respect to the optimal configuration.
  • One of the first techniques of Stable TE is oblivious routing, which randomly selects the paths to connect the source and the destination using a small subset of preselected nodes without using any knowledge of the traffic. Routing techniques that are totally oblivious to any traffic information and system change provide the highest robustness against any system evolution but the performance loss can quickly become large as the network size increases. For this reason, a partial knowledge of the traffic can be integrated in the computation of the network configuration to improve oblivious routing.
  • Several methods for optimizing the stable TE are known.
  • methods providing techniques to compute a network configuration with performance guarantees for any TM that belongs to a bounded domain/set obtained using the information collected by the monitoring system.
  • different models for traffic uncertainness by expressing the maximum load can be expected over a link (pipe model) or an upper bound on the traffic emanating from a source node and directed to a destination node (hose model).
  • hose model an upper bound on the traffic emanating from a source node and directed to a destination node
  • these uncertainness models include less information than the dynamic TM approach, thus providing larger performance losses.
  • the technique considering only the most likely TMs for building the bounded set and computing of the optimal configuration has been disclosed.
  • a penalty term is added in the optimization for less probable TMs. While this technique provides good solutions when the traffic varies smoothly, it cannot guarantee a feasible configuration against unexpected or unlikely events, since they are excluded from the computation.
  • a system and method for providing a routing configuration is disclosed.
  • the routing configurations are built according to monitored traffic matrices and predicted traffic matrices.
  • the build set of routing configurations are a set of overlapping robust routing configurations.
  • the building provides one or more routing configurations that perform better with upcoming traffic matrices.
  • the routing configurations are computed in advance so that they can be pre-fetched before the real need for the new routing configuration commences.
  • the pre-fetched routing configurations are easy to activate as they have been computed and fetched in advance. Because of overlapping the activating can be executed fluently.
  • an apparatus for providing a routing configuration to a switch is disclosed.
  • the apparatus comprises a network connection, a memory configured to store a plurality of precomputed routing configurations, wherein said routing configurations are associated with overlapping clusters of traffic matrices, and a processor.
  • the processor is configured to monitor current traffic conditions, predict, based on the monitored conditions, one or more upcoming traffic matrices, select, based on the predicted one or more upcoming traffic matrices, at least one routing configuration from the plurality of precomputed routing configurations, and transmit at least one of the selected at least one routing configuration to the at least one switch using the network connection.
  • a benefit of the arrangement described above is that it provides more flexibility in choosing routing configuration than the static TE, however, it requires less resources than the dynamic TE.
  • the arrangement described above enables the possibility to compute new routing configurations as a background process so that the routing configurations are ready when they are needed. As the computation is done in background and in advance the required computing power for selecting and adapting the routing configuration is not as high as in dynamic TE implementations, wherein the computation is done on demand.
  • a further benefit of the arrangement is that when the routing configurations are arranged to overlapping clusters of traffic matrices the required activation process can be launched flexibly.
  • the processor is further configured to transmit an activation signal to at least one switch in order to activate the transmitted routing configuration. This is beneficial as the routing configuration can be transmitted to respective switches in advance and activated with one signal when the need for activation emerges.
  • the processor is further configured to incorporate in the selected routing configuration activation instructions. This is beneficial when the switches comprise a logic or other means for detecting the need for activation by themselves when the conditions set in activation instructions are met. Thus, there is no need for separate activation signal in such case.
  • the processor is further configured to analyze the monitored traffic conditions, and based on the analysis, the processor is further configured to predict the traffic evolution and compute the plurality of precomputed routing configurations based on analyzed traffic conditions and the predicted traffic evolution. This is beneficial as from the monitored conditions it is possible to predict the upcoming traffic evolution and compute routing configurations performing well with the predicted upcoming traffic.
  • the processor is further configured to compute the plurality of precomputed routing configurations based on at least one of the following: a temporal overlap, traffic similarity, and routing similarity. This is beneficial as it helps providing routing configurations such that the transfer from a current routing configuration to the following routing configuration can be done fluently. In addition, this is further beneficial since it provides the time to decide whether to reconfigure or not.
  • the processor when computing the plurality of precomputed routing configurations, is configured to receive a set of input parameters, wherein the input parameters comprise: a set of traffic matrices received from monitoring (M); a set of traffic matrices received from prediction; a maximum number of clusters (N); a maximum number of routing configurations (K); a minimum time overlap among clusters (O); and a minimum time of utilization of a configuration (L).
  • M monitoring
  • N maximum number of clusters
  • K maximum number of routing configurations
  • O minimum time overlap among clusters
  • L minimum time of utilization of a configuration
  • the processor is further configured to sort the set M according to increasing traffic matrix sampling time; and find an initial set of B routing configurations: Ri, RB. It is beneficial to sort the traffic matrices received from monitoring and find an initial set of routing configurations in order to find the final routing configurations and speed-up the computation.
  • the processor is further configured to create N clusters of traffic matrices, wherein N ⁇ B, G-7..N, wherein the processor is further configured to assign for each of M traffic matrices a routing configuration R, such that an overall maximum link utilization is minimized. Choosing the parameters as above is beneficial as minimizing overall maximum link utilization is often desired in order to minimize the overall network congestion.
  • the processor is configured to assign for each of
  • M traffic matrices a routing configuration such that upcoming conditions are met: - VCi, Tim[(Ci)]- Time[first(Ci )]>L; AND
  • the processor is further configured to select K out of N routing configurations to be assigned to the N clusters of traffic matrices. This is beneficial because sometimes the routing configurations can be reused in several clusters.
  • a switch for routing data traffic comprises at least one incoming network connection, at least one outgoing network connection, a memory configured to store a current routing configuration and at least one precomputed routing configuration, wherein routing configurations are associated with overlapping clusters of traffic matrices and a processor configured to route data packets received by the at least one incoming network connection to the at least one outgoing network connection according to the current routing configuration and activate one of the at least one precomputed routing configuration.
  • This is beneficial as it provides more flexibility in choosing routing configuration than the static TE, however, it requires less resources than the dynamic TE.
  • the arrangement described above enables the possibility to compute new routing configurations as a background process so that the routing configurations are ready when they are needed.
  • a further benefit of the arrangement is that when the routing configurations are arranged to overlapping clusters of traffic matrices the required activation process can be launched flexibly.
  • the processor of the switch is further configured to receive an activating signal and activate one of the at least one precomputed routing configuration as a response to the received activating signal. It is beneficial to use an activating signal as it provides the possibility to pre-fetch the routing configurations in advance.
  • a method for providing routing configuration comprises monitoring current traffic conditions, predicting, based on the monitored conditions, one or more upcoming traffic matrices, selecting, based on the predicted one or more upcoming traffic matrices, at least one routing configuration from the plurality of precomputed routing configurations and transmitting at least one of the selected routing configuration to the at least one switch.
  • the method further comprises activating the transmitted at least one selected routing configuration in the at least one switch. It is beneficial that the selected routing configuration may be activated independently so that a good activation moment of time can be chosen after the router configuration has been transmitted to the switch.
  • the method further comprises analyzing the monitored traffic conditions, predicting the traffic evolution; and computing the plurality of precomputed routing configurations based on analyzed traffic conditions and the predicted traffic evolution. This is beneficial as from the monitored conditions it is possible to predict the upcoming traffic evolution and compute routing configurations performing well with the predicted upcoming traffic.
  • a computer program performing a method as described above is disclosed. It is beneficial to implement the method as a computer program as it can be configured to collect the necessary information and instruct the switches.
  • the aspects disclosed above are beneficial in general as they improve the routing efficiency. This provides better use of capacity of existing networks and the user experience can be improved.
  • the arrangement above considers multiple clusters of TMs and robust routing solutions with time continuity, TM space continuity, and routing similarities. It leverages the overlap among TMs clusters to pre-fetch and anticipate network reconfigurations. As a result, it provides a good trade-off between stability and routing optimality.
  • FIG. 1 illustrates an example of an apparatus for providing a routing configuration
  • FIG. 2 illustrates an example of an apparatus for providing a routing configuration
  • FIG. 3 is an example arrangement of overlapping traffic matrix regions;
  • FIG. 4 is an example method executed in an anticipatory reconfiguration module;
  • FIG. 5 is an example of a pre-fetching method executed in an anticipatory reconfiguration module
  • FIG. 6 is an example of an activation method executed in an anticipatory reconfiguration module
  • FIG. 7 is an example of a method executed in clustered robust routing
  • FIG. 8 is an illustration of process according to the method of figure 7
  • FIG. 9 is a more detailed example of a method executed in clustered robust routing (CRR) module
  • FIG. 10 is an illustration of a mathematical model.
  • FIG. 11 is an illustration of a mathematical model for formulating the problem of finding the minimum maximum link utilization.
  • Figure 1 illustrates an example of an apparatus 100 for providing a routing configuration.
  • the apparatus 100 comprises at least one processor 101, at least one memory 102 and a network connection 103.
  • the apparatus may be, for example, a server, an interconnected group of servers, a personal computer, cloud computing facility, an ordinary computer or any other similar device that may be used for providing a routing configuration.
  • the apparatus is connectable with other devices in order to receive a data communications and information on data communications.
  • the apparatus is connected to at least one switch, typically to a plurality of switches, for providing the routing configuration that it has computed.
  • the routing configuration is provided after detecting a need for new routing configuration.
  • the apparatus 100 comprises a network connection 103, a memory 102 configured to store a plurality of precomputed routing configurations, wherein said routing configurations are associated with overlapping clusters of traffic matrices, and a processor.
  • the processor is configured to monitor current traffic conditions, predict, based on the monitored conditions, one or more upcoming traffic matrices, select, based on the predicted one or more upcoming traffic matrices, at least one routing configuration from the plurality of precomputed routing configurations, and transmit at least one of the selected at least one routing configuration to the at least one switch using the network connection.
  • Figure 2 is an a block diagram of an example comprising a network controller 200 for providing routing configurations to a plurality of switches, such as switches 203a and 203b.
  • the block diagram of figure 2 illustrates logical operation of a network controller 200, which may be an apparatus similar to the apparatus as shown in figure 1.
  • the network controller 200 communicates with other devices, such as switches 203a - 203b and a management application 210 through application programming interfaces, including a northbound API 201 and a southbound API 202.
  • the operation of the network controller 200 may be divided into two domains, which are a real time operation domain 206 and a background process domain 204.
  • the background process domain comprises a Clustered Robust Routing (CRR) module that is configured to compute the plurality of precomputed routing configurations based on analyzed traffic conditions and predicted traffic evolution.
  • CRR Clustered Robust Routing
  • the real time operation domain 206 further comprises an anticipatory reconfiguration (AR) module 207, memory storage 208 for storing traffic matrices, routing configurations and similar.
  • the real time operation domain 206 further comprises a monitoring and prediction module 209.
  • the set of robust routing solutions for overlapping traffic matrix clusters is computed by the Clustered Robust Routing (CRR) module 205.
  • the pre- fetching and activation of robust routing solutions is realized by the Anticipatory Reconfiguration module 207.
  • the figure 2 represents a network controller 200, which control network devices (e.g., routers, switches) through a south bound interface 202.
  • the controller 200 is configured by external applications 210 or a Network Management System (NMS) through a north bound interface 201.
  • NMS Network Management System
  • the Clustered Robust Routing (CRR) module 205 Based on the history of traffic matrices provided by the monitoring module 209, the Clustered Robust Routing (CRR) module 205 produces a set of robust routing solutions for overlapping clusters of traffic matrices.
  • the module can be configured via the north bound interface with the following parameters: ⁇ Maximum number of clusters, N
  • the CRR module 205 operates in background as it implies computer intensive operations. It computes periodically or triggered on events (e.g., link failures) a set of robust routing configurations associated to traffic matrix clusters. The outcome of this computation is stored in memory storage 208.
  • events e.g., link failures
  • the module 209 follows the evolution of traffic by receiving information from a monitoring system, such as the monitoring and prediction module 209. Based on an estimate of actual traffic conditions and on traffic predictions, the module 209 decides to prefetch and activate robust routing configurations in switches.
  • An interface between the module 209 and the data plane devices is available to pre-fetch, delete and activate routing configurations. This interface is also used to receive routing updates which may have been decided locally by devices in case of failures or sudden traffic evolutions. This way, AR module 207 can follow the current optimality gap and takes better decisions.
  • Robust routing configurations are stored in memory M2 of switches 21 1. Several of them can be stored but only one can be activated at all times. The activation may be done by transmitting an activation signal to the at least one switch in order to activate the transmitted routing configuration or by incorporating in the selected routing configuration activation instructions.
  • the CRR module 205 computes the plurality of precomputed routing configurations based on at least one of the following: a temporal overlap, traffic similarity, and routing similarity.
  • Figure 3 illustrates an example of a temporal overlap and how the space of traffic matrices for the case of two flows into overlapping regions and highlights that the example provides a robust routing configuration for each cluster is divided.
  • This computation is realized periodically or on events by the network controller 200 as a background process. It takes as input the history of traffic matrices provided by an external monitoring system. Then, in real-time, follows the evolution of traffic and exploits the set of pre-computed clusters to decide which robust routing configurations is best.
  • the same routing configuration may be used in several clusters. Thus the number of used routing configurations may be smaller than the number of clusters.
  • routing configurations are not usually modified at a high frequency to follow traffic variations.
  • Flow programming in hardware equipment takes time and devices do not have enough memory to store all robust reconfigurations.
  • a subset of reconfigurations inside the memory of data plane devices, such as switches 203a-203b or other similar network devices involving routing are carefully pre-fetched. And at every time instant, activation of the best robust routing configuration is considered and decided.
  • the objective of the arrangement discussed in this disclosure is to find a minimum set of robust routing solutions which are computed over the history of traffic matrices and which can be pre-fetched into data plan devices. This approach greatly improves stability while optimizing routing cost.
  • the routing configurations are rarely modified and are able to capture repeating traffic patterns to optimize cost.
  • the clustering of traffic matrices is guided by three objectives: 1) cover the entire traffic matrix space so that a feasible routing configuration is available for any traffic condition, 2) reduce the number of routing changes by creating a small set of robust routing configurations that can be used for a minimum duration each time it is applied, and 3) improve the routing objective function (e.g., maximum link utilization, routing cost, etc.) by computing the routing solution that minimizes objective function in each cluster.
  • the routing objective function e.g., maximum link utilization, routing cost, etc.
  • the TM at time t y(t) is represented as a vector where each entry represents an origin-destination flow at time t.
  • a cluster C(t) is represented by its extreme points, namely a list of vectors. Each vector of the list represent a pseudo-matrix where each entry is an origin-destination flow of size decided by the CRR module.
  • a TE/routing configuration at time t R(t) is a matrix that associates to each origin-destination flow the set of links that are used to route the traffic. R(t) has a number of rows equal to the number of links and a number of columns equal to the number of origin-destination flows.
  • the product R(t) * y(t) provides the traffic load of links at time t.
  • the network load at time t L(t) is represented as a vector where each element e represents the load of the link e.
  • the capacity of network links is represented as vector c, where each element e represent the capacity of the link e.
  • the element wise division L(t) / c provides the network utilization at time t.
  • the network utilization at time t U(t) is represented as a vector where each element e represents the utilization of the link e.
  • the maximum link utilization is the maximum across all links of the link utilization U(t).
  • Figure 4 discloses an example of a method performed by an anticipatory reconfiguration module.
  • the anticipatory reconfiguration module used with the method illustrated in Figure 4 is assumed to be composed of two main sub-modules: the pre-fetching and the activation.
  • Pre-fetching means that the routing configuration is retrieved and provided to the device using the routing configuration in advance and activated later.
  • Both sub-modules are continuously executed by the controller in order to anticipate the network reconfiguration due to the traffic variation both in the near and far future.
  • the method receives a plurality of input parameters, step 400.
  • the parameters received from northbound interface and monitoring system include:
  • R(t) active routing configuration at time
  • the input received from anticipatory reconfiguration module includes
  • step 401 If the current TM y(t) belongs to multiple clusters (y(t), step 401, is in the intersection of several clusters, then continue to step 402 (pre-fetch future TE configurations). Otherwise, go directly to step 403 (activation of TE configuration for next period of time).
  • step 402 If the current TM y(t) belongs to multiple clusters, step 402, (y(t) is in the intersection of several clusters) it means that the traffic in the future will vary more than the variation that can be faced by the current routing configuration. Therefore, the controller selects the best routing configurations for the most probable traffic evolution and pre-fetch in the switches these routing configurations. If there is not enough space in the memory of the switches, only a subset of routing configurations is pre-fetched.
  • the controller decides which routing configuration among those stored into the switches must be activated for the next period of time, step 403.
  • the decision is based on the prediction of the traffic evolution for the next period of time and on the robustness level provided as an input by the management app.
  • Figure 5 is an example of a pre-fetching method executed in an anticipatory reconfiguration module. The method of figure 5 starts with similar input parameters as the method of Figure 4.
  • step 500 If the current TM y(t) belongs to multiple clusters, step 500, (y(t) is in the intersection of several clusters), continue to the next step 501. Otherwise go to the end, step 506.
  • step 501 the controller predicts the likelihood that the
  • TM in the far future belongs to any cluster stored in the memory of the controller and pre-computed by CRR.
  • the likelihood can be computed as the probability that each cluster will contain y(t+H 2 ) in the future using for example soft-decision techniques.
  • Clusters are sorted in descending order of their likelihood and only the top clusters that fit in the memory of each switch (of size M2) are selected, step
  • the controller sends to all switches, step 503 a command to replace all existing routing configurations except the ones corresponding to the clusters C(t) and C(t+1), that contain the current TM and the predicted TM for the next time period, respectively.
  • all routing configurations except r(C(t)) and r(C(t+l)) are erased from the memory of the switch.
  • routing configurations corresponding to the clusters selected in step 502 are sent to the switches, step 504. These routing configurations are stored in the tables that have been deleted in step 503. Then proceed to end of this method, step 505. The end of this method leads into the start of the activation method.
  • An example of an activation method is shown in Figure 6.
  • step 600 the controller predicts the TM of the next period of time y(t+l) as a function of the historical information of the TMs collected by the monitoring system.
  • the amount of historical data (Hi) as well as other parameters of the prediction function fi((7) are provided as input parameters by the management app.
  • each entry of the predicted TM is compared to each entry (i.e., origin-destination flows) of the extreme points of each cluster to verify if the cluster contains the predicted TM.
  • step 602 the cluster C(t) that contains the current TM (at time t) belongs to the set of clusters returned by step 601 (i.e., the predicted TM of the next period of time t+1 belongs to the same cluster of the current TM), continue to step 603. Otherwise proceed to step 604.
  • step 603 the cluster C(t) that contains the current TM (at time t) belongs to the set of clusters returned by step 601, the current TE configuration R(t) is used for the next period of time (t+1).
  • the current TE configuration is robust against the predicted traffic change, therefore there is no need to change the configuration.
  • step 604 the cluster C(t) does not belong to the set of clusters returned by step 601
  • the controller selects the best TE configuration among those that are stored in the memory of the switches to be activated in the next period of time R(t+1).
  • the best routing configuration R(t+1) is for example the one that minimizes the maximum link load when applied to the predicted TM y(t+l).
  • the controller sends a lightweight activation command C2 to all switches to activate the routing configuration R selected in step 605.
  • the command C2 can be as simple as an instruction that redirects all incoming traffic to the table that contains the forwarding rules corresponding to the TE configuration R.
  • Figure 7 is an example of a method executed in clustered robust routing (CRR) module.
  • Input taken by the method may include:
  • N max number of TMs clusters
  • each cluster contains the best TMs that can be routed through a routing configuration associated to the cluster. Routing configurations to be associated are selected from a set that must be initially populated.
  • the cluster generation must consider two constraints: 1) each cluster must include a minimum number of TMs that span over a time window L; 2) the temporal overlap among TMs of consecutive clusters must be at least O.
  • the output of this module is a set of N clusters, each with an associated routing configuration, thus N routing configurations in total.
  • the N routing configurations of the step 701 are grouped in K clusters, step 702, according to their reciprocal similarity in the routing domain.
  • Such a routing clustering induces a hyper-clustering of TMs, that is, TMs associated to clustered routing configurations are grouped into a hyper-cluster of TMs. This allows to compute K new routing configurations that must be designed to best serve the TMs in each hyper-cluster.
  • the performance loss obtained when applying the computed K routing configurations to the whole TM set is evaluated, step 703. If it is reduced with respect to the previous iteration and a maximum number of iterations has not been reached, the set of K new routing configurations is merged with the set of routing configurations considered for the TMs clustering. Otherwise, if the performance does not improve or a maximum number of iterations is reached, the module provides in output a mapping between N overlapping TM clusters and K routing configurations to be applied to best serve TMs of associated clusters.
  • FIG 8 A further example how the process runs is shown in figure 8, wherein the input values result into two routing configurations in a case wherein the number of traffic matrices is 17. Steps 701 and 702 of figure 7 are shown in figure 8.
  • Figure 9 is a more detailed example of a method executed in clustered robust routing (CR ) module.
  • the input parameters correspond with the input parameters of figure 7.
  • the time difference between the last TM's timestamp and the first TM's timestamp of the next cluster (or between the first TM's timestamp of the cluster and the last TM's of the previous cluster) is at least O:
  • the goal of the segmentation problem is to assign TMs to N selected routing configurations in order to maximize the worst routing performance measure.
  • An example could be the minimization of the overall Maximum Link Utilization (MLU), the related mathematical programming model is shown in Figure 10.
  • MLU minimization represents in some cases a new upper bound of the utilization in every link of the network. When the bound is exceeded the information flow is typically transmitted by different transmission path.
  • step 902 For each of the N clusters of traffic matrices found in the step 901, compute, step 902, a robust routing configuration, that is, a routing configuration that maximizes the worst routing performance measure when applied to each TM in the cluster.
  • a mathematical programming model is shown in Figure 1 1. The aim of this step is to tailor the routing configuration on the set of TMs in each cluster.
  • step 903 If, step 903, the maximum number of iterations is reached or the TM clustering has not changed with respect to the previous iteration, continue to the step 904. Otherwise, replace the N routing configurations in the initial set of step 900 with those computed in step 902 and go back to step 901.
  • Each robust routing configuration computed at step 902 can be associated to one of the TM clusters computed at step 901. Represent each cluster as a point in the routing hyper-space according to the associated robust routing configuration, step 904. The dimensions of this hyper-space are given by LxD, where L is the set of network links and D is the set of origin-destination pairs. The amount of traffic of given origin-destination pair routed over a given network link is the value of the cluster along the corresponding dimension. This leads to consider TM clusters close if they have a similar robust routing configuration. [0075] Then, find, step 905, K hyper-clusters in the routing hyper-space to group the N points computed at step 904. The TM clusters grouped together into a hyper-cluster are characterized by similar robust routing configurations.
  • step 906 a robust routing configuration for each of the K hyper-clusters found at step 905.
  • the set of TMs used to compute the robust routing configuration is the union of the TM sets associated to each cluster in the hyper-cluster.
  • step 907 The routing performance measure obtained when applying the K routing configurations computed at step 906 to the whole TM set y(t-M),...,y(t) is evaluated, step 907. If it is improve with respect to the previous iteration and a maximum number of iterations has not been reached, merge, step 908, the set of K new routing configurations with the set of routing configurations considered at step 900 and go back to step 901.
  • the module provides in output a mapping between the N overlapping TM clusters, computed at step 901, and K routing configurations, computed at step 906, to be applied in order to best serve TMs of associated clusters.
  • Figure 10 is an example of a mathematical programming model that may be applied in solving the segmentation problem.
  • Figure 10 includes a list of variables needed and the mathematical equations that may be used, for example, in step 901 of figure 9.
  • Figure 11 is an example of a mathematical programming model for formulating the problem of finding the minimum maximum link utilization.
  • Figure 11 includes a list of variables needed and the mathematical equations that may be used, for example, in steps 902 and 906 of figure 9.
  • providing a routing configuration may be implemented as a hardware, such as the apparatus as described above, or as a method.
  • the method may be implemented as a computer program.
  • the computer program is then executed in a computing device.
  • the apparatus and method for providing a routing configuration has been described in conjunction with various embodiments herein. However, other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims.
  • the word “comprising” does not exclude other elements or steps, and the indefinite article “a” or “an” does not exclude a plurality.
  • a single processor or other unit may fulfill the functions of several items recited in the claims.
  • a computer program may be stored/distributed on a suitable medium, such as an optical storage medium or a solid-state medium supplied together with or as part of other hardware, but may also be distributed in other forms, such as via the Internet or other wired or wireless telecommunication systems.

Abstract

A system and method for providing a routing configuration is disclosed. The routing configurations are built according to monitored traffic matrices and predicted traffic matrices. The build set of routing configurations are a set of overlapping robust routing configurations. The building provides one or more routing configurations that perform better with upcoming traffic matrices. The routing configurations are computed in advance so that they can be pre-fetched before the real need for the new routing configuration commences. The pre-fetched routing configurations are easy to activate as they have been computed and fetched in advance. Because of overlapping the activating can be executed fluently.

Description

APPARATUS AND METHOD FOR PROVIDING A ROBUST ROUTING
CONFIGURATION
FIELD
[0001 ] The present disclosure relates to the field network routing, and more particularly to providing network configurations in varying traffic conditions.
BACKGROUND
Traffic engineering (TE) plays a crucial role in network management since it permits to optimize and load balancing the utilization of network resources.
Sophisticated algorithms have been designed to implement efficiently TE.
Nowadays, Software-defined networking (SDN) controllers integrate TE methods to continuously optimize the network. However, sudden and unpredictable changes of the system, like traffic variations and network failures, still pose a major challenge for TE.
The solutions that have been devised to cope with system changes can be broadly classified in two main classes: dynamic TE and stable TE. While different in the way they calculates network configurations, both techniques require the use of the information periodically collected by a network monitoring tool.
[0002] Dynamic TE uses the information collected by the monitoring tool to predict the next system state and compute the optimal routing configuration for the predicted state. The measurements can be collected over a short period of time to predict the system evolution in the near future. However, the accuracy of the prediction highly affects the performance (e.g., traffic congestion, delay, or cost) of the routing configuration. In the presence of unexpected system variations, the routing configuration will be far from the optimal operational point of the system due to the low accuracy of the prediction. Furthermore, Dynamic TE requires network reconfiguration each time the system changes, thus increasing the signaling overhead caused by the control messages sent to all network devices. Furthermore, in highly dynamic systems, network reconfiguration introduces instability that eventually affects the performance. [0003] Dynamic TE reconfigures the network each time a new event like a traffic change or link failure occurs in the network. A monitoring system is used by Dynamic TE methods to collect information over a relatively short period of time and predict the future evolution of the system. For example, a certain number of past traffic matrices is used to predict the next traffic matrix. This prediction is used as an input of TE techniques to reconfigure the network. Sophisticated methods like linear programming can be used to compute the best of the network configuration any time the traffic changes. However, reconfiguring the network too frequently can affect its stability, since programming hardware equipment takes time. Therefore, frequent network reconfiguration can result in worse performance. For this reason, methods to reduce the network reconfiguration have been proposed. For example, a method that reconfigures the network only if the benefit captured by the objective function is larger than using the current configuration. Nonetheless, the efficacy of Dynamic TE methods depend on the accuracy of the prediction method used to estimate the evolution of the system. Indeed, prediction errors can lead to large deviations of the network performance optimized by Dynamic TE methods.
[0004] In contrast, Stable TE (e.g., oblivious routing) monitors the system evolution over a long period of time and computes the TE configuration that minimizes the worst deviation to the optimal configurations in terms of objective function (e.g., traffic congestion, delay, or cost). Stable TE keeps the network configuration stable, but it suffers low optimality/efficiency in terms of performance.
[0005] Stable TE computes a single configuration that provides bounded performance loss in case of prediction errors or unpredictable events with respect to the optimal configuration. One of the first techniques of Stable TE is oblivious routing, which randomly selects the paths to connect the source and the destination using a small subset of preselected nodes without using any knowledge of the traffic. Routing techniques that are totally oblivious to any traffic information and system change provide the highest robustness against any system evolution but the performance loss can quickly become large as the network size increases. For this reason, a partial knowledge of the traffic can be integrated in the computation of the network configuration to improve oblivious routing. Several methods for optimizing the stable TE are known. For example, methods providing techniques to compute a network configuration with performance guarantees for any TM that belongs to a bounded domain/set obtained using the information collected by the monitoring system. In other methods different models for traffic uncertainness by expressing the maximum load can be expected over a link (pipe model) or an upper bound on the traffic emanating from a source node and directed to a destination node (hose model). Based on those models a network configuration with performance guarantees is computed. However, these uncertainness models include less information than the dynamic TM approach, thus providing larger performance losses. To further improve the optimality of the solution, the technique considering only the most likely TMs for building the bounded set and computing of the optimal configuration has been disclosed. A penalty term is added in the optimization for less probable TMs. While this technique provides good solutions when the traffic varies smoothly, it cannot guarantee a feasible configuration against unexpected or unlikely events, since they are excluded from the computation. SUMMARY
[0006] A system and method for providing a routing configuration is disclosed. The routing configurations are built according to monitored traffic matrices and predicted traffic matrices. The build set of routing configurations are a set of overlapping robust routing configurations. The building provides one or more routing configurations that perform better with upcoming traffic matrices. The routing configurations are computed in advance so that they can be pre-fetched before the real need for the new routing configuration commences. The pre-fetched routing configurations are easy to activate as they have been computed and fetched in advance. Because of overlapping the activating can be executed fluently. [0007] In an aspect an apparatus for providing a routing configuration to a switch is disclosed. The apparatus comprises a network connection, a memory configured to store a plurality of precomputed routing configurations, wherein said routing configurations are associated with overlapping clusters of traffic matrices, and a processor. The processor is configured to monitor current traffic conditions, predict, based on the monitored conditions, one or more upcoming traffic matrices, select, based on the predicted one or more upcoming traffic matrices, at least one routing configuration from the plurality of precomputed routing configurations, and transmit at least one of the selected at least one routing configuration to the at least one switch using the network connection.
[0008] A benefit of the arrangement described above is that it provides more flexibility in choosing routing configuration than the static TE, however, it requires less resources than the dynamic TE. The arrangement described above enables the possibility to compute new routing configurations as a background process so that the routing configurations are ready when they are needed. As the computation is done in background and in advance the required computing power for selecting and adapting the routing configuration is not as high as in dynamic TE implementations, wherein the computation is done on demand. A further benefit of the arrangement is that when the routing configurations are arranged to overlapping clusters of traffic matrices the required activation process can be launched flexibly.
[0009] In an implementation the processor is further configured to transmit an activation signal to at least one switch in order to activate the transmitted routing configuration. This is beneficial as the routing configuration can be transmitted to respective switches in advance and activated with one signal when the need for activation emerges.
[001 0] In an implementation the processor is further configured to incorporate in the selected routing configuration activation instructions. This is beneficial when the switches comprise a logic or other means for detecting the need for activation by themselves when the conditions set in activation instructions are met. Thus, there is no need for separate activation signal in such case. [001 1 ] In an implementation the processor is further configured to analyze the monitored traffic conditions, and based on the analysis, the processor is further configured to predict the traffic evolution and compute the plurality of precomputed routing configurations based on analyzed traffic conditions and the predicted traffic evolution. This is beneficial as from the monitored conditions it is possible to predict the upcoming traffic evolution and compute routing configurations performing well with the predicted upcoming traffic.
[001 2] In an implementation the processor is further configured to compute the plurality of precomputed routing configurations based on at least one of the following: a temporal overlap, traffic similarity, and routing similarity. This is beneficial as it helps providing routing configurations such that the transfer from a current routing configuration to the following routing configuration can be done fluently. In addition, this is further beneficial since it provides the time to decide whether to reconfigure or not.
[001 3] In an implementation, when computing the plurality of precomputed routing configurations, the processor is configured to receive a set of input parameters, wherein the input parameters comprise: a set of traffic matrices received from monitoring (M); a set of traffic matrices received from prediction; a maximum number of clusters (N); a maximum number of routing configurations (K); a minimum time overlap among clusters (O); and a minimum time of utilization of a configuration (L). It is beneficial to use this set of parameters as it provides a possibility to compute in advance routing configurations in a manner that they will perform well with the predicted traffic conditions. This is also beneficial, since it permits to decide the best trade-off among network performance, network stability, robustness, and computing power.
[001 4] In an implementation the processor is further configured to sort the set M according to increasing traffic matrix sampling time; and find an initial set of B routing configurations: Ri, RB. It is beneficial to sort the traffic matrices received from monitoring and find an initial set of routing configurations in order to find the final routing configurations and speed-up the computation. [001 5] In an implementation the processor is further configured to create N clusters of traffic matrices, wherein N < B, G-7..N, wherein the processor is further configured to assign for each of M traffic matrices a routing configuration R, such that an overall maximum link utilization is minimized. Choosing the parameters as above is beneficial as minimizing overall maximum link utilization is often desired in order to minimize the overall network congestion.
[001 6] In an implementation the processor is configured to assign for each of
M traffic matrices a routing configuration such that upcoming conditions are met: - VCi, Tim[(Ci)]- Time[first(Ci )]>L; AND
Figure imgf000008_0001
Tim[last(d)] -Time\first j)] >0; OR
Time[last(Cj)]-Time[first(Ci)]>0. [001 7] It is beneficial to fulfill the conditions mentioned above as they permits to maintain a routing configuration for a minimum desired time (L) and to compute clusters of traffic matrices that overlap for at least a minimum time (O) in the time domain.
[001 8] In an implementation the processor is further configured to select K out of N routing configurations to be assigned to the N clusters of traffic matrices. This is beneficial because sometimes the routing configurations can be reused in several clusters.
[001 9] In an aspect a switch for routing data traffic is disclosed. The switch comprises at least one incoming network connection, at least one outgoing network connection, a memory configured to store a current routing configuration and at least one precomputed routing configuration, wherein routing configurations are associated with overlapping clusters of traffic matrices and a processor configured to route data packets received by the at least one incoming network connection to the at least one outgoing network connection according to the current routing configuration and activate one of the at least one precomputed routing configuration. [0020] This is beneficial as it provides more flexibility in choosing routing configuration than the static TE, however, it requires less resources than the dynamic TE. The arrangement described above enables the possibility to compute new routing configurations as a background process so that the routing configurations are ready when they are needed. As the computation is done in background the required computing power is not as high as in dynamic implementations, wherein the computation is done on demand. A further benefit of the arrangement is that when the routing configurations are arranged to overlapping clusters of traffic matrices the required activation process can be launched flexibly.
[0021 ] In an implementation the processor of the switch is further configured to receive an activating signal and activate one of the at least one precomputed routing configuration as a response to the received activating signal. It is beneficial to use an activating signal as it provides the possibility to pre-fetch the routing configurations in advance.
[0022] In an aspect a method for providing routing configuration is disclosed, the method comprises monitoring current traffic conditions, predicting, based on the monitored conditions, one or more upcoming traffic matrices, selecting, based on the predicted one or more upcoming traffic matrices, at least one routing configuration from the plurality of precomputed routing configurations and transmitting at least one of the selected routing configuration to the at least one switch.
[0023] This is beneficial as it provides more flexibility in choosing routing configuration than the static TE, however, it requires less resources than the dynamic TE. The arrangement described above enables the possibility to compute new routing configurations as a background process so that the routing configurations are ready when they are needed. As the computation is done in background and in advance the required computing power for selecting and adapting the routing configuration is not as high as in dynamic TE implementations, wherein the computation is done on demand. A further benefit of the arrangement is that when the routing configurations are arranged to overlapping clusters of traffic matrices the required activation process can be launched flexibly. [0024] In an implementation the method further comprises activating the transmitted at least one selected routing configuration in the at least one switch. It is beneficial that the selected routing configuration may be activated independently so that a good activation moment of time can be chosen after the router configuration has been transmitted to the switch.
[0025] In an implementation the method further comprises analyzing the monitored traffic conditions, predicting the traffic evolution; and computing the plurality of precomputed routing configurations based on analyzed traffic conditions and the predicted traffic evolution. This is beneficial as from the monitored conditions it is possible to predict the upcoming traffic evolution and compute routing configurations performing well with the predicted upcoming traffic.
[0026] In an aspect a computer program performing a method as described above is disclosed. It is beneficial to implement the method as a computer program as it can be configured to collect the necessary information and instruct the switches.
[0027] The aspects disclosed above are beneficial in general as they improve the routing efficiency. This provides better use of capacity of existing networks and the user experience can be improved. The arrangement above considers multiple clusters of TMs and robust routing solutions with time continuity, TM space continuity, and routing similarities. It leverages the overlap among TMs clusters to pre-fetch and anticipate network reconfigurations. As a result, it provides a good trade-off between stability and routing optimality.
DESCRIPTION OF THE DRAWINGS
[0028] The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:
FIG. 1 illustrates an example of an apparatus for providing a routing configuration; FIG. 2 illustrates an example of an apparatus for providing a routing configuration;
FIG. 3 is an example arrangement of overlapping traffic matrix regions; FIG. 4 is an example method executed in an anticipatory reconfiguration module;
FIG. 5 is an example of a pre-fetching method executed in an anticipatory reconfiguration module;
FIG. 6 is an example of an activation method executed in an anticipatory reconfiguration module;
FIG. 7 is an example of a method executed in clustered robust routing
(CRR) module;
FIG. 8 is an illustration of process according to the method of figure 7, FIG. 9 is a more detailed example of a method executed in clustered robust routing (CRR) module; and
FIG. 10 is an illustration of a mathematical model.
FIG. 11 is an illustration of a mathematical model for formulating the problem of finding the minimum maximum link utilization.
DETAILED DESCRIPTION
[0029] The detailed description provided below in connection with the appended drawings is intended as a description of the embodiments and is not intended to represent the only forms in which the embodiment may be constructed or utilized. However, the same or equivalent functions and structures may be accomplished by different embodiments.
[0030] Figure 1 illustrates an example of an apparatus 100 for providing a routing configuration. The apparatus 100 comprises at least one processor 101, at least one memory 102 and a network connection 103. The apparatus may be, for example, a server, an interconnected group of servers, a personal computer, cloud computing facility, an ordinary computer or any other similar device that may be used for providing a routing configuration. The apparatus is connectable with other devices in order to receive a data communications and information on data communications. Furthermore, the apparatus is connected to at least one switch, typically to a plurality of switches, for providing the routing configuration that it has computed. The routing configuration is provided after detecting a need for new routing configuration.
[0031 ] The apparatus for providing a routing configuration to a switch is disclosed. The apparatus 100 comprises a network connection 103, a memory 102 configured to store a plurality of precomputed routing configurations, wherein said routing configurations are associated with overlapping clusters of traffic matrices, and a processor. The processor is configured to monitor current traffic conditions, predict, based on the monitored conditions, one or more upcoming traffic matrices, select, based on the predicted one or more upcoming traffic matrices, at least one routing configuration from the plurality of precomputed routing configurations, and transmit at least one of the selected at least one routing configuration to the at least one switch using the network connection.
[0032] Figure 2 is an a block diagram of an example comprising a network controller 200 for providing routing configurations to a plurality of switches, such as switches 203a and 203b. The block diagram of figure 2 illustrates logical operation of a network controller 200, which may be an apparatus similar to the apparatus as shown in figure 1. The network controller 200 communicates with other devices, such as switches 203a - 203b and a management application 210 through application programming interfaces, including a northbound API 201 and a southbound API 202.
[0033] The operation of the network controller 200 may be divided into two domains, which are a real time operation domain 206 and a background process domain 204. The background process domain comprises a Clustered Robust Routing (CRR) module that is configured to compute the plurality of precomputed routing configurations based on analyzed traffic conditions and predicted traffic evolution.
[0034] The real time operation domain 206 further comprises an anticipatory reconfiguration (AR) module 207, memory storage 208 for storing traffic matrices, routing configurations and similar. The real time operation domain 206 further comprises a monitoring and prediction module 209.
[0035] The set of robust routing solutions for overlapping traffic matrix clusters is computed by the Clustered Robust Routing (CRR) module 205. The pre- fetching and activation of robust routing solutions is realized by the Anticipatory Reconfiguration module 207. Thus, the figure 2 represents a network controller 200, which control network devices (e.g., routers, switches) through a south bound interface 202. The controller 200 is configured by external applications 210 or a Network Management System (NMS) through a north bound interface 201.
[0036] Based on the history of traffic matrices provided by the monitoring module 209, the Clustered Robust Routing (CRR) module 205 produces a set of robust routing solutions for overlapping clusters of traffic matrices. The module can be configured via the north bound interface with the following parameters: · Maximum number of clusters, N
• Maximum number of routing configurations, K (one configuration can be used in several clusters)
• Minimum time overlap between clusters, O, to leave enough time to pre-fetch configurations.
· Minimum time spent in each routing configuration, L, to indirectly limit the number of routing configurations.
[0037] The CRR module 205 operates in background as it implies computer intensive operations. It computes periodically or triggered on events (e.g., link failures) a set of robust routing configurations associated to traffic matrix clusters. The outcome of this computation is stored in memory storage 208.
[0038] Then, in real-time, the Anticipatory Reconfiguration (AR) module
207 follows the evolution of traffic by receiving information from a monitoring system, such as the monitoring and prediction module 209. Based on an estimate of actual traffic conditions and on traffic predictions, the module 209 decides to prefetch and activate robust routing configurations in switches. An interface between the module 209 and the data plane devices is available to pre-fetch, delete and activate routing configurations. This interface is also used to receive routing updates which may have been decided locally by devices in case of failures or sudden traffic evolutions. This way, AR module 207 can follow the current optimality gap and takes better decisions. Robust routing configurations are stored in memory M2 of switches 21 1. Several of them can be stored but only one can be activated at all times. The activation may be done by transmitting an activation signal to the at least one switch in order to activate the transmitted routing configuration or by incorporating in the selected routing configuration activation instructions.
[0039] The CRR module 205 computes the plurality of precomputed routing configurations based on at least one of the following: a temporal overlap, traffic similarity, and routing similarity. Figure 3 illustrates an example of a temporal overlap and how the space of traffic matrices for the case of two flows into overlapping regions and highlights that the example provides a robust routing configuration for each cluster is divided.
[0040] This computation is realized periodically or on events by the network controller 200 as a background process. It takes as input the history of traffic matrices provided by an external monitoring system. Then, in real-time, follows the evolution of traffic and exploits the set of pre-computed clusters to decide which robust routing configurations is best. The same routing configuration may be used in several clusters. Thus the number of used routing configurations may be smaller than the number of clusters.
[0041 ] However, routing configurations are not usually modified at a high frequency to follow traffic variations. Flow programming in hardware equipment takes time and devices do not have enough memory to store all robust reconfigurations. To address this issue, a subset of reconfigurations inside the memory of data plane devices, such as switches 203a-203b or other similar network devices involving routing, are carefully pre-fetched. And at every time instant, activation of the best robust routing configuration is considered and decided. [0042] The objective of the arrangement discussed in this disclosure is to find a minimum set of robust routing solutions which are computed over the history of traffic matrices and which can be pre-fetched into data plan devices. This approach greatly improves stability while optimizing routing cost. The routing configurations are rarely modified and are able to capture repeating traffic patterns to optimize cost.
[0043] The clustering of traffic matrices is guided by three objectives: 1) cover the entire traffic matrix space so that a feasible routing configuration is available for any traffic condition, 2) reduce the number of routing changes by creating a small set of robust routing configurations that can be used for a minimum duration each time it is applied, and 3) improve the routing objective function (e.g., maximum link utilization, routing cost, etc.) by computing the routing solution that minimizes objective function in each cluster.
[0044] In the following example methods will be discussed. In the example methods following notation is used. The TM at time t y(t) is represented as a vector where each entry represents an origin-destination flow at time t. A cluster C(t) is represented by its extreme points, namely a list of vectors. Each vector of the list represent a pseudo-matrix where each entry is an origin-destination flow of size decided by the CRR module. A TE/routing configuration at time t R(t) is a matrix that associates to each origin-destination flow the set of links that are used to route the traffic. R(t) has a number of rows equal to the number of links and a number of columns equal to the number of origin-destination flows. The product R(t) * y(t) provides the traffic load of links at time t. The network load at time t L(t) is represented as a vector where each element e represents the load of the link e. The capacity of network links is represented as vector c, where each element e represent the capacity of the link e. The element wise division L(t) / c provides the network utilization at time t. The network utilization at time t U(t) is represented as a vector where each element e represents the utilization of the link e. The maximum link utilization is the maximum across all links of the link utilization U(t).
[0045] Figure 4 discloses an example of a method performed by an anticipatory reconfiguration module. The anticipatory reconfiguration module used with the method illustrated in Figure 4 is assumed to be composed of two main sub-modules: the pre-fetching and the activation. Pre-fetching means that the routing configuration is retrieved and provided to the device using the routing configuration in advance and activated later. Both sub-modules are continuously executed by the controller in order to anticipate the network reconfiguration due to the traffic variation both in the near and far future.
[0046] The method receives a plurality of input parameters, step 400. The parameters received from northbound interface and monitoring system (southbound interface) include:
y(t): current traffic matrix
y(t-l), y(t-Hl): history of traffic matrices
y(t+l): prediction of the next traffic matrix
R(t): active routing configuration at time
[0047] The input received from anticipatory reconfiguration module includes
S(t): set of clusters that contain y(t)
C(t): cluster that corresponds to R(t)
{[Ci,Rj(i)], [Ci,Rj(i)], [CN,Rj(N)] } : set of pairs that maps a cluster of TMs Ci to a routing configuration Rj(i):
1 < i < N→ N clusters of TMs
1 < j(i) < K→ K routing configurations (K < N)
[0048] If the current TM y(t) belongs to multiple clusters (y(t), step 401, is in the intersection of several clusters, then continue to step 402 (pre-fetch future TE configurations). Otherwise, go directly to step 403 (activation of TE configuration for next period of time). [0049] If the current TM y(t) belongs to multiple clusters, step 402, (y(t) is in the intersection of several clusters) it means that the traffic in the future will vary more than the variation that can be faced by the current routing configuration. Therefore, the controller selects the best routing configurations for the most probable traffic evolution and pre-fetch in the switches these routing configurations. If there is not enough space in the memory of the switches, only a subset of routing configurations is pre-fetched.
[0050] Independently of the current status of the traffic, the controller decides which routing configuration among those stored into the switches must be activated for the next period of time, step 403. The decision is based on the prediction of the traffic evolution for the next period of time and on the robustness level provided as an input by the management app.
[0051 ] Figure 5 is an example of a pre-fetching method executed in an anticipatory reconfiguration module. The method of figure 5 starts with similar input parameters as the method of Figure 4.
[0052] If the current TM y(t) belongs to multiple clusters, step 500, (y(t) is in the intersection of several clusters), continue to the next step 501. Otherwise go to the end, step 506.
[0053] If the current TM y(t) belongs to multiple clusters, step 501 (y(t) is in the intersection of several clusters) the controller predicts the likelihood that the
TM in the far future (e.g., H2 period of time in the future) belongs to any cluster stored in the memory of the controller and pre-computed by CRR. The likelihood can be computed as the probability that each cluster will contain y(t+H2) in the future using for example soft-decision techniques.
[0054] Clusters are sorted in descending order of their likelihood and only the top clusters that fit in the memory of each switch (of size M2) are selected, step
502.
[0055] The controller sends to all switches, step 503 a command to replace all existing routing configurations except the ones corresponding to the clusters C(t) and C(t+1), that contain the current TM and the predicted TM for the next time period, respectively. To this end, all routing configurations except r(C(t)) and r(C(t+l)) are erased from the memory of the switch.
[0056] The routing configurations corresponding to the clusters selected in step 502 are sent to the switches, step 504. These routing configurations are stored in the tables that have been deleted in step 503. Then proceed to end of this method, step 505. The end of this method leads into the start of the activation method. An example of an activation method is shown in Figure 6.
[0057] If the current TM y(t) does not belong to multiple clusters, step 600, the controller predicts the TM of the next period of time y(t+l) as a function of the historical information of the TMs collected by the monitoring system. The amount of historical data (Hi) as well as other parameters of the prediction function fi(...) are provided as input parameters by the management app. An example of prediction function used by the controller is an ARIMA(m,n) with Hl=(m,n) applied to each entry of the TM vector.
[0058] The clusters that contain the predicted TM S(t+1) are computed, step
601. To this end, each entry of the predicted TM is compared to each entry (i.e., origin-destination flows) of the extreme points of each cluster to verify if the cluster contains the predicted TM.
[0059] If, step 602, the cluster C(t) that contains the current TM (at time t) belongs to the set of clusters returned by step 601 (i.e., the predicted TM of the next period of time t+1 belongs to the same cluster of the current TM), continue to step 603. Otherwise proceed to step 604.
[0060] If, step 603, the cluster C(t) that contains the current TM (at time t) belongs to the set of clusters returned by step 601, the current TE configuration R(t) is used for the next period of time (t+1). The current TE configuration is robust against the predicted traffic change, therefore there is no need to change the configuration.
[0061 ] If, step 604, the cluster C(t) does not belong to the set of clusters returned by step 601, the controller selects the best TE configuration among those that are stored in the memory of the switches to be activated in the next period of time R(t+1). The best routing configuration R(t+1) is for example the one that minimizes the maximum link load when applied to the predicted TM y(t+l). To this end, for each routing configuration R stored in the switches, the controller computes the product L(t+1) = R * y(t+l) and selects the configuration R that minimizes the maximum element of all vectors L(t+1).
[0062] The controller sends a lightweight activation command C2 to all switches to activate the routing configuration R selected in step 605. The command C2 can be as simple as an instruction that redirects all incoming traffic to the table that contains the forwarding rules corresponding to the TE configuration R.
[0063] Figure 7 is an example of a method executed in clustered robust routing (CRR) module. Input taken by the method may include:
M: number of Traffic Matrices
N: max number of TMs clusters
K: max number of robust configurations
O: min time overlap between clusters
L: min in time spent in each routing configuration
y(t-M), y(t): Traffic Matrices (TMs) [0064] First, the input is received, step 700. Then traffic Matrices (TMs) y(t-
M),..., y(t) are divided into N clusters, step 701, each cluster contains the best TMs that can be routed through a routing configuration associated to the cluster. Routing configurations to be associated are selected from a set that must be initially populated. The cluster generation must consider two constraints: 1) each cluster must include a minimum number of TMs that span over a time window L; 2) the temporal overlap among TMs of consecutive clusters must be at least O. The output of this module is a set of N clusters, each with an associated routing configuration, thus N routing configurations in total.
[0065] The N routing configurations of the step 701 are grouped in K clusters, step 702, according to their reciprocal similarity in the routing domain. Such a routing clustering induces a hyper-clustering of TMs, that is, TMs associated to clustered routing configurations are grouped into a hyper-cluster of TMs. This allows to compute K new routing configurations that must be designed to best serve the TMs in each hyper-cluster.
[0066] The performance loss obtained when applying the computed K routing configurations to the whole TM set is evaluated, step 703. If it is reduced with respect to the previous iteration and a maximum number of iterations has not been reached, the set of K new routing configurations is merged with the set of routing configurations considered for the TMs clustering. Otherwise, if the performance does not improve or a maximum number of iterations is reached, the module provides in output a mapping between N overlapping TM clusters and K routing configurations to be applied to best serve TMs of associated clusters.
[0067] A further example how the process runs is shown in figure 8, wherein the input values result into two routing configurations in a case wherein the number of traffic matrices is 17. Steps 701 and 702 of figure 7 are shown in figure 8.
[0068] Figure 9 is a more detailed example of a method executed in clustered robust routing (CR ) module. The input parameters correspond with the input parameters of figure 7.
[0069] An initial set of B (<N) routing configurations, Ri=i„B, is created, step
900. A possible procedure could be, for example, Sequential cluster M TMs in N=floor(M/L) clusters; Compute a Robust Routing configuration for each cluster.
[0070] A segmentation problem is solved, step 901. It consists in finding N sequential TM clusters, Ci=l..N, by assigning each of the M TMs to one of the available routing configurations, Ri=l„B, such that
1) the time difference between the time stamp of the first and the last TM of each cluster is greater than L:
VCi,[Time[last(Ci )]- Time[first(Ci )]>L.
2) the time difference between the last TM's timestamp and the first TM's timestamp of the next cluster (or between the first TM's timestamp of the cluster and the last TM's of the previous cluster) is at least O:
Figure imgf000021_0001
Time[last(Ci )]-Time[first(Q )]>O
OR Time[last(Cj )]-Time[first(Ci )]>O
adj(Ci ) is the set of clusters that adjacent to cluster Ci (e.g., adjacent in the time domain)
[0071 ] The goal of the segmentation problem is to assign TMs to N selected routing configurations in order to maximize the worst routing performance measure. An example could be the minimization of the overall Maximum Link Utilization (MLU), the related mathematical programming model is shown in Figure 10. The MLU minimization represents in some cases a new upper bound of the utilization in every link of the network. When the bound is exceeded the information flow is typically transmitted by different transmission path.
[0072] For each of the N clusters of traffic matrices found in the step 901, compute, step 902, a robust routing configuration, that is, a routing configuration that maximizes the worst routing performance measure when applied to each TM in the cluster. A mathematical programming model is shown in Figure 1 1. The aim of this step is to tailor the routing configuration on the set of TMs in each cluster.
[0073] If, step 903, the maximum number of iterations is reached or the TM clustering has not changed with respect to the previous iteration, continue to the step 904. Otherwise, replace the N routing configurations in the initial set of step 900 with those computed in step 902 and go back to step 901.
[0074] Each robust routing configuration computed at step 902 can be associated to one of the TM clusters computed at step 901. Represent each cluster as a point in the routing hyper-space according to the associated robust routing configuration, step 904. The dimensions of this hyper-space are given by LxD, where L is the set of network links and D is the set of origin-destination pairs. The amount of traffic of given origin-destination pair routed over a given network link is the value of the cluster along the corresponding dimension. This leads to consider TM clusters close if they have a similar robust routing configuration. [0075] Then, find, step 905, K hyper-clusters in the routing hyper-space to group the N points computed at step 904. The TM clusters grouped together into a hyper-cluster are characterized by similar robust routing configurations.
[0076] Similarly to step 902, find, step 906, a robust routing configuration for each of the K hyper-clusters found at step 905. The set of TMs used to compute the robust routing configuration is the union of the TM sets associated to each cluster in the hyper-cluster.
[0077] The routing performance measure obtained when applying the K routing configurations computed at step 906 to the whole TM set y(t-M),...,y(t) is evaluated, step 907. If it is improve with respect to the previous iteration and a maximum number of iterations has not been reached, merge, step 908, the set of K new routing configurations with the set of routing configurations considered at step 900 and go back to step 901.
[0078] Otherwise, if the routing performance measure does not improve or a maximum number of iterations is reached, the module provides in output a mapping between the N overlapping TM clusters, computed at step 901, and K routing configurations, computed at step 906, to be applied in order to best serve TMs of associated clusters.
[0079] Figure 10 is an example of a mathematical programming model that may be applied in solving the segmentation problem. Figure 10 includes a list of variables needed and the mathematical equations that may be used, for example, in step 901 of figure 9.
[0080] Figure 11 is an example of a mathematical programming model for formulating the problem of finding the minimum maximum link utilization. Figure 11 includes a list of variables needed and the mathematical equations that may be used, for example, in steps 902 and 906 of figure 9.
[0081 ] As explained above providing a routing configuration may be implemented as a hardware, such as the apparatus as described above, or as a method. The method may be implemented as a computer program. The computer program is then executed in a computing device. [0082] The apparatus and method for providing a routing configuration has been described in conjunction with various embodiments herein. However, other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. A single processor or other unit may fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measured cannot be used to advantage. A computer program may be stored/distributed on a suitable medium, such as an optical storage medium or a solid-state medium supplied together with or as part of other hardware, but may also be distributed in other forms, such as via the Internet or other wired or wireless telecommunication systems.

Claims

1. An apparatus for providing a routing configuration to a switch, the apparatus comprising:
a network connection (103);
a memory (102) configured to store a plurality of precomputed routing configurations, wherein said routing configurations are associated with overlapping clusters of traffic matrices;
a processor (101) configured to:
monitor current traffic conditions;
predict, based on the monitored conditions, one or more upcoming traffic matrices;
select, based on the predicted one or more upcoming traffic matrices, at least one routing configuration from the plurality of precomputed routing configurations; and
transmit at least one of the selected at least one routing configuration to the at least one switch using the network connection.
2. The apparatus according to claim 1, wherein the processor (101) is further configured to transmit an activation signal to the at least one switch in order to activate the transmitted routing configuration.
3. The apparatus according to claim 1, wherein the processor (101)) is further configured to incorporate in the selected routing configuration activation instructions.
4. The apparatus according to any of preceding claims 1 - 3, wherein the processor (101) is further configured to analyze the monitored traffic conditions, and based on the analysis, the processor (101)is further configured to predict the traffic evolution and compute the plurality of precomputed routing configurations based on analyzed traffic conditions and the predicted traffic evolution.
5. The apparatus according to claim 4, wherein the processor (101) is further configured to compute the plurality of precomputed routing configurations based on at least one of the following: a temporal overlap, traffic similarity, and routing similarity.
6. The apparatus according to claim 4 or 5, wherein when computing the plurality of precomputed routing configurations the processor (101) is configured to receive a set of input parameters, wherein the input parameters comprise:
- a set of traffic matrices received from monitoring ( )
- a set of traffic matrices received from prediction;
- a maximum number of clusters (N);
- a maximum number of routing configurations (K)
- a minimum time overlap among clusters (O); and
- a minimum time of utilization of a configuration (L).
7. The apparatus according to claim 6, wherein the processor (101) is further configured to:
sort the set M according to increasing traffic matrix sampling time; and find an initial set of B routing configurations: Ri, RB.
8. The apparatus according to claim 6 or 7, wherein the processor (101) is further configured to create N clusters of traffic matrices, wherein N < B,
Figure imgf000025_0001
wherein the processor (101) is further configured to assign for each of M traffic matrices a routing configuration R, such that an overall maximum link utilization is minimized.
9. The apparatus according to claim 8, wherein the processor (101) is configured to assign for each of M traffic matrices a routing configuration such that upcoming conditions are met:
- VCi, Tim[(Ci)]- Time[first(d )]>L; and
- VCi, j 6 adj(Ki), Time[last(Ci)]—Time[first Cj)]≥0; or Tim[(Cj)]- Time[first(Ci)]≥0.
10. The apparatus according to claims 6-9, wherein the processor (101) is further configured to select K out of N routing configurations to be assigned to the N clusters of traffic matrices.
11. A switch for routing data traffic comprising:
at least one incoming network connection;
at least one outgoing network connection;
a memory configured to store a current routing configuration and at least one precomputed routing configuration, wherein routing configurations are associated with overlapping clusters of traffic matrices;
a processor configured to:
route data packets received by the at least one incoming network connection to the at least one outgoing network connection according to the current routing configuration; and
activate one of the at least one precomputed routing configuration.
12. The switch according to claim 11, wherein the processor is further configured to:
receive an activating signal; and
activate one of the at least one precomputed routing configuration as a response to the received activating signal.
13. A method for providing a routing configuration to a switch, the method comprising:
monitoring current traffic conditions;
predicting, based on the monitored conditions, one or more upcoming traffic matrices; selecting, based on the predicted one or more upcoming traffic matrices, at least one routing configuration from the plurality of precomputed routing configurations; and
transmitting at least one of the selected routing configuration to the at least one switch.
14. The method according to claim 13, wherein the method further comprises:
activating the transmitted at least one selected routing configuration in the at least one switch.
15. The method according to any of preceding claims 12 - 14 the method further comprising:
analyzing the monitored traffic conditions;
predicting the traffic evolution; and
computing the plurality of precomputed routing configurations based on analyzed traffic conditions and the predicted traffic evolution.
16. A computer program comprising a program code configured to perform a method according to any one of claims 12 - 15, when the computer program is executed on a computing device.
PCT/EP2017/062851 2017-05-29 2017-05-29 Apparatus and method for providing a robust routing configuration WO2018219420A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2017/062851 WO2018219420A1 (en) 2017-05-29 2017-05-29 Apparatus and method for providing a robust routing configuration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2017/062851 WO2018219420A1 (en) 2017-05-29 2017-05-29 Apparatus and method for providing a robust routing configuration

Publications (1)

Publication Number Publication Date
WO2018219420A1 true WO2018219420A1 (en) 2018-12-06

Family

ID=58994918

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2017/062851 WO2018219420A1 (en) 2017-05-29 2017-05-29 Apparatus and method for providing a robust routing configuration

Country Status (1)

Country Link
WO (1) WO2018219420A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020160780A1 (en) * 2019-02-08 2020-08-13 Huawei Technologies Co., Ltd. Devices and method for controlling network routing configurations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7729269B1 (en) * 2004-06-09 2010-06-01 Sprint Communications Company L.P. Method for identifying and estimating mean traffic for high traffic origin-destination node pairs in a network
US20100214920A1 (en) * 2009-02-20 2010-08-26 At&T Corp. Systems and Methods for Capacity Planning Using Classified Traffic
US20150327135A1 (en) * 2014-04-24 2015-11-12 Futurewei Technologies, Inc. Apparatus and method for dynamic hybrid routing in sdn networks to avoid congestion and balance loads under changing traffic load
US20160352648A1 (en) * 2014-02-17 2016-12-01 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for allocating physical resources to a summarized resource

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7729269B1 (en) * 2004-06-09 2010-06-01 Sprint Communications Company L.P. Method for identifying and estimating mean traffic for high traffic origin-destination node pairs in a network
US20100214920A1 (en) * 2009-02-20 2010-08-26 At&T Corp. Systems and Methods for Capacity Planning Using Classified Traffic
US20160352648A1 (en) * 2014-02-17 2016-12-01 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for allocating physical resources to a summarized resource
US20150327135A1 (en) * 2014-04-24 2015-11-12 Futurewei Technologies, Inc. Apparatus and method for dynamic hybrid routing in sdn networks to avoid congestion and balance loads under changing traffic load

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020160780A1 (en) * 2019-02-08 2020-08-13 Huawei Technologies Co., Ltd. Devices and method for controlling network routing configurations
CN113316917A (en) * 2019-02-08 2021-08-27 华为技术有限公司 Apparatus and method for controlling network route configuration
CN113316917B (en) * 2019-02-08 2023-02-28 华为技术有限公司 Apparatus and method for controlling network route configuration

Similar Documents

Publication Publication Date Title
US20220414500A1 (en) Network devices
US9838296B2 (en) Bandwidth optimization systems and methods in networks
US10091093B2 (en) Multi-controller control traffic balancing in software defined networks
EP3047609B1 (en) Systems and method for reconfiguration of routes
US10904125B2 (en) Active probe construction using machine learning for measuring SD-WAN tunnel metrics
Paris et al. Controlling flow reconfigurations in SDN
US11474894B2 (en) Partial reroute of traffic onto a backup tunnel using predictive routing
KR20170059315A (en) Method and apparatus of sharing information related to status
Poularakis et al. Learning the optimal synchronization rates in distributed SDN control architectures
Sørensen et al. A metaheuristic scheduler for time division multiplexed networks-on-chip
CN107079392B (en) System power management and optimization in a telecommunications system
US9178826B2 (en) Method and apparatus for scheduling communication traffic in ATCA-based equipment
Zhang et al. Gemini: Practical reconfigurable datacenter networks with topology and traffic engineering
WO2018219420A1 (en) Apparatus and method for providing a robust routing configuration
US20180101609A1 (en) Pattern-based Data Collection for a Distributed Stream Data Processing System
Bambos et al. On the stationary dynamics of parallel queues with random server connectivities
Lakineni et al. Deepflow: A Software-Defined Measurement System for Deep Learning
Okay et al. SDN-based data forwarding in fog-enabled smart grids
US20210367882A1 (en) Devices and method for controlling network routing configurations
CN113271253B (en) Path determining method and related equipment thereof
Capone et al. Apparatus and method to provide a robust routing configuration
Wei et al. Cost-location aware heuristic algorithm for hybrid SDN deployment
WO2016155974A1 (en) Stability- and capacity-aware time-dependent routing in transport networks
US11811644B2 (en) Distributed predictive routing using lightweight state tracking
Shen et al. Machine Learning-Assisted Least Loaded Routing to Improve Performance of Circuit-Switched Networks

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: 17727558

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17727558

Country of ref document: EP

Kind code of ref document: A1