An SDN application is a software program designed to perform a task in a software-defined networking (SDN) environment. SDN applications can replace and expand upon functions that are implemented through firmware in the hardware devices of a conventional network.
SDN architectures can take a variety of forms. Following is an example of an architecture based on SDN controllers. The first tier in the SDN architecture is the physical infrastructure, which includes all the hardware devices and cabling required to support the network. Network control is decoupled from hardware and given to a software application, in this case an SDN controller. Controllers, which initiate and terminate traffic, make up the second tier of the architecture. The third tier is the SDN applications, which direct specific functions through the controller. Types of SDN apps include programs for network virtualization, network monitoring, intrusion detection (IDS) and flow balancing (the SDN equivalent of load balancing), among a great number of other possibilities.