## 4 Results and Analysis
### Dynamic Load Balancing and QoS Improvement  
For testing the impact of load balancing in multi-controller SDN environment, ten flows in Figure 9 were sent across the hosts in four case scenarios: no load balancing, traffic classification-based load balancing with a single controller, two controllers and three controllers. The detail is demonstrated in Table 6. When compared to the scenario with a simple switching implementation or no load balancing, the scenario with the implementation of the traffic-based load balancing module shows improvement in a number of parameters. To understand the impact on bit rate and packet rate after the application of the load balancing module in the Ryu controller, a graph is generated for ten network flows from host 1 to host 2. Figure 8: Execution time for various algorithms in classification. From Figures 10 and 11, we may conclude that the use of traffic classification-based load balancing improves the bit rate and packet rate of traffic flow on a network. When three controllers are used for load balancing instead of two, there is a noticeable increase in bit rate and packet rate, which justifies adding more controllers to increase the bit rate of the entire network. When two controllers are implemented into the network and both are given the responsibility of traffic classification, the queuing of packets for classification is reduced. \begin{table}
\begin{tabular}{l l l l l} \hline \hline
**Condition** & **Path** & **Flows** & **Jitter (ms)** & **Bit Rate (Bits/s)** & **Packet Rate (Packets/s)** \\ \hline \multirow{4}{*}{\begin{tabular}{l} No load balancing \\ \end{tabular} } & H1–H3 & 6 & 159 & 5317 & 23 \\ \cline{2-5}  & H3–H1 & 8 & 149 & 5303 & 23 \\ \cline{2-5}  & H1–H2 & 10 & 47 & 11,065 & 252 \\ \hline \multirow{4}{*}{\begin{tabular}{l} Load balancing \\ with single \\ controller \\ \end{tabular} } & H1–H3 & 6 & 155 & 5317 & 26 \\ \cline{2-5}  & H3–H1 & 8 & 155 & 5316 & 28 \\ \cline{2-5}  & H1–H2 & 10 & 18 & 12,266 & 426 \\ \hline \multirow{4}{*}{\
\begin{tabular}{l} Load balancing \\ with two \\ controllers \\ \end{tabular} } & H1–H3 & 6 & 99 & 5429 & 26 \\ \cline{2-5}  & H3–H1 & 8 & 104 & 5418 & 30 \\ \cline{2-5}  & H1–H2 & 10 & 7 & 16,822 & 982 \\ \hline \multirow{4}{*}{
\begin{tabular}{l} Load balancing \\ with three \\ controllers \\ \end{tabular} } & H1–H3 & 6 & 98 & 5699 & 49 \\ \cline{2-5}  & H3–H1 & 8 & 105 & 5690 & 49 \\ \cline{2-5}  & H1–H2 & 10 & 6 & 18,884 & 1969 \\ \hline \hline \end{tabular}
\end{table} 
Table 6: Comparison of various scenarios on same network. Figure 10: Comparison of bit rate for different conditions. Figure 9: Ten Flow Parameters. This is because, even if one controller is overloaded, another controller can classify incoming packets. The jitter is greatly reduced for two controller-load-balancing modules, which is clearly seen in the jitter graph. Here, both the bit rate and packet rate output demonstrate that increasing the number of controllers in the network considerably enhances throughput, which is a critical factor for real-time traffic in any type of network. Finally, jitter also monitors the variation in packet latency or the interval of time between a signal's transmission and reception as it travels through the network. Network congestion, poor hardware performance, and a lack of packet priority are common causes of jitter. Improved load balancing can decrease network jitter, which will improve the quality of service for real-time applications like voice and video. Figure 12 illustrates the comparison of average jitter for load balancing and non-load balancing scenarios. In the figure, jitter is slightly decreased when single controller-based load balancing is performed. Although the graph shows that jitter appears to have increased at one point relative to no load balancing, this could be due to the large volume of packets queuing to be classified by a single controller.