Software-Defined Networking (SDN) simplifies monitoring, management and design of upcoming next-generation networks by segregating a legacy network into centralized control and programmable data planes.
SDN scalability is magnified by altering the software and hardware devices of the network, which depends on the CPU-s memory size and processing speed. Decoupling a control plane and Data plane brings scalability concerns, including flow setup overhead and resilience to failures.Therefore, to conserve scalability, a user should design the control applications with the weakest consistency levels.
Scalability defines the ability to SDN more concretely in the control plane to process and handle increasing workloads. Scalability aims at the capacity of enlarging SDN by achieving some mechanism such as,
• Devolving
• Clustering
• High processing
Some various factors that affect the scalability of SDN that includes,
• The capacity of memory or buffer
• Traffic on the link
• Placement of controllers in the network
• The processing power of controllers and forwarding devices
• The latency between controllers and network devices for transferring packets
The scalability includes DIFANE, DevoFlow, Onix, Software-Defined counters, Kandoo, HyperFlow, Maestro, and NOX-MT to reduce the overhead of the control plane by delegating work to the forwarding devices. It also includes high-performance computing techniques like buffering, multithreading, pipelining and parallelism.
Some assorted works have been used to relieve scalability issues in the control plane, which can be classified into three types such as,
• Controller capacity improvement
• Controlling clusters
• Devolving management functions
Challenges of SDN scalability include
• Resolving the scalability limitation of a centralized foible management
• Improving access control and performance by reducing the high demand for controller
• Solving issues in OpenFlow networks by reducing complexity by increasing manageability
• Scheduling event handlers and allocating memory to optimize the cache usage
• Enhancing the controller responsiveness and network scalability with reduced network throughput