## 2 Related Work  
Several studies have proposed protection tools or attempted to increase the availability and efficiency of SDN networks. These include _traffic engineering_, _measurement and monitoring_, and _security and dependability_[28]. **Traffic Engineering**: The programmable characteristic of SDN enables the various traffic engineering techniques (i.e., _load balancing_, _SDN rules/traffic optimization_, and _application-aware networking_) to enhance the efficiency of the network. The first application envisioned for SDN traffic engineering is load balancing such as that described in [3; 4; 5; 6]. To achieve scalability, the authors in [3] devised concise wildcard rules that adjust to changes in load-balancing policies. The authors in [4] designed load-balanced forwarding using in-packet Bloom filters for scalable forwarding services. Plug-n-Serve [5] attempts to minimize response time by controlling the load on the network. In addition, the performance of SDN networks depends on the efficiency of rules generated by the SDN controller and the proper placement of rules on the memory of switches. This is because the many rules increase the number of control signals and the switches have memory limitations. Authors in [7] attempted to maximize the amount of traffic delivered by generated rule policies. The survey in [8] considered rules placement research to focus on memory management and reducing the signaling traffic for scalability purposes. To manage memory in switches efficiently, some research [9; 10] removed the inactive or less-important rules from flow tables in the data plane. Other approaches [11; 12] compressed the required rules that preserve the original semantics using wildcards. Still other mechanisms [13; 14] split and distributed the rules to commodity switches. Finally, to decrease the signaling traffic while in the reactive mode of the original SDN/OpenFlow specification [29], research in [15] considered the proactive mode based on predicting and estimating traffic demands or user location. Meanwhile, application-aware networking guarantees the QoS of multimedia and data stream using multiple packet schedulers [16] or queue management [17]. Most of these traffic engineering schemes promise network performance, scalability, or fault tolerance in certain circumstance, but do not consider immediate counteractions to various anomalies. **Measurement and Monitoring**: As a part of network management, measurement and monitoring are major processes. SDN technologies provide new functionality to existing networks for measurement and monitoring (e.g., enhanced visibility of broadband performance [30]), reacting (i.e., traffic shaping) to continually changing network conditions in a home network [31], or dynamic management of a smart grid [32]. In addition, other studies have focused on enhancing measuring and monitoring efficiency itself. The authors in [18] reduced the burden of the control plane using a stochastic and deterministic sampling technique, whereas authors in [19] attempted to achieve high measurement accuracy without incurring overhead on the control plane. Other monitoring frameworks (i.e., OpenSample [20], OpenSketch [21], and PayLess [22]) were designed to deliver real-time, low-latency, and flexible-monitoring capability to SDN networks without impairing the performance and load of the control plane. However, the results from measuring and monitoring should be closely connected to the skillful actions of the SDN controller. **Security and Dependability**: The programmability of SDN can improve the security of other networks [33; 34]. However, the logically centralized control plane in SDN networks is one point of failure and may become a desirable prey to an adversary. Therefore, some approaches have been examined to protect the SDN controller. Early approaches tried to apply simple techniques (i.e., first classifying applications and then preventing low-priority applications from overwriting rules generated by security applications [35]).