Software Defined Networking abstracts the concept of traditional networking, and places the Control Plane functions on an SDN controller. The SDN controller can be a server running SDN software.
The Controller communicates with a physical or virtual switch Data Plane through a protocol called OpenFlow. OpenFlow conveys the instructions to the data plane on how to forward data. The network device must run the OpenFlow protocol for this to be possible.
You can see how SDN differs from traditional networking in the following graphic.
In Tradational Networking, Network Devices have a control plane that provides information used to build a forwarding table. They also consist of a data plane that consults the forwarding table. The forwarding table is used by the network device to make a decision on where to send frames or packets entering the device. Both of these planes exist directly on the networking device.