# Software-Defined Networking: Categories, Analysis, and Future Directions
## 5 Memory Management Studies  
In SDN, flow tables of OpenFlow-enabled switches include controlling functionalities for communication to the SDN controller in addition to flow rule entries for communication in the network. Recent research works revealed that flow rules in data center networks are from 10,000 to 40,000 per second per server rack. In SDN switches, the forwarding table memory is much less than in traditional routers. Most SDN switches have limited on-chip TCAM memory, in which 750 to 2000 flow rules can be stored [144]. These switches utilize a state-of-the-art Broadcom chipset switch that can accommodate 2000 flow rules [145]. This has become big barrier for network management as well as industrialization. The reason behind this fact is that flow tables of these switches are implemented in TCAM due to its better lookup time compared to software-based packet matching. However, TCAMs suffer from large power consumption [146] and expensiveness compared to other memory, for example, static random access memory (SRAM) [147]. The idea is to reduce flow rule entries in the switch flow table by maintaining performance. One approach is to efficiently utilize the forwarding information base (FIB) by compression mechanisms to reduce TCAM requirements. It proposes the ESPRESSO heuristic [148] to minimize the logic to compress prefix-based match fields, which are generated by the optimal routing table constructor (ORTC) algorithm. The simulation results show that FIB size is reduced by 17%, which helps to save TCAMs [149]. Another approach in [150] solves the problem by a flow table reduction scheme (FTRS) by reducing flow table congestion, which helps to reduce flow table size. The simulation results suggest that FTRS reduces flow rules in the flow tables by 98% without compromising network performance and efficiency. In [151], a proactive eviction of flow rule entries is proposed for the efficient utilization of TCAM resources inside OpenFlow-enabled switches. It is based on an intelligent flow management strategy in the SDN \begin{table}
\begin{tabular}{p{56.9 pt} p{56.9 pt} p{56.9 pt} p{56.9 pt} p{56.9 pt}} \hline \hline
**Studies** & **Techniques** & **Description** & **Strengths** & **Weaknesses** \\ \hline \multirow{4}{*}{DHCPguard [131]} & Floodlight, ONOS, POX & Sends messages to controller and blocks malicious nodes at forwarding device interfaces & POX controller is designed for DHCP starvation attack mitigation attack mitigation & DHCP failure mitigation not considered \\ \hline \multirow{2}{*}{Strengthen SDN security [132]} & Mininet, POX controller & Strengthening security assurance via protocol dialect approach & Enterprise security & Scalability limitation \\ \hline \multirow{4}{*}{SDN-based edge computing [137]} & MATTAB, SDN controller & SDN-supported authentication, routing from end device to edge server, and inter-edge servers’ communication & Lightweight authentication method, activity migration & Single SDN control channel, low performance of edge server with scaled malicious attempts \\ \hline \multirow{4}{*}{Near-real-time security [138]} & Python, Keras, Mininet, Floodlight, Mininet, Floodlight, Mininet & Coagulation of the SDN controller using CNN, deployed in any ISP from malicious IoTs & Control channel security & Control channel overhead not discussed \\ \hline \multirow{4}{*}{On-the-fly [139]} & Floodlight controller, Java, Mininet & Integrates online learning method to limit packet-in traffic while tending to the controller queue and switch space capacity & Malicious nodes remain restricted until they are identified as trustworthy & Scalability (hybrid controller placement) \\ \hline \multirow{4}{*}{Securing a smart healthcare system [143]} & Android, Arduino Nano V3.0 ATMEGA328, Linux, Python & Helpful for patient data preservation and blocking unauthorized access & Provision of healthcare system security & Lacking in integration of SDN control function \\ \hline \hline \end{tabular}
\end{table}