## 1 Introduction  
With the rapid migration of the world towards the ICT domain, there has been a surge in demand for computer networks with high bandwidths, accessibility, robustness, reliability, and dynamic management. The size, variety, and complexity of networks make traditional methods ineffective and possibly insufficient for setting up, improving performance, and resolving problems with computer networks. With a boom in the use of the internet, identifying and managing traffic loads based on the importance of different traffic types is becoming an increasingly important function of networks. Software-defined networking (SDN), a new paradigm, enables the dynamic nature of networks and smart services by providing simplified network management, improving the user experience, and requiring less money for setup, operation, and maintenance [1]. To handle a whole network, it isolates the control plane from the data plane, enabling network scalability and programmability. In SDN, load balancing is a crucial component of network management; it is a technique that spreads the traffic over several resources in order to prevent overload on any of the resources [2]. It entails an effective distribution of network resources to enhance efficiency and prevent bottlenecks. Recently, SDN load-balancing methods have become more and more popular because of their affordability, scalability, and flexibility. Appropriate load balancing also aids in increasing throughput, decreasing response times, minimizing utilization of resources, preventing resource overload, and maximizing scalability. Although load-balancing research for SDN has advanced, to achieve better outcomesand greater adoption, there are still a number of issues and challenges (for example, multi-controller load-balancing) that need to be resolved [3]. Researchers and practitioners have proposed a number of SDN load-balancing approaches. This ensures network management, performance, scalability, and high availability. By offering a better quality of service, using SDN load balancing makes networks more flexible and allows for better management, which in turn makes application services for end users more efficient and adaptive [4]. Controller overload, scalability, security, traffic engineering, service-level agreements, and dynamic load balancing for multiple controllers are common issues and challenges in SDN load balancing. Designing effective and efficient traffic algorithms can manage intricate network topologies and a variety of traffic patterns. [PERSON] et al. [5] propose a new load-balancing technique for SDN based on the traffic pattern that separates the traffic into TCP and UDP. The distributed controller design used in this study addresses the management, scalability, and availability limitations of the centralized controller. TCP is connection-orientated; it guarantees the establishment of a trustworthy communication channel. TCP is ideal for applications where reliability is crucial, such as web browsing, email, and file transfers. UDP is connectionless, and each packet is sent independently, without checking if the receiver is ready. UDP is suitable for real-time applications like VoIP, online gaming, and video streaming, where speed is more important than reliability. Traditional methods like port number identification and payload inspection are ineffective because today's traffic is dynamic and encrypted [6]. The access control list for IP addresses and port numbers associated with various applications is typically updated manually in the traditional port-based methodology of classification, which can be a slow and challenging method of improving network QoS even though it may have high accuracy. In the real world, not all network traffics are equally crucial. For instance, for some organizations, voice and message traffic may be more significant than game and video traffic, yet video streaming and gaming data may be significant for other organizations. This situation leads to poor performance of the network and load imbalance.