# SDN-Based Routing Framework for Elephant and Mice Flows Using Unsupervised Machine Learning
## 1 Introduction  
In traditional networks, control management and data forwarding are tightly coupled, where distributed devices control the whole network, and it is hard to improve the flexibility and extensibility of the network. Therefore, congestion and unbalanced loads are real problems in networking. One of the main causes of these problems is the unfair use of network resources by specific flows [1, 2]. Subsequently, the need to develop a network architecture and corresponding traffic engineering (TE) technology becomes imperative to solve these problems [3]. To address this problem, the idea of software-defined networking (SDN) is introduced. Compared to traditional networks, a SDN has several advantages to support TE because of its distinguished characteristics, such as the separation between the forwarding and control plane, control centralization, and capability for network behavior programmability [4, 5]. In addition, a SDN has the capability of controlling the efficient movement of data flows through the network to fulfill sufficient flow management and effective usage of network resources. A SDN enables the development of more innovative programmable network control and routing solutions based on a global view of network status and fine-grained control of network traffic and network resources [6]. The essential portion, which has a real effect on network performance, is flow routing. The main purpose of flow routing in anetwork is to access the required data as fast as possible, which is an obvious advantage that can be provided to the performance of a network by the routing process [7,8]. In multipath routing, the calculation of the optimal path and the substitution of link failure is the responsibility of the SDN controller. However, recent studies have shown that the time spent to select the optimal path by the SDN controller is high [9]. A data center is a network of computing and storage resources. It provides the delivery of applications and shared data. Recently, data centers have developed quickly, with their infrastructure having changed from the traditional structure of physical servers to virtual networks, which supports applications. In a DCN, most of the network traffic is mice flows with a small volume, and they hold less than 10% of the overall transmitted bytes. In contrast, elephant flows represent only 10% of the flows, but they hold 90% of the overall transmitted bytes. In general, mice flows induce transient congestion, while elephant flows cause constant congestion. Network congestion is one of the main reasons for poor performance, as not all of the flows use the network resources equally. To address the above problem, ML approaches are introduced, such as in [10, 11, 12, 13, 14, 15, 16]. All these studies have proposed techniques for optimizing network performance and providing high quality of service (QoS) by prioritizing mice flows or scheduling re-routing elephant flows. Recently, some studies [17,18] have integrated ML techniques in a SDN to enhance the security system of the network, improve network flow management, and strengthen the development of network design. ML has the potential of solving a wide range of networking problems, including design, implementation, performance, and verification [19]. In this paper, unsupervised ML algorithms are utilized to characterize network traffic and identify them into mice and elephant flows based on predefined features. To minimize the dimensionality of the data while keeping their distinctive features, principal component analysis (PCA) is used. K-means is implemented for grouping the flows that have similar metrics of network performance to aid the flow routing of elephants and mice based on their features. The main contributions of this paper are to develop a SDN-based application using unsupervised ML and achieve four specific aims:  
1. To develop a new SDN-based routing framework using the concept of flow identification.