Source routing

Allows a sender specify the route the packet takes through the network


title: "Source routing" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["routing-algorithms"] description: "Allows a sender specify the route the packet takes through the network" topic_path: "technology/networking" source: "https://en.wikipedia.org/wiki/Source_routing" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0

::summary Allows a sender specify the route the packet takes through the network ::

In computer networking, source routing, also called path addressing, allows a sender of a data packet to partially or completely specify the route the packet takes through the network. In contrast, in conventional routing, routers in the network determine the path incrementally based on the packet's destination. Another routing alternative, label switching, is used in connection-oriented networks such as X.25, Frame Relay, Asynchronous Transfer Mode and Multiprotocol Label Switching.

Source routing allows easier troubleshooting, improved traceroute, and enables a node to discover all the possible routes to a host. It does not allow a source to directly manage network performance by forcing packets to travel over one path to prevent congestion on another.

Many high-performance interconnects including Myrinet, Quadrics, IEEE 1355, and SpaceWire support source routing.

Internet Protocol

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 an address but still successfully receive response packets by forcing return traffic for spoofed packets to return through the attacker's device. | url = http://www.rikfarrow.com/Network/net0300.html | title = Source Address Spoofing | author = Rik Farrow

| date=August 2007

In IPv6, two forms of source routing have been developed. The first approach was the Type 0 Routing header. This routing header was designed to support the same use cases as the IPv4 header options. As there were several significant attacks against this routing header, its utilisation was deprecated. A more secure form of source routing was being developed within the IETF to support the IPv6 version of segment routing.

Software-defined networking

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.

| url = http://www.ietf.org/proceedings/87/slides/slides-87-sdnrg-4.pdf | title = SDN State Reduction | author = Peter Ashwood-Smith | publisher = IETF

Myrinet

When using source routing with Myrinet, the sender of the packet prepends the complete route, one byte for every crossbar, to each packet header. Each crossbar examines the first routing byte of the packet. When using source routing, that byte indicates a particular port of that crossbar; when that port becomes available, the router discards that routing byte and sends the rest of the packet out that port.

SpaceWire

Each packet traveling through a SpaceWire network can use path addressing (source routing) or logical addressing or some combination. The router examines the first data character of the packet; when it indicates some specific port of the router, the router discards that routing character and sends the rest of the packet out that port. Steve Parkes. "SpaceWire User’s Guide". 2012. p. 20. Paul Walker, Barry Cook. "SpaceWire: Key principles brought out from 40 year history". 2006. p. 5. S.M. Parkes and C. McClements. "SpaceWire Networks". 2002. page 61.4.

References

References

  1. Carl A. Sunshine. (1977). "Source routing in computer networks". ACM SIGCOMM Computer Communication Review.
  2. (26–28 August 2008). "Adaptive Routing Strategies for Modern High Performance Networks". IEEE.
  3. (September 1981). "Internet Protocol". IETF.
  4. (December 1998). "Internet Protocol, Version 6 (IPv6) Specification". IETF.
  5. (December 2007). "Deprecation of Type 0 Routing Headers in IPv6". IETF.
  6. (July 2017). "IPv6 Segment Routing Header (SRH)". IETF.
  7. (2012-12-10). "Source routed forwarding with software defined control, considerations and implications". ACM.

::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::

routing-algorithms