# A Comprehensive Survey on Knowledge-Defined Networking
## 7 Application Plane
### Application Scenarios
#### 7.3.4 Network Virtualization  
Network virtualization is the process of creating multiple logical networks on top of a physical network infrastructure using network slicing, which allows multiple networks to coexist and share the same physical resources, while each logical network appears as a separate entity with its own network policies and configurations. Network virtualization allows either network-level slicing that slices the physical network into multiple virtual networks or flow-level slicing that slices the physical network based on different flows. FlowVisor is the technology used for achieving network slicing by splitting the forwarding plane of the networking devices into multiple slices, each with its own independent set of rules and forwarding policies, which allows multiple tenants to securely share the same infrastructure while maintaining their own isolated network topologies, routing, and forwarding policies. Network virtualization allows multi-tenancy, which allows service providers to deploy services over a single physical infrastructure in an isolated and cost-effective manner, separated from services provided by other service providers [515]. Multi-tenancy makes the network flexible in time, space, and the services provided. In [516], FlowVisor is used for network slicing to improve network security by creating isolated virtual networks. FlowVisor provides a centralized point of control for the network, allowing the administrator to monitor and manage the traffic and resources of all the virtual networks. This makes it easier to experiment with new network protocols, test new applications, and isolate network traffic for security purposes without affecting the rest of the network. Similarly, in [517], VLAN tags are used instead of MAC addresses to identify users with an application policy to slice a network based on roles using an authentication controller, which has resulted in a lower flow setup latency. VeRTIGO is an extension of FlowVisor that allows the controller to set the level of virtual network abstraction, allowing dynamic and advanced network slicing [518]. VeRTIGO contains policies for more granular control over network resources, enabling finer-grained management of network traffic and better isolation between tenants. Additionally, VeRTIGO's architecture is designed to be more scalable and flexible, allowing for easier management of large-scale networks with high levels of traffic and complexity. A Virtual Tenant Network (VTN) can be used to define policies for flow-based slicing, which enables network operators to prioritize and segment traffic according to specific criteria such as application type, user identity, or Quality of Service (QoS) requirements, ensuring optimized network performance and security. An application having a routing planning mechanism and a bandwidth resource planning mechanism has been utilized to satisfy VTN user requests, which has increased the efficiency of routing assignment and bandwidth utilization [519]. A multipath network virtualization scheme using policies for network function virtualization that obtains a summary of network resources to select and spread flow over multipaths, where network virtualization provides computing and storage resources for flow splitting, packet reordering, etc., has been studied in [520]. A network virtualization framework called Open Network Hypervisor (ONVisor) has been designed with policies to provide isolated control and data planes per virtual network, support for distributed operators, on-platform virtual network application development and execution, and support for heterogeneous data planes [521]. By considering the shortcoming of efficiency in distributing physical network resources among virtual tenants in the OpenVirtex network virtualization platform, an application for a QoS management mechanism using a resource manager to distribute token buckets among virtual networks according to their weights is proposed in [522].