Software-Defined Networking (SDN) is a modern network approach that replaces the conventional network architecture with a flexible architecture by separating the control plane from the data plane. SDN simplifies network management and monitoring through logically centralized intelligence, programmability, and abstraction. SDN architectures are vulnerable to attacks, such as the Denial of Service (DoS) attack. This article reviews and classifies the research efforts on SDN and DoS. We categorized the research efforts into two groups: solutions to cope with DoS attacks on SDN and SDN-based solutions to tackle DoS attacks on networks. The first group of solutions includes six categories: Table-Entry, Scheduling, Architectural, Flow Statistics, Machine Learning, and Hybrid solutions. Furthermore, the article surveys the tools and datasets considered by the reviewed contributions. The article presents a detailed comparison among reviewed approaches in terms of network devices, network layers involved, DoS attack’s types, and targets of attacks.