Software Defined Networking (SDN) aims to address limitations in current networking by decoupling the control plane from the data plane, enabling direct programmability of network behavior. This is achieved through SDN architectures that use southbound APIs like OpenFlow to expose network elements as programmable resources under the control of a centralized controller. SDN promises benefits like network virtualization, automation, visibility, and flexibility to dynamically adapt the network. OpenFlow is a widely used SDN protocol that enables the controller to install flow rules on switches to control packet forwarding.