“…By centralizing the network control layers, the companies can flexibly and efficiently manage the network, and also, through dynamic and automated programming, companies can optimize network resources and directly develop the application to manage network resources. The SDN architecture provides APIs for the users to implement customized services for certain purposes: switching, routing, network resource allocation, bandwidth management, traffic engineering, system optimization, quality of service (QoS), security, access control lists (ACLs) and policy management [4,6,[9][10][11][12]. …”