Recent research on Software-Defined Networking (SDN) strongly promotes the adoption of distributed controller architectures. To achieve high network performance, designing a scheduling function (SF) to properly dispatch requests from each switch to suitable controllers becomes critical. However, existing literature tends to design the SF targeted at specific network settings. In this paper, a reinforcement-learning-based (RL) approach is proposed with the aim to automatically learn a general, effective, and efficient SF. In particular, a new dispatching system is introduced in which the SF is represented as a neural network that determines the priority of each controller. Based on the priorities, a controller is selected using our proposed probability selection scheme to balance the trade-off between exploration and exploitation during learning. In order to train a general SF, we first formulate the scheduling function design problem as an RL problem. Then a new training approach is developed based on a state-of-the-art deep RL algorithm. Our simulation results show that our RL approach can rapidly design (or learn) SFs with optimal performance. Apart from that, the trained SF can generalize well and outperforms commonly used scheduling heuristics under various network settings.
In the literature, there exist SFs in the form of heuristics designed by human experts. For example, a weighted round-robin heuristic is designed to proportionally forward requests to controllers based on their processing capacities. BLAC @cite_22 randomly sampled a small number of controllers and sent requests to the least loaded one. Similar approaches can also be found in literature @cite_23 @cite_3 . Although such manually designed SFs are intuitive and simple in nature, the design process is time-consuming and requires substantial domain knowledge. Moreover, the performance of manually designed SFs could also vary significantly, depending on specific network settings.
@cite_3 @cite_22 @cite_23
2779533463 2770754945 2034677282
One grand challenge in software defined networking is to select appropriate locations for controllers to shorten the latency between controllers and switches in wide area networks. In the literature, the majority of approaches are focused on the reduction of packet propagation latency, but propagation latency is only one of the contributors of the overall latency between controllers and their associated switches. In this paper, we explore and investigate more possible contributors of the latency, including the end-to-end latency and the queuing latency of controllers. In order to decrease the end-to-end latency, the concept of network partition is introduced and a clustering-based network partition algorithm (CNPA) is then proposed to partition the network. The CNPA can guarantee that each partition is able to shorten the maximum end-to-end latency between controllers and switches. To further decrease the queuing latency of controllers, appropriate multiple controllers are then placed in the subnetworks. Extensive simulations are conducted under two real network topologies from the Internet Topology Zoo. The results verify that the proposed algorithm can remarkably reduce the maximum latency between controllers and their associated switches. Distributed controller architectures have been proposed for Software-Defined Networking (SDN) to ensure scalability and reliability. One major drawback of the existing architectures is the uneven load distribution among controllers stemming from the static binding between controllers and switches. To address this issue, several existing studies introduce dynamic binding by adopting some switch migration mechanisms that re-associate switches from overloaded controllers to underutilized controllers. However, the migration process adds a considerable amount of complexity to the system and may incur significant network latency. In this paper, we propose BLAC, a novel BindingLess Architecture for distributed Controllers (BLAC), in which load balance is achieved with the help of the proposed scheduling layer, which intercepts flow requests from switches and dispatches them to different controllers as determined by selected scheduling algorithms. The process is proceeded transparently with no extra modification required for off-the-shelf SDN switches. Besides, the scheduling layer can flexibly support various scheduling algorithms and causes neither disruption of service nor significant network delay. We build a prototype that can work with various distributed controller systems and conduct experiments to demonstrate its efficacy. The results show that our design outperforms the static-binding controller system in terms of both system throughput and response time without the complexity of the dynamic-binding controller system. Software Defined Networking (SDN) has become a popular paradigm for centralized control in many modern networking scenarios such as data centers and cloud. For large data centers hosting many hundreds of thousands of servers, there are few thousands of switches that need to be managed in a centralized fashion, which cannot be done using a single controller node. Previous works have proposed distributed controller architectures to address scalability issues. A key limitation of these works, however, is that the mapping between a switch and a controller is statically configured, which may result in uneven load distribution among the controllers as traffic conditions change dynamically. To address this problem, we propose ElastiCon, an elastic distributed controller architecture in which the controller pool is dynamically grown or shrunk according to traffic conditions. To address the load imbalance caused due to spatial and temporal variations in the traffic conditions, ElastiCon automatically balances the load across controllers thus ensuring good performance at all times irrespective of the traffic dynamics. We propose a novel switch migration protocol for enabling such load shifting, which conforms with the Openflow standard. We further design the algorithms for controller load balancing and elasticity. We also build a prototype of ElastiCon and evaluate it extensively to demonstrate the efficacy of our design.