# A Comprehensive Survey on Knowledge-Defined Networking
## 7 Application Plane
### Application Scenarios
#### 7.3.2 Network Management  
Fault management refers to the set of procedures and processes used to detect, isolate, and resolve faults that occur in the network. KDN can use knowledge generation techniques to learn from past faults and adapt the network to prevent similar issues from occurring in the future. Fault management involves several steps. First, the fault should be identified, then isolated, and, finally, the network should be restored to normal operation. The network should be continuously monitored in order to identify faults and take corrective actions in order to keep the network operational and ensure that user needs are fulfilled. In SDN, approaches such as ndb (network debugging) are used to detect causes of network failure by backtracing network events by collecting postcards received from each packet at the switches [454]. Early solutions have conventional approaches such as network checkpointing and rollback for failure recovery with the help of the centralized controller [455]. A fault detection and recovery framework called SPIDER, which detects link or node failures using stateful switches' such as OpenState periodic link probing and reroutes traffic flows in the event of failures, has been studied in [456]. Application failures can negatively affect all underlying planes and cause them to function ineffectively. A framework called LegoSDN has been proposed to recover from application failures, which has enabled fast recovery times compared to controller reboots in the case of application failures [457]. Applications can cause interference with each other, degrading the performance of the network. Thus, application interference detection and mitigation frameworks that analyze the complex interaction behaviors of multiple applications to identify and avoid unwanted network behaviors have been proposed [458]. Applications can also be used for network troubleshooting, which involves monitoring network traffic to aid network administrators in understanding the most likely network fault links so that humans can take corrective actions as a maintenance step [459]. Furthermore, there are languages such as FatTire to write network fault-tolerant programs that can specify the degree of fault tolerance required to be used alongside fail-over mechanisms [460]. Mobility management applications are used to manage the movement of network users and their devices across different network domains. It should ensure that the services are continued when the users move between different domains by tracking the devices' locations to seamlessly hand off connections between different network domains such as cellular networks, Wi-Fi networks, vehicular networks, etc. Therefore, recent work has shed light on mobility management for efficient inter-domain and intra-domain handover, which prevents packet loss and tunneling overhead to provide improved QoS to mobile users [461]. A similar network monitoring framework uses an application policy associated with fuzzy logic and a multi-path transmission control protocol for efficient handover, avoiding the ping-pong effect [462]. A Light Virtual Access Point (LVAP) is a software-based access point that runs on a virtual machine or container and provides wireless network access to client devices. LVAPs can be deployed on demand and dynamically adjusted to adapt to changing network conditions. In [463], the authors show how LVAPs can be used for efficient client handover in a global scope, which has proven to improve the flexibility of management of wireless networks. Furthermore, mobility management involves channel scheduling. An application policy that associates a channel scheduling cooperation algorithm to enable multiple access points to cooperatively control centralized downlink transmission to achieve higher system throughput and channel utilization by avoiding co-channel interference has been studied in [464]. Another important task of mobility management is the dynamic channel reservation, which dynamically allocates spectrum.