CHAPTER 5 MINGLING MULTIPATH WITH QUALITY OF...
Transcript of CHAPTER 5 MINGLING MULTIPATH WITH QUALITY OF...
CHAPTER 5
MINGLING MULTIPATH WITH QUALITY OF SERVICE
MINGLING MULTIPATH WITH QUALITY OF SERVICE
5.1 INTRODUCTION
11 As discussed in the previous
chapter, considering the benefits of multipath and requirement of QoS, QoS can be
successfully implemented with multipath architecture. Multipath routing is capable of
aggregating the resources of multiple paths and reducing the blocking capabilities in QoS
oriented networks, allowing data transfer rate at higher rate, when compared to a single path.
It also increases the reliability of delivery. The benefits of provisioning multiple QoS paths
are reliable QoS support and uniformly balanced network load.
This chapter investigates the ways of implementing multipath strategy in QoS domain,
discussed in literature. The approaches considered are based on Dijkstra algorithm, Bellman-
Ford algorithm, Resource reservation & MPLS. In addition to it, the chapter proposes a
multipath QoS approach based on Dijkstra algorithm which is an extension to the single path
algorithm presented in [93]. The proposed algorithm is implemented in MATLAB and
appended as Appendix-A.
5.2 MULTI PATH in QoS DOMAIN
On the basis of literature survey, the areas that have implemented QoS and multipath
collectively are- Dijkstra algorithm, Bellman-Ford algorithm, Resource reservation & MPLS.
5.2.1Using Bellman-Ford algorithm
In considering with multiple constraints, it has been noticed that the Bellman-Ford (BF)
algorithm can potentially solve a two metric routing problem [38]. It is a property of the BF
algorithm that, at its hth iteration, it identifies the optimal path between the source and each
destination, among paths of at most h hops. It searches for a minimum path cost (or maximal
bandwidth) in ascending order of number of hops. The cost of a path is a function of its
available bandwidth i.e. the smallest available bandwidth on all links of the path, and
finding a minimum cost path amounts to finding a maximum bandwidth path. However,
because the BF algorithm progresses by increasing hop count, it inherently provides for the
hop count of a path as a second optimization criteria. Therefore, the result of the algorithm
comes with the path which is the one with maximal available bandwidth among all the
feasible paths with the minimum number of hops.
Thus, Bellman-Ford algorithm is very powerful in solving most multiple constrained routing
problems if the minimum hop is the main objective function. BF algorithm is also capable of
solving delay, delay jitter, loss & bandwidth constrained routing problem [15] .This Bellman-
Ford algorithm is single QoS path computation algorithm. This single path computation
algorithm has been extended to perform multiple QoS computations [57] .Each of the QoS
metric is manipulated in the same way as in single path algorithm by increasing hop count.
The algorithm has been designed in order to improve fault tolerance & load balancing. The
multiple path computation algorithm searches for maximally disjoint paths (minimally
overlapped paths) so that impact of link failure is reduced & links are more evenly utilized by
spreading the network load over multiple paths. In order to search for multiple alternate paths
to provide fault tolerance and load balancing yet satisfying QoS constraints, it has defined
alternate paths with the following conditions –
-Satisfying given QoS constraints
-Maximally disjoint from already computed paths
-Minimizing hop count.
The algorithm searches for multiple maximally disjoint paths (i.e. with the least overlap with
each other) such that the failure of a link in any of the paths will still leave one or more of the
other paths operational with high probability.
Based on this algorithm, [56] has presented the multiple QoS path algorithm with some
enhancements for maximally disjoint paths i.e. PDMA (partially disjoint multiple QoS path
algorithm with multiple iteration) and also presented FDMA (fully disjoint multiple QoS path
algorithm).
5.2.2 Using Dijkstra Algorithm
Dijkstra algorithm can generate a minimum hop path that can accommodate the required
bandwidth and has maximum bandwidth. However, it requires some modification in order to
be able to calculate the minimum hop path computation as it does not search for a minimum
path cost in ascending order of hops as Bellman-Ford does. The modification required for
supporting them is straightforward. Firstly on a graph from which all edges, whose available
bandwidth is less than that requested bandwidth, are removed. This can be performed either
through a pre-processing step, or while running the algorithm by checking the available
bandwidth value for any edge that is being considered. Another modification to a standard
Dijkstra based minimum hop-count path computation, is that the list of equal cost next
(previous) hops which is maintained as the algorithm proceeds, needs to be sorted according
to available bandwidth. This is to allow selection of the minimum hop path with maximum
available bandwidth. Alternatively, the algorithm could also be modified to, only keep among
equal hop count paths the one with maximum available bandwidth. This would essentially
amount to considering a cost that is function of both hop count and available bandwidth [38].
Whereas, Bellman-Ford algorithm used in computing k shortest paths ignores equal hop
multiple count. Equal hop multiple paths impair the performance of routing protocol if the
link state information is inaccurate.
[35] has proposed an algorithm DIMCRA (link-disjoint multiple constraints routing
algorithm). The objective of DIMCRA is to find link-disjoint multi-constrained paths
between a pair of source and destination nodes. DIMCRA is based on SAMCRA.
[45] has presented a bandwidth constrained multipath routing algorithm based on Dijkstra.
Besides specifying the optimality criteria that defines the best paths, it has also described the
construction and selection strategies for multiple paths. The path construction is performed
each time link state information becomes available, while the path selection is performed for
each connection request .This algorithm is based on [93].
This algorithm is based on k best one to one non-loop less paths. It has modified the
algorithm to find k one to all loop less paths instead of one to one non-loop less paths. The
algorithm generates k paths that are either shortest in terms of number of hops (hop based) or
widest in terms of bottleneck bandwidth (bandwidth based). It has considered two metrics
bandwidth & hop count. It has developed two categories of k-shortest algorithms-hop based
& bandwidth based and five selection algorithms. It has concluded that hop-based algorithm
outperforms the bandwidth-based one. It has also presented five path selection schemes as
Best-K-Widest (BKW),Random-K-Widest (RKW), Shortest-K-widest (SKW), Best-K-
Shortest (BKS), Widest-K-Shortest (WKS).
5.2.3 Using Resource Reservation
In order to use the network resources efficiently, bandwidth reservations are made to ensure
high probability of data arrival to its destinations.
Bandwidth reservation means that certain amount of bandwidth is reserved for a program.
When the program accesses the network, then up to that much bandwidth is guaranteed to be
available to the program. By reserving bandwidth, it is possible to provide reasonable levels
of QoS. The idea is to identify traffic flows, which are streams of packets (voice, video, file
transfers, and so on) going to the same destination IP address and port number. Reservations
are negotiated with each network device along a route to a destination. If each device has
resources to support the flow, a reserved path is set up.
[16] has presented a QoS routing algorithm in which the QoS constraint is specified by
bandwidth guarantee. Therefore, the goal of QoS routing algorithm is to find the best path
with sufficient bandwidth. Here the best path is the path with least cost. To find the least cost
path, the algorithm can run either Dijkstra or Bellman-Ford shortest path algorithm.
[24] has presented a family of algorithms that route and reserve resources along parallel sub
routes i.e. fast algorithm, slow algorithm and super fast algorithms.
[76] has presented a framework in which bandwidth can be reserved on the communications
links, and, once reserved, is guaranteed for the required time. The algorithms finds multi
paths, consisting of possibly overlapping paths, based on the available bandwidths on various
links of the network. It considers delay as second consideration criteria. It has presented the
algorithms based on two problems. The first problem requires that a message of finite length
be transmitted from s to d within r units of time. The second problem requires that a
sequential message of r units be transmitted at a rate of n such that maximum time difference
between two units received out of order is not more than q.
5.2.4 Algorithms for MPLS
Multi-Protocol Label Switching (MPLS) networks do routing based on connections. QoS
routing and traffic engineering goals are normally achieved by finding optimal or near-
optimal explicit routing MPLS algorithms. The MPLS can provide fast packet forwarding. It
is a new Internet technology that is rapidly emerging as a core technology for next generation
networks. MPLS uses a technique known as label switching to forward the data through the
network. Multi-protocol label switching (MPLS) has many attractive features. First, the
MPLS can create easily an explicit-route label switched path as needed and it can easily map
traffic trunks that consist of traffic flows with similar characteristics of traffic requirements.
[18] proposed two multipath constrained based routing algorithms using MPLS. The
algorithms proposed find multiple LSPs(Label-Switched Path) between ingress and an egress
LSR(Label Switch Router) satisfying a given bandwidth constraint. When there is no single
path through the network satisfying a whole bandwidth constraint, the suggested algorithms
divide the bandwidth constraint into two or more sub-constraints and find a constrained path
for each sub-constraint. First, the algorithms calculate the least-cost path between source and
destination, and allocate the path bandwidth (minimum bandwidth of all links along the path)
to that path. Next, it calculates the next shortest path through the network after removing
links having no available bandwidth and allocates the path bandwidth to that path. The
process is continued until it can allocate the whole bandwidth constraint to the successive
shortest paths. If a single path satisfies the whole bandwidth constraint, there is no need to
balance the traffic load. However, if there are multiple paths the traffic load should be
partitioned optimally for mapping to multiple paths.
[101] Proposed a new constraint based routing algorithm for MPLS networks. It has used
bandwidth & delay constraint. In the algorithm the best path is selected based on best –fit
strategy. In step1, the algorithm eliminates all the links with bandwidth value less than the
bandwidth constraint. In step2, it finds the path with delay value less than (or equal to) delay
constraint value. In step3, if there are more than one feasible path, it selects the path with
minimum hop count. In step 4, the load is distributed & balanced. The best-fit load balancing
strategy selects path from all feasible paths, which has the nearest bandwidth value to the
bandwidth constraint value.
[71] proposed a localized proportional routing approach where each source node collects
information about the traffic originating from itself and computes proportions based solely on
this local information. Global schemes have to gather system wide traffic metrics and thus
slower to react to changes. Localized schemes on the other hand use only local information
and thus can adapt to change faster. The algorithm has used the strategy, equalization of
blocking probabilities (ebp) of candidate’s paths. This ebp strategy requires only path level
information - the amount of offered load and the corresponding blocking probability. The
objective of ebp strategy is to find a set of proportions such that flow-blocking probabilities
on all the candidate paths are equalized. The strategy can be implemented using the following
procedure to compute new proportions in each iteration. First, the current average blocking
probability is computed. Then the proportion of load onto a path is decreased if it’s current
blocking probabilities are higher than the average and increased if they are lower than the
average. When we talk about path selection, the algorithm selects the candidate paths of a
pair that do not share bottleneck links. In this way of path selection, the blocking probability
can be reduced. To judge the goodness of paths, it has introduced the notion of width for a set
of paths, which is defined as the maximum flow carriable by paths in the set. The amount of
flow carriable by a link is given by its average available bandwidth. So the width of a set of
paths can be computed, given the average available bandwidth information about each link in
the network. Based on the notion of width of a path set, the algorithm proposed a path
selection procedure that adds a new candidate path only if its inclusion increases the width. It
deletes an existing candidate path if its exclusion does not decrease the total width. Therefore,
this proportional routing scheme yields higher through put with lower overhead.
5.3 IMPLEMENTATION OF MULTIPATH APPROACH TO ATTAIN QOS
In this section, a Multi-Path QoS approach for source routing has been proposed.
The proposed algorithm is based on [93]. The two metrics considered in [93] are residual
bandwidth and propagation delay. In [93], the algorithm finds bandwidth-delay constrained
path. As bandwidth is a concave metric and delay is an additive metric, so it finds the path
whose each edge bandwidth satisfies the bandwidth requirement and whose total delay
(addition of delay of all edges) should be less than the maximum delay allowed. The
algorithm first eliminates all the links that do not meet the bandwidth requirement. Then, it
finds the minimum delay path from source to destination using Dijkstra algorithm. The
algorithm is terminated when either destination is reached or delay exceeds the threshold.
The algorithm presented in [93] finds the single best path. We have extended this algorithm
to find multiple paths instead of single path. Our objective is to find link disjoint paths which
satisfy the QoS constraints. To find disjoint paths we have used the ‘Find and Removal’
method. First, we find the best path between s(source) and t(destination) based on the
metrics and then remove all the links from the network that belong to the path computed, and
then find the second path by running the same algorithm. The algorithm is terminated when
the number of paths reached to m or delay exceeds the threshold or the network is
disconnected from source to destination. Here the value of m is number of adjacent nodes of
source. Thus, the algorithm finds multiple disjoint loopless paths from s to t satisfying QoS
criteria- residual bandwidth, delay in the increasing order of delay.
The basic theme of the algorithm is that, firstly, it eliminates all the links that do not meet the
bandwidth requirement. Then, it finds a (the best one) path satisfying delay. Once a path is
found, all the links in that path are removed from the network graph and the algorithm is run
on the pruned graph to find the next minimum-delay path. The process is continued until the
algorithm comes up with the best m number of shortest paths from s to t or delay exceeds the
delay threshold.
For the construction of paths, we use certain parameters. The following are the list of
parameters used in developing the path construction algorithm.
i. Node structure holds its status (tentative, permanent), its total delay from
source , its predecessor, its bandwidth and number of hops from source
i.e.
1. node. status = Shows the status of node= "permanent" or
"tentative."
2. node. delay= Total delay of path from the source to that node.
3. node. pred = Its previous node according to path found.
4. node. bandwidth= Value of minimum bandwidth edge from
source to that node
5. node. hops=Number of hops from source to that node.
ii. b [i,j] =Residual bandwidth for each edge.
iii. d[i,j] = Delay value for each edge.
iv. band_th =Bandwidth threshold/requirement (Path should have bandwidth
equal or greater than band_th)
v. delay_th = Delay threshold/requirement (Path should have delay equal or
less than delay_th)
vi. count = Number of paths found so far
vii. m= Number of paths to find= Number of adjacent nodes of source
viii. s= Source node
ix. t= Destination node
5.3.1 M-Bandwidth-Delay constrained algorithm
The steps of M-Bandwidth-Delay constrained algorithm are-
Step 1: Set dij =0 & bij =0, if bij < Band_th. (Eliminates all links that do not meet the
bandwidth requirement by setting their metric matrix to 0.), count =0.
Step2: Initialize node[s].pred=0, node[s].delay=0, node[s].status=permanent,
node[s].bandwidth=∞.
node[i].pred=s,node[i].delay=∞,node[i].bandwidth=∞,node[i].status=tentative ,for all i ≠s.
k=s
Step 3: for all i whose node[i].flag=tentative && (dki >0)
If (node[i].delay> dki + node[k].delay)
begin
node[i].delay= dki + node[k].delay
node[i].bandwidth=min(node(k).bandwidth, bki)
node[i].pred=k
node[i].hops=node[k].hops+1
end
End if
Step 4 Check for connectivity of source & destination if false then exit.
Step 5: Change k so that node[k].delay = Min (node[i].delay) (Here i is tentative node)
node[k].flag=permanent
Step 6 :Check
If k= t then
begin
If (node[k].delay<=delay_th) then
begin
count=count+1
record the path by following predecessor link.
If ( count <=m) then
Set bij, dij=0 for all edges available in path found & Goto step 2
Else
Stop
End if
End
Else
Stop
End if
End
Else
Go to Step 3
End if
YesYesYesNoAmong the tentative nodes, find the node having least delay value & make it as active node. Mark active as permanent StartEliminate all links that do not meet the bandwidth requirement by making its entry in b[ij] and d[ij] as zero, count=0
Identify source and destination node as s and t, Initialize the parameters of the node structure record (for all nodes) and set their status to "tentative" and their delay, bandwidth to "infinity"
Make source as active node and set its bandwidth to ∞ and delay to 0 & make source as permanent . active=tcount=count+1,Record the path by tracing the predecessor node . Subtract every entry in b[i,j] and d[ij] that appears in the path
Update all tentative nodes and record its structure i.e. its delay , its bandwidth ,hops ,its predecessor according to active node.
delay <= delay_thStopNoYe sStop count= m
Check Connectivity
NoStopNo
5.3.2
Illustration of Algorithm
We have illustrated the algorithm through the following example-
Here is a network of 6 nodes. Each edge is represented by its residual bandwidth & delay
metric
3/34/55/55/35/25/34/25/34/35/4124536
Figure 5.1- Flowchart of M-Bandwidth-Delay constrained Algorithm
Figure 5.2 Example Network with edges depicting bandwidth/delay
Thus bandwidth and delay matrix of graph are-
Table 5.1- Bandwidth Matrix
1 2 3 4 5 6
1 0 5 5 4 0 02 5 0 0 4 4 0
3 5 0 0 5 0 5
4 4 4 5 0 3 55 0 4 0 3 0 5
6 0 0 5 5 5 0
Table 5.2 –Delay Matrix
1 2 3 4 5 6
1 0 3 2 5 0 02 3 0 0 2 3 0
3 2 0 0 4 0 5
4 5 2 4 0 3 35 0 3 0 3 0 3
6 0 0 5 3 3 0
The following parameters have been assumed-
Bandwidth threshold - 4
Delay threshold - 10
Source - 1
Destination – 6
Total number of paths found-Adjacent edges of Source - 3
The problem can be defined as - find multiple disjoint paths between 1 and 6 in the given
network. The paths should follow the following conditions-
The bandwidth of the paths should be minimum 4.
The delay of the paths should not exceed 10.
As bandwidth is concave metric, so each of the edges in the path found should have value
greater than or equal to 4 and delay is an additive metric, so the sum of the delay of edges
constituting the path should be less than or equal to 10.
According to the algorithm, the edges are removed from the graph that does not satisfy the
bandwidth requirement by setting their delay value and bandwidth value to 0.
As the bandwidth requirement is 4 so the edges having less than bandwidth 4 should be
removed from the graph. Among all the edges of graph, the edge 4-5 is having bandwidth 3
i.e. less than 4. It will not be considered further for path finding.
Now the resultant network will be-
4/55/55/35/25/34/25/34/35/4124536
Figure 5.3 Filtered Network
In this network, Elimination of edges not satisfying bandwidth requirement has been done.
Now the bandwidth of all the edges is equal or greater than 4.
First Iteration
In the network depicted in fig. 5.3, the shortest delay path from 1 to 6 as computed by the
proposed algorithm is
Table 5.3 –Path Table
Path Bandwidth of Path Delay of Path Hop-count1-3-6 5 7 2
Remove the edges found in this path from the network.
The resultant network will be
4/55/35/34/25/34/35/4124536
Figure 5.4 – Network after removal of edges of first path
Second Iteration
Now in the network of figure 5.4, the least delay path from 1 to 6 is
Table 5.4 –Path Table
Path Bandwidth of Path Delay of Path Hop-count1-4-6 4 8 2
Remove the edges found in this path from the network.
The resultant network will be
5/45/34/25/34/3124536
.
Figure 5.5-Network after removal of edges of second path
Third iteration
Now in network of figure 5.5, the least delay path from 1 to 6 is
Table 5.5 –Path Table
Path Bandwidth of Path Delay of Path Hop-count1-2-5-6 4 9 3
Here the value of total number of paths found has reached to 3.So the algorithm will
terminate here.
Thus, the multiple disjoint QoS paths found in the given network are as follows-
Table 5.6 –Path Table
Path Bandwidth of Path Delay of Path Hop-Count1-3-6 5 7 21-4-6 4 8 21-2-5-6 4 9 3
Thus the algorithm finds multiple disjoint paths satisfying bandwidth and delay requirements
in the order of increasing delay. This algorithm has been implemented in MATLAB and
presented in Appendix A. The output obtained in MATLAB has been presented in next
section.
5.3.3 MATLAB Output
Input number of nodes:-6
Enter bandwidth and delay matrix:-
Enter bandwidth between [1] [1] 0
Enter delay between [1 ][1 ]0
Enter bandwidth between [1] [2] 5
Enter delay between [1 ][2 ]3
Enter bandwidth between [1] [3] 5
Enter delay between [1 ][3 ]2
Enter bandwidth between [1] [4] 4
Enter delay between [1 ][4 ]5
Enter bandwidth between [1] [5] 0
Enter delay between [1 ][5 ]0
Enter bandwidth between [1] [6] 0
Enter delay between [1 ][6 ]0
Enter bandwidth between [2] [1] 5
Enter delay between [2 ][1 ]3
Enter bandwidth between [2] [2] 0
Enter delay between [2 ][2 ]0
Enter bandwidth between [2] [3] 0
Enter delay between [2 ][3 ]0
Enter bandwidth between [2] [4] 4
Enter delay between [2 ][4 ]2
Enter bandwidth between [2] [5] 4
Enter delay between [2 ][5 ]3
Enter bandwidth between [2] [6] 0
Enter delay between [2 ][6 ]0
Enter bandwidth between [3] [1] 5
Enter delay between [3 ][1 ]2
Enter bandwidth between [3] [2] 0
Enter delay between [3 ][2 ]0
Enter bandwidth between [3] [3] 0
Enter delay between [3 ][3 ]0
Enter bandwidth between [3] [4] 5
Enter delay between [3 ][4 ]4
Enter bandwidth between [3] [5] 0
Enter delay between [3 ][5 ]0
Enter bandwidth between [3] [6] 5
Enter delay between [3 ][6 ]5
Enter bandwidth between [4] [1] 4
Enter delay between [4 ][1 ]5
Enter bandwidth between [4] [2] 4
Enter delay between [4 ][2 ]2
Enter bandwidth between [4] [3] 5
Enter delay between [4 ][3 ]4
Enter bandwidth between [4] [4] 0
Enter delay between [4 ][4 ]0
Enter bandwidth between [4] [5] 3
Enter delay between [4 ][5 ]3
Enter bandwidth between [4] [6] 5
Enter delay between [4 ][6 ]3
Enter bandwidth between [5] [1] 0
Enter delay between [5 ][1 ]0
Enter bandwidth between [5] [2] 4
Enter delay between [5 ][2 ]3
Enter bandwidth between [5] [3] 0
Enter delay between [5 ][3 ]0
Enter bandwidth between [5] [4] 3
Enter delay between [5 ][4 ]3
Enter bandwidth between [5] [5] 0
Enter delay between [5 ][5 ]0
Enter bandwidth between [5] [6] 5
Enter delay between [5 ][6 ]3
Enter bandwidth between [6] [1] 0
Enter delay between [6 ][1 ]0
Enter bandwidth between [6] [2] 0
Enter delay between [6 ][2 ]0
Enter bandwidth between [6] [3] 5
Enter delay between [6 ][3 ]5
Enter bandwidth between [6] [4] 5
Enter delay between [6 ][4 ]3
Enter bandwidth between [6] [5] 5
Enter delay between [6 ][5 ]3
Enter bandwidth between [6] [6] 0
Enter delay between [6 ][6 ]0
The bandwidth matrix is :
0 5 5 4 0 05 0 0 4 4 05 0 0 5 0 54 4 5 0 3 50 4 0 3 0 50 0 5 5 5 0
The delay matrix is:
0 3 2 5 0 03 0 0 2 3 02 0 0 4 0 55 2 4 0 3 30 3 0 3 0 30 0 5 3 3 0
Enter the source:-1
Enter the destination:-6
Enter delay threshold:-10
Enter bandwidth threshold:-4
The 1 path between 1 to 6 is 1 - 3 - 6
The total delay of path is- 7
The number of hops - 2
The bandwidth of path - 5
The 2 path between 1 to 6 is 1 - 4 - 6
The total delay of path is- 8
The number of hops - 2
The bandwidth of path - 4
The 3 path between 1 to 6 is 1 - 2 - 5 - 6
The total delay of path is- 9
The number of hops - 3
The bandwidth of path - 4
Figure
5.6 Path Diagram
In this MATLAB output network-
The edge values are representing the delay value.
Node 1, Node 6 are - source, destination.
Red Edges are representing- 1st path
Blue Edges are representing- 2nd path
Green edges are representing- 3rd path
5.4 SUMMARY
The areas that have been studied to merge QoS and multipath are- Dijkstra algorithm,
Bellman-Ford algorithm, Resource reservation & MPLS.
[93] has described an algorithm based on Dijkstra for single path. A multi-path extension to
this algorithm has been proposed in this chapter with an illustration through an example
network. The QoS parameters that have been considered are bandwidth and delay. The worst
case complexity of the algorithm in [93] is O(n2). Thus the complexity of the proposed
algorithm is O (m.n2). Here n represents the number of nodes and m represents the number of
paths computed. This is a source routing algorithm. As the main objective of the present
research work is to define a fully distributed approach being aware of its advantages and
importance, distributed approach has been explored in next chapter.