{'fraction_non_alphanumeric': 0.02074688796680498, 'fraction_numerical': 0.0027662517289073307, 'mean_word_length': 5.183760683760684, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, '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}}
Fast and Adaptive Failure Recovery using Machine Learning in Software Defined Networks

Fast failure recovery is a critically important problem in networks. To address this problem in software-defined networks (SDN), backup paths can be chosen in a proactive and adaptive manner in accordance with the traffic dynamics. Existing proactive approaches make use of only the network topology knowledge or a combined knowledge of the topology and static load to compute the backup paths. This, however, does not reflect the traffic dynamics in the network, making the links congested over the period of time when traffic varies or when a failure occurs. In this paper, we develop a traffic engineering (TE)-based machine learning approach that can learn the traffic dynamics, estimate the goodness of a path and update the backup path adaptively. A backup path is proactively configured in the SDN switches, thus enabling a fast failure recovery. We train, test and validate the learning model using different machine learning algorithms such as gradient boosting, linear regression, decision tree, neural network, support vector machine, and random forest. We implement the proposed approach and carry out experiments on the Mininet emulation platform. The results show that our proposed approach significantly reduces the failure recovery time by up to 50% and improves the network bandwidth utilization by up to 24% compared to a baseline approach.