# A Comprehensive Survey of In-Band Control in SDN: Challenges and Opportunities
## 4 A Survey of In-Band SDN Control in SDN
### Distributed Control
The results show that the architecture effectively addresses bottlenecks on switch-controller links and handles high CPU usage in controllers. **[PERSON] et al. ** [98] propose a low-cost inter-controller communication service, which requires few resources in terms of state, communication overhead and computational complexity, and provides isolation between control and data plane traffic using shared in-band channels. The implementation has been carried out using the Floodlight controller. It leverages port-changed event messages to embed additional information that controllers can manage to decide the best route among them. Additionally, Virtual Local Area Networks (VLANs) are employed to isolate the control traffic. They study the messages generated for the convergence of the bi-directional communication channel between controllers and its subsequent activation. They observe that the number of messages grows linearly with the number of controllers in the network. **[PERSON]** et al. [99] present two procedures to ensure that each switch in the SDN network obtains routes to support connectivity, both between every switch and all controllers, and also among controllers. These procedures are classified according to the use or lack of usage of the timeouts available in the OpenFlow tables. In the methodology that requires timeouts, low-priority rules have been used together with pre-configured anycast addresses so that the switches periodically try to connect to a new controller when they areunmanaged. The second procedure is based on running a topology discovery algorithm on each controller and iteratively adding each switch to each controller \(p_{i}\) on a first-come, first-served basis. **[PERSON]** et al. [100] present Renaissance as an evolution of their previously mentioned work, which is a group of algorithms for an in-band and distributed control plane for SDNs designed to overcome the shortcomings of Medieval [94]. It is not self-stabilising because its design depends on the presence of non-corrupted configuration data (e.g., the controller's IP addresses). This solution ensures that, after the occurrence of an arbitrary combination of failures, every non-faulty SDN controller can eventually reach any switch in the network within a bounded communication delay and every switch is managed by at least one non-faulty controller. The validation is accomplished using Mininet, OVS, and Floodlight. The extensive, performed tests show start-up and recovery times for different topologies (Telstra, EBONE, and Exodus). Their prototype experiments exhibit promising results. Complementarily, **[PERSON]**, in his PhD thesis [104], also implements Renaissance. Preliminary tests measure bootstrapping time, number of messages, and recovery time in Mininet using OVS under DC networks. These tests show promising results as well. **[PERSON]** et al. [101] present a software solution scheme for fast failure detection and fast failure location identification in multi-controller SDN networks. Multiple monitoring probing cycles that cover all links and nodes in the network are performed. When a failure is detected in a monitoring cycle, the controller initiates failure location identification processes to identify the failure type and the failure location. In terms of validation, they set up a real network composed of two servers running two ONOS server instances each, HP5900 switches, and two other servers as host machines. The experimental results show that the average time to recover from any single device failure is less than 50 ms, even if the failure disconnects both working control and data channels at the same time. **[PERSON]** et al. [102] present Seedling, an algorithm that divides the controllers managing an SDN network into groups based on their proximity. This work is the evolution of another work by the same authors, in which they presented Izzy [67], another algorithm that provided robust connectivity between controllers and all managed switches by means of shortest-path spanning trees.