Part V: Toward Next Generation Routing
17.3 Adapting Shortest Path and Widest Path Routing: A Basic
Out of different attributes classified into two categories, we will use one metric each from additive and nonadditive (concave) metric properties for our discussion here. Specifically, we will use delay for the additive property and bandwidth requirement for the nonadditive property. We assume here the reader is familiar with shortest path routing and widest path routing described earlier in Chapter 2. You may note that the discussion in this section is applicable only to classification Q.2.
From our discussion in Part I of this book, we know that applicability of a particular routing algorithm for a packet-switched network depends on whether the network is run- ning a distance vector protocol or a link state protocol. While the basic idea of shortest path or widest path routing would work under both these protocol concepts, we will assume here that a link state protocol framework is used since most well-known intradomain routing pro- tocol frameworks are link state based.
17.3.1 Single Attribute
We first consider that requests have a single additive metric requirement in terms of delay attribute. A simple way to adapt the shortest path routing algorithm paradigm here is by using delay as the link cost metric. Suppose a request arrives with the delay requirement no greater thanτ.
For an arriving request requiring a guaranteed delay requirement ofτ, do the following:
Compute the shortest delay using the shortest path first algorithm (Algorithm 2.4);
if the result is less thanτ, then admit the request; otherwise, deny the request.
Note that the request arrives for a particular destination. Thus, unlike the standard short- est path first (SPF) algorithm, here the shortest path computation must be computed only for the specific destination of a request. Consider again Algorithm 2.4 in Chapter 2; in step 3, once a new nodekis identified with the minimum cost path, it can be checked whether thiskis the destination of the request; if so, the algorithm can stop. At this point, this delay cost is then compared against the arriving request’s delay requirement; if met, the request is accepted, otherwise it is denied.
What if the single metric is in terms of the bandwidth requirement of a request? This sce- nario is similar to the delay-based scenario. Suppose that an arriving request has a bandwidth requirement ofb. Then, we can use the following rule:
For an arriving request with a guaranteed bandwidth requirement ofb, do the following:
Compute the widest path using Algorithm 2.8 for the specific destination; if this value is higher thanb, then admit the request; otherwise, deny the request.
In many instances, it is desirable to obtain the widest path with the least number of hops for the path. Although this is sometimes referred to as the shortest-widest path, it is not a good name since shortest does not indicate the context in which this is meant. Thus, we will refer to it as the least-hop-widest path. How do we find the widest path with the least number of
hops? Consider again Algorithm 2.8; In step 3 of this algorithm,kinSwith the maximum residual bandwidth is determined. Instead of storing just onek, the list of nodes where the maximum residual bandwidth is attained is determined. If this list happens to have more than one element, thenk is chosen so that it is the least number of hops from source node i. In essence, this means that if there are multiple paths with maximum residual bandwidth, choose the one with the least number of hops; if there are still such multiple paths, one is randomly selected. In the same manner, a least-hop-minimum delay path can be determined when a delay metric is used.
17.3.2 Multiple Attributes
In this case, consider an arriving request specifying that both the delay as well as the band- width requirement must be satisfied. This can be addressed from the point of view of which factor is to be considered the dominant factor: delay or bandwidth; this, however, depends on which is found: a bandwidth feasible path while the delay is minimized, or a delay feasible path while maximizing available bandwidth.
Again, we can adapt the widest path and shortest path routing framework. To determine the minimum delay path that satisfies the bandwidth requirement of a request, we can initial- ize any link that does not meet the bandwidth requirement temporarily as a link with infinite delay; this method of considering a nonadditive metric requirement with an additive shortest path computation is generally known as constrained shortest path routing. Instead, if we were to determine a maximum residual bandwidth, i.e., the widest path while meeting the delay requirement, we can initialize any link that does not meet the delay requirement by temporar- ily setting the residual link bandwidth to zero; this form can be classified as constrained widest path routing. Note that for a constrained shortest path, the constraint is on bandwidth, while for a constrained widest path, the constraint is on delay. For source nodei and destination nodev, we present both routing algorithms in Algorithm 17.1 and Algorithm 17.2 for com- pleteness. The notations are summarized in Table 17.2. Chapter 2 may also be consulted for comparison.
TA B L E 17.2 Notation for QoS routing.
Notation Remark
i Source node
v Destination node
N List of all nodes
Nk List of neighboring nodes ofk S List of nodes considered so far S List of nodes yet to be considered
τij Link delay on linki-j(set to∞if the link does exist, or not to be considered) Tij Delay from nodeito nodej
bij Residual bandwidth on linki-j(set to0if the link does exist, or not to be considered)
Bij Bandwidth available from nodeito nodej
A L G O R I T H M 17.1 QoS minimum delay path with bandwidth feasibility
S= {i} // permanent list; start with source nodei S=N\ {i} // tentative list (of the rest of the nodes) for (jinS) do
// check ifi-jdirectly connected and link has required bandwidthb if (τij<∞andbij≥b) then
Tij=τij // note the delay cost else
τij= ∞;Tij= ∞ // mark temporarily as unavailable endif
endfor
while (Sis not empty) do // while tentative list is not empty Ttemp= ∞ // find minimum-delay neighbork
for (minS) do if (Tim<Ttemp) then
Ttemp=Tim;k=m endif
endfor
if (Tik> τ) then // if minimum delay is higher than delay tolerance
’No feasible path exists; request denied’
exit endif
if (k==v) then exit // destinationvfound, done S=S∪ {k} // add to permanent list
S=S\{k} // delete from tentative list for (jinNk∩S) do
if (Tij>Tik+τkjandbkj>b) then // if delay is less viak Tij=Tik+τkj
endif endfor endwhile
if (Tiv≤τ) then // final check, if the path meets delay requirement
’Request accepted’
else
’No feasible path exists; Request denied’
endif
17.3.3 Additional Consideration
We next consider a general question: can we provide QoS routing in a packet environment where buffer guarantee at routers is also required? For this, assume that the packet network is an integrated services environment. For a request requiring bandwidth guarantee on de- mand, we need to consider also whether the router’s scheduling algorithm can guarantee requests in terms of buffering, in addition to bandwidth guarantee on links. This brings in the issue of scheduling with routing. It has been shown that this combined problem can be addressed with a polynomial time algorithm that factors in capacity and constrained shortest path [766].
A L G O R I T H M 17.2 QoS widest path with delay feasibility
S= {i} // permanent list; start with source nodei S=N \ {i} // tentative list (of the rest of the nodes) for (jinS) do
// ifi-jdirectly connected and link has required bandwidthb if (bij>bandτij<∞) then
Bij=bij;Tij=τij else
bij=0;Bij=0;τij= ∞;Tij= ∞ // mark temporarily as unavailable endif
endfor
while (Sis not empty) do // while tentative list is not empty Btemp=0 // find neighborkwith maximum bandwidth for (minS) do
if (Bim>Btemp) then Btemp=Bim;k=m endif
endfor
if (Bik<b) then // bandwidth is higher than the request tolerance No feasible bandwidth path exists; request denied
exit endif
if (k==v) then exit // destinationvis found; done S=S∪ {k} // add to permanent list
S=S\{k} // drop from tentative list
for (jinNk∩S) do // path has higher bandwidth if (Bij<min{Bik,bkj}) then
Bij=min{Bik,bkj} Tij=Tik+τkj endif
endfor endwhile
if (Biv≥b) then // final check; if path meets bandwidth requirement
’Request accepted’
else
’No feasible path exists; Request denied’
endif end procedure