Resumen
SDN (Software Defined Networks) is a new network paradigm in which the architecture moves from a traditional fully distributed model to a more centralized approach. This approach is also characterized by the separation of the data plane and the control plane. The data plane includes the elements that perform the forwarding (switches and routers), and the control plane includes the controller. The controller provides a high level of abstraction control for the forwarding elements, which is not present in modern networks. Consequently, the controller is a fundamental component of the SDN architecture, which will contribute to the success or failure of the SDN. Therefore, it is necessary to evaluate and compare the various existing controllers in the market and in research areas. In this paper, we discuss the basic concepts of SDN-network or SDN, and compare existing controllers according to the selected criteria. Controllers are compared by such criteria as cost, efficiency, centralization / distribution, as well as the ability to support various protocols of the northbound (RESTful API, Ad-hoc API) and southbound interfaces (OpenFlow, OVSDB). The main characteristics are considered, including programming languages - C / C ++, Java, Python, on which they are written, the most popular controllers: OpenDaylight, ONOS, NOX, POX, Ryu, Beacon, Onix.