http://dl.acm.org/citation.cfm?id=2602219
routers and switches run complex, distributed control software that
is typically closed and proprietary. the software implements network
protocols that undergo many years of standardization and
interoperatability testing. network administrators typically
configure individual network devices using configuration
interfaces that vary across vendors — … Although some
network-management tools offer a central vantage point for
configuring the network, these systems still operate at the level of
individual protocols, mechanisms, and configuration
interfaces.
an SDN consolidates the control plane, so that a single software control program controls multiple dataplane elements.
SDN resembles past research on active networking, which articulated a vision for programmable networks, albeit with an emphasis on programmable dataplanes. SDN also relates to previous work on separating the control and data planes in computer networks.
SDN control plane exercises direct control over the state in the
network’s data-plane elements
Many commercial switches support the OpenFlow API.
depending on the rules installed by a controller application, an OpenFlow switch can behave like a router, switch, firewall, network address translator, or something in between.
open interfaces like OpenFlow enable more innovation in controller platforms and applications than was possible on closed networks designed for a narrow range of telephony services
NOX, ONOS, ONIX, floodlight, Beam,
Ethane
the application “pulls” and the technology “pushes” of the day.
Making computer networks more programmable enables innovation in network management and lowers the barrier to deploying new services.
some networking researchers pursued an alternative approach of opening up network control, roughly based on the analogy of the relative ease of re-programming a stand-alone PC …
a programming interface (or network API) that exposed resources (e.g., processing, storage, and packet queues) on individual network nodes
anathema to many in the Internet community who advocated that simplicity in the network core was critical to Internet success.
the “use pulls” for active networking … [15,74] are remarkably similar to the examples used to motivate SDN today
data-plane programmability has continued to develop in parallel with control-plane efforts [5, 21]
many network operators and researchers viewed separating the control and the data planes as an inherently bad ideas, as initially there was no clear articulation of how these networks would continue to operate correctly if a controller failed.
the conceptually simple model of the routers achieving distributed consensus, where they all (eventually) have a common view of network state (e.g., through flooding). in logically centralized control, each router has only a purely local view of the outcome of the route-selection process.
a tension between the vision of fully programmable networks and pragmatism that would enable real world deployment. OpenFlow struck a balance between these two goals
the initial OpenFlow protocol standardized a data-plane model and a control-plane API by building on technology that switches already supported.
Ultimately, the work on OpenFlow and network operating systems struck the right balance between vision and pragmatism