The Internet is based on a hop-by-hop routing model where forwarding decisions are based on a packet's destination. With the evolution of the Internet to support real-time applications such as video and audio distribution, the Internet's routing architecture must be enhanced to support metrics that ensure the quality-of- service requirements of these applications. Sobrinho has shown that some of these metrics, when used with a Dijkstra routing computation, may result in paths that are not least-cost or loop-free, and don't support hop-by-hop forwarding in the general case. To address this problem Sobrinho has presented a technique for computing paths using Dijkstra that, while not directly supporting hop-by-hop forwarding, do ensure that packets forwarded based on these paths will follow loop-free, least-cost paths. However, this results in routers forwarding packets along different paths from those they computed. In this paper we build on Sobrinho's work by presenting a sufficient condition for computing hop-by-hop paths. This condition, while not as general as Sobrinho's solution, has more relaxed requirements of the path algebra. Given this greater latitude we are then able to present a new technique for computing paths that are loop-free, least-cost, and support hop-by-hop forwarding when used with a Dijkstra route computation, thus restoring the visibility of routers into the paths they forward packets over.
['Bradley R. Smith']
Using Dijkstra to Compute Hop-by-Hop QoS Paths