  In the future, it is anticipated that software-defined networking (SDN) will
become the preferred platform for deploying diverse networks. Compared to
traditional networks, SDN separates the control and data planes for efficient
domain-wide traffic routing and management. The controllers in the control
plane are responsible for programming data plane forwarding devices, while the
top layer, the application plane, enforces policies and programs the network.
The different levels of the SDN use interfaces for communication. However, SDN
faces challenges with traffic distribution, such as load imbalance, which can
negatively affect the network performance. Consequently, developers have
developed various SDN load-balancing solutions to enhance SDN effectiveness. In
addition, researchers are considering the potential of implementing some
artificial intelligence (AI) approaches into SDN to improve network resource
usage and overall performance due to the fast growth of the AI field. This
survey focuses on the following: Firstly, analyzing the SDN architecture and
investigating the problem of load balancing in SDN. Secondly, categorizing
AI-based load balancing methods and thoroughly assessing these mechanisms from
various perspectives, such as the algorithm/technique employed, the tackled
problem, and their strengths and weaknesses. Thirdly, summarizing the metrics
utilized to measure the effectiveness of these techniques. Finally, identifying
the trends and challenges of AI-based load balancing for future research.
