As a result of the development of internet and ICT (information-centric technology) advances including mobile, cloud, social networking, big data, multimedia and the tendency towards digital society, the management and configuration of them have become highly complex, challenging and time consuming. Also, access to high bandwidth, extendibility and dynamic management are of critical significance, especially when network devices are vertically integrated. Hence, a set of unique predefined line commands and operating systems or firmware should be used. SDN (software-defined networking) is a structure designed for simplifying and improving network management with high flexibility by splitting control plane and data plane. Thus, network programmability is enhanced which in turn leads to more innovation opportunities. Although SDN is regarded as a new research issue, it has attracted numerous researchers' attention from both industrial and academic institutes. In this paper, data plane, control plane and application plane as the three planes of SDN and the interfaces between them such as OpenFlow are investigated and the challenges and the latest technologies in relation to SDN are examined. The investigation and overview of SDN reported in this paper might be used by the interested future researchers to better understand and apply SDN in real-life applications. (C) 2016 Elsevier Ltd. All rights reserved.