Software-defined networking (SDN) is an approach that uses software to direct network traffic flow rather than dedicated hardware. This allows network administrators to programmatically control the entire network from a central location. SDN separates the control plane that determines traffic routing from the data plane that forwards traffic. There are three main components: applications that request resources, controllers that decide traffic routing, and networking devices that forward data. SDN provides benefits like increased flexibility, customizable infrastructure, and improved security compared to traditional hardware-based networking.