Source routing is a technique used in computer networking that allows a user to direct network data packets to a specific destination. Depending on how it's used, the packets can be given a specific path to take or general directions which will allow some of the automatic network routing to handle a portion of the path. Although a very useful technique, it is also very susceptible to abuse, allowing for potential security breaches.
Most normal routing is done by the multitudes of devices, known as routers, that make up the many networks which comprise the Internet. These devices are programmed with protocols that allow them to learn about their neighbors, and then decide on the best possible paths to take when directing network traffic from one computer to another. Source routing, on the other hand, takes advantage of some optional features of the Internet protocol (IP) which removes the decision-making from the routers and puts it into the hands of the user, or source computer.
There are two possible source routing modifications that a computer can make to a data packet as it heads out onto the network: strict or loose. With strict source definitions, the exact path that a packet should take, from one router to the next, is specified before the packet ever leaves the source computer. Loose source routing, however, gives the packet a few specific router points and lets the other routers decide along the way. This is useful, for example, if sending a packet through a local network's routers to a gateway router, and then to a specific address. The local network's routers can be left out, but the gateway and other routers can be specified.
The ability to use source routing is useful for various testing and troubleshooting purposes. One such purpose is akin to learning neighborhood streets, whereby the network is discovered by tracing the route of packets from one router to the next. It can also be useful for discovering where potential network bottlenecks are occurring and is often used by Internet service providers (ISP) to ensure that needless data traffic isn't trying to take advantage of their main network backbones. The method is also used for nefarious purposes, allowing an attacker to gain access to computers on a private network by pretending to be a computer on that private network.
As wireless networks became popular, another technique referred to as dynamic source routing (DSR) was devised that uses source routing to discover a wireless network. The trick came about because as network nodes are known to come and go frequently from certain types of wireless networks, those referred to as ad-hoc networks, the computers needed a new way to quickly discover routes around the network. In this way, the route from a source computer through a network is discovered on the fly, as needed, instead of the nodes continuously flooding the network with updated information as nodes come and go.