Software-defined networking (SDN) is an approach to computer networking that allows network administrators to programmatically initialize, control, change, and manage network behavior dynamically via open interfaces and abstraction of lower-level functionality. SDN is meant to address the fact that the static architecture of traditional networks doesn’t support the dynamic, scalable computing and storage needs of more modern computing environments such as data centers. This is done by decoupling or disassociating the system that makes decisions about where traffic is sent (the SDN controller, or control plane) from the underlying systems that forward traffic to the selected destination (the data plane).
SDN was commonly associated with the OpenFlow protocol (for remote communication with network plane elements for the purpose of determining the path of network packets across network switches) since the latter’s emergence in 2011. Since 2012, however, many companies have moved away from OpenFlow, and have embraced different techniques. These include Cisco Systems‘ Open Network Environment and Nicira‘s network virtualization platform.