SDN is a networking architecture that separates the network control and forwarding functions. The control plane that makes decisions about where traffic is sent is centralized on an SDN controller. The data plane forwarding plane is distributed across SDN switches. OpenFlow is a standard SDN protocol that allows the SDN controller to communicate with SDN switches and program their flow tables to determine how traffic is forwarded. The controller installs rules in the flow tables of switches using OpenFlow messages. This gives network administrators centralized control over how traffic is routed in the network.