In computer networking, source routing allows a sender of a packet to partially or completely specify the route the packet takes through the network. In contrast, in non-source routing protocols, routers in the network determine the path based on the packet's destination.
Source routing allows easier troubleshooting, improved traceroute, and enables a node to discover all the possible routes to a host. It also allows a source to directly manage network performance by forcing packets to travel over one path to prevent congestion on another.
In the Internet Protocol, two header options are available which are rarely used: "strict source and record route" (SSRR) and "loose source and record route" (LSRR). Because of security concerns, packets marked LSRR are frequently blocked on the Internet. If not blocked, LSRR can allow an attacker to spoof its address but still successfully receive response packets.
Policy-based routing can also be used to route packets using their source addresses.
Software Defined Networking can also be enhanced when source routing is used in the forwarding plane. Studies have shown significant improvements in convergence times as a result of the reduced state that must be distributed by the controller into the network.