DN applications targeting impor- tant network functions such as load balancing/traffic engineering, quality of service (QoS), and fast failure recovery. The SDN controller programs flow rules in the forwarding tables of SDN-enabled network devices, typically using the OpenFlow protocol. As a basic technology, SDN can enable dynamic control and routing in many network environments. For example, modern enterprise networks use SDN applications to provide QoS to latency-sensitive or bandwidth-hungry applications. It can enhance visualization and network troubleshoot- ing. Cloud computing environments use SDN to provide network virtualization capabilities. And finally, NFV infrastructures use SDN to provide dynamic traffic steering, virtual network function (VNF) load balancing, and service function chaining. In this section, we Network Function Virtualization: Concepts and Applicability in 5G Networks, First Edition. Ying Zhang. © 2018 John Wiley & Sons, Inc. Published 2018 by John Wiley & Sons, Inc. 4 Software-Defined Networks Principles and Applications focus on the basic concepts and development of SDN itself, and in the following section, we will focus on the service function chaining, that is, the use case of both SDN and NFV. 4.1 SDN Overview The significant increases in users, devices, applications, and traffic have imposed new challenges to the service providers to reduce the total cost of ownership (TCO) and improve average revenue per user (ARPU) and customer retention. The SDN paradigm arose to solve some of these new challenges. SDN decouples the control and forwarding planes. SO that each plane can independently scale in order to reduce TCO. SDN provides a set of open APIs SO that network programmability has been introduced. New services and innovation can be enabled. With the flexibility in network control, SDN has been used to provide network virtualization for resource optimization. The OpenFlow concept enables intelligent flow management. In this section, we provide an overview of the SDN technology 