A Layer-3 switch is primarily a Layer-2 switch that has been enhanced with some routing capabilities, allowing it to run routing protocols and terminate Layer-3 interfaces. A router is a dedicated Layer-3 device that performs routing functions. A switching router uses switching technology like ASICs for speed and performance, while also supporting some Layer-2 bridging functions, making it primarily a router. The differences have blurred as technologies have merged, but routers generally perform more complex routing tasks using CPUs, while switches and Layer-3 switches use ASICs for hardware-based switching and routing at wire speed.