Software defined networking (SDN) decouples the network control and forwarding functions, allowing the control to be centralized and the underlying network to be abstracted from applications. This provides benefits like centralized management, rapid innovation, and increased network programmability. SDN uses protocols like OpenFlow that define messages between a controller and switches to build flow tables for packet forwarding using matches and actions. SDN is well suited for data center networks where it allows for network virtualization and easier configuration changes.