Source routing is a way for a source node to influence the path taken by the packet sent to the destination. It does so by including in the header a list of routers that the packet should go through.
IPv4 source routing is handled by the Loose and Strict Source Route options. Each router in the path has to look at the options and see if its IP address is in the list inside the options part of the IP header. This causes all routers in the path to do special processing for those datagrams, which is very slow because the options are not efficiently put on boundaries for fast memory lookup in hardware based processors.
The IPv6 routing header integrates both the IPv4 Loose and Strict options in one function by using the routing extension header, which is processed by only relevant routers involved in the source routing in the path. Not all routers in the path have to look at the routing header, which is a very important improvement for hardware-based fast forwarding.
The routing header contains a list of intermediate nodes, or routers, that need to intercept the datagram and enable special processing for it. Each listed intermediate node is not necessarily the next hop, so not all intermediate nodes in the path need to be listed, but they could be, if one wants the strict source route feature. Intermediate nodes ...