The first controller to feast upon is: It is a first generation Open-Flow Controller. It is open source, stable and widely used. It majorly has two flavours: Classic: It is written in C++/Python and is NO LONGER SUPPORTED. New Nox: It is written in C++ only. It is fast, clean and has wide community support. The NOX architecture contains two major components: Switches Network Attached Servers The controller maintains a network view and the controller may maintain several applications that might run on the network view. The abstraction is at the switch control level where OpenFlow is the major governing protocol. The control depends upon the granularity of the flow which is dependent on the 10 tuple structure. Voellmy, Ford, Hudak, and Yang (2012) presented their ideas in a pellucid form in their paper on scaling of SDN controllers for multicore servers. The controller may make forwarding decisions for packets that belong to different parts of flow space. A flow is defined by the header or by the 10 tuple. A counter which maintains statistics and actions that must be performed on these packets that match these flow definitions. These actions might include forwarding the packet, dropping it or sending it to the controller. The basic programmatic interface is based on EVENTS. A controller knows how to process different types of events like, which switches should join it or leave, which set of packets should ingress or egress and various statistics maintenance. The controller also keeps track of a network view which includes underlying network topology and also speaks a control protocol to the switches in the network. The control protocol actually allows updating the state in the networks switches The NOX Controller implements The OPEN FLOW Protocol. Downloaded: 4/15/2022 9:44:49 AM Nova Southeastern University IP Address: 137.52.76.29 The Heart and Brain of SDN Characteristics of NOX Implemented in C++ Supports Open Flow v1.0 A fork of NOX - > CPQD supports open flow till v1.3. NOX provides good performance but it re