Today's Internet suffers from ever-increasing challenges in scalability, mobility, and security, which calls for deep innovations on network protocols and infrastructures. However, the distributed controlling mechanism, especially the bundle of control plane and the data plane within network devices, sharply restricts such evolutions. In response, the software-defined networking (SDN), an emerging networking paradigm, proposes to decouple the control and data planes, producing logically centralized controllers, simple yet efficient forwarding devices, and potential abilities in functionalities programming. This chapter presents a short yet comprehensive overview of SDN components and the OpenFlow protocol on basis of both classic and latest literatures. The topics range from fundamental building blocks, layered architectures, novel controlling mechanisms, and design principles and efforts of OpenFlow switches.