Software-define networks, or SDNs, uses software to create virtual overlay networks on top of existing physical infrastructure that allow for quick network deployment and eases network management. In the traditional network, router and switches are only aware of the devices that directly connected or near it. With SDNs, network information are aggregated and combined in a centralized location to enable high-level viewing and controlling of network devices.
The components of a SDN include: Application (responsible for relaying information about the network), SDN controllers (communicate with apps to determine destination of packets), and network devices (receive instruction from controller on how to route packets). Some of the benefits of SDN including easing network control and security management, simplifying network design, and enable resilience of network in responding to new changes. However, perhaps the biggest threat to SDN models are the SDN controllers, which act as a significant single point of failure in the system. Enabling controller redundancy and restricting access to these SDN controllers may help with mitigating potential threats.