NFV is used to optimize network services by taking network functions away from hardware. Network functions run at the software level so that provisioning can take place more efficiently.

SDN separates the control plane from the forwarding plane and provides a top-down perspective of the network infrastructure. This allows the user to provision network services as they are needed. 

NFV and SDN are not dependent on each other, but they do have similarities. Both rely on virtualization and use network abstraction, but how they separate functions and abstract resources is different. 

SDN separates network forwarding functions from network control functions with the goal of creating a network that is centrally manageable and programmable. NFV abstracts network functions from hardware. NFV supports SDN by providing the infrastructure on which SDN software can run. 

NFV and SDN can be used together, depending on what you want to accomplish, and both use commodity hardware. With NFV and SDN, you can create a network architecture that is more flexible, programmable, and uses resources efficiently. 

NFV moves services to a virtual environment but doesn't include policies to automate the environment. 

When SDN is combined with NFV infrastructure, however, SDN's centralized management function can forward data packets from one network device to another, while NFV allows routing control functions to run on a virtual machine located in a rack mount server, for example. 

SDN manages the whole network with a single centralized controller. It is recommended to build an SDN solution with NFV controllers, but it is not necessary. Sometimes the functionality desired comes from the software itself-a separate firewall may be redundant when the security rules are managed by the controller. 

NFV is all about emulating hardware. It is possible to build a physical network with commodity software and wires, without building an actual SDN. Such a network is cheaper but requires the same amount of work to manage and maintain. 

SDN and NFV are interdependent, but when deployed together can achieve flexible, agile network infrastructures. NFV provides the basic networking functions and SDN assumes higher-level management responsibility to orchestrate overall network operations. 

NFV refers to the virtualization of network components, while SDN refers to a network architecture that injects automation and programmability into the network by decoupling network control and forwarding functions. NFV virtualizes network infrastructure and SDN centralizes network control. 

An SDN typically has an SDN controller, northbound application program interfaces (APIS), and southbound APIS. The controller allows network administrators to view the network and dictate behaviors and policies to the underlying infrastructure. Southbound APIS takes information about the state of the network from that infrastructure and sends it back to the controller, which is necessary to keep the network running smoothly. Applications and services use northbound APIS to communicate their resource needs to the controller. 

Similarities between NFV & SDN

DeploymentRunning on virtual machines, hypervisors, network controllers, load balancers, and gateways are deployed and configured to provide the needed network infrastructure controls.A wide range of virtualized network functions such as routers, firewalls, and SD-WAN is deployed as software on top of virtualized infrastructure.
ManagementCentralized control console to monitor throughput, routing, and policy definitions.Virtual network functions are centrally managed and monitored regardless of where they are located across the network.
CostsThe primary cost savings come from the reduction of operational expenses through the automation of network configuration, adds, and changes. Personnel costs account for much of the overall spending so a small reduction in operational costs can lead to a significant cost-benefit.Running on high-performance servers in data centers, VNFs eliminate the need to procure specialized network hardware for each individual network function. this allows for less space, power, cooling, and equipment to be deployed.
FlexibilityEasily adjust network-wide traffic flow in anticipation of, or in response to, changing business needs. Programmable interfaces enable the provisioning of new network devices. and reconfiguration of existing devices via scripting and/or management consoles.Quickly deploy and decommission functions to support proof-of-concept trials. Locate functions at the network edge. close to data, applications, and users to optimize network security and performance.