Software-defined networking (SDN) is an emerging network architecture that decouples the network control and forwarding functions. This allows the network control to become directly programmable through software. SDN provides agility, centralized management, and programmable configuration of network resources. It addresses the limitations of current static networks that cannot adapt to the dynamic computing and storage needs of modern data centers and cloud environments with changing traffic patterns and massive datasets.