ack down when the application was completed with its network interaction. SDN applications are built on top of the controller. The SDN application interfaces with the controller, using it to set proactive flows on the devices and to receive packets that have been forwarded to the controller. Proactive flows are established by the application; typically the application will set these flows when the application starts up, and the flows will persist until some configuration change is made. This kind of proactive flow is known as a static flow. Another kind of proactive flow is where the controller decides to modify a flow based on the traffic load currently being driven through a network device. The flows that are defined in response to a packet forwarded to the controller. Upon receipt of incoming packets that have been forwarded to the controller, the SDN application will instruct the controller as to how to respond to the packet and, if appropriate, will establish new flows on the device in order to allow that device to respond locally the next time it sees a packet belonging to that flow. Such flows are called reactive flows. There are also reactive flows that are defined or modified as a result of stimuli from sources other than packets from the controller. For example, the controller can insert flows reactively in response to other data sources such as intrusion detection systems (IDS) or the NetFlow traffic analyzer. Downloaded 4/15/2022 9:44:49 AM Nova Southeastern University IP Address: 137.52.76.29 Quality of Service in SDN Technology SDN Devices An SDN device is composed of an API for communication with the controller, an abstraction layer, and a packet-processing function. In the case of a virtual switch, this packet-processing function is packet-processing software, and in the case of a physical switch, the packet-processing function is embodied in the hardware for packet-processing logic. The packet-processing logic consists of the mechanisms to take actions based on the results of evaluating incoming 