{'fraction_non_alphanumeric': 0.02983654045106559, 'fraction_numerical': 0.007614318228843369, 'mean_word_length': 5.052091159529176, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Boosting performance for software defined networks from traffic engineering perspective

Paths selection algorithms and rate adaptation objective functions are usually studied separately. In contrast, this paper evaluates some traffic engineering (TE) systems for software defined networking obtained by combining path selection techniques with average delay and load balancing, the two most popular TE objective functions. Based on TE simulation results, the best TE system suitable for software defined networks is a system where the paths are calculated using an oblivious routing model and its adaptation rate calculated using an average delay objective function. Thus, we propose the RACKE+AD system combining path sets computed using Racke's oblivious routing and traffic splitting objective function using average delay. This model outperforms current state-of-the-art models, maximizes throughput, achieves better network resource utilization, and minimizes delay. The proposed system outperformed SMORE and SWAN by 4.2% and 9.6% respectively, achieving 27% better utilization and delivering 34% more traffic with 50% less latency compared with both systems on a GEANT network.


I. INTRODUCTION
Centralized traffic engineering (TE) has gained much attention following new software defined networking (SDN) developments. Large technology companies such as Microsoft [1] and Google [2] have shifted to this technology over the last few years.
Some previous studies have deviated from the standard SDN centralization feature to improve scalability and fast adaptation to changing traffic conditions, e.g. Contra [3], HULA [4], MP-HULA [5], and DASH [6] balance load traffic entirely in the data plane to reduce controller overhead. These solutions provide scalable systems with short response time, but degrade performance, with resulting distributed solutions far from optimal [7].
Performance can also be affected by the traffic splitting objective function. Some TE systems balance load over some paths by minimizing maximum link utilization (MLU) [1,8]. However, minimizing MLU does balance load and enhance performance for low traffic and degrades performance significantly during peak hours since it requires additional constraints to satisfy all the demands [9]. Other TE systems use metaheuristic [10] or heuristic [11] solutions that can provide fast routing convergence, but the solutions are sub-optimal since they may be only local optima. Prior to SDN, several studies considered different objectives [12,13]. To our knowledge, performance impacts from these objectives and path selection strategies have not been properly considered for SDN. Any TE system has two key ingredients: which set of paths is used for forwarding traffic, and how to split traffic over these selected paths. To the best of our knowledge, no previous study has focused on boosting performance by optimizing combinations of these key ingredients, in contrast, previous work has focused on either path selection algorithms or traffic-splitting objective functions, but not both.
Many studies suggest that a set of shortest paths should be used in TE systems to achieve reliable performance [1,14,15]. Unfortunately, choosing shortest paths may exacerbate congestion for topologies with high link capacity heterogeneity. Oblivious routing 1 strategies offer network demand independent routing schemes, i.e., the routing scheme that is oblivious to the demands [16,17,18,19]. Although oblivious routing schemes can be devised with guaranteed congestion ratio, the resulting routing scheme is static and unable to adapt to changing traffic conditions. Several studies have shown that route allocations calculated using an oblivious routing model achieve comparable quality to adaptive solutions [8,20]. Selected paths from this approach are capacity-aware and diverse, which improves not only system performance, but also robustness.
The capacity aware concept not only applies to path selection only, but also to sending rates. For example, the Kleinrock delay objective function [21] minimizes congestion by increasing highly utilized link costs, thus, avoiding highly congested links. The widely used load balancing (LB) objective function [1,8,22,23,24] minimizes utilization (relative load) for all links, and can also be considered a capacity-aware objective function. The main goal for demand aware objectives is to mitigate proportional increases for all demands [12] by minimizing MLU. However, all source destination (SD) pair demands do not increase at the same rate, and it is not trivial to predict future demands. Thus, sending rates should not only be capacity aware, but also demand aware.
Contributions. Critical contributions from the current paper are as follows: 1) We present a routing scheme that outperforms current state-of-the-art techniques. 2) We introduce RACKE+AD, a new efficient TE simulator that can test many routing schemes simultaneously. RACKE+AD is optimized for testing different route selection algorithm and objective function combinations and can be easily extended to test future TE systems. 3) We demonstrate that a TE system with static routes and adaptive traffic splitting offers many benefits, including performance, throughput, and resource utilization.

II. SYSTEM MODEL
All TE systems comprise two phases: identifying a set of paths to be used to forward traffic (path selection), and identifying splitting ratios to distribute traffic over these paths (rate adaptation). Generally, routes selected in the path selection phase are static, i.e., selected once and only recalculated when the network topology changes. Path selection is usually offline because updating end-to-end paths may take hundreds of seconds for wide area networks. In contrast, the rate adaptation phase must update path weights regularly due to frequent demand changes. However, the time required to update path weights is considerably less than the time required to update paths in the network. Among many techniques of paths selection algorithms and rate adaptation objective functions, the aim of this research is to find the best combination of these phases to enhance network performance. Path and Rate Adaptation Properties: Intuitively, independently chosen paths may not provide better performance than dependently chosen paths. However, SMORE showed that path selection has considerable effect on performance [8]. Selected paths should be low stretch to minimize latency and naturally load balanced to provide better performance. Low stretch motivated us to compare SMORE performance and latency against k-shortest paths (KSP) approaches. SMORE is naturally load balanced since route computation in Räcke's oblivious routing model is not independent and incorporates some randomness, i.e., the obtained route set may not be the same if we were to run the model again. Thus, we expect different performance for each run. On the other hand, KSP selected paths are not capacity aware, whereas Räcke's model selected paths are capacity-aware due to the natural load balancing. Performance can be further boosted if we use the same concept for splitting traffic over the selected paths, and  we expect best performance may be achieved using phases, path selection, and rate adaptation.
A. Rate Adaptation Models 1) Load Balance: The load balance (LB) objective is also known as minimizing MLU, Wozencraft objective [26], or minimizing congestion, where LB minimizes the load on the most congested link. Thus, the LB problem can be expressed as [24] min where: x dp is the flow on path p for demand d; h d is the volume for demand d; c l is the capacity for link l; P d is the number of candidate paths for demand d; δ dpl = 0, 1 is a linkpath indicator, with δ dpl = 1 if path p for demand d uses link l, and 0 otherwise.
Two constraints are applied. The demand constraint (1a) ensures that all demands are satisfied over some paths. The capacity constraint (1b) ensures that load does not exceed the link capacity where r ≤ 1, after solving (1). The linear program formulation above is the final form of the problem whereas the original problem is non-linear. The reader is referred to Chapter 4 of [24] for details on how the problem can be converted to the current form.
2) Average Delay: For this objective function, delay for any network link can be modeled as y/(c − y), as shown in (Figure 1, solid line). Similar to the LB objective, the original AD problem is non-linear and cannot be formulated directly as a linear program. Thus, the delay function is a piecewise linear approximation (2) (Figure 1, dotted line) The linear program for this AD problem is δ dpl x dp = y l , l = 1, 2, ..., L (3b) which is considerably more accurate [24] than the Fortz et al. [27] approximation.

B. Paths Selection Algorithms
1) Räcke's oblivious routing model: Räcke's oblivious routing model iteratively computes a distribution over randomized routing trees using an approximation algorithm. Link weights are adjusted for each iteration based on how much the link has been utilized in previous routing tree sets. A routing tree has leaves corresponding to nodes in the original topology. Thus, a path can be obtained between nodes u and v in the original graph by finding corresponding leaves for u and v in the routing tree.
However, paths for Räcke's oblivious routing model are computed without considering demands, thus, they do not overfit to a specific scenario [8]. Similar to SMORE, we also adopt the simple mechanism used to impose the number of paths for each SD node pair. We use 4 paths for each SD pair of nodes that have the highest weights.
2) K-shortest paths: The proposed KSP algorithm is based on Yen's algorithm, the most commonly used algorithm for TE. KSP is a generalization of the shortest path routing problem. The algorithm returns loopless k shortest paths ordered from shortest to longest. We use four paths for each SD pair, i.e., k = 4.

III. SIMULATOR FRAMEWORK
We built a simulator to model and test different TE scenarios, with particular attention to efficiency, simplicity, and extendibility. Although many network simulators have been proposed previously [28,29,30,31], they are generally not optimized for modeling TE approaches and/or do not provide ease of use or extendibility. The proposed simulator was built in Python and can test many TE models in parallel while recording statistics in the background. We use Gurobi optimization [32] to solve the linear programming problems, by integrating it with Python. The framework, data and Räcke's oblivious routing model implementation are all available online 2 .
Simulator inputs, (e.g. topology, demands, path selection algorithms, objective functions, etc.) are all specified in a Python script or configuration file. The simulation produces visualized throughput graphs for each TE system. The graphs are updated periodically as throughput data becomes available. Three time-series metrics for each TE system are recorded in the background during simulation: overall throughput, congestion per link, and latency per path. Topology and traffic matrices are provided as input files, where the user provides the location to these files in the configuration file. If the locations are unavailable, random topology and traffic matrices will be generated according to provided parameters, including number of nodes N , number of links L, and traffic distribution matrix.

A. Evaluating Routing Scheme Quality
We evaluate TE systems based on congestion, throughput, and delay. Congestion reflects how a TE system utilizes network resources, and we mostly care about congestion when traffic demand exceeds link capacity. Thus, avoiding congestion can be considered as preserving as much residual capacity as possible, which is important for unexpected traffic surges that could cause bottlenecks. Congestion has negative impact on delay due to queuing. We measure path delay by summing queuing delay for each link along that path, l/(c − l), where l is the absolute link load and c is the link capacity. Throughput is the proportion of total demand that is successfully delivered to the destinations.

B. Simulation Settings
Path selection algorithms. We use three approaches for path selection (i) paths selected using Räcke's oblivious routing model, (ii) paths selected using KSP algorithm, and (iii) select all available simple paths. We refer to these RACKE, KSP, and OPTIMAL, respectively. Rate adaptation objective functions. We use two objective functions for rate adaptation: AD and LB. We refer to a routing scheme with paths selected using KSP and rate adaptation using LB objective function as KSP+LB. Similarly, models where the routing scheme selects all available paths and rate adaptation uses AD is referred to as OPTIMAL (AD), etc. The RACKE+LB routing scheme parallels that used in SMORE [8], and KSP+LB is an approximation to the SWAN scheme [1]. Table I shows the TE systems used in our experiment. All paths, LB for weights OPTIMAL(AD) b All paths, AD for weights a The best load balance is achieved with this system. b The best average delay is achieved with this system.
Path budget. Similar to SMORE and SWAN, and to ensure a fair comparison, we use 4 paths to evaluate any routing scheme. If the Räcke's oblivious routing model produces a routing scheme with SD pairs that has more than 4 paths, we use the 4 highest weight paths, similar to SMORE. Traffic matrix generation. We use the gravity model to generate the traffic matrix (TM) [8,17]. The gravity model approximates real-world TMs for a production network [33]. TMs are deduced based on incoming/outgoing flow for each forwarding device. Since that information is not available, we use a capacity based heuristic rather than incoming/outgoing flow information [17]. Topologies. We evaluate many TE systems for ATT and GÉANT 3 production topologies. The GÉANT network (European academic network) contains 38 nodes and 104 directed links with heterogeneous capacities. Fig. 2 shows the link capacity distribution for this network. Different TE systems may behave differently depending on link capacity distributions. Shortest-path TE systems may introduce a bottleneck in heterogeneous link capacities as many SD pairs compete for the same resources.

V. RESULTS
We evaluated multiple routing schemes using criteria focused on: • how each TE system performs regarding throughput and congestion, and • SMORE and KSP TE system impacts on latency. 3 dataset available at: http://www.topology-zoo.org/dataset.html

A. Throughput
Performance for many TE systems were evaluated on GÉANT and ATT networks with path budget = 4 for a fair comparison with SMORE. Figures 3a and 3b show throughput and corresponding throughput distribution for GÉANT network, respectively. Rate adaptation using AD objective function significantly increases throughput, achieving 4.2% and 9.6% improvement over SMORE and KSP+LB, respectively, which confirms path selection effectiveness using Räcke's oblivious routing algorithm.  Similar to GÉANT topology, a higher throughput was achieved for ATT topology using the AD adaptation rate objective function. KSP had slightly better throughput than Räcke's oblivious routing path selection algorithm (Figs. 4a  and 4b).
Räcke's oblivious routing model with LB adaptation rate performed 1.14% better than KSP on average. This may confirm that AD favors shortest paths when all links have the same capacity. However, there is no guarantee that SMORE will always outperform (or underperform) KSP under the same conditions due to oblivious routing scheme randomness. Figure 5 shows throughput distributions for KSP+AD with a different Räcke's oblivious routing TE systems obtained by repeatedly calculating the oblivious routing scheme. Output from KSP+AD remained constant since KSP+AD is deterministic. Räcke's oblivious routing scheme outperformed KSP for 5 runs and underperformed for 1 run. Thus, there is a worst case scenario where KSP may perform better than SMORE. The best run had 2.29% higher throughput than KSP+AD. Therefore, a network operator may choose to run Räcke's scheme several times and choose the best outcome. Figures 6a and 6b show network congestion for GÉANT topology using AD and LB. The AD objective function sched-uled link loading differently from LB. Figure 6a shows the maximum congested link over time. All TE systems scheduled link loads that exceeded specific link capacities since we deliberately fed the system with high volume demands to investigate TE system performance well under stressed conditions. AD (Fig. 6a) seems to have higher MLU whereas Fig.  6b) shows that the AD objective utilizes link loads much better than LB. TE systems with LB caused a bottleneck for more than 40% of links whereas TE systems with AD objective caused a bottleneck for 13% of links. This low congestion ratio for AD is the main reason for the higher throughput (Fig. 3).

B. Congestion
The LB objective always distributes traffic perfectly across the available routes, in the sense that all paths are used and all nodes send and receive traffic with quite similar link utilization (relative load) for all links. Thus, all links might be overutilized under high demands when the system is not feasible. On the other hand, AD deals more with delay and throughput, but generates worse MLU than from LB. However, MLU is not a true network metric as it only considers congestion for a single link rather than the whole network. Thus, congestion distribution seems like a more reasonable metric, and we only measured MLU to make that point since it is heavily used in the literature.
Thus, two factors contributed to better throughput and less congestion: routes selected using Räcke's oblivious routing algorithm, and using the AD objective. Similar results were obtained for ATT topology (Figs. 7a and 7b).
C. Latency Figure 8 shows link delay distribution with respect to traffic delivered within that delay for GÉANT and ATT topologies. Latency for each path was computed by summing the link delays to obtain the path delay. Including AD selection outperforms LB, achieving significantly lower latency. 8a shows that LB and AD TE systems different considerably for GÉANT topology. TE systems with AD objective initially deliver approximately 34% traffic more than those with LB objective, which also has latency 50% lower latency than TE systems with AD. RACKE+AD routing delivered slightly more traffic than OPTIMAL(AD) since OPTIMAL(AD) goal is to reduce total delay rather than throughput. Figure 8b shows that routing schemes with AD also delivered more traffic than those with LB for ATT topology. However, the gap between the two groups is somewhat smaller than for GÉANT topologies (Fig. 8(a)) because ATT network links are heterogeneous, hence smaller performance differences between individual links. The classic approach for TE problems is to solve them as a linear program (LP) [24,26], referred to as a multi-commodity flow problem, where the objective function usually minimizes MLU. The approximation of AD objective function is not as widely as used. However, this classical approach does not consider decoupling TE system phases because all available paths are provided as inputs. Choosing all available paths has two limitations: more paths means more decision variables in the LP, and forwarding devices, such routers and switches, have limited TCAM memory, hence fewer number paths is always preferable to keep the routing table as small as possible.
The conventional approach adjusts link weights to find a good routing scheme that can increase throughput or minimize congestion in the network [27,34]. However, OSPF can never reach optimal because it uses the equal cost multi-path  approach that splits traffic evenly among available shortest paths without rate adaptation. Furthermore, optimizing link weights is an NP-hard problem. Potentially centralized TE approaches recently became viable due to software-defined networking (SDN) developments, that clearly decouple the two TE phases. SWAN [1] distributes traffic over a set of k-shortest paths using an LP that reserves a small amount of scratch capacity on links to apply updates in a congestion-free manner. SOL [22] uses a greedy approach to randomly select paths with the promise that this random selection will help load balancing traffic across the network. This latter approach is somewhat similar to valiant load balancing [35] but can lead to unnecessarily long paths and consequently increased latency.
Oblivious routing [16,17,18] has also been proposed to find a routing scheme that performs well under all possible demands. The Räcke oblivious routing model [16] guarantees a congestion rate that is never worse than O(log n) of optimal, where n is the number of nodes in the graph. However, despite the guaranteed congestion ratio, this approach cannot outperform systems like SWAN since it considers all possible traffic demands. On the other hand, the oblivious routing approach has inspired several studies (including the current study) to investigate a careful path selection approach. SMORE [8] was inspired by Räcke's oblivious routing model to carefully select paths that increase TE system performance and robustness. Paths selected this way have low stretch, which is important to decrease latency, and are capacity aware, which is important for load balancing. The proposed approach in this paper suggests that careful route selection is not sufficient performance enhancement to reach the expected maximum performance. However, a different objective function from the commonly employed LB could further enhance performance. Hence we were inspired to compare LB and AD objective function performance, and subsequently propose the RACKE+AD TE system using oblivious routing for path selection with AD to achieve better link delay and network performance.

VII. DISCUSSION
This section discusses the reason behind the high gap in performance and delay between LB and AD objective functions and one potential limitation for this work. The LB objective function tends to make the relative load the same for all links when all SD pairs are sending and receiving traffic. This can enhance performance to some extent but causes bottlenecks between some SD pairs under stressed conditions and unpredicted demands, with consequential congestion loss. On the other hand, the AD objective function increases the cost for highly utilized links to avoid utilizing them if other less heavily utilized links are available. Thus, AD is more demand aware than LB and hence offers better contribution to performance. However, solving LP for LB is much faster than for AD, particularly for larger networks due to the increased number of constraints and decision variables.

VIII. CONCLUSION
Although a few TE systems have been optimized previously using different path selection algorithms, few studies have investigates performance enhancement by testing many objective functions for splitting traffic. These phases have only been studied in isolation previously, with no prior studies testing all possible combinations to find a routing scheme with the best available performance. This paper proposed RACKE+AD TE system and validated its performance advantages by testing many possible combinations. RACKE+AD selects routes using Räcke's oblivious routing model and the average delay objective function. Although the intuitive AD goal is to minimize network delay, it also provides surprisingly better throughput than minimizing MLU (commonly known as load balancing).
Simulations confirmed the proposed RACKE+AD system outperformed state-of-the-art routing TE systems in terms of throughput, congestion, and delay. We discussed a caveat when running Räcke's oblivious routing model, where kshortest paths may give better performance due to randomness in oblivious routing, and also discussed the importance of excluding the maximum congestion metric when evaluating TE systems, particularly system that split traffic not based on the LB objective function.