## 5 Building Resilience in Software-Defined IIoT-Edge Networks
### Resilience in Software-Defined IIoT-Edge Networks  
[PERSON] et al. [144] developed a conceptual system recovery curve that illustrates the system's performance before disruption and during disruption and the gradual rise to recovery, as illustrated in Figure 9. The system performance is denoted as, \(y_{(t)}\), with respect to the operational time, \([0,t)\). Before the disruption, the system performs optimally at \(y_{(t)}=y_{(rf)}\). At the time \(t_{D}\), the system encounters disruptions that lower the performance to the minimum acceptable levels, \(y_{m}\). At this point, recovery mechanisms and strategies are initiated to help restore the system to full recovery (\(y_{(rf)}\)) or partial recovery (\(y_{(rp)}\)) at the time \(t_{R}\). Lastly, the time between disruption and full or partial recovery is given as \(\Delta t=(t_{R}-t_{D})\). Averaging samples of \(\Delta t\) over time yields the mean time to recovery (MTTR). [PERSON] et al. [131] advanced this resilience curve using normalized performance metrics and the well-known Weibull distribution bath curve to demonstrate disruption and recovery. Figure 9: An illustration of a system’s capacity to recover from disruptions within time [0, t) [144]. To build resilience in the system recovery curve specifically for a communication network, two conditions must be met: (i) the performance must not reach or exceed the maximum drop in performance point, \(y_{(m)}\), to meet the industrial SLAs, and (ii) the time to recover from disruption, \(\Delta t\), must not exceed the stipulated industrial MTTR. To meet this objective, several approaches are taken to address the disruptions, minimizing the drop in performance and the time taken to recover from the disruption to improve overall resilience:  
**Redundancy and load balancing:** The first approach is to build redundancy in the communication network. This ensures that the failure of a controller or forwarding device does not interrupt network service. Further, with data links, the EtherChannel link aggregation technique is used in this network [145]. The technology bundles together several physical cables running between two forwarding devices into a single logical link. Lastly, using load balancers (as physical or network function virtualization instances) enables the even distribution of traffic across multiple paths to prevent congestion and single points of failure [146]. **Fault detection, failover, and recovery:** Application-plane-customized RestAPI applications, alongside flow monitoring tools such as NetFlow, sFlow, or IPFIX, are used to collect flow statistics, analyze traffic patterns, and detect anomalies indicative of faults. These applications monitor device responsiveness, detecting unreachable devices or those performing suboptimally. Fast failure recovery within a fixed time interval is needed to support network services [70]. [PERSON] et al. [147] designed a link failure detection and reporting mechanism that uses OpenFlow to detect link failures within the data plane network topology. To facilitate failover and recovery, [147] formulated the _\"MULTICAST RECYCLING\"_ algorithm that precomputes backup multicast trees to recover from link failure. Further, [PERSON] et al. [148] proposed a new scheme, the Group Table Rerouting (GTR) technique, to find the response against single link failure through the fast fail-over (FF) group table feature provided by OpenFlow. Lastly, [PERSON] et al. [149] introduced a fast failure recovery mechanism based on multiple routing configuration algorithms using programming protocol-independent packet processors (P4). **Traffic engineering and QoS policies:** The SDN controller, with a global view of the entire network, analyzes the network traffic patterns and makes decisions about how to route traffic based on real-time conditions [100]. In practice, the network engineer defines the traffic engineering policies based on the industrial SLAs or business objectives (_\"intents\"_) for traffic prioritization or path optimization.