<span>The requirements <span>for the network are increasing by the expanding and spreading the Internet. The Previous techniques of the network do not meet the modern needs, thus, a new technical presents software-defined networking (SDN). SDN recognizes as a promising new model that separates the control plane (traffic routing and network topology) from the data plane (network architecture layers). The architecture of SDN has some features that find in a single controller or many controllers instance of programmable, flexible, and scalable. In the current SDN, multiple controllers are essential. Therefore, the optimal number of the controllers and their locations is the most significant challenge, known as the controller placement problem (CPP). It deploys the optimal number of controllers within the network while meeting presentations requirements considered conflicting in nature example: credibility, load balancing, latency, energy efficiency, and computation time. Many studies researched the ways to develop solutions for improving scalability, place selection for SDN. This paper presents the CPP and gives a comprehensive review of SDN issues based on the recent well-known research to extract available solution strategies. Finally, it discusses the limitations and future study directions that can support researchers in this field.</span></span>