• No results found

Characteristics of Routing Algorithms

1.4 Preliminaries

1.4.3 Characteristics of Routing Algorithms

A routing scheme consists of a set of algorithms that induce transmission paths through the network. Below are the main features and complexity measures of

13 1.4 Preliminaries

a routing scheme. Memory Requirements

Memory usage is an important characteristic of any routing scheme. The mem- ory requirement of a routing algorithm can be measured in different ways. One metric is the average memory required at each node of the network. Another one is the maximum amount of memory needed by the algorithm at any given node. Sometimes, for the sake of comparison between different routing al- gorithms, we use the average of the memory consumption over all nodes of the network. Other times it is better to consider the distribution of memory requirements over all nodes, and more specifically some indicative quantiles, including the maximum.

Path Stretch

The stretch induced by a routing scheme S for the path between two nodes u and v is the ratio between the length of the path connecting u and v as defined by S, and the distance between u and v in the network graph G (that is, the minimal path length between u and v in G).

stretch(u, v) = |routeS(u, v)| distG(u, v)

More generally, given a route request r in a network G, a routing scheme S induces a stretch

stretchS,G(r) = |routeS(G, r)| |routeOPT(G, r)|

Where routeOPT(r)is an optimal routing of request r on G, which depends

on the network model and communication scheme. For example in the case of unicast communication in general networks, an optimal route corresponds to a minimal path between source and destination, while for multicast communica- tion an optimal routing is a minimal Steiner tree between the nodes that are involved in the multicast request.

The stretch of a routing scheme for a given network G is the maximum stretch of any allowable routing request in G.

Congestion

Every network element (node or edge) has limited resources that it can allo- cate to routing tasks. When the routing scheme puts demands for resources

14 1.4 Preliminaries

that exceed the limits of one or more element, we say that the network and specifically those elements are congested. Typically, there are two important resources that are subject to congestion: link capacity and node capacity. Link capacity is the maximum amount of information a link in a network can carry at any instance of time. Depending on the network model, links or edges in the network may have uniform or varying capacities. Node capacity is very similar, specifically it is the maximum amount of information a node can process at any instance of time.

Adaptive Vs. Oblivious Schemes

A routing algorithm may use knowledge of previously routed requests to in- fluence its current routing decisions. This is what we call an adaptive routing scheme. By incorporating this additional information in the decision-making process, an adaptive routing scheme might perform better for load balancing and to avoid network problems such as deadlock and livelock. In the opposite case—when routing decisions do not take into account previous requests in any way—we refer to such schemes as non-adaptive or oblivious routing.

Dynamic Vs. Static Schemes

A static routing scheme uses only network information that does not change in time, while a dynamic one uses the current state of the network. This dynamism can be further characterized depending on the type of informa- tion undergoing changes. In particular, we distinguish topological and non- topological changes. As an example of non-topological changes, we may have a static multicast scheme in which multicast groups are fixed, and conversely a dynamic multicast scheme in which group membership may change over time. In this document, we focus on non-topological dynamism in the network. In other words, we assume that topological changes are either non-existent or slow enough not to be a concern for our routing scheme.

Compact Routing: Memory Vs. Stretch

In the unicast model, a trivial solution for routing on the shortest paths between any two nodes would be to store, at every node v, the next hop of all all-pairs shortest paths, which means the next hop on each of the shortest paths from v to all other n−1 nodes. This solution, which is fully deterministic and optimal in terms of path lengths, requires O(n log n) bits of memory in each node of

15 1.4 Preliminaries

the network. However, this solution is not good enough for large networks in which nodes have limited resources.

One can imagine other trivial unicast routing schemes. For example, a probabilistic one would be that each node v delivers the messages addressed to v, and otherwise forwards every other message at random. In this case, each node requires that each node v stores its own identifier, with O(log n) bits, and nothing else. So, this scheme would be extremely compact, but at the same time it would also be extremely inefficient in terms of path lengths, since the path lengths induced by the scheme (in expectation) would be much worse than the optimal.

Research on compact routing has focused almost exclusively on the unicast model. A notable exception is the work by by Abraham et al. on compact mul- ticast routing [6]. The several compact algorithms proposed by Abraham et al. are very interesting, but they are not very practical, in the sense that they pose extreme trade-offs between memory and stretch. For example, one of the proposed algorithm is a name-dependent multicast routing scheme whose mem- ory requirement at each node is ˜O(n1/k), uses labels of size ˜O(n1/k), employs headers of size ˜O(n1/k), whose stretch is 4k−2.5 Another algorithms is a name-

independent multicast routing scheme whose total memory is ˜O(kn1+1/klog ∆) with stretch O(k).

Therefore, a new generation of routing schemes for the unicast model have been studied during the previous three decades under the general title of “com- pact routing”. In brief, research in compact routing studies the fundamental limits of routing scalability, as well as algorithms that try to reach those lim- its. In another words, compact routing is the investigation of the necessary trade-off between routing-table sizes and routing stretch.

In general, compact routing schemes are divided into two categories: name dependent and name independent schemes. This categorization is based on the respective addressing scheme they require. Here we briefly summarize the research achievements in each category for the unicast communication model. Name-dependent routing This category includes optimal compact rout-

ing schemes for general graphs and other restricted forms of graphs. Cowen [28] introduced the first non-trivial scheme with stretch 3 which needed ˜O(n2/3)memory. Thorup and Zwick [79] provided the best known stretch-3 name-dependent routing scheme with only ˜O(√n) memory. Thorup and Zwick also generalize their scheme so that it achieves stretch 4k−5 (and even 2k−1 with handshaking) with ˜O(N1/k)memory, and also

5Soft-O notation: f (n) = ˜O(g(n)) if f (n) = O(g(n) logk

16 1.5 Structure of the Document

introduce an optimal name-dependent routing schemes in trees that re- quires ˜O(1) memory and ˜O(1) header size (Fraigniaud and Gavoille [30] obtained the same result independently). Because of its compactness, this scheme became a building block for many other compact routing schemes [79, 4, 3, 1, 53, 9].

Name-Independent Routing This category started with the work of Awer- buch et al. [11]. Awerbuch and Peleg [12] were the first to show that constant stretch is possible with o(n) memory per node, albeit with a large constant. After a gradual improvement on bounds, finally, Abra- ham et al. [4] obtained an optimal, stretch-3 routing scheme that uses

˜

O(√n) memory for a weighted undirected network. In another work [3], Abraham et al. showed that any name-independent routing scheme (even for single source) with maximum stretch strictly less than 2k + 1 requires Ω((n log n)1/k) bit routing table.