2. Previous Work
2.2. Distributed Routing Algorithms
The Wang-Crowcroft Algorithm [25]-Wang and Crowcroft proposed a hop-by-hop distributed routing scheme. Every node pre-computed a forwarding entry for every possible destination. The forwarding entry, which is updated periodically, stores the next hop on the routing path to the destination. After the forwarding entries at every node are computed, the actual routing simply follows the entries.
Given two end nodes, the path with the minimum bottleneck bandwidth is called the widest path. If there are several such paths, the one with the smallest delay is called the
shortest-widest path. A link-state protocol is used to maintain complete global state at every
node. Based on the global state, the forwarding entry for the shortest-widest path to each destination is computed by a modified Bellman-Ford (or Dijkstra’s) algorithm [6]. A routing path is the combination of the forwarding entries indexed by the same destination at all intermediate nodes. The path is loop-free if the state information at all nodes is consistent.
However, in a dynamic network the path may have a loop due to the contradicting state information at different nodes.
The Cidon et al. Algorithm [11]-The distributed multi-path routing algorithms proposed by Cidon et al. combine the process of routing and resource reservation. Every node maintains the topology of the network and the cost of every link. When a node wishes to establish a connection with certain QoS constraints, it finds a subgraph of the network which contains links that lead to destination at a “reasonable” cost. Such a subgraph is called diroute. A link is eligible if it has the required resources. Reservation messages are flooded along the eligible links in the diroute toward the destination and reserve resources along different paths in parallel. When the destination receives a reservation message, a routing path is established.
The algorithm releases resources from segments of the diroute as soon as it learns that these segments are inferior to another segment. Variants of the above algorithm were proposed to make a trade-off between routing time and path optimality. Reserving resources on multiple paths makes the routing faster and more resilient to the dynamic change of network state.
However, it also increases the level of resource contention.
The Chen-Nahrstedt Algorithm
Selective Probing [23]-Chen and Nahrstedt proposed a distributed routing framework
based on selective probing. After a connection request arrives, probes are flooded selectively along those paths which satisfy the QoS and optimization requirements. Every node only maintains its local state, based on which the routing and optimization decisions are made collectively in the process of probing. As in the Shin-Chou algorithm, each probe arriving at the destination detects a feasible path.
Algorithms were derived from the framework to route connections with a variety of QoS constraints on bandwidth, delay, delay jitter, cost, and their combinations. Several techniques were developed to overcome the high communication overhead of the Shin-Chou algorithm.
First, probes are only based on topological distance to the destination. Second, iterative probing is used to further reduce the overhead. At the first iteration, probes are sent only along
the shortest paths. If the first iteration fails, probes are allowed to be sent along paths with increasing lengths in the following iterations. Simulation shows that with two iterations the Chen-Nahrstedt algorithm achieves substantial overhead reduction.
Ticket-Based Probing [24]-If every node maintains a global state, which is allowed to be imprecise, the ticket-based probing is used to improve the performance of selective probing.
A certain number of tickets is issued at the source according to the contention level of network
resources. Each probe must contain at least one ticket in order to be valid. Hence, the maximum number of probes is bound by the total number of tickets, which limits the maximum number of paths to be searched. The algorithm utilizes the imprecise state at intermediate nodes to guide the limited tickets (the probes carrying them) along the best possible paths to the destination. In such a way, the probability of finding a feasible path is maximized with limited probing overhead.
Strengths and Weaknesses of Source Routing
In distributed routing, the path computation is distributed among the intermediate nodes between the source and the destination. Hence, the routing response time can be made shorter, and the algorithm is more scalable. Searching multiple paths in parallel for a feasible one is made possible, which increases the chance of success. Most existing distributed routing algorithms [25, 10, 17] require each node to maintain global network state (distance vector), based on which the routing decision is made on a hop-by-hop basis. Some flooding-based algorithms do not require any global state to be maintained. The routing decision and optimization is done based entirely on the local states [18, 17].
The distributed routing algorithms which depend on the global state share more or less the same problems of source routing algorithms. The distributed algorithms which do not need any global state tend to send more messages. It is also very difficult to design efficient
distributed heuristics for the NP-complete routing problems, especially in the case of multicast routing, because there is no detailed topology and link-state information available. In addition, when the global states at different nodes are inconsistent, loops may occur. A loop can easily be detected when the routing message is received by a node for the second time. However, loops generally make the routing fail because vectors do not provide sufficient information for an alternative path.