CCNA 7.7.a: Function of a controller
In SDN, the control plane is on a single device - the controller.
The controller is typically a virtual server loaded with open source SDN controller software. The communications between the controller and the network devices typically uses a standardized protocol, i.e. OpenFlow. The communications between the controller and the applications use any number of different APIs.
A centralized controller provides the necessary information for a network element to make a decision. For example, the controller instructs networking devices where to forward packets by explicitly programming their MAC and FIBs.
SDN controllers offer centralized management of devices where you can manage your entire network strategy. This also means you must plan for fault tolerance and high availability in your virtual environment. If your SDN controller goes down, what happens to the network?