alexandria university faculty of engineering department of

114
i ALEXANDRIA UNIVERSITY FACULTY OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE AND AUTOMATIC CONTROL NEW ALGORITHMS FOR MULTICAST ROUTING IN REAL TIME NETWORKS A thesis submitted in partial fulfillment for the degree of Master of Science By Mohamed Fathalla Hassan Mokbel B.Sc., Faculty of Engineering, Alexandria University, 1996 Supervised by Prof. Dr. Mohamed N. El-Derini Department of Computer Science and Automatic Control Faculty of Engineering, Alexandria University Dr. Wafaa A. El-Haweet Department of Computer Science and Automatic Control Faculty of Engineering, Alexandria University Alexandria 1999

Upload: others

Post on 12-Feb-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

i

ALEXANDRIA UNIVERSITY

FACULTY OF ENGINEERING

DEPARTMENT OF COMPUTER SCIENCE AND AUTOMATIC

CONTROL

NEW ALGORITHMS FOR MULTICAST ROUTING

IN REAL TIME NETWORKS

A thesis submitted in partial fulfillment for the degree of Master of Science

By

Mohamed Fathalla Hassan Mokbel B.Sc., Faculty of Engineering, Alexandria University, 1996

Supervised by

Prof. Dr . Mohamed N. El-Der ini Department of Computer Science and Automatic Control

Faculty of Engineering, Alexandria University

Dr. Wafaa A. El-Haweet Department of Computer Science and Automatic Control

Faculty of Engineering, Alexandria University

Alexandria 1999

ii

ACKNOWLEDGMENTS

My deepest admiration and thanks to my advisors, Prof. Dr . Nazih El-Der ini

and Dr . Wafaa El-Haweet for their support and guidance. I was fortunate to have

them as my advisors. Dr.Nazih was never too busy to listen to me and offer his advice

whenever I need. Without his invaluable comments and suggestions, this work

wouldn’ t have been accomplished. The effort, support and guidance that I got from

Dr.Wafaa was really inestimable and I appreciate it a lot.

My deepest gratitude to Dr. Hussein H. Aly for his support at the early stages of

my research.

I would like to thank all the staff in computer science department from whom I

learned a lot over five years of undergraduate and postgraduate courses.

I couldn’ t ignore the role of my friends and the staff in Mubarak City for

Scientific Research and Technological Applications. The continuos help and

encouragement that I got from them over the last two years cheered me up at the most

difficult stages of my research.

Last, but not least, my deepest thanks to my family for their support,

understanding and encouragement without which this work wouldn’ t have been

completed.

iii

ABSTRACT

Handling group communication is a key requirement for numerous applications

that have one source sends the same information concurrently to multiple destinations.

Finding a route from a source to a group of destinations is referred as multicast

routing. The objective of multicast routing is to find a tree that either has a minimum

total cost, which called the Steiner tree or has a minimum cost for every path from

source to each destination, which is called shortest path tree. With the rapid evolution

of real time and multimedia applications like audio/video conferencing, interactive

distributed games and real time remote control system, certain quality of services,

QoS, need to be guaranteed in underlying network. Multicast routing algorithms

should support the required QoS. In this thesis we consider two important QoS

parameters that need to be guaranteed in order to support the real time and multimedia

applications. Firstly, we consider the delay parameter where the data sent from source

need to reach destinations within a certain time limit. The problem is formulated as

delay constrained shortest path problem which is known to be NP-Complete. A new

heuristic algorithm, called DCSP, is proposed and discussed in depth with the

flowcharts and pseudo codes of its main subroutines. Large number of simulation

experiments have been done to analyze the performance of our new algorithm

compared to other previous algorithms. Secondly, in addition to the delay constraint,

we add the delay variation constraint. The delay variation constraint is a bound on the

delay difference between any two destinations. The problem is formulated as shortest

path routing under delay and delay variation constraints which is also know to be

NP-Complete. A new heuristic algorithm, called DVCSP, is proposed with in depth

discussion and analysis. The performance of the new algorithm is investigated by

simulating real time networks.

iv

Table of Contents

ACKNOWLEDGMENTS..….………………………………………….…………i

ABSTRACT…..……………………………………….………….……………… ii

Chapter 1 : Background……………………………………………..1

1.1. Multicast Group…..….………………………………………….…………..1

1.2. Multicast Routing…..……………………………………….………….……2

1.3. Multicast Routing in Real Time Applications………………………………3

1.4. Thesis Objective…………………………………………………………….4

1.5. The Thesis Organization………………………………………….…………4

Chapter 2 : Previous Work in Multicast Routing Problems………5

2.1 Introduction………………………………………………………………….5

2.2 Shortest Path Tree Problem………………………………………………….5

2.2.1 Unconstrained Shortest Path Problem………………………………….5

2.2.2 Constrained Shortest Path Problem…………………………………….6

2.3 Steiner Tree Problem………………………………………………………...7

2.3.1 Unconstrained Steiner Tree Problem………………………..………….7

2.3.2 Constrained Steiner Tree Problem…………………………..………….7

2.3.2.1 Centralized Constrained Steiner Tree Problem……………………7

2.3.2.2 Distributed Constrained Steiner Tree Problem……………………9

2.4 Other Constrained in Multicast Routing Problems…………………………10

2.4.1 Multicast Routing with Bandwidth and Delay Constraints……………10

2.4.2 Multicast Routing with Delay and Delay Variation constraints……….10

2.4.3 Multicast Routing with Degree Constraints……………………………11

2.5 Other Multicasting and Real Time Problems……………………………….11

2.5.1 Multicast Routing in ATM Networks………………………………….11

2.5.2 Dynamic Multicast Routing……………………………………………12

2.5.2.1 Unconstrained Dynamic Multicast Routing………………………12

2.5.2.2 Constrained Dynamic Multicast Routing…………………………13

2.5.3 Constrained Unicasting and Broadcasting…………………………….13

2.6 Other Survey Work…………………………………………………………14

2.7 Conclusion………………………………………………………………….14

v

Chapter 3 : Proposed Delay-Constrained Shor test Path Algor ithm

(DCSP).……………………………………………………………….15

3.1 Introduction…………………………………………………………………15

3.2 Definitions…………………………………………………………………..15

3.3 Problem Formulation………………………………………………………..18

3.4 The Delay Constrained Shortest Path Algorithm……………………………20

3.4.1 Main Idea of the Algorithm…………………………………………….20

3.4.2 DCSP Heuristic Algorithm………………………………………….….21

3.4.3 Getting the Optimal Solution form the Heuristic Algorithm…..………24

3.4.4 Main Subroutines of the Algorithm…………………………………….24

3.5 Correctness and Complexity Analysis of the algorithm…………………….28

3.5.1 Algorithm Correctness and Termination………………………………28

3.5.2 Algorithm Complexity…………………………………………………29

3.6 Conclusion………………………………………………………………….30

Chapter 4 : Per formance Analysis of the Proposed DCSP

Algor ithm.…………………………………………………………….31

4.1 Introduction…………………………………………………………………31

4.2 Random Graph Generator…………………………………………………..31

4.3 Simulated Algorithms………………………………………………………32

4.4 The Effect of Changing Network Size on DCSP Algorithm………………..34

4.5 The Effect of Changing Multicast Group Size on DCSP Algorithm……….38

4.6 The Effect of Changing Average Node Degree on DCSP Algorithm………41

4.7 The Effect of Changing Delay Constraint on DCSP Algorithm……………44

4.8 The Effect of Changing Parameter K on DCSP Algorithm…………………48

4.9 Conclusion..…………………………………………………………………52

Chapter 5 : Proposed Shor test Path Algor ithm with Delay and

Delay Var iation Constraints (DVCSP)……………………... ……..53

5.1 Introduction…………………………………………………………………53

5.2 Problem Formulation……………………………………………………….54

5.3 The Delay and Delay Variation Constrained Shortest Path Algorithm

(DVCSP)…………………………………………………………………...55

5.3.1 Phase I: The Delay Constraint Phase………………………………….55

vi

5.3.2 Phase II: The Delay Variation Constraint Phase………….…………...61

5.4 Analysis and Complexity of DVCSP Algorithm……………………………67

5.5 Conclusion…………………………………………………………………..70

Chapter 6 : Per formance Analysis of the Proposed DVCSP

Algor ithm……………………………………. ……………………….71

6.1 Introduction…………………………………………………………………..71

6.2 Simulated Algorithms..………………………………………………………71

6.3 Performance Factors…………………………………………………………72

6.3.1 Failure Rate…………………………………………………………….72

6.3.2 Average Cost per Path………………………………………………….72

6.4 The Effect of Changing Delay Variation on DVCSP Algorithm……………73

6.4.1 Failure Rate…………………………………………………………….73

6.4.2 Average Cost per Path………………………………………………….75

6.5 The Effect of Changing Multicast Group Size on DVCSP Algorithm……...78

6.5.1 Failure Rate…………………………………………………………….78

6.5.2 Average Cost per Path………………………………………………….81

6.6 The Effect of Changing Network Size on DVCSP Algorithm………………83

6.6.1 Failure Rate…………………………………………………………….83

6.6.2 Average Cost per Path………………………………………………….85

6.7 Conclusion…………………………………………………………………..86

Chapter 7 : Conclusion and suggestions for Future Work………..87

7.1 Conclusion………………………………………………………………….87

7.2 Suggestions for Future Work………………………………………………88

References…………….……………………………………………...90

Appendix A : Pseudo Code of DCSP Algor ithm…………………..94

Appendix B : Pseudo Code of DVCSP Algor ithm…………………98

1

Chapter 1

Background

1.1 Multicast Group

Multipoint communication is one of the oldest forms of communication among

humans. It has been long recognized that communicating a message to multiple

recipients simultaneously is a very efficient method of getting the message across.

Whether the message is delivered in the form of a smoke signal, political speech,

religious sermon, town-hall meeting or a classroom lecture, the scalability of

multipoint communication is apparent. In the early days of communication, both one-

to-one and multipoint communication were possible. Telephone and telegram

technologies allowed point-to-point communication while radio and television

technologies allowed multipoint communication. At this time, multipoint

communication was analogous to broadcasting. Nowadays, with the recent advance in

communication and the new applications like distributed database systems, remote

control and distributed computing, a need for multicasting is apparent. Multicasting is

a special case of broadcasting, where instead of sending data to all the recipients, data

is sent to a selected multicast group. Multicast group always changed dynamically

where new member can enter the group at any time and also any old member can exit

from the group. When data is sent by any node, member or non-member of multicast

group, all the members of the multicast group should receive it.

2

1.2 Multicast Routing

Sending data from source node to destination node in point-to-point

communication requires that the source setups a route to the destination and then

sends the data along that route. The route could be a direct one or it could use some

intermediate nodes, this process is called routing. Sending data from one sender to

multiple destinations either for broadcasting or multicasting can be achieved by using

multiple point-to-point communication, i.e. sending data to each destination

individually by setting a route to each destination. But this would be very inefficient

and the utilization of the links between source and destinations will be very low since

the same packet could be sent over the same link more than one time which gives

inappropriate overhead of the network links. Multicast routing refers to the

construction of a tree rooted at the source and spanning all destinations. Sending data

on such a tree will be performed such that exactly one copy of a certain packet will

traverse any link in the multicast tree. For any source and any group of destinations

there may be a large number of such a tree. Choosing the best tree that can perform

routing is a requirement for any application that needs multicasting. The best tree can

be considered to be the tree that the sum of its path’s cost is minimum, this is called

Steiner tree. However, for some applications the best tree may be considered as the

one with the lowest possible cost for each destination individually, this is called

shortest path tree. In Fig. 1.1, the difference between two kinds of multicast tree is

apparent while Steiner Tree has less total cost, it has higher average cost per

destination.

DB DB4

3 EC

A

5

6

2

4

3 EC

A

5

6

4

(a) Shortest Path Tree. Total Cost=18,

Average Path Length = 9

(b) Minimum Steiner Tree. Total Cost=12,

Average Path Length=11

Fig. 1.1. Comparison of a shortest path tree and minimum Steiner tree for the same

multicast group and the same multicast source. The number assigned to each link

represents the link cost. The multicast group G = { D, E} node A is the multicast source

3

1.3 Multicast Routing in Real-Time Applications

With the rapid growth of the network and computer technologies and the

appearance of new applications like multimedia applications, audio/video

conferencing and real-time applications, the concept of finding the best route is

changed. Certain quality of services, QoS, should be guaranteed on the selected

multicast tree. An example of QoS is the delay, the data should be sent from a source

to each destination within a certain delay limit. So, the best multicast tree should be

either delay constrained Steiner tree or delay constrained shortest path tree. Delay

constrained Steiner tree is the tree that has the minimum total cost of its links given

that each path from source to any destination does not violate the delay constraint.

Delay constrained shortest path tree is the tree that has minimum cost path from the

source to each destination given that each path from source to any destination does

not violate the delay constraint. It is apparent that delay constrained trees have higher

costs than unconstrained trees, the difference on the cost is considered to be paid for

the QoS. Other QoS is also required and may affect the resulted tree such as the delay

variation where the resulted tree should be constructed given that the difference in the

delay between any two destination should be less than a certain delay variation limit.

Although researchers have been studied variations of the multicast routing

problem in communication networks for many years, multicasting was not deployed

over wide area networks until March 1992 [1]. At this date, meeting of the Internet

Engineering Task Force (IETF) in San Diego, live audio from several sessions of the

meeting was audiocast using multicast packet transmission from the IETF site over

the internet to participants at 20 sites on three continents spanning 16 time zones. This

experiment was not only the first sizeable audio multicast over a packet network, but

also significant for the size of IP network topology itself.

4

1.4 Thesis Objective

The work in this thesis is motivated by the need for new algorithms for

multicast routing that can guarantee certain QoS parameters. Two main QoS are

considered in the thesis, the delay and delay variation between all participants. Two

new heuristic algorithms are proposed. The first one for the problem of delay

constrained shortest path tree. The other for the shortest path tree under delay and

delay variation constraints.

1.5 The Thesis Organization

This thesis is organized as follows:

Chapter 1 presents a general introduction and the background of multicast group

and multicast routing.

Chapter 2 contains an exhaustive survey of the problems related to multicast

routing under constraints and its proposed solutions so far.

Chapter 3 contains the proposed algorithm for solving the problem of delay

constrained shortest path tree associated with the proof of its complexity and

correctness.

Chapter 4 presents the performance analysis of the proposed algorithm in chapter 3

by comparing it with other algorithms via large number of simulation experiments.

Chapter 5 contains the proposed algorithm for solving the shortest path problem

under delay and delay variation constraints associated with the proof of its

complexity.

Chapter 6 presents the performance analysis of the proposed algorithm in chapter 5

by comparing it with other algorithms via large number of simulation experiments.

Chapter 7 contains the thesis conclusion and suggestions for future work in the

area of multicast routing.

Appendix A contains the pseudo code of the proposed algorithm for delay

constrained shortest path tree presented in chapter 3.

Appendix B contains the pseudo code of the proposed algorithm for delay and

delay variation constrained shortest path tree presented in chapter 5.

5

Chapter 2

Previous Work in Multicast Routing

Problems

2.1 Introduction

In this chapter, a survey of the previous work in different multicast routing

problems is presented. In section 2.2, the work of shortest path tree and delay

constrained shortest path tree is surveyed. The work of Steiner tree and delay

constrained Steiner tree is shown in section 2.3. In Section 2.4, we summarize the

work of multicast routing under other constraints like bandwidth, delay variation and

degree constrains. In section 2.5, the work in other areas related to multicast routing

like dynamic routing and ATM networks is surveyed. The special work that is

dedicated to surveying multicast problems is presented in section 2.6. Finally, the

chapter is concluded in section 2.7.

2.2 Shortest Path Tree Problem

2.2.1 Unconstrained Shor test Path Problem

The objective of shortest path tree problem is to minimize the cost of each path

from the source to each destination individually. In other words, shortest path tree

tends to minimize the average cost per path. There are two old and well-known

algorithms for constructing shortest path tree, Bellman-Ford algorithm [2] and

Dijkstra algorithm [3]. The two algorithms compute the optimal solution in

6

polynomial time execution. Bellman-Ford is O(N3) where N is the number of nodes in

the network, while Dijkstra is O(N2).

A more recent algorithm for this problem is the reverse path forwarding (RBF)

algorithm mentioned in [4]. In RBF, each packet is forwarded from the source to the

receivers over the shortest path from the receivers back to source. RBF is optimal only

in the case of symmetric networks, Where the cost of the link between any two nodes

u, v is the same cost as the link between v, u.

Bellman-Ford, Dijkstra and RBF algorithms implement shortest-path

broadcasting. They can be used to carry a multicast packet to all links in the network,

relying on host address filters to protect the hosts from receiving unwanted multicasts.

In a small network with infrequent multicasting, this may be an acceptable approach.

However, in the case of large networks, it is desirable to conserve network and router

resources by sending multicast packets only where they are wanted. For this purpose,

Deering et al [5] generalized RBF algorithm to the multicast case by presenting the

truncated reverse path broadcasting (TRPB) algorithm and the reverse path

multicasting (RPM) algorithm RBF, TRPB and RPM are distributed algorithms that

rely on limited information at each node in the network.

2.2.2 Constrained Shor test Path Problem

It was only recently that a research was done on adding delay constraint to the

shortest path problem. This research was motivated by the existence of multimedia

and real-time applications. By adding the delay constraint, the problem of finding the

required tree became an NP-Complete problem [6]. Widyono [7] presented an optimal

algorithm of this problem based on Bellman-Ford algorithm [2] called constrained

Bellman-Ford (CBF). Due to its optimality, the running time of CBF grows

exponentially with the size of the network and hence it is not used practically.

Widyono just proposed CBF to be used as a basis for several delay constrained

minimum Steiner tree heuristics presented in the next section.

Sun and Langendorefer [8] proposed a heuristic algorithm for delay constrained

shortest path tree based on Dijkstra algorithm [3] called constrained Dijkstra

algorithm (CDKS). CDKS first run Dijkstra algorithm to find the shortest path tree in

terms of link’s cost. If the resulted tree satisfied the delay constraint, then CDKS gets

the optimal tree, otherwise, CDKS runs Dijkstra algorithm again but in terms of link’s

delay. Finally, CDKS combines the two resulting trees by canceling the links from the

7

first tree that do not satisfy delay constraint and replacing them by the links from the

second tree. CDKS has a worst time complexity O(N2), since it runs Dijkstra

algorithm twice which is dominant on the process of combining the two trees.

Finally, a distributed algorithm to get the shortest path delay tree has been

proposed by Wi and Choi [9].

2.3 Steiner Tree Problem

2.3.1 Unconstrained Steiner Tree Problem

The objective of Steiner tree problem is to minimize the total cost of the

multicast tree. Minimum Steiner tree is known to be an NP-Complete problem [10].

If the multicast group contains all the nodes in the network then Steiner tree problem

is reduced to be minimum spanning tree problem which can be solved in polynomial

time O(N2). Because of the exponential time of finding the optimal Steiner tree for

multicast problem, several heuristics have been introduced to get near optimal

solution. An exhaustive survey of these heuristics can be found in [11,12]. The most

famous heuristic is the one proposed in [13] and it is called KMB algorithm. More

recent heuristics can be found in Widyono [7] where he proposed four different

heuristics for delay constrained Steiner tree problem.

2.3.2 Constrained Steiner Tree Problem

With the rapid evolution of multimedia and real-time applications a delay

constraint is added to the unconstrained problem of Steiner tree. The problem of

delay constrained Steiner tree is NP-Complete [6] and it was first formulated by

Kompella et al [14,15]. Due to the large number of heuristic algorithms that proposed

in this area, the algorithms may be divided into centralized algorithms where all the

information about network topology are kept in the source node and distributed

algorithms where only limited information are needed to be kept in each node.

2.3.2.1 Centralized Constrained Steiner Tree Problem

Kompella et al [14,15] had proposed two heuristic algorithms to get near optimal

multicast tree. The heuristics had a polynomial time execution with complexity

8

O(�N3) where � was the delay constraint. The main drawback of these heuristics is

that they considered that the delay constraint should be an integer value to assure

polynomial time execution. If it was necessary for delay constraint to take noninteger

value, Kompella et al proposed to multiply fractional values to get integer values. This

proposal also has a main drawback that if the fraction is too small, multiplying it to

get integer values will make the delay constraint too high and hence affect the

complexity of the algorithm which depends on the delay constraint.

An optimal algorithm for delay constrained Steiner tree problem had been

proposed by Noronha and Tobagi [16]. This algorithm was based on integer

programming. Due to its optimality, the algorithm had an exponential time execution,

so, it was only useful as a reference to evaluate different heuristic algorithms for delay

constrained Steiner tree problem.

Four different heuristic algorithms were proposed by Widyono [7]. The four

algorithms were considered as counterparts of the four algorithms that he proposed to

solve unconstrained Steiner tree problem. Widyono used CBF, the algorithm he

proposed, as the base for his new heuristics. The first heuristic called constrained

independent paths (CIP) which had a complexity O(‘CBF’). The second one called

constrained minimum incremental cost (CMIC) and had a complexity O(M O(‘CBF’))

where M is the number of members in the multicast group. The third heuristic was

constrained adaptive routing (CAO) and had the same complexity as CMIC. The last

heuristic called constrained hierarchical adaptive routing (CHAO) and had a

complexity O(N3). Since the first three algorithms depended mainly on the complexity

of CBF, so, they had also exponential time execution.

Another heuristic algorithm was proposed by Zhu et al in [17] and Parsa et al

in [18], the algorithm was called bounded shortest multicast algorithm (BSMA).

BSMA had two main phases, initial phase and improvement phase. In initial phase,

BSMA constructed an initial tree with the minimum delay from the source to all

destinations. In improvement phase, BSMA iteratively minimized the cost of the tree

while always satisfying the delay bounds. To guarantee that a feasible solution was

found, the initial tree was the minimum delay tree, which was constructed using

Dijkstra shortest path algorithm. BSMA used the Kth shortest path algorithm in its

improvement phase to replace the worst edge with a better one dependent on the

number K. The complexity of BSMA is O(K N3 log N). In case of large networks, K

may be very large and it may be difficult to achieve acceptable running time.

9

Finally, Sun and Langendorefer [19] had proposed a heuristic algorithm that

followed the idea of the famous heuristic KMB for unconstrained Steiner tree, so, they

called their algorithm constrained KMB (CKMB). CKMB used CDKS [8] as a key

component and had a complexity of O(MN2).

2.3.2.2 Distributed Constrained Steiner Tree Problem

All the above algorithms are centralized where each of them needs that the

source node has a full knowledge about the network topology. Also, the source node

should do all the computations. This may be accepted for a certain size of networks,

but for very large networks with dense edges, it will be difficult for any node to have

all the information required to do routing. For this reason a set of distributed

algorithms that require a limited information kept at each node are proposed.

The first distributed heuristic algorithms had been proposed by Kompella et al

[20] where they proposed two algorithms based on the centralized algorithms they had

proposed in [14,15]. The two algorithms had a worst case message complexity O(N3).

Parsa [21] had proposed a new heuristic called distributed constrained multicast

algorithm (DCMA). DCMA started first by constructing a delay-bounded tree

spanning the source and all destinations and then rearranging the delay-bounded tree

to minimize the cost while satisfying the delay constraint. The rearrangement process

involved only the nodes on the multicast tree and a selected set of off-tree nodes

whose inclusion in the tree lowered the cost of the tree.

Another distributed heuristic algorithm is proposed by Im and Choi [22], they

called the algorithm distributed delay constrained multicast tree (DDCMT) and it had

a worst case message complexity O(N2).

The most recent heuristic algorithm had been proposed by Jia [23]. The basic

idea of that algorithm was as follows. The construction of a routing tree started with a

tree containing only source node. A destination in multicast group, which was the

closest to the tree, was selected. The shortest path from the tree to this destination was

added into the tree. By adding a path to a tree, all nodes on the path were included

into the tree. Then the next destination, which was the closest to the tree under the

delay constraint was selected and the shortest path from the tree to it was added to the

tree. At each step, an unselected destination, which was the closest to the tree under

the delay constraint was added to the tree. This operation repeated until all nodes in

multicast group were in the tree. This algorithm was the best one in terms of the worst

10

case message complexity where it just needed 2M messages to finish constructing the

tree. However, a major drawback of this algorithm was that it assumed that for each

two different links in the network e1, e2 if the cost of e1 was higher than the cost of e2,

then the delay of e1 must be higher than the delay of e2. Under this assumption, the

least cost path between any two nodes was always the least delay path between them.

2.4 Other Constraints in Multicast Routing Problem

In this section, we are going to survey some work that were done in multicast

routing under constraints other than delay

2.4.1 Multicast Routing with Bandwidth and Delay Constraints

Bandwidth constraint was added as QoS parameter besides delay constraint by

Lee et al [24] where they had investigated the problem of minimum cost Steiner tree

with delay and bandwidth constraints. They first removed the links that violate the

bandwidth constraint and then run an algorithm which was similar to the one proposed

by Kompella et al [14,15]. The algorithm had a complexity of O(N2) but it suffered

from the same problems that appeared in the algorithms [14,15] and described in the

above section.

2.4.2 Multicast Routing with Delay and Delay Var iation Constraints

Rouskas and Baldine [25] had studied the problem of constructing multicast tree

subject to both an end-to-end delay constraint and a delay variation constraint. They

defined the delay variation constraint as the maximum difference that can be tolerated

between the end-to-end delays along the paths from the source to any two receivers.

The authors did not mention the cost factor, their aim was only to find a multicast tree

that satisfied both constraints of delay and delay variation. They proved that finding

such a tree was an NP-Complete problem. The algorithm they proposed has a worst

time complexity O(KLMN4) where K and L are two parameters that can be adjusted to

do a balance between the quality and the time consuming of the algorithm. The

algorithm did not guarantee finding a feasible tree if one exists.

Haberman and Rouskas [26] and then Haberman [27] had refined the previous

algorithm by adding the cost factor. The new problem became finding the minimum

11

cost Steiner tree that satisfied delay and delay variation constraints. They also proved

that this problem was an NP-Complete problem. The algorithm had the same

complexity as previous one and also it did not guarantee finding a feasible tree if one

exists.

2.4.3 Multicast Routing with Degree Constraint

Research on the degree-constrained multicast routing problem was motivated by

the fact that current multicast high speed switches have limited copy capability. Even

when the switches allowed multicasting to an arbitrary number of destinations, there

were advantages in limiting the number of copies made by each switch. For example,

some packet-switch architectures implemented multicasting by circulating copies of

packet through the switch fabric multiple times. Thus, keeping the degree small

reduced the number of paths needed through the switch fabric.

The first heuristic algorithm on the problem of minimum cost Steiner tree with

degree constraint was proposed by Tode et al [28]. In their algorithm they assumed

that all the nodes in the network had the same degree constraint.

Bauer and Verma [29] and Bauer [30] had investigated the same problem but

with different degree constraint for each node. They proposed eight different

heuristics to solve the problem of minimum cost Steiner tree with degree constraint.

Six of their heuristics were based on six unconstrained heuristics for unconstrained

Steiner tree problem while the remaining two were specialized for the degree

constrained problem. In [30], Bauer had proposed another two distributed heuristic

algorithms based on unconstrained distributed heuristic algorithms for Steiner tree

problem.

2.5 Other Multicasting and Real Time Problems

2.5.1 Multicast Routing in ATM Networks

The problem of multicast routing for virtual paths in ATM networks had been

studied by Ammar et al [31]. They had formulated the problem as an integer

programming problem and they had proposed heuristic solution based on the

transshipment simplex algorithm. The cost of each link contained the bandwidth cost,

switching cost and the connection establishment cost. They had studied different types

12

of virtual paths for symmetric and asymmetric networks. Also, they had proposed and

studied a new type of virtual paths called virtual path with intermediate exit where a

node that performed virtual path switching can copy the switched packets for local

information. A numerical example consisting of 16 nodes interconnected by an

irregular network was used to evaluate their heuristic.

2.5.2 Dynamic Multicast Routing

Another problem that is very important in multicast routing is the dynamic

nature of the multicast group. At any time, any member of the multicast group may

leave the group and also a new member may join the group. Adding a new member or

deleting an old member affects the multicast tree. Most of the multicast routing

algorithms described above do not take care of this problem. So, in the process of

adding or deleting, the algorithm may need to be run again for the new group. Some

heuristic algorithms had been proposed to avoid rerouting an entire multicast tree

whenever a node joined or left a multicast group.

2.5.2.1 Unconstrained Dynamic Multicast Routing

The problem of dynamic multicast groups was first presented by Waxman [32]

where he had proposed a heuristic for this problem called GREEDY heuristic.

GREEDY perturbed the existing tree as little as possible. For each add request from a

new node, it connected the new member to the nearest tree node using the shortest

path. For each delete request from a current member, GREEDY deleted only leaf

nodes. If this deletion created a nonmember leaf it also deleted the new leaf. This

process was continued until no nonmember leaves remains.

Another heuristic had been proposed by Bauer and Verma [33], the heuristic

was called ARIES. ARIES was like GREEDY where it did the minimum necessary

modifications to the existing tree for each add and delete request. For each add

request, ARIES joined the new member to the existing tree by its shortest path to the

tree. For each delete request, ARIES deleted the node only if it is a leaf. However,

ARIES always monitored the damage happened in the multicast tree due to

subsequent add and delete requests and updated a factor called degradation factor that

measured the damage in the tree. If the degradation factor exceeded a certain limit,

ARIES reconstructed the multicast tree from the beginning.

13

2.5.2.2 Constrained Dynamic Multicast Routing

GREEDY and ARIES did not take into consideration the real time application

and the delay constraint requirement that may be needed in multicast tree. The first

heuristic that took this constraint into account was the WAVE heuristic proposed by

Biersack and Nonnenmacher [34]. In WAVE, when a new member wanted to join an

existing tree, it sent an add request to the source node. The source node propagated

the request along the tree to all the nodes. When a node on the tree received the

request, it will send a response message to the new member. The response message

contained information about the cost and delay that the new node will experience if it

is joined by this node. The new member collected all the response messages and chose

the best one of them. WAVE had some drawbacks in that the number of responses

could be very large and that any node wished to join the group should contact the

source node and this may make a traffic concentration around the source node.

WAVE was only evaluated in comparison of static algorithms.

Sun and Langendorefer [35] had proposed a distributed algorithm for delay

constrained dynamic multicast routing problem. In their algorithm, they had defined

two modes for running the algorithm; a FAST mode to make route computation very

fast and a SLOW mode to get low cost tree.

Finally, Goel and Munagala [36] had proposed an algorithm which can be

considered as an extension of GREEDY algorithm, they called their algorithm delay

sensitive greedy (DSG). In DSG, two parameters α and β were accepted where

1 < α < β. The basic idea behind the DSG algorithm was quite simple. When an add

request arrived, the requesting node is first connected to the node in multicast tree

which is the closest to it just like GREEDY algorithm. As soon as it happened that the

path between the source and the new node via multicast tree was larger than the path

between the source and new node via the network by factor β. The new node was

rerouted again to obey the constraint that the new path via the multicast tree was less

than the path via network by factor α.

2.5.3 Constrained Unicasting and Broadcasting

Two other problems had been defined by Salama et al in [37,38] as a general

case of multicast routing with delay constraint. In [37], a delay constrained unicast

problem was proposed with a proof that it was an NP-Complete problem. A heuristic

14

algorithm was also proposed for this problem. In [38], Salame et al repeated their

work but in the case of broadcasting.

2.6 Other Survey work

A special work in surveying and evaluating different algorithms had been done

by Noronha and Tobagi [39]. In their survey they evaluated two unconstrained

shortest path tree algorithms and one unconstrained Steiner tree algorithm. They

evaluate these algorithms from the point of view of its suitability to multimedia

streams and real time applications. They had used the optimal algorithm they

proposed in [16] as a benchmark of other algorithms.

A more recent evaluation had been done by Salama et al [40] where they

evaluated three unconstrained shortest path tree algorithms with one unconstrained

Steiner tree algorithm. Also, they evaluated one constrained shortest path tree

algorithm with three constrained Steiner tree algorithm.

An exhaustive survey on problems related to multicasting like multicast routing,

reliability, scalability and ATM multicasting had been done by Diot et al [41].

2.7 Conclusion

In this chapter, we classify multicast routing problems into different categories

and present the work done in each category. The importance of multicast routing for

real time applications is apparent from the number of proposed algorithms presented.

In this thesis, we focus on two categories that we believe that they got less

importance than what they deserve. The delay constrained shortest path tree is

presented in chapter 3 with a proposed heuristic algorithm for it. Shortest path tree

with delay and delay variation constraints problem is formulated and investigated in

chapter 5 with a proposed heuristic.

15

Chapter 3

Proposed Delay-Constrained Shor test

Path Algor ithm (DCSP)

3.1 Introduction

The need of an algorithm to find a delay constrained shortest path tree for

multicast routing is previously discussed. In this chapter, a new algorithm for this

problem is proposed and discussed in depth. First, in section 3.2 we present some

definitions that will be used in the rest of this thesis. The problem formulation is done

in section 3.3. In Section 3.4, the description of the proposed algorithm is presented

with the flowcharts and the discussion of its main subroutines. The complexity and

correctness of the algorithm are proved in section 3.5. Finally, the chapter is

concluded in section 3.6.

3.2 Definitions

• The communication network is modeled as a directed, simple, connected

weighted graph G(V,E), where V is the set of nodes and E is the set of direct

links. Each link e in E connects two nodes u, v in V and represented as e(u,v)

and is considered as an outgoing link from node u and an incoming link of

node v. Two non-negative real value functions are associated with each link,

16

�∈ ),(),( ``` EVGvve ki

the cost function Cost(u,v) represents the utilization of the link e(u,v) and the

delay function Delay(u,v) represents the delay that packet experiences

through passing link e(u,v) including switching, queuing, transmission and

propagation delays. Links are asymmetrical, the existence of a link e(u,v)

does not guarantee the existence of a link e(v,u). Similarly, Cost(u,v) and

Delay(u,v) do not necessarily equal to Cost(v,u) and Delay(v,u) respectively.

• The path between any two nodes u, v, represented as Path(u,v) is a sequence

of links that start with an outgoing link from node u and end with an

incoming link in node v where each node in the path is visited at most one

time. The cost of a path Path(u,v) is defined as the sum of the costs of its

links.

• Similarly, the delay of a path Path(u,v) is defined as the sum of the delays of

its links.

• Multicast group M ⊆ V is a set of nodes participating in the same network

activity and is identified by a unique group address. A multicast source s ∈ V

is the source of multicast group M and s may or may not be a member of M.

• A subgraph G`(V`,E`) where ({ s} ∪ M) ⊆ V` ⊆ V and E` ⊆ E is a graph

used to transmit data packets from source s to multicast group M. G` has no

cycles and all the leaves should be members of multicast group M. Also, in

G` there is no incoming edge to the multicast source s. The cost of G` is the

sum of the costs of all links that constituting G`(V`,E`)

Cost( G`(V`, E` ) ) = Cost ( vi , vk )

• Similarly, The delay of G` is the sum of the delays of all links that

constituting G`(V`,E`)

Delay( G`(V`, E` ) ) = Delay ( vi , vk )

�∈

=),(),(

),()),((vuPathvve

ki

ki

vvDelayvuPathDelay

�∈ ),(),( ``` EVGvve ki

�∈

=),(),(

),()),((vuPathvve

ki

ki

vvCostvuPathCost

17

• The shortest path cost tree that is used for multicasting is a tree rooted at

source node s and span all the multicast members such that the cost of a path

between s and any destination is the minimum cost among all possible paths

that starts from s and ends at that destination.

• The shortest path delay tree that is used for multicasting is a tree rooted at

source node s and span all the multicast members such that the delay of a

path between s and any destination is the minimum delay among all possible

paths that starts from s and ends at that destination.

• The minimum cost Steiner tree that is used for multicasting is a tree rooted

at source node s and span all the multicast members such that the total cost of

the links that constitute it is minimum.

Where T(s,M) is a tree rooted at s and spanning all nodes in M.

• The degree d of any node u is an integer number represents the number of

outgoing links from that node. The leaf nodes in any tree have zero degree.

• The delay constraint � is a real value applied in real time applications,

where it can be considered as a deadline in terms of delay. All data should be

delivered from the source to destination without violating this constraint.

MvvsPathCostMinEVGvsPath

∈∀∈

)),((),(),(

MvvsPathDelayMinEVGvsPath

∈∀∈

)),((),(),(

)),((),(),(

MsTCostMinEVGMsT ∈

MvvsPathDelay ∈∀∆<)),((

18

3.3 Problem Formulation

The subgraph G`(V`,E`) that connects the source node s with the multicast group

M can be constructed in several ways according to the objective of the problem.

Fig. 3.1 shows the most important five subgraphs G`. Fig 3.1(a) shows the original

graph G with |V| = 5, |E| = 7, V = { A, B, C, D, E} , M = { D, E} and s = { A} .

Fig. 3.1(b) shows the subgraph for the minimum cost Steiner tree, the subgraph is a

tree rooted at A such that Cost(G`(V`,E`)) is the minimum possible cost among all

possible permutations of V`, E` that has no cycle and all the leaves are in M. Fig 3.1(c)

shows the subgraph for shortest path cost tree that can be obtained by applying

Dijkstra algorithm on the cost of each link. The objective of this tree is to minimize

the cost of each path individually without taking care of the whole tree. For example,

the path ABD is the least cost path among all possible paths that can connect between

A and D. Fig. 3.1(d) is the same as Fig. 3.1(c) except that all operations is done on the

delay of each link not on the cost. So, the path ACBD is the least delay path among all

possible paths that connect A and D. Fig 3.1(e) shows the subgraph for the minimum

cost Steiner tree subject to a delay constraint � = 7. The subgraph is similar to that in

Fig. 3.1 (b) with the added constraint that Delay(Path(s,v)) < � for all v ∈ M. Finally,

Fig. 3.1(f) represents the subgraph that is similar to that in Fig. 3.1(c) with an

additional constraint like the constraint added to Fig. 3.1(e). This subgraph is the only

one that does not represent a tree, instead, it represents a direct acyclic graph rooted at

the source node. The path from node A to node D is ABD while the path from node A

to node E is ACBE. The existence of the paths AB and ACB can be justified as

follows: for node D, if we use AB then Cost(Path(A,D))=4 and Delay(Path(A,D))=5,

on the other hand, if we use ACB then Cost(Path(A,D))=7 and Delay(Path(A,D))=4.

Since, it is only sufficient to satisfy the delay constraint and the two ways (AB, ACB)

are satisfying the constraint, then, for node D, it is better to use the link AB since it

has a less cost than ACB. For node E, if we use AB then Cost(Path(A,E))=4 and

Delay(Path(A,E))=7, on the other hand, if we use ACB then Cost(Path(A,D))=7 and

Delay(Path(A,D))=6. Since, the use of link AB results in violating the delay constraint

so it is not a feasible solution and, for node E, we should use ACB. Combining the

best solution for each node individually results in putting the link AB and the links

ACB and hence the resulted DAG in Fig. 3.1(f).

19

Fig 3.1. Different kinds of possible subgraphs used for multicast routing

Source Node Destination Node

D(2,2) B

(5,2) EC

A

(4,1)

(2,3)

(1,1) (2,4)

(a) Original graph

(1,4)

D(2,2) B

E

A

(2,3)

(b) Steiner tree. Total cost=5, Avg, cost=4.5, Max. delay=9, Avg. delay =7

(1,4)

D(2,2) B

E

A

(2,3)

(2,4)

(c) Shortest path cost tree. Total cost=6, Avg. cost=4, Max. delay=7, Avg. delay=6

DB (2,2)

(5,2) EC

A

(4,1)

(1,1)

(d) Shortest path delay tree.

Total cost=12, Avg. cost=8,

Max. delay=4, Avg.

D(2,2) B

EC

A

(4,1)

(1,1) (2,4)

(e) Delay constrained Steiner tree. �=7. Total cost=9, Avg. cost=7, Max, Delay=6. Avg. delay=5

D(2,2) B

EC

A

(4,1)

(2,3)

(1,1) (2,4)

(f) Delay constrained shortest

path directed acyclic graph.

�=7. Total cost=11, Avg.

cost=5.5, Max, Delay=6. Avg.

delay=5.5

20

Now, the delay constrained shortest path problem can be formulated as follows:

Given a directed, simple, connected weighted graph G(V,E), multicast group M ⊆ V, a

multicast source node s ∈ V and a delay constraint �. Find a subgraph G`(V`,E`)

where ({s} ∪ M) ⊆ V` ⊆ V and E` ⊆ E that has no cycles and no incoming edge in the

source node s and all the leaves should be members of M. G` should satisfy the

following two conditions:

1- Minimum Cost(Path(s,v)) ∀ v ∈ M

2- Delay(Path(s,v)) < � ∀ v ∈ M

This problem is known to be NP-Complete[6]. So, it will reach a near optimal

solution in case of polynomial time complexity.

3.4 The Delay Constrained Shor test Path Algor ithm

The delay constrained shortest path algorithm, referred as DCSP, is a heuristic

algorithm to find near optimal subgraph for delay constrained shortest path problem.

DCSP shown in Fig.3.2 and described in appendix A, is based on flooding and it is a

centralized algorithm where it supposed that all the information about the network

topology is kept at the source node.

3.4.1 Main Idea of the Algor ithm

The algorithm starts by a token at the multicast source s. The token has three

fields, the first two fields are the cost and the delay that the token experienced so far.

The third field is an array that contains the timestamps of the nodes that the token

passed. DCSP initially generate a single token with zero cost and delay and the array

has no stamps, this empty token is put on the source node. DCSP is divided into

separate stages, at each stage the algorithm scan all the nodes and duplicate all the

tokens in each node to the neighbor nodes. After duplication, the original token that is

duplicated is to be killed. The maximum number of stages is limited by the maximum

possible path length which is N = |V|. At the first stage, only the token that placed at

the source node will be duplicated to its neighbor nodes. When a token duplicated

from node u to node v, the cost and delay field is increased by Cost(u,v) and

21

Delay(u,v) respectively. Also the timestamp of node v is added to the array of stamps

of the token.

Each node that belongs to the multicast group keeps track of one token called

winner token, this token is the best token that passed through this node during all

stages. The best token is defined as the token that has the least cost while satisfying

the delay constraint. Any token passed on a destination node (a node that belongs to a

multicast group) is compared by the winner token and if it has less cost, it takes the

place of the winner token.

The algorithm always keeps track with the number of tokens that are currently in

the system. If the token at node u is duplicated to d neighbors, then the number of

tokens increased by d-1, d for the new generated d tokens at the neighbors and –1 for

the token killed at node u.

The algorithm continues in generating and killing tokens till all the tokens are

killed and there is no remaining tokens in the system. At this time, all the winner

tokens from all destinations are collected, each with its path that can be deduced from

its array of timestamps. All the paths are combined together to generate a subgraph

which is the optimal one for each destination, this subgraph can take the form of a tree

or directed acyclic graph.

3.4.2 DCSP Heur istic Algor ithm

The main idea described in the previous subsection guarantees an optimal

solution since the tokens pass through all possible paths and each destination doing

enumeration of all the paths from source node s to it and then chooses the best. Due to

its optimality, the main idea may experience an excessive number of tokens, which

results in exponential time execution, this can be explained in the following example.

If we assume that every node has d neighbors, then initially the system will have one

token. At the first stage, the number of tokens will be d. At the second stage, each one

from the d tokens will be duplicated to another d nodes, so the number of tokens will

be d2. Again, each one from the d2 tokens will be duplicated to another d neighbors

and hence the number of tokens will be d3. At the nth stage the number of tokens will

be dn-1 which means that it grows exponentially.

To avoid the excessive increase of tokens in the network and exponential time

execution, and to guarantee polynomial time execution of the algorithm, we limit the

number of tokens that can be concurrently in any node by the number K. K is ranged

22

between 1 and N, where N = |V|, the number of nodes in the network. So, the

maximum number of tokens that can be in the network at the same time is KN tokens.

To achieve this, we consider four constraints that should be tested for any token T

that needs to be duplicated from node u to node v. If one of the four constrains is

satisfied, then the token will not be duplicated. The four constraints are:

1. The sum of token delay and Delay(u,v) will exceed the delay constraint �.

2. The token T visited the node v before.

3. There was a token T1 visited node v before and it is better than token T.

4. The node v has already K tokens and there is no room for the new token and

token T has the highest delay among all K+1 tokens.

Constraint 1 is a trivial one since if T is going to violate the delay constraint then

it will never be in the solution and there is no use to complete its trip. Constraint 2 is

also a trivial one since if token T visited node v before, so, it is going to make a loop

and it will never be in the subgraph since the resulted subgraph should be either a tree

or a directed acyclic graph. This constraint can be tested by using the timestamp array,

which kept with the token. So, node v looks at this array and finds whether it has a

timestamp in this token before or not.

Constraint 3 means that if we have a token T1 that passed through node v before

and T1 is better than T, then there is no need to duplicate T. This is obvious since any

result that will be generated from token T will be dominated by token T1. So, there is

no need to complete the trip of token T. This constraint is a complicated one and it

requires a special data structure to be kept in each node. First, we will explain how we

can favor a certain token on another one by saying that it is a better than the other. We

will define the two functions Cost(T) and Delay(T) where they represent the value of

the two fields: cost and delay that kept with token T. For any two tokens T, T1 there

are four cases according to the values of the two functions of cost and delay

1. Cost(T) < Cost(T1) and Delay(T) < Delay(T1). In this case we can say that

token T is better than token T1 since it has less cost and less delay.

2. Cost(T) > Cost(T1) and Delay(T) > Delay(T1). In this case we can say that

token T1 is better than token T since it has less cost and less delay.

3. Cost(T) < Cost(T1) and Delay(T) > Delay(T1). In this case we can not favor

any token on the other.

23

4. Cost(T) > Cost(T1) and Delay(T) < Delay(T1). In this case also we can not

favor any token on the other.

From the above four cases, we can say that, for any two tokens T and T1, token T

is said to be better than token T1 if and only if Cost(T)<Cost(T1) and

Delay(T)<Delay(T1).

To implement the third constraint, we will keep a list with each node called

history list with maximum size K. This list contains only the cost and the delay of the

best K tokens passed through this node so far where among these K tokens there is no

way to determine whether there is a token that is better than the other or not. The

history list is sorted in ascending order w.r.t Delay(T) and in descending order w.r.t

Cost(T) so that for any two consecutive tokens T, T1 kept in the history list, the

relation Delay(T) < Delay(T1) and Cost (T) > Cost (T1) must be hold. This relation is

the same as case four that does not favor any token on the other. When a new token T

is seeking to pass through any node, we look at the history list of that node and find

the appropriate location of token T according to Delay(T). This place will be located

between two tokens T1and T2 where Delay(T1) < Delay(T) < Delay(T2). Then we look

at Cost(T) which will be one of the following three cases:

1. Cost(T1) < Cost(T). In this case, T1 is considered to be better then T, since it

has less cost and less delay. So, there is no need to duplicate token T.

2. Cost(T2) > Cost(T). In this case, token T can be considered to be better than

token T2. So, token T will be duplicated and the history list is updated by

adding token T and deleting token T2.

3. Cost(T1) > Cost(T) > Cost(T2). In this case, we can not favor any token to

another, so, we will duplicate token T and add it to the history list.

The history list can contain only K elements. So, if we need more we will keep

track only with the least K tokens in terms of delay.

Till now, we have discussed the first three constraints to control the duplication

of tokens. These three constraints do not affect the optimality. In other words, with

these three constraints we still can get the optimal solution in exponential time.

The fourth constraint, the heuristic one, is the one that guarantees polynomial

time execution where we limit the number of tokens that can be concurrently in any

24

node by the number K. When a new token T is seeking to be duplicated in any node v

and it does not satisfy any one of the first three constraints, the node v checks whether

it has an empty room for the incoming token or not. If v has already K tokens, it has to

choose one victim from the K+1 tokens so as to keep the number of tokens as it is.

K+1 tokens represent the current K tokens in node v and the additional new incoming

token. According to our heuristic, we will choose the token that has the maximum

delay from all K+1 tokens to be killed. There are two main reasons that support this

heuristic. Firstly, the token with the maximum delay has the least probability to

continue its trip since it will soon violate the delay constraint. Secondly, we want to

make sure that our algorithm will find a solution if one exists. To achieve this, we

need to keep track with the node that has the least delay. So, choosing the victim as

the one with the maximum delay guarantees finding a solution even with K=1 as we

will describe later.

3.4.3 Getting the Optimal Solution from the Heur istic Algor ithm

The above heuristic algorithm can get the optimal result when K = ∞ which will

cancel the fourth constraint and keeps track only with the first three constraints, but

this will take an exponential time. Another method is to keep track with the number of

tokens that are lost due to the fourth constraint, we will call this number L. If for a

certain K, there is no losses due to the fourth constraint, i.e. L = 0, then we are sure

that this value of K is sufficient to get the optimal result. On the other side, if L > 0,

then there is no way to say whether the solution we get is optimal or not. It may be

that L > 0 and we get the optimal solution. So, to get the optimal solution, we will

increase K gradually till we obtain L = 0.

3.4.4 Main Subroutines of the Algor ithm

DCSP algorithm shown in Fig. 3.2 and described in appendix A.1, has five

inputs:

1. Graph G (V, E)

2. Source Node S

3. Multicast Group M

4. Delay Constraint ∆

5. Constant K, Maximum Number of tokens in any node.

25

Start

Insert an empty token in source

Fig. 3.2. The Flowchart for DCSP Algorithm

For each node u in V

For each Token T in node u

For each neighbor node v to node

Can_Duplicate

Duplicate_Token (T, u,

Node v ∈ M

Update the winner token for

Next neighbor

Next token T

Next node u

Delete the token T

The resulted subgraph is the union of all links that constitute the winner tokens of all nodes

End

Y

Y

No. of Tokens > 0

Y

N

N

N

26

The algorithm outputs a subgraph, which may be a tree or directed acyclic graph.

The subgraph contains all the links needed for routing data through a delay

constrained shortest path. DCSP has two main subroutines, the function

Can_Duplicate(T,u,v) which is given in Fig. 3.3 and in appendix A.2, and the

procedure Duplicate_Token(T,u,v) which is shown in Fig. 3.4 and in appendix A.3.

3.4.4.1 The function : Can_Duplicate (Token T, Node u, Node v)

This function has three inputs:

1- Token T

2- Node u that currently holds the token T

3- Node v that the token T needs to be duplicated in.

The function applies the four constraints discussed in section 3.4.2 and the output

is True if the token T can be duplicated from node u to node v, otherwise, the function

output is False.

3.4.4.2 The Procedure : Duplicate_Token (Token T, Node u, Node v)

This procedure is executed only if the function Can_Duplicate(T,u,v) returns true.

It has the same three inputs as the previous function. This procedure is responsible on

updating the cost and delay of the duplicated token T. It also puts the timestamp of

node v in token T and it increases the number of tokens in the system by one for the

new generated token.

27

Start

Node v puts a timestamp on

No. of tokens = No. of tokens +1

Cost(T) = Cost(T) + Cost(u,v)

Delay(T) = Delay(T) + Delay(u,v)

End

Fig. 3.4. The Flowchart for the procedure Duplicate_Token(T, u, v)

Start

Delete the token that has the maximum

delay from node v and from its history list

Delay(T) + Delay(u,v) >

Fig. 3.3. The Flowchart for the function Can_Duplicate(T, u, v)

Update the history list of node v by

inserting T and deleting all the tokens that

Return True

T visited node v before

Node v got a better token before

Node v has K tokens

T has the highest delay

among the K tokens

Return False

Y

Y

Y

Y

Y

N

N

N

N

N

28

3.5 Correctness and Complexity of the algor ithm

In this section, we present three lemmas to proof the correctness, termination and

complexity of DCSP algorithm.

3.5.1 Algor ithm Cor rectness and Termination

Lemma 3.1

DCSP algorithm always finds a solution if one exists and if DCSP fails to find a

feasible solution, then there is no other algorithm can find it.

Proof

The optimal solution for delay constrained shortest path multicasting

problem can be found by exhaustively examining all the paths from source node

s to each destination individually and select the best path for each one. In our

algorithm, if we did not put any constraints in duplicating the tokens, then the

tokens will increase exponentially and span all the possible paths in the network

as in flooding. So, we will have one token for each possible path and we can

choose the best token for each destination. So, without constraints the algorithm

can get the optimal solution.

The effect of the four constraints described in section 3.4.2 will be as

follows: Constraints 1, 2 and 3 tends to cancel the tokens (paths) that will not be

optimal in its early stages and hence reducing the complexity but without any

effect on the optimality. Constraint 4, which is the heuristic constraint, kills the

token with the maximum delay of K+1 tokens. This heuristic guarantees that we

will find a solution if one exists. Even with K=1, the least value of K, we will

have two tokens to choose one of them and we will cancel the one with

maximum delay while keeping the other with the least delay. This means that in

this extreme case we still can keep track with the least delay token (path) for

each node and we guarantee that this token will never be killed except if we got

another token with less delay.

So, in case of K=1 and in the worst case, DCSP algorithm is reduced to be

shortest path delay algorithm that get the result like the one in Fig. 3.1(c) which

29

can be got by Dijkstra algorithm. Since, if the shortest path delay algorithm can

not satisfy the delay constraint, then there is no other algorithm can satisfy it. So,

we can say the same about DCSP. When K is greater than one, DCSP keeps

track with the least delay token and another K-1 tokens to enhance the results.

So, DCSP still guarantee to find a solution.

Lemma 3.2

DCSP algorithm always terminated either by finding a solution or reporting

that there is no solution can be found for this problem

Proof

DCSP, as demonstrated in flowchart in Fig.3.2, starts by setting the

number of tokens in the system to one. The algorithm has a terminating

condition that all the tokens in the network are killed. This condition is tested at

every stage. Since, due to the second constraint, we guarantee that the token will

never make a loop. So, the maximum possible length of any token could be n

nodes and this is only for the token that generated at the first stage of the

algorithm and passed to all the nodes. For any other token that generated in stage

g, it will have a maximum possible length with n-g+1 nodes. So, the terminating

condition could be tested in the worst case n times then the algorithm will

terminate. If every destination has at least one token in it, then the algorithm

terminated by a feasible solution. If at least one destination did not receive any

token, then the algorithm terminated and reported failure to find a feasible

solution.

3.5.2 Algor ithm Complexity

Lemma 3.3

The worst case complexity of DCSP is O(K2N2), where K is an integer value

ranged from 1 to N and N = |V| the number of nodes in the Network.

Proof

The algorithm is continuously looping till all the tokens in the network

finishing their trips, and since the maximum length of any trip is bounded by the

30

number of nodes in the network N, then the algorithm will loop at most O(N)

times in duplicating tokens. For each time of duplication the algorithm checks

all the N nodes for existence of tokens, so checking nodes will be O(N2) . For

each node, we will process each token in it and since there will be at most K

tokens in each node then tokens will be processed O(KN2). For each token we

will test whether it can be duplicated or not for all neighbor nodes, so, if we

assume that the network has average node degree d, then token duplication will

be tested O(dKN2). If, at the worst case, all the tested tokens will be duplicated

and we insert the duplicated token in a sorted list with size K which can be

achieved in O(K) by insertion sort, then the whole algorithm can be executed in

O(dK2N2). But since we use real networks which always has a small node

degree, we can consider that d is a small constant number, so the complexity of

DCSP will be O(K2N 2).

3.6 Conclusion

In this chapter, we studied the problem of multicast routing for real time

applications in networks with asymmetric links. The problem is formulated as delay

constrained shortest path problem which is NP-Complete. A polynomial time heuristic

algorithm called DCSP is proposed with a full discussion of its main subroutines and

flowcharts. The correctness and complexity of the algorithm is proved. The algorithm

has a running time complexity O(K2N2) where K is a variable adjusted from 1 to N

and N is the number of nodes in the network. The variable K can be used to

compromise between the time complexity and the efficiency of the algorithm.

31

Chapter 4

Per formance Analysis of the Proposed

DCSP Algor ithm

4.1 Introduction

In this chapter we do a comprehensive analysis of DCSP algorithm and

comparing it with other algorithms and the optimal results. The chapter is started by

section 4.2 that describes the random graph generator we used to compare different

algorithms. In section 4.3, we present the simulated algorithms. In the following

sections from 4.4 to 4.8, large number of simulation experiments have been done to

investigate the effect of changing network size, group size, average node degree,

delay limit and the parameter K on different algorithms. The chapter is concluded in

section 4.9.

4.2 Random Graph Generator

To guarantee fair simulation results, we use the same graph generator [32] that

is used in all problems related to multicasting. N nodes are randomly distributed over

a rectangular area with size 2000 × 2000 where each node is placed at a location with

integer coordinates. The probability of edge existence between any two nodes u and v

can be calculated from the function:

32

Where d(u,v) is the distance between nodes u and v. L is the maximum distance

between any two nodes. α and β are two parameters used to adjust the degree of the

graph and the density of short and long edges. Table 4.1 contains the values of

parameters α and β used for all the experiments we have done.

If P(u,v) is greater than 0.5, then an edge existed between nodes u and v

otherwise, there is no edge between these two nodes. After calculating the above

function for each pair, the resulted graph does not necessary to be connected, so, we

add edges in random till we get a connected graph.

The cost of any edge e(u,v) equals to the distance d(u,v) and the delay of any

edge is a random value according to uniform distribution between 1 and 10. Finally,

for each algorithm to be correctly evaluated, we run it on 3000 different graphs with

same values of n, α, β and taking their average.

4.3 Simulated Algor ithms

The random graph generator described above is used to simulate and compare

the following:

1- The shortest path delay tree (LD) obtained by applying Dijkstra algorithm [3].

2- CDKS algorithm [8], designed for the delay constrained shortest path tree. It

first constructs the shortest path cost tree. Then, it looks for every destination

and tests it according to the delay constraint �. If the destination satisfies �,

then the shortest path cost for this destination will be in the resulted tree,

otherwise, it replaces the path for this destination from the shortest path delay

tree.

3- The proposed DCSP algorithm with three different values of the parameter K.

4- The optimal algorithm (OPT) that can be got from DCSP with large value of K.

���

����

� −=α

βL

vudvuP

),(exp),(

33

Table 4.1. Setting of parameters α and β for random graph generator

N d αααα ββββ

10 8 0.3 7.2

20 8 0.3 1.7

30 8 0.3 1.21

40 8 0.3 1.02

50 4 0.03 0.9

50 6 0.3 0.83

50 8 0.3 0.925

50 10 0.3 1.015

50 12 0.3 1.1

50 14 0.3 1.185

50 14 0.3 1.27

60 8 0.3 0.86

70 8 0.3 0.815

80 8 0.3 0.785

90 8 0.3 0.76

All these algorithms guarantee to find a solution if one exists, so, all of them has

the same failure rate. Any result is obtained by running 3000 different graph and

taking the average of the graphs that have a feasible solution. Failed graphs are

omitted from all calculations.

We consider five main parameters that can affect the results. The network size N

= |V|, multicast group size |M|, average node degree d, delay constraint � and the

parameter K for DCSP algorithm.

34

4.4 The Effect of Changing Network Size on DCSP Algor ithm

Figures from 4.1 to 4.6 investigate the effect of changing network size on the

average cost per path for the resulted subgraph. For the six Figures we set the average

degree of the network d = 8, while changing the network size from 10 nodes to 90

nodes.

In Figures 4.1, 4.2 and 4.3, we set the delay constraint � =20 while changing

multicast group size from 10% to 50% and to broadcasting. Also, in Figures 4.4, 4.5

and 4.6, we do the same except that the delay constraint � is set to 40.

It can be observed from the six Figures that the three lines for DCSP with K

= 10, DCSP with K = 20 and OPT are almost identical which means that it is always

sufficient to let K = 10 to get the optimal solution. In Fig. 4.1 DCSP with K = 1 is

always dominating CDKS and the difference increases as the network size increases,

which means that DCSP works better with large network size. Fig. 4.2 and Fig. 4.3

have the same indications as in Fig. 4.1. This means that DCSP is always better than

CDKS in any group size.

In Figures 4.4, 4.5 and 4.6, we relax the delay constraint to be � = 40, and still

DCSP is better and optimal in case of K = 10 and K = 20. But, CDKS is better than

K =1 the difference decreases as the network size increases. At the large network size

when N > 80, K = 1 outperforms CDKS. This again indicates that DCSP works better

in large networks. The initial improvement of CDKS over DCSP in small network

size with � = 40 can be justified that this delay constraint is very relaxed so that the

shortest path cost tree can achieve it easily, so CDKS does not need to generate

shortest path delay tree.

Also, changing group size from 10% to 50% and to broadcasting in the three

figures respectively, does not have a significant effect in the results.

35

130

140

150

160

170

180

190

200

10 20 30 40 50 60 70 80 90

Network Size

Avg

. Cos

t / P

ath

LD CDKS K=1K=10 K=20 OPT

Fig. 4.1. Effect of network size with multicast group = 10%, delay limit = 20, average

degree = 8

100

110

120

130

140

150

160

170

180

190

200

10 20 30 40 50 60 70 80 90

Network Size

Avg

. Cos

t / P

ath

LD CDKS K=1K=10 K=20 OPT

Fig. 4.2. Effect of network size with multicast group = 50%, delay limit = 20, average

degree = 8

36

110

120

130

140

150

160

170

180

190

200

10 20 30 40 50 60 70 80 90

Network Size

Avg

. Cos

t / P

ath

LD CDKS K=1K=10 K=20 OPT

Fig. 4.3. Effect of network size with multicast group = 100%, delay limit = 20, average

degree = 8

130

140

150

160

170

180

190

200

10 20 30 40 50 60 70 80 90

Network Size

Avg

. Cos

t / P

ath

LD CDKS K=1K=10 K=20 OPT

Fig. 4.4. Effect of network size with multicast group = 10%, delay limit = 40, average

degree = 8

37

100

110

120

130

140

150

160

170

180

190

200

10 20 30 40 50 60 70 80 90

Network Size

Avg

. Cos

t / P

ath

LD CDKS K=1K=10 K=20 OPT

Fig. 4.5. Effect of network size with multicast group = 50%, delay limit = 40, average

degree = 8

110

120

130

140

150

160

170

180

190

200

10 20 30 40 50 60 70 80 90

Network Size

Avg

. Cos

t / P

ath

LD CDKS K=1K=10 K=20 OPT

Fig. 4.6. Effect of network size with multicast group = 100%, delay limit = 40, average

degree = 8

38

4.5 The Effect of Changing Multicast Group Size on DCSP Algor ithm

Figures from 4.7 to 4.10 investigate the effect of changing multicast group size on

the average cost per path. The network size is set to 50 nodes and the multicast group

size is changed from 5 (10%) to 50 (broadcasting).

It can be observed from the four figures that changing group size does not have a

great effect on the difference between the performance of algorithms since there is no

cross lines and all lines are almost parallel. This is can be justified by the fact that the

algorithms LD, CDKS and DCSP are derived from Dijkstra and flooding algorithms

which are designed mainly for broadcasting. So, the algorithms trim the additional

edges that reach to non-member destinations. For LD and CDKS there is no

difference to construct the shortest path cost tree and the shortest path delay tree for

one destination or for all destinations. Also, DCSP has no difference in duplicating

tokens to one destination or to all destinations.

For the four figures, the three lines of DCSP with K = 5, DCSP with K = 10 and

OPT are almost identical and dominating the three other lines. This indicates that

K = 5 may be sufficient to get near optimal result, later we will determine more

accurate value of K to get the optimal.

From Figures 4.7 and 4.8 where we set the average node degree to 4 and change

the delay constraint from 20 to 40, we can see that changing this delay constraint

makes CDKS performs better than DCSP with K =1. In Fig. 4.7 with delay constraint

� = 20, DCSP with K =1 always outperforms CDKS while in Fig 4.8 with delay

constraint � = 40 CDKS has better performance than DCSP with K = 1. This is

always indicate that DCSP works better with tight delay constraint. The same

observations can be said on the difference between Figures 4.9 and 4.10.

Looking at Figures 4.7 and 4.8 as one side and Figures 4.9 and 4.10 as the other

side, we can see that the difference between two sides is the average degree node

degree. In Figures 4.7 and 4.8 the average degree d = 4 while in Figures 4.9 and 4.10

the average degree d =10. This effects the resulted average cost per path and reduces

it to less than the half. This means that increasing the average degree of network

reduces the average cost per path. The reason for this is that when we increase the

average degree, more paths can be found from source to each destination giving less

cost paths.

39

250

270

290

310

330

350

370

390

410

430

450

5 10 15 20 25 30 35 40 45 50

Group Size

Avg

. Cos

t / P

ath

LD CDKS K=1K=5 K=10 OPT

Fig. 4.7. Effect of multicast group size with network size = 50, delay limit = 20,

average degree = 4

280

300

320

340

360

380

400

420

440

460

5 10 15 20 25 30 35 40 45 50

Group Size

Avg

. Cos

t / P

ath

LD CDKS K=1K=5 K=10 OPT

Fig. 4.8. Effect of multicast group size with network size = 50, delay limit = 40,

average degree = 4

40

125

130

135

140

145

150

155

160

165

170

175

180

185

5 10 15 20 25 30 35 40 45 50

Group Size

Avg

. Cos

t / P

ath

LD CDKS K=1K=5 K=10 OPT

Fig. 4.9. Effect of multicast group size with network size = 50, delay limit = 20, average

degree = 10

125

130

135

140

145

150

155

160

165

170

175

180

185

190

5 10 15 20 25 30 35 40 45 50

Group Size

Avg

. Cos

t / P

ath

LD CDKS K=1K=5 K=10 OPT

Fig. 4.10. Effect of multicast group size with network size = 50, delay limit = 40,

average degree = 10

41

4.6 The Effect of Changing Average Node degree on DCSP Algor ithm

Figures from 4.11 to 4.14 investigate the effect of changing average node degree

on the average cost per path. The network size is set to 50 nodes and the average node

degree is changed from 4 to 16.

For the four Figures, the three lines of DCSP with K = 10, DCSP with K = 20 and

OPT are almost identical and dominating the other three lines. This indicates that K =

10 may be sufficient to get near optimal result

It can be observed that the average cost per path for CDKS, DCSP and OPT is

decreased exponentially as the average node increases. First, there is a great

difference between network with average degree d = 4 and another one with d =6,

then, the difference in cost decreases and tends to be minor. This recommends that it

is enough to get a network with average degree d = 6.

In Figures 4.11 and 4.12, we set the delay constraint � = 20 and changing

multicast group size from 5 (10%) to 25 (50%). As indicated in the previous section,

changing multicast group size does not have a significant effect on the form of the

figure. The same can be applied to the Figures 4.13 and 4.14.

The difference between Figures 4.11 and 4.12 from one side and Figures 4.13 and

4.14 from the other side is the delay constrain � that changed from 20 to 40. In

Figures 4.11 and 4.12 DCSP with K = 1 always outperforms CDKS and the difference

between them increases with the increasing of average node degree. The situation is

fully reversed in Figures 4.13 and 4.14 where CDKS always outperforms DCSP with

K = 1 but the difference decreases with the increase of average node degree. This is

due to the relaxing of delay constraint, which is suitable for CDKS algorithm.

Figures 4.13 and 4.14 indicate that with the increase of the average node degree,

the performance of CDKS and DCSP with K = 1 always increases and it is almost get

near optimal value when average node degree d > 12. This means that with the large

average node degree, CDKS can find the optimal path from the large number of

possible paths. Also, K = 1 will be sufficient for DCSP to get the optimal results

which means that DCSP works better as the average node degree increased.

42

130

150

170

190

210

230

250

270

290

310

330

350

4 6 8 10 12 14 16Average Degree

Avg

. Cos

t / P

ath

LD CDKS K=1K=10 K=20 OPT

Fig. 4.11. Effect of average degree with network size = 50, multicast group = 5, delay

limit = 20

125

145

165

185

205

225

245

265

285

305

325

345

365

4 6 8 10 12 14 16Average Degree

Avg

. Cos

t / P

ath

LD CDKS K=1K=10 K=20 OPT

Fig. 4.12. Effect of average degree with network size = 50, multicast group = 25, delay

limit = 20

43

130

150

170

190

210

230

250

270

290

310

330

350

370

4 6 8 10 12 14 16Average Degree

Avg

. Cos

t / P

ath

LD CDKS K=1K=10 K=20 OPT

Fig. 4.13. Effect of average degree with network size = 50, multicast group = 5, delay

limit = 40

125

145

165

185

205

225

245

265

285

305

325

345

365

4 6 8 10 12 14 16Average Degree

Avg

. Cos

t / P

ath

LD CDKS K=1K=10 K=20 OPT

Fig. 4.14. Effect of average degree with network size = 50, multicast group = 25, delay

limit = 40

44

4.7 The Effect of Changing Delay Constraint on DCSP Algor ithm

Figures from 4.15 to 4.18 investigate the effect of relaxing delay constraint � on

the average cost per path. The network size is set to 50 nodes and the delay constraint

is changed from 10 to 60.

For the four Figures, we can observe that as the delay constraint increases, CDKS

is going toward OPT and after delay constraint � > 50, CDKS gives optimal results.

This can be justified by the fact that CDKS gives the optimal result at � = � where

the shortest path cost tree is the optimal result. So, for the large � the network almost

has no delay constraint.

In Figures 4.15 and 4.16, we set the average node degree d = 4 while changing

the multicast group from 5 to 25. The three lines of DCSP with K = 5, DCSP with

K = 10 and OPT are almost identical which means that for average degree d = 4,

K = 5 can give the optimal results. For the two Figures, DCSP with K = 1 is

dominating CDKS at small � (� < 22), as we relax the delay constraint, the

performance of DCSP with K = 1 decreases and the performance of CDKS increases.

When � > 22, CDKS outperforms DCSP with K = 1 and the difference is going to

increase with the increase of �.

Another point that is worth noting is the OPT line, we can see that the optimal

average cost per path is increasing while we relax the delay constraint, then the OPT

is going to be a horizontal line. This means that the performance of OPT is decreased

with less constraint. The justification of this is due to our simulation which run 3000

different graphs and take the average value over the graphs that have no failure. With

small delay constraint, the rate of failure is increased. As � increased the failure rate is

going to be a constant value giving the straight line. This is another point in favor to

DCSP over CDKS, that is in case of high failure rates DCSP still can get near optimal

values while CDKS can not afford it and it gives results that is near to the shortest

path delay tree which is obtained by LD algorithm.

In the four Figures, we can see that all lines are almost parallel except for CDKS,

this is because that LD and DCSP tend to minimize the delay while they work and this

is their first step to satisfy the delay constraint. On the other side, CDKS tends to

minimize the cost first then minimizing the delay.

45

300

320

340

360

380

400

420

440

460

10 20 30 40 50 60Delay Limit

Avg

. Cos

t / P

ath

LD CDKS K=1K=5 K=10 OPT

Fig. 4.15. Effect of delay limit with network size = 50, multicast group = 5, average

degree = 4

250

270

290

310

330

350

370

390

410

430

450

10 20 30 40 50 60Delay Limit

Avg

. Cos

t / P

ath

LD CDKS K=1K=5 K=10 OPT

Fig. 4.16. Effect of delay limit with network size = 50, multicast group = 25, average

degree = 4

46

130

135

140

145

150

155

160

165

170

175

180

185

190

10 20 30 40 50 60Delay Limit

Avg

. Cos

t / P

ath

LD CDKS K=1K=10 K=20 OPT

Fig. 4.17. Effect of delay limit with network size = 50, multicast group = 5, average

degree = 10

120

125

130

135

140

145

150

155

160

165

170

175

180

185

10 20 30 40 50 60Delay Limit

Avg

. Cos

t / P

ath

LD CDKS K=1K=10 K=20 OPT

Fig. 4.18. Effect of delay limit with network size = 50, multicast group = 25, average

degree = 10

47

If we compare between the two Figures 4.15 and 4.16 from one side and the two

Figures 4.17 and 4.18 as another side where we only change the average node degree

from 4 to 8, we can see the following.

1- The intersection point between the lines DCSP with K = 1 and CDKS is

increased from 22 to 34. This means that as the average node increases, the

performance of DCSP is going better and K = 1 can hold a value that is

better than CDKS for a larger delay constraint.

2- For the second set of Figures, K = 10 is sufficient to get the optimal result

while in the first, it was sufficient that K = 5 can get the optimal. This

indicates that with the increase of the average node degree we need larger

value of K.

3- For the second set of Figures, the OPT line tends to be a straight line as

� > 30, while in the first set, it was going to be a straight line at � > 50. This

means that the failure rate is decreased when the average node degree

increases. The justification of this is due to the increase of average node

degree, the possible paths increase so, the possibility of not finding a

suitable path is decreased.

4- The difference between the parallel lines of DCSP with K = 1 and OPT is

decreased in the second set, which again support the fact that DCSP gives

better results with the increase of average node degree.

5- As mentioned before, the increase of the average node degree results in the

decrease of the average cost path. The average cost per path for the second

set of Figures is almost less than half of the same value in the first set of

Figures.

48

4.8 The Effect of Changing Parameter K on DCSP Algor ithm

In all the previous figures, we always mention that K = 5 or K = 10 was sufficient

to get the optimal result. In this subsection, we determine more accurate value of K to

get the optimal solution under different values of the variables. To achieve this, we

only plot DCSP algorithm with the OPT algorithm and we change the value of

parameter K in DCSP algorithm.

The size of network is set to 50 nodes and we have three different variables to

change. Firstly, the multicast group size is given two values 5 and 25. Secondly, the

delay constraint is given two values 20 and 40. Thirdly, the average node degree is

given two values 4 and 10. Three variables each with two different values give eight

different Figures from 4.19 to 4.26.

In all Figures, DCSP is going toward the optimal exponentially with the increase

of K. This means that any small increase in K will yield to a significant improvement

in DCSP. Table 4.2 can summarize the results of the eight figures.

Table 4.2. The optimal value of K in network with 50 nodes.

Average Degree Delay L imit Multicast Group Optimal K

4 20 5 5

4 20 25 6

4 40 5 7

4 40 25 7

10 20 5 12

10 20 25 12

10 40 5 20

10 40 25 20

The eight Figures can be divided into three sets according to the value of optimal

K. In Figures from 4.19 to 4.22, we set the average node degree to 4 yielding the

optimal value of K around 6. In Figures 4.23 and 4.24, the average node degree is set

49

to 10 while the delay constraint � = 20 yielding an optimal K =12. The last set which

is Figures 4.25 and 4.26 where we set the average node degree = 10 and the delay

constraint � = 40 yields optimal K = 20. This indicates that the average node degree

has the most significant effect on K. As the average node degree increases, DCSP

needs a greater K to get the optimal results. Also, from the second and the third set,

we can see that relaxing the delay constraint results in a need for greater K. This is

because that relaxing delay limit means less killing of tokens in DCSP and hence the

system should keep track of greater number of tokens than if the delay constraint was

tight.

Fig. 4.19. Effect of K with network size = 50, multicast group = 5, delay limit = 20,

average degree = 4

300

303

306

309

312

315

318

321

324

327

330

333

1 2 3 4 5 6 7

K

Avg

. Cos

t / P

ath

DCSP Optimal

266

268

270

272

274

276

278

280

282

284

286

288

290

1 2 3 4 5 6 7 8

K

Avg

. Cos

t / P

ath

DCSP Optimal

Fig. 4.20. Effect of K with network size = 50, multicast group = 25, delay limit = 20,

average degree = 4

50

310

315

320

325

330

335

340

345

350

355

360

1 2 3 4 5 6 7 8 9 10

K

Avg

. Cos

t / P

ath

DCSP Optimal

Fig. 4.21. Effect of K with network size = 50, multicast group = 5, delay limit = 40,

average degree = 4

290

295

300

305

310

315

320

325

330

335

340

1 2 3 4 5 6 7 8 9 10

K

Avg

. Cos

t / P

ath

DCSP Optimal

Fig. 4.22. Effect of K with network size = 50, multicast group = 25, delay limit = 40,

average degree = 4

Fig. 4.23. Effect of K with network size = 50, multicast group = 5, delay limit = 20,

average degree = 10

139.3

139.5

139.7

139.9

140.1

140.3

140.5

140.7

2 4 6 8 10 12 14 16

K

Avg

. Cos

t / P

ath

DCSP Optimal

51

132.7

132.8

132.9

133

133.1

133.2

133.3

133.4

133.5

133.6

133.7

133.8

133.9

134

2 4 6 8 10 12 14 16 18

K

Avg

. Cos

t / P

ath

DCSP Optimal

Fig. 4.24. Effect of K with network size = 50, multicast group = 25, delay limit = 20,

average degree = 10

138.1

138.3

138.5

138.7

138.9

139.1

139.3

139.5

139.7

139.9

2 4 6 8 10 12 14 16 18 20

K

Avg

. Cos

t / P

ath

DCSP Optimal

Fig. 4.25. Effect of K with network size = 50, multicast group = 5, delay limit = 40,

average degree = 10

132.4

132.6

132.8

133

133.2

133.4

133.6

133.8

134

134.2

2 4 6 8 10 12 14 16 18 20

K

Avg

. Co

st /

Pat

h

DCSP Optimal

Fig. 4.26. Effect of K with network size = 50, multicast group = 25, delay limit = 40,

average degree = 10

52

4.9 Conclusion

Large number of simulation experiments have been done to compare DCSP

algorithm with previous algorithms, LD and CDKS, of the same problem and with the

OPT algorithm that always get the optimal results but in exponential time. Empirical

results show that DCSP always dominating other algorithms even with small K. Also,

in most cases DCSP approaches the optimal solution. In case of relaxed delay

constraint, CDKS dominate DCSP at K = 1. DCSP works better in case of tight delay

constraint and high average node degree. Simulation experiments have been used to

investigate a suitable number of the parameter K. In case of small value of K, the

complexity of DCSP is reduced from O(K2N2) to be O(N2).

53

Chapter 5

Proposed Shor test Path Algor ithm with

Delay and Delay Var iation Constraints

(DVCSP)

5.1 Introduction

In the last two chapters, the problem of multicast routing in real time networks is

investigated and formulated as shortest path routing under delay constraint. In this

chapter we add a delay variation constraint to the previous problem. The delay

variation constraint � is a bound on the variation among the delays along the

individual paths from source to each destination. This constraint is first mentioned

in [25] where the problem of finding a multicast tree that satisfy both delay and

delay variation constraint is proposed with the proof that it is an NP-Complete

problem. In [26] the cost factor is added, which results in a new problem for finding a

multicast tree with least cost and satisfying both delay and delay variation constraint.

This problem is also an NP-Complete as proved in [26].

The importance of delay variation arises from several applications. For example,

in a teleconference, it is important that the speaker be heard by all participants at the

same time, or the communication may lake the feeling of an interactive discussion.

When multicast messages are used to update multiple copies of replicated data item in

a distributed database system, minimizing the delay variation would minimize the

54

length of time that the database is in an inconsistent state. In a distributed game where

each player is connected to a game server and compete against other participants, it

will not be fair to delay one of the players more than the others by a certain value.

As proposed in [25], buffering can be used to control the delay variation but it

may not be practical. Buffering can be placed at the source node, switching nodes or

at the receivers. Buffering at the source would require the source to maintain

additional information about all destinations. This will make each message buffered

different amount of time for each destination and hence transmitted by the source

multiple times which violates the meaning of multicast routing. Buffering at the

switch nodes suffers from the same problems as buffering at source node. Buffering at

receiver nodes is more reasonable and it may have a good effect but it requires that all

destinations cooperate together. However, this may be accepted if all destinations

have the same task like the case of replicated database, but if the destinations are

competitors, it will be difficult to cooperate. Furthermore, the amount of buffering

needed is proportional to the maximum variation of end to end delays. Providing

bounds for delay variation will result in more efficient usage of buffering resources.

The rest of this chapter is organized as follows. In section 5.2, the problem of

shortest path under delay and delay variation constraints is formulated. A new

heuristic algorithm for this problem is proposed in section 5.3. The complexity

analysis of the proposed algorithm is introduced in section 5.4. Finally, the chapter is

concluded in section 5.5.

5.2 Problem formulation

Using the same notations and definitions listed in section 3.2 and defining � as

the delay variation constraint, the problem of shortest path multicast routing under

delay and delay variation constraints can be formulated as follows:

Given a directed, simple, connected weighted graph G(V,E), multicast group M⊆

V, a multicast source node s ∈ V , a delay constraint �, and a delay variation

constraint � where � < �. Find a subgraph G`(V`,E`) where ( {s} ∪ M ) ⊆ V` ⊆ V and

E` ⊆ E that has no cycles and no incoming edge in the source node s and all the leaves

should be members of M. G` should satisfy the following three conditions:

1- Minimum Cost(Path(s,v)) ∀ v ∈ M

55

2- Delay(Path(s,v)) < � ∀ v ∈ M

3- | Delay(Path(s,u)) - Delay(Path(s,v)) | < � ∀ u, v ∈ M

This problem is known to be NP-Complete[26]. So, any polynomial solution

tends to find a near optimal solution. If � > �, the problem is reduced to the delay

constrained shortest path problem discussed in chapter 3.

5.3 The Delay and Delay Var iation Constrained Shor test Path

Algor ithm (DVCSP)

DVCSP shown in Fig. 5.1 and described in appendix B.1, is a heuristic algorithm

to find a near optimal subgraph for the shortest path problem under delay and delay

variation constraints. DVCSP is a centralized algorithm where all the information

about the network topology is supposed to be kept at the source node. The algorithm

is divided into two separate phases. Phase I, the delay constraint phase, is responsible

for yielding a set of paths for each destination. These paths should satisfy the delay

constraint. If for some destinations, phase I is failed to find any path to that

destination, then the algorithm reports failure to satisfy the delay constraint. Phase II,

the delay variation constraint phase, collects all the paths from phase I and chooses

one path from each destination so that the delay variation constraint is satisfied. If

phase II is failed, then the algorithm reports failure to satisfy the delay variation

constraint and returns a subgraph with the minimum possible delay variation that is

can be resulted from DVCSP algorithm.

5.3.1 Phase I : The Delay Constraint Phase

This phase shown in Fig. 5.2 and described in appendix B.2, is similar to DCSP

algorithm described in chapter 3 where we use the same concept and structure of

token and token duplication. As in DCSP, phase I starts by an empty token at the

source node. The token is continuously duplicated to all neighbor nodes spanning all

possible paths in the network. To control the excessive number of tokens that results

from duplication, we limit the number of tokens that can be kept in any node at the

56

Report failure to

satisfy the delay

Start

Phase 1: Delay Constraint

For each destination node m

There is at least one

token in m

Next node m

Phase 2: Delay Var iation Constraint

The returned graph is the graph that

satisfies delay and delay variation

The returned graph form

Phase II satisfies delay

The returned graph is the one with the minimum possible value for delay variation

Y

N

Report failure to satisfy the delay variation constraint

End

N

Y

Fig. 5.1. The Flowchart of DVCSP algorithm

57

Start

Insert an empty token in source

No. of Tokens > 0

Fig. 5.2. The Flowchart for Phase I: Delay Constraint Phase

End

For each node u in V

For each Token T in node u

For each neighbor node v to node

Can_Duplicate

Duplicate_Token (T, u,

Next neighbor

Next token T

Next node u

Delete the token T

Y

Y

N

N

58

same time by the number K. However, phase I differs from DCSP in the way of

choosing the best K tokens to be kept in any node. While in DCSP we choose the least

delay tokens, here, in DVCSP algorithm we have a special handling of the best K

tokens to achieve delay variation constraint. For delay variation constraint, we need to

get one token from each destination. Choosing a token from any destination is

independent of its delay since all tokens satisfy the delay constraint. The chosen token

may be the highest delay one, the least delay one or any one, this depends on the other

tokens chosen in other nodes. Using this idea as a key point of the algorithm, we can

say that there is no need to keep two tokens in one node with relatively small

difference in delay. So, the main task of phase I in DVCSP algorithm is to keep K

tokens in each node with reasonable delay difference between each two tokens.

Recalling that every token T satisfies the relation 0 � Delay(T) � �, phase I divides

the interval [0, �] into K equal segments, each with size � / K as shown in Fig. 5.3.

Each node is allowed to keep only one token in each segment and hence the

maximum number of tokens that can be kept in each node is K. This guarantees an

equal distribution of the tokens along the interval [0, �], where each segment is

handled independently of the other segments.

For any token T that need to be duplicated from node u to node v, its segment is

calculated from the equation:

If at any stage of the algorithm, two tokens want to duplicate in the same segment

at the same time, our heuristic is to choose the token with the least delay in this

segment.

0 Segment 0

K

2�

K

Segment 1 Segment K-1 (K-1)�

K

Fig. 5.3. Dividing the delay interval [0, �] into K equal segments

∆×+= KvuDelayTDelay

NoSegment)),()((

.

59

So, compared to DCSP algorithm, in DVCSP there is only three constraints that

can prevent token duplication from node u to node v.

1. The sum of token delay and Delay(u,v) will exceed the delay constraint �.

2. The token T visited the node v before.

3. There is another token T1 in the same segment that T wants to duplicate in and

Delay(T1) < Delay(T).

The first two constraints are the same as the first two constraints in DCSP

algorithm and they mean that the duplicated token should not exceed the delay limit

and should not make a loop. The third constraint is the heuristic constraint specialized

for delay variation constraint.

In DCSP algorithm we keep at each destination one token only called the winner

token. However, in DVCSP, each destination node u ∈ M keeps track with at most 3K

tokens representing three tokens in each segment. For each segment the destination

keeps track with the least delay, least cost and the highest delay tokens passed through

this segment. The least delay token is used to guarantee finding a solution for the

delay constraint. The highest delay token is used to give an upper bound for the delay

in this node. The least cost token is used as a moderation between the least delay and

the highest delay tokens, it is also used to minimize the cost of the resulted graph.

These tokens are used by phase II to select only one of them. Phase I is finished when

all the tokens in the system are either killed or kept in the destination nodes.

Phase I has two main subroutines, the function Can_Duplicate and the procedure

Duplicate_Token

5.3.1.1 The function : Can_Duplicate (Token T, Node u, Node v)

The function Can_Duplicate shown in Fig. 5.4 and described in appendix B.3,

takes three inputs:

4- Token T

5- Node u that currently holds the token T

6- Node v that the token T needs to be duplicated in.

60

Start

Delay(T) + Delay(u,v) >

Fig. 5.4. The Flowchart for the function Can_Duplicate(T, u, v)

Return True

T visited node v before

Node v has token T1 in

Segment_No

Delay(T1) < Delay(T)

Return False

Y

Y

Y

Y

N

N

N

N

Segment_No =(Delay(T) * K) / �

Delete token T1

61

The function applies the three constraints discussed in the previous section and

returns True if the token T can be duplicated from node u to node v, otherwise, the

function returns False.

5.3.1.2 The Procedure : Duplicate_Token (Token T, Node u, Node v, Group M)

The procedure Duplicate_Token shown in Fig. 5.5 and described code in

appendix B.4, is executed only if the function Can_Duplicate(T,u,v) returns true. The

procedure has four inputs:

1- Token T

2- Node u that currently holds the token T

3- Node v that the token T needs to be duplicated in.

4- Multicast Group M

Duplicate_Token is responsible of updating the cost and the delay of the

duplicated token T by adding Cost(u,v) and Delay(u,v) to Cost(T) and Delay(T)

respectively. It also puts the timestamp of node v in token T and increases the number

of tokens in the system by one for the new generated token.

If the node v is in multicast group M, then the procedure calculates the segment

number that token T duplicated in, and updates the least delay, the highest delay and

the least cost tokens in this segment.

5.3.2 Phase I I : The Delay Var iation Constraint Phase

Phase II shown in Fig. 5.6 and described in appendix B.5, is responsible of

satisfying the delay variation constraint. This phase is started by collecting all the

tokens from the destinations that left from phase I in one array called merged_array.

Since, at most each destination can have 3K tokens, so, the total number of tokens in

merged_array will be at most 3mK tokens. The merged_array contains two fields, the

token field that contains the token data, and the destination field that contains the

destination that we get this token from. This array is then sorted in ascending order

according to the delay field of each token.

Two pointers are moved through the sorted array, start_pointer and end_pointer

where always start_pointer < end_pointer and Delay(Te) – Delay(Ts) < � where Ts is

62

Start

Node v puts a timestamp on

No. of tokens = No. of tokens +1

Cost(T) = Cost(T) + Cost(u,v)

Delay(T) = Delay(T) + Delay(u,v)

End

Fig. 5.5. The Flowchart for the procedure

Segment_No =((Delay(T)+Delay(u,v)) *

Delay(T) <

Least_delay[ Segment_No

Least_delay[ Segment_No] =Delay(T)

N

Y

Delay(T) >

Highest_delay[ Segment_

Highest_delay[ Segment_No]

N

Y

Cost(T) <

Least_cost[ Segment_No]

Least_cost[ Segment_No] =Cost(T)

N

Y

v ∈ M

Y

N

63

Start

Collect all tokens from destination

nodes into one array called

Sort merged_array in ascending order

according to the delay of each token in

For start_pointer = 0 to the last element in

end_pointer =start_pointer

Ts = The token at the start_pointer

T = The token at the end_pointer

Set all elements in cost_window

array to ∞

Delay(Te) - Delay(Ts) < δ

cost_window[ D] = ∞

total_cost=total_cost+Cost(

T )

total_cost=total_cost-

cost_window[D] <

N

N

Y

end_pointer=

N

Y

Y

cost_window contains ∞

N

total_cost > best_cost Y

best_cost = total_cost

best_window = cost_window

Next

The resulted subgraph is

the graph consisting of all

End

Fig. 5.6. The Flowchart for Phase II, Delay Variation Constraint Phase

N

Y

best_window contains ∞ Y

N Report Failure in delay

variation

64

the token that the start_pointer points to and Te is the token that the end_pointer

points to. The idea behind this phase is to let the difference between end_pointer and

start_pointer as large as possible. By looking at the tokens in the interval

[start_pointer, end_pointer], if there is at least one token represents each destination

in this interval, then we choose the least cost token for each destination and consider it

as a feasible solution, otherwise, we consider that this interval has no solution in it.

Then we move the start_pointer by one step and updates the end_pointer to make

their difference as large as possible. This yields to a new interval that we can check it

again. From all feasible solutions we get, we choose the solution with the least cost.

The algorithm is continued till the start_pointer reaches the end of the merged_array.

If no feasible solution is found in all the checked intervals, then phase II reports

failure to satisfy the delay variation constraint and invokes the procedure

Get_Minimum_Variation that returns subgraph with minimum possible delay

variation.

To implement this phase, we have an array called cost_window that contains the

least cost token of each destination that is found in the interval

[start_pointer,end_pointer]. At the beginning of each interval, all the elements in

cost_window are initialized to �. For each interval we have a different cost_window,

so, the best_window array is used to keep track with the best cost_window array

examined so far in terms of its total cost. The final value of best_window array

contains the tokens that participate in the resulted subgraph. The variable total_cost is

used to keep track of the total cost that cost_window array has, and it is initialized by

zero. The variable best_cost is used to keep track of the total cost that best_window

array has.

The algorithm starts by setting the start_pointer and end_pointer to the first

element in merged_array. The end_pointer is advanced step by step if it satisfies the

condition Delay(Te) – Delay(Ts) < �. At each step of advancing the end_pointer we

check Te and look for the destination D that we get this token from. If the place of

destination D in the cost_window array contains �, this means that this is the first

token we get in this interval that represent the destination D, so we increment the

total_cost by Cost(Te) and set the place of D in cost_window array to the value of

Cost(Te). On the other hand, if cost_window has some value in the D place, this means

that we get another token that represents this destination, so, we will compare

65

Cost(Te) with cost_window[ D] and choose the one with least cost and update the

total_cost variable.

When the interval is completed, we check whether it has any element that

contains � or not and if true this means that this interval has no feasible solution,

otherwise, the cost_window contains a feasible solution. All feasible solutions are

investigated yielding to the best one in best_window array.

5.3.2.1 The Procedure : Get_Minimum_Variation (Group M)

This procedure shown in Fig. 5.7 and described in appendix B.6, is executed only

when phase II fails to satisfy the delay variation constraint. It returns a subgraph with

the minimum possible value of delay variation that can be extracted from DVCSP

algorithm. This procedure has a significant effect in that it can give an indicator to

how can DVCSP satisfy the delay variation constraint. Also, the result from this

procedure could be used in negotiations between the user requirements and the

capability of the routing algorithm.

The procedure uses the same array, merged_array, that is collected at the start of

phase II. A single pointer called start_pointer is moved along the array. An array

called delay_window is used to keep track of a token from each destination. All

elements in delay_window is initialized by �. The start_pointer is initialized at the

first element of merged_array and then it moves only forward to the last element of

the array. The token that start_pointer points to is placed in its place in delay_window

according to the destination it comes from. No processing is done in delay_window

until all its places is filled with values rather than �. When it is happened we consider

it as the first window to process and calculate the difference between maximum and

minimum values inside delay_window which is called the variation in delay_window.

With every movement of start_pointer, we have another values for delay_window

with another value of its variation. From all the windows we investigate, we choose

the one with best variation. This is considered to be the best delay variation the

DVCSP can get from the network. The procedure is finished when start_pointer

reaches the last element in merged_array.

66

Start

For start_pointer = 0 to the last element in

Ts = The token at the start_pointer

D = The destination that we got Te

Set all elements in delay_window

array to ∞

delay_window contains ∞

N

Y

N

Y

delay_window[ D] =

Var = The difference between maximum

and minimum values of

Var > best_delay

best_delay = Var

best_window =

Next start_pointer

The resulted graph conisted from

the tokens that is in best_window

End

Fig. 5.7. The Flowchart for the procedure Get_Minimum_Var iation (M)

67

5.4 Analysis and Complexity of DVCSP Algor ithm

Lemma 5.1

DVCSP algorithm always finds a solution for the delay constrained problem if

one exists and if DVCSP fails to find a feasible solution for the delay constraint,

then there is no other algorithm can find it.

Proof

Recalling the proof of lemma 3.1, it will be sufficient to prove that DVCSP

will perform in its worst case and in case of K = 1 as the shortest path delay

algorithm. In case of K = 1, we have only one segment at each node. Any

collision at this node will result in selecting the node with the least delay, so we

guarantee that the least delay token continues its trip and results in the least

delay path. If K > 1, each node will have K segments and since we deal with

each segment independently and keep the least delay token in each one, so the

least delay token in the first segment that lies in the interval [0, � / K] is the

least delay token that can reach this node. If for any destination u ∈ M, the least

delay token does not satisfy the delay constraint, then this means that there is no

feasible solution and no other algorithm can find a solution since the shortest

path delay is optimal with respect to the delay constraint.

Lemma 5.2

Phase II in DVCSP algorithm finds an optimal solution for delay variation

constraint from the data returned from Phase I.

Proof

In phase II, we collect all the tokens from the destinations in one array. The

maximum number of tokens is 3mk. Since, we initialize the start_pointer and

end_pointer at the first element of the array, then we move the end_pointer step

by step to get the interval [start_pointer, end_pointer]. After examining this

interval, we move the start_pointer one step, and initialize the end_pointer to be

68

equal to the start_pointer, then move the end_pointer again step by step. This

means that we check all the possible intervals in the array. From all intervals,

we choose the best one in terms of cost. This is an exhaustive search, which

yields the optimal solution. When the search fails to satisfy the delay variation

constraint, we invoke the procedure get_minimum_variation which sets the

start_pointer again to the first element of merged_array. By moving

start_pointer step by step, and for every step we calculate the variation of delay

we have, we do an exhaustive search for the best delay variation.

Lemma 5.3

DVCSP algorithm is always terminated in one of three ways: finding a solution,

reporting a failure to find a solution that satisfy the delay constraint or

reporting a failure to find a solution that satisfy the delay variation constraint

and returns a subgraph with minimum possible delay variation.

Proof

The proof of the termination of phase I is the same proof as of lemma 3.2,

which states that the DCSP algorithm, and hence the phase I in DVCSP

algorithm, will terminate either by finding a solution or by reporting a failure in

the delay constraint. In phase II, the terminating condition is that the

start_pointer reaches the end of merged_array. Since, the maximum size of

merged_arrray is 3mk, then phase II will always terminate. If after start_pointer

reaches the end and the best_window array is empty, then DVCSP reports

failure to satisfy the delay variation constraint and the procedure

get_minimum_variation is invoked. This procedure sets the start_pointer to the

first element of merged_array and moving it again to the end, which can be in

the worst case 3mk steps. The procedure is terminated when start_pointer

reaches the end of merged_array and returns the graph with minimum possible

delay variation. On the other hand, if the best_window array is not empty, the

algorithm returns the graph that contains the tokens in best_window. This graph

satisfies delay and delay variation constraints.

69

Lemma 5.4

The worst case complexity of DVCSP is O(K2M2) if KM2 > N2 and O(KN2) if

KM2 < N2, where K is an integer value ranged from 1 to N, M = |M| the number

of nodes in the multicast group and N = |V| the number of nodes in the network.

Proof

The proof of complexity of phase I in DVCSP algorithm is similar to the

proof of lemma 3.3. Just one difference that the function can_duplicate in DCSP

algorithm is O(K) while in DVCSP algorithm it is O(1). So, phase I in DVCSP

algorithm has the worst case complexity of O(KN2). This is the same as DCSP

but after removing K for the can_duplicate function. In phase II, the maximum

number of elements in the merged_array is 3mK elements. Sorting this array

can be done in O(MK log MK ). Moving start_pointer from the first element of

the array to the last element is O(MK). At each time the start_pointer is moved,

the end_pointer will be updated. The worst case can happen when the delay

variation constraint is so large that the end_pointer every time will be moved

from the start_pointer to the end of the array. This will make the movement of

end_pointer is also O(MK). Moving the end_pointer inside the start_pointer

resulting in making phase II O(M2K2). In case of failure to satisfy delay

variation constraint, phase II calls the procedure get_minimum_variation. This

procedure move the start_pointer from the first element in merged_array to the

last element, so, the worst case complexity of moving start_pointer is O(MK).

At every move, we calculate the maximum and minimum value of

delay_window to get the maximum variation of this array. Since delay_window

contains only M elements, so, the worst case complexity of this procedure is

O(M2K). So, phase II contains three sequential complexities which are

O(MK log MK ), O(M2K2) and O(M2K). Since phase I and phase II are executed

sequentially, then DVCSP, in its worst case complexity, will be executed in

O(KN2 + MK log MK + M2K2 + M2K) steps. For the four terms that constitute

the complexity order, the term M2K2 will be dominant if KM2 > N2 which makes

DVCSP of O(M2K2). If KM2 < N2 , the term KN2 will dominate the other three

terms and the total complexity of DVCSP will be O(KN2).

70

5.5 Conclusion

In this chapter, we considered the problem of multicast routing with two QoS

parameters, which are delay and delay variation. The problem is formulated as shortest

path problem under delay and delay variation constraints. This problem is known to be

NP-Complete. A polynomial time heuristic algorithm, called DVCSP, for this problem

is proposed. The proposed algorithm is discussed in depth aided with flowcharts for

the most important used subroutines. The pseudo codes of the algorithm are listed in

appendix B. The algorithm has running time complexity of O(K2M2) if KM2 > N2 and

O(KN2) if KM2 < N2 , where K is an integer value ranged from 1 to N, M = |M| the

number of nodes in the multicast group and N = |V| the number of nodes in the

network.

71

Chapter 6

Per formance Analysis of the Proposed

DVCSP Algor ithm

6.1 Introduction

In this chapter, we do a comprehensive analysis of the proposed DVCSP

algorithm and compare it with other algorithms. We use the same random graph

generator described in section 4.2. The simulated algorithms are presented in section

6.2. In section 6.3, we present the performance factors that is used to evaluate the

different algorithms. The effect of relaxing the delay variation constraint is

investigated in section 6.4. In section 6.5, we examine the effect of changing the

multicast group size on the different algorithms. The effect of increasing the number

of nodes in the network is investigated in section 6.6. Finally, the chapter is concluded

in section 6.7.

6.2 Simulated Algor ithms

The random graph generator described in section 4.2 is used to simulate and

compare the following:

1- The shortest path delay tree (LD) obtained by applying Dijkstra algorithm [3].

2- CDKS algorithm [8], designed for the delay constrained shortest path tree. It

first constructs the shortest path cost tree. Then, it looks for every destination

and tests it according to the delay constraint �. If the destination satisfies �,

72

then the shortest path cost for this destination will be in the resulted tree,

otherwise, it replaces the path for this destination from the shortest path delay

tree.

4- The DCSP algorithm that is proposed in chapter 3 for the delay constrained

shortest path problem. We set the value of parameter K to 10, since it is almost

the best value for this algorithm as can be deduced from the simulation

experiments in chapter 4.

5- The proposed DVCSP algorithm that is designed for the delay and delay

variation constrained shortest path problem. To investigate the effect of

parameter K on DVCSP algorithm, we choose three values of K that is 1, 10, 20

to be compared in each simulation experiment.

6.3 Performance Factors

For all the simulated algorithms, we consider two performance factors, the

failure rate and the average cost per path of the resulted tree.

6.3.1 Failure Rate

Any algorithm can fail to find a suitable tree by not satisfying either the delay

constraint or the delay variation constraint. Recalling the proof of lemma 3.1 and

lemma 5.1, and from the definition of LD and CDKS algorithms, all the algorithms

will find a delay constrained tree if one exists. So, all simulated algorithms have the

same failure rate to find a delay constrained tree. Hence, we will not use the failure in

the delay constraint as a performance factor. On the other side, the failure of finding a

tree that satisfies the delay variation constraint is different for all algorithms and gives

an indication of how suitable these algorithms to the delay variation constraint. So, we

define the failure rate as the rate that the algorithm failed to find a tree that satisfies

the delay variation constraint.

6.3.2 Average Cost per Path

The second performance factor we measure is the average cost per path of the

resulted tree. For the algorithms LD, CDKS and DCSP that is designed mainly for the

delay constrained shortest path tree problem, we calculate the cost whether the

73

algorithm failed to satisfy the delay variation constraint or not. For DVCSP algorithm,

when the failure happened, we calculate the cost of the tree with minimum possible

delay variation.

6.4 The Effect of Changing Delay Var iation on DVCSP Algor ithm

6.4.1 Failure Rate

Figures 6.1, 6.2 and 6.3 investigate the effect of changing delay variation

constraint on the failure rate. For the three figures, we set the number of nodes in the

network N = 50 and the delay constraint � = 20, while changing the delay variation

constraint � from 0 to 20. Setting the delay variation constraint to 0 means that all the

destinations should get the data at the same time while setting � = 20, the same value

as �, cancels the effect of delay variation constraint.

In Fig. 6.1, we set the average node degree d = 4 and the multicast group size M

= 5. It can be observed that DVCSP algorithm dominates all other algorithms even

with K =1. The two lines of DVCSP with K = 10 and K = 20 are almost identical

except when � =0, this indicates that K = 10 is sufficient to get reasonable results for

DVCSP algorithm. With tight delay variation constraint, the performance of LD,

CDKS and DCSP is very bad with DCSP the worst. LD algorithm is always better

than CDKS and DCSP, this is can be deduced from the fact that LD tends to minimize

the delay and hence all the destination have the lowest possible delay. The failure rate

of all algorithms is zero at � = � = 20 this is because the problem is reduced to be

shortest path problem under delay constraint

Fig. 6.2 differs from Fig. 6.1 in the size of multicast group M which is set to 25

instead of 5. The increase in multicast group size raises the difficulty of satisfying the

delay variation constraint. CDKS and DCSP algorithms have a very bad response for

this increase where they give 100% failure at � < 12, also LD gives 100% failure at

� < 10. DVCSP still dominates the other algorithms and the two lines of DVCSP at

K = 10 and K = 20 are almost identical except for � = 0.

Fig. 6.3 differs from Fig. 6.1 in the average node degree d where we set it to 10

instead of 4. Increasing the average degree increases the number of available paths,

which results in decreasing the failure rate. DVCSP with K = 10 and K = 20 almost

have zero failure rate for all delay variations even when � = 0. DVCSP with K = 1

74

gives zero failure rate at � > 8. The performance of LD, CDKS and DCSP is enhanced

but it still gives 100% failure at small �.

0

10

20

30

40

50

60

70

80

90

100

0 2 4 6 8 10 12 14 16 18 20

Delay Variation

Perc

enta

ge o

f fa

ilure

rat

e

LD CDKS DCSPK=1 K=10 K=20

Fig. 6.1. Effect of delay variation constraint on failure rate with network size = 50,

delay constraint = 20, multicast group = 5, average node degree = 4.

0

10

20

30

40

50

60

70

80

90

100

0 2 4 6 8 10 12 14 16 18 20

Delay Variation

Per

cent

age

of f

ailu

re r

ate

LDCDKSDCSPK=1K=10K=20

Fig. 6.2. Effect of delay variation constraint on failure rate with network size = 50,

delay constraint = 20, multicast group = 25, average node degree = 4.

75

6.4.2 Average Cost per Path

Figures 6.4, 6.5 and 6.6 investigate the effect of changing delay variation

constraint on average cost per path. For the three figures, we set the number of nodes

in the network N = 50 and the delay constraint � = 20, while changing the delay

variation constraint � from 0 to 20.

For the three figures, it can be observed that the three lines of LD, CDKS and

DCSP algorithm are constant values. This means that the cost of the resulted tree is

not dependent on the delay variation constraint. This is can be deduced from the fact

that the three algorithms are mainly developed to the problem of shortest path tree

under delay constraint. So, they do not give any attention to the delay variation

constraint. Always the performance of DCSP is better than CDKS which is better than

LD. This agrees with the results of simulation experiments done in chapter 4.

In Fig. 6.4, we set the average node degree d = 4 and the multicast group size M

= 5. DVCSP with K = 1 gives very high cost that is not comparable to any other

algorithm when � < 8, then it approaches the same performance of CDKS at � > 16.

DVCSP with K = 10 and K = 20 always have a small difference in cost, and this

indicates that K = 10 is sufficient for DVCSP. At � < 6, DVCSP with K =10 and

K = 20 results in a very high cost.

Fig. 6.3. Effect of delay variation constraint on failure rate with network size = 50,

delay constraint = 20, multicast group = 5, average node degree = 10.

0

10

20

30

40

50

60

70

80

90

100

0 2 4 6 8 10 12 14 16 18 20

Delay Variation

Perc

enta

ge o

f fa

ilure

rat

e

LD CDKS DCSPK=1 K=10 K=20

76

300

330

360

390

420

450

480

510

540

0 2 4 6 8 10 12 14 16 18 20Delay Variation

Avg

. Cos

t/Pat

h

LD CDKS DCSPK=1 K=10 K=20

Fig. 6.4. Effect of delay variation constraint on average cost per path with network size = 50,

delay constraint = 20, multicast group = 5, average node degree = 4.

280

320

360

400

440

480

520

560

600

0 2 4 6 8 10 12 14 16 18 20Delay Variation

Avg

. Cos

t/Pat

h

LD CDKS DCSPK=1 K=10 K=20

Fig. 6.5. Effect of delay variation constraint on average cost per path with network size = 50,

delay constraint = 20, multicast group = 25, average node degree = 4.

77

This cost is considered to be paid for the added constraint. Recalling that at

small �, it was very difficult to obtain a solution for the other algorithms, so, finding a

solution at small � should be with a very high cost. The performance of DVCSP with

K = 20 is enhanced at relaxing the delay variation constraints and it dominates CDKS

at � > 10, then it approaches DCSP but it never overcomes it. It is always that DVCSP

never dominate DCSP because DVCSP uses DCSP with an additional constraint

which results in an additional cost. Comparing DVCSP with CDKS when � > 10

yielding that, although DVCSP has an additional constraint, it also gives better cost.

In Fig. 6.5, we increase the multicast group size M to 25, this gives almost the

same graph of Fig. 6.4 with the same analysis. This is indicates that changing

multicast group does not have a significant effect on the average cost per path. This is

because all the compared algorithms deal with multicast as a special case of

broadcasting, so, it does not matter how large is the size of the multicast group.

130

140

150

160

170

180

190

200

0 2 4 6 8 10 12 14 16 18 20Delay Variation

Avg

. Cos

t/Pat

h

LD CDKS DCSPK=1 K=10 K=20

Fig. 6.6. Effect of delay variation constraint on average cost per path with network size = 50,

delay constraint = 20, multicast group = 5, average node degree = 10.

78

Fig. 6.6 differs from Fig. 6.4 in the average node degree d which is set to 10

instead of 4. The performance of DVCSP is enhanced with the increase of average

node degree. The difference between DVCSP with K = 20 and DCSP is decreased.

Also, DVCSP with K = 1 dominates CDKS when � > 14. For all algorithms, the

average cost per path is decreased to half of its value in Fig. 6.4. This is because that

increasing average degree results in more available paths which results in available

cheaper paths.

6.5 The Effect of Changing Multicast Group Size on DVCSP Algor ithm

6.5.1 Failure Rate

The effect of changing multicast group size on the failure rate is investigated in

the Figures 6.7, 6.8 and 6.9. For the three figures, we set the network size N = 50,

delay constraint � = 20 while changing the multicast group size from 5 to 45.

Increasing the size of multicast group makes the problem of delay variation

constraint more difficult, since finding suitable values for delay in 45 nodes is more

difficult than finding it for 5 nodes. For all graphs, the two lines of DVCSP with

K = 10 and K = 20 almost identical for all values of M. So, K = 10 is sufficient for

DVCSP to get its best performance.

In Fig. 6.7, we set the average node degree d = 4 and we force a tight delay

variation constraint � = 5. It can be observed that for tight delay variation, LD, CDKS

and DCSP algorithms does not work at all since they give 100% failure rate at

M > 10. This indicates that these algorithms are not suitable for the delay variation

constrained problem.

On the other side, DVCSP with K = 10 gives relatively good results and its

failure rate increased slightly with the increase of multicast group. This indicates that

DVCSP is working well even in tight delay constraint and in large multicast group

size. DVCSP with K = 1 has a higher failure rate than K = 10 and K = 20 by

almost a constant difference 15% in the different sizes of multicast group.

In Fig. 6.8, we still keep the tight delay variation constraint while increasing the

average node degree d to 10 instead of 4. This is to increase the number of available

paths and to decrease the failure rate of all algorithms. However, CDKS and DCSP

still effected by the tight delay variation, so, they have no performance enhancement

79

0

10

20

30

40

50

60

70

80

90

100

5 10 15 20 25 30 35 40 45

Group Size

Perc

enta

ge o

f fa

ilur

e ra

te

LD CDKS DCSPK=1 K=10 K=20

Fig. 6.7. Effect of multicast group size on failure rate with network size = 50, delay

constraint = 20, delay variation constraint = 5, average node degree = 4.

0

10

20

30

40

50

60

70

80

90

100

5 10 15 20 25 30 35 40 45

Group Size

Perc

enta

ge o

f fa

ilur

e ra

te

LD CDKS DCSPK=1 K=10 K=20

Fig. 6.8. Effect of multicast group size on failure rate with network size = 50, delay

constraint = 20, delay variation constraint = 5, average node degree = 10.

80

for the increase of the average node degree where they have 100% failure rate when

M > 10. Also, LD has a failure rate of 100% when M > 15. On the other hand,

DVCSP performs well with the increase of the average node degree even with the

tight delay variation. DVCSP with K = 10 and K = 20 have almost zero failure for all

different multicast group sizes. This indicates that DVCSP works better for networks

with high average node degree.

Fig. 6.9 differs from Fig. 6.7 in that we relax the delay variation constraint � to

be 15 instead of 5 while keeping the average node degree d = 4. The effect of relaxing

the delay variation constraint is significant to all algorithms. CDKS and DCSP

perform well in small multicast group but they still cannot stand out with large

multicast group size. LD always has a failure rate below 50%, recalling that it was

always 100% in Fig. 6.7 yielding that LD has the best response for relaxing delay

variation. DVCSP with K = 10 and K = 20 have a good performance and they always

results in a failure rate that is below 5%. The difference between DVCSP with K = 1

and the other values of K is decreased. This indicates that for large delay variation

constraint we can reduce the value of K.

0

10

20

30

40

50

60

70

80

90

100

5 10 15 20 25 30 35 40 45

Group Size

Perc

enta

ge o

f fa

ilur

e ra

te

LD CDKS DCSPK=1 K=10 K=20

Fig. 6.9. Effect of multicast group size on failure rate with network size = 50, delay

constraint = 20, delay variation constraint = 15, average node degree = 4.

81

6.5.2 Average Cost per Path

Figures 6.10, 6.11 and 6.12 investigate the effect of changing multicast group

size M on the average cost per path for the resulted tree. For the three figures, we set

the network size N = 50, the delay constraint � = 20 while changing the multicast

group size from 5 to 45.

In Fig. 6.10, we set the delay variation constraint � = 5 and the average node

degree d = 4. DCSP always dominate the other algorithms, this is the result of high

failure rate. DVCSP with K = 10 and K = 20 yield a cost which is worse than CDKS

and better than LD. The additional cost that DVCSP suffers from is due to its low

failure rate. We should pay an additional cost to satisfy an additional constraint.

DVCSP with K = 1 is not practical at all since it gives relatively high cost.

In Fig. 6.11, we increase the average node degree d to 10 while keeping the tight

delay variation constraint. Comparing between DVCSP and CDKS, It is observed that

DVCSP with K = 10 and K = 20 give better cost and better failure rate, which means

that in all factors DVCSP dominates CDKS in case of large average node degree.

DCSP still get the best result in terms of cost. This assists the results obtained from

chapter 4, which states that DCSP with K = 10 always gives near optimal results

under all circumstances. DVCSP with K = 1 still gives a very high cost which makes

it not practical. This is because that DVCSP with K = 1 trying to solve the problem of

delay variation constraint with few resources which results in more cost. Also, the

increase of average node degree results in less cost for all algorithms.

Fig. 6.12 differs from Fig. 6.10 in that we relax the delay variation limit to be 15

instead of 5 while keeping the same average node degree d. Relaxing the delay

variation constraint result in making the performance of DVCSP with K = 10 and

K = 20 is better than CDKS. DVCSP with K = 1 gives reasonable results and always

dominates LD. This is indicates that the performance of DVCSP algorithm gives

better results in case of relaxing delay variation constraint.

82

260

300

340

380

420

460

500

540

580

620

660

700

5 10 15 20 25 30 35 40 45Group Size

Avg

. Cos

t/Pa

th LD CDKSDCSP K=1K=10 K=20

Fig. 6.10. Effect of multicast group size on average cost per path with network size = 50,

delay constraint = 20, delay variation constraint = 5, average node degree = 4.

135

165

195

225

255

285

315

345

375

405

5 10 15 20 25 30 35 40 45Group Size

Avg

. Cos

t/Pa

th

LD CDKS DCSPK=1 K=10 K=20

Fig. 6.11. Effect of multicast group size on average cost per path with network size = 50,

delay constraint = 20, delay variation constraint = 5, average node degree = 10.

83

6.6 The Effect of Changing Network Size on DVCSP Algor ithm

6.6.1 Failure Rate

The effect of changing network size on failure rate is investigated in Figures

6.13 and 6.14. For both figures, we set the delay constraint � = 5, the multicast group

M = 5 and the average degree d = 8 while changing the network size from 10 to 80.

In Fig. 6.13, we set the delay variation constraint � = 5. DVCSP with K = 10

and K = 20 always give zero failure rate for different network sizes. DVCSP with

K = 1 gives 25% failure rate at N = 10, then the failure rate is decreased as the

network size increases. The performance of LD is decreased with the increase of

network size. This is because LD tends to minimize the delay, so, for small network

size, minimizing the delay gives almost same values at all destinations, however for

large network, this is not necessary. So, at N = 10, LD dominates DVCSP with K =1.

CDKS and DCSP always give a failure rate above 90% in different network sizes.

In Fig. 6.14, we relax the delay variation constraint to be 15 instead of 5.

DVCSP gives zero failure rate even when K = 1. The performance of LD starts by

zero failure rate and then decreased as the size of the network increased. DCSP has

the worst performance but it is better than Fig. 6.13.

Fig. 6.12. Effect of multicast group size on average cost per path with network size = 50,

delay constraint = 20, delay variation constraint = 15, average node degree = 4.

260

280

300

320

340

360

380

400

420

5 10 15 20 25 30 35 40 45

Group Size

Avg

. Cos

t/Pa

thLD CDKS DCSPK=1 K=10 K=20

84

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50 60 70 80

Network Size

Perc

enta

ge o

f fa

ilur

e ra

te LD

CDKS

DCSP

K=1

K=10

K=20

Fig. 6.13. Effect of network size on failure rate with delay constraint = 20, delay

variation constraint = 5, multicast group = 5, average node degree = 8.

Fig. 6.14. Effect of network size on failure rate with delay constraint = 20, delay

variation constraint = 15, multicast group = 5, average node degree = 8.

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50 60 70 80

Network Size

Perc

enta

ge o

f fa

ilur

e ra

te LD

CDKS

DCSP

K=1

K=10

K=20

85

6.6.2 Average Cost per Path

Figures 6.15 and 6.16 investigate the effect of changing network size on the

average cost per path. The figures use the same parameters as in Figures 6.13 and

6.14.

In Fig. 6.15, we set the delay variation constraint � =5. DCSP always dominates

all other algorithms. The difference between DVCSP with K = 10 and K = 20 is very

small indicating again that K = 10 is sufficient for DVCSP. CDKS dominates DVCSP

at N < 30, with large network size, DVCSP dominates CDKS. This indicates that

DVCSP is more suitable in large network size. DVCSP with K = 1 gives a very high

cost compared to all other algorithms.

In Fig. 6.16, we relax the delay variation constraint to be 15 instead of 5. DCSP

still get the best results. DVCSP with K = 10 and K = 20 always dominates CDKS for

all different network sizes. It can be observed that DVCSP with K =1 is comparable

with CDKS and even dominates it at N > 30. This indicates that DVCSP works very

well in large network size and large delay variation.

Fig. 6.16. Effect of network size on average cost per path with delay constraint = 20,

delay variation constraint = 15, multicast group = 5, average node degree = 8.

130

140

150

160

170

180

190

200

210

10 20 30 40 50 60 70 80Network Size

Avg

. Cos

t/Pa

th

LD CDKS DCSPK=1 K=10 K=20

86

6.7 Conclusion

Large number of simulation experiments have been done to compare the

proposed DVCSP algorithm that is developed in chapter 5 for delay and delay

variation shortest path problem with other algorithms that is mainly for delay

constrained shortest path problem. We consider two performance factors, the failure

rate and the average cost per path. For the failure rate, DVCSP always dominates all

other algorithms with a very great difference. For the average cost per path, DVCSP

sometimes gives results that dominates LD and CDKS algorithms in case of large

degree and large network size. On the other side, DCSP algorithm, developed in

chapter 3, always dominates DVCSP in terms of cost. DVCSP suffers additional cost

which is paid for satisfying the additional constraint of delay variation. For all

simulated experiments, we choose to simulate DVCSP with three different values if K

which are 1, 10 and 20. Simulation results recommend that using K = 10 is almost has

the same results as in case of K = 20 while using K = 1 always results in a very high

cost which makes it not practical. So, K = 10 may be considered as a good value in

DVCSP algorithm.

87

Chapter 7

Conclusion and Suggestions for Future

Work

7.1 Conclusion

This thesis considers the problem of multicast routing under special constraints

that represent QoS parameters. A survey of current algorithms that deal with different

kinds of constraints is presented with other problems that is related to multicast

routing. The need for more algorithms for multicast routing problems was apparent. In

our work, we focus on two problems for multicast routing. The first problem is the

need for an algorithm for multicast routing in real-time networks. This meets the

requirements for the new applications like real time and multimedia applications. The

problem is formulated as delay constrained shortest path tree where we seek to

minimize the cost of each path from source to any destination while satisfying the

delay constraint. The second problem is that some applications like video

conferencing are not only in need to be real time but also a certain balance between

participants must be guaranteed. This balance is formulated as a delay variation

constraint and added to the delay constraint which results in a new problem that is

finding a shortest path route under delay and delay variation constraints. The two

studied problems are known to be an NP-Complete.

A new polynomial time heuristic algorithm, called DCSP, is proposed for the

delay constrained shortest path problem. The algorithm is discussed in depth aided

88

with flowcharts and pseudo code for its main subroutines. The correctness and

termination of the algorithm is proved. A complexity analysis of DCSP is also

proposed. An extensive analysis of DCSP performance is done by comparing it with

other algorithms via large number of simulation experiments that simulate real

networks. Simulation results show that DCSP always dominates the other algorithms

and its performance is increased at tight delay constraint and large average node

degree.

Another new polynomial time heuristic algorithm, called DVCSP, is proposed for

shortest path problem under delay and delay variation constraints. DVCSP uses a

variation of DCSP algorithm as its initial phase. Full discussion and analysis of

DVCSP algorithm is presented with flowcharts and pseudo code of its main

subroutines. Complexity analysis of DVCSP is investigated with the proof of its

termination. By using the same simulation environment that is used in simulating

DCSP algorithm, the performance analysis of DVCSP algorithm is investigated.

DVCSP is compared via other algorithms that is designed for delay constrained

problem. Two performance factors are considered, the failure rate to satisfy the delay

variation constraint and the average cost per path. DVCSP gives a very low failure

rate with respect to other algorithms. In addition, the cost of DVCSP is comparable to

other algorithms and even in sometimes dominates some algorithms. However, the

cost of DVCSP never dominates the cost of DCSP.

7.2 Suggestions for Future Work

The work of this thesis can be extended in several areas:

• The proposed algorithms are centralized which means that all data must be

stored in the source node. A need for a distributed implementation of these

algorithms will be valuable and more scalable in case of large network size,

where we will need that every node stores only a limited amount of

information.

89

• The dynamic change of multicast group members should be considered to be

embedded on the proposed algorithms so that we do not need to run the

algorithm from the beginning with every change in the multicast group.

• The proposed algorithms should be incorporated in an appropriate protocol to

be used in real networks.

• More constraints can be added to the proposed algorithms like the degree

constraint which is suitable to ATM networks.

• The proposed algorithms minimize the cost of each path individually which

results in a shortest path tree, similar work could be done in minimizing the

total cost of the multicast tree which is called minimum Steiner tree.

• The proposed algorithms deal with multicasting problems, similar work could

be done for broadcasting and unicast problems.

90

References

[1] S. Casner and S. Deer ing, “ First IETF Internet Audiocast,” in Proceedings of ACM

SIGCOMM, Computer Communications Review, vol. 22, no. 3, July 1992.

[2] R. Bellman, Dynamic Programming. Pr inceton University Press, 1957.

[3] J. Dossey, A. Otto, L. Spence, and C. Eynden Discrete Mathematics, Second Edition, Harper

Collins College Publishers, 1993

[4] A. Tanenbaum, Computer Networks, Third Edition. Pr intice-Hall International, Inc., 1996

[5] S. Deer ing and D. Cher iton, “ Multicast Routing in Datagram Internetworks and Extended

LANs” , ACM Transactions on Computer Systems, vol. 8, no. 2, pp. 85-110, May 1990.

[6] H. Salama, “ M ulticast Routing for Real-Time Communication on High-Speed Networks” ,

PhD. Disser tion, Nor th Carolina State University. Depar tment of Electr ical and Computer

Engineer ing, 1996.

[7] R. Widyono, “ The Design and Evaluation of Routing Algor ithms for Real-Time Channels” ,

Tech. Rep. ICSI TR-94-024, University of California at Berkeley, International Computer

Science Institute, June 1994.

[8] Q. Sun and H. Langendoer fre, “ Efficient Multicast Routing for Delay-Sensitive Applications” ,

in Proceedings of the second Workshop on Protocols for Multimedia Systems (PROMS’95), pp.

452-458, October 1995.

[9] S. Wi and Y. Choi, “ A Delay-Constrained Distr ibuted Multicast Routing Algor ithms” , in

Proceedings of the twelveth International Conference on Computer Communication

(ICCC’95), pp. 883-838, 1995.

[10] M. Garey, R. Graham, and D. Johnson, “ The complexity of computing steiner minimal

trees” , SIAM Journal of Applied Mathematics, vol. 32, no. 4, pp. 835-859, June 1977,

[11] P.Winter , “ Steiner Problem in Networks: A Survey” , Networks, vol. 17, no. 2, pp. 129-167,

summer 1987,

[12] F. Hwang and D. Richards, “ Steiner Tree Problems” , Networks, vol. 22, no. 1, pp 55-89,

January 1992.

[13] L. Kou, G. Markowsky, and L. Berman, “ A Fast Algor ithm for Steiner Trees” , Acta

Informatica, vol. 15, no. 2, pp 141-145, 1981.

[14] V. Kompella, J. Pasquale, and G. Polyzos, “ Multicasting for Multimedia Applications” , in

Proceedings of IEEE INFOCOMM’92, pp. 2078-2085, 1992.

[15] V. Kompella, J. Pasquale, and G. Polyzos, “ M ulticast Routing for Multimedia

Communication” , IEEE/ACM Transactions on Networking, vol.1, no. 3, pp 286-292,June

1993.

91

[16] C. Noronha and F. Tobagi, “ Optimum Routing of Multicast Streams” , in Proceedings of

IEEE INFOCOM’94, pp 865-873, 1994.

[17] Q. Zhu, M . Parsa, and J. Garcia-Luna-Aceves, “ A Source-Based Algor ithm for Delay-

Constrained Minimum-Cost Multicasting” , in Proceeding of IEEE INFOCOM’95, pp. 337-

385, 1995.

[18] M. Parsa, Q. Zhu, and J. Garcia-Luna-Aceves, “ An I terative Algor ithm For Delay-

Constrained Minimum-Cost Multicasting” , IEEE/ACM Transactions on Networking, vol.6,

no.4, August 1998.

[19] Q. Sun and H. Langendoerfre, “ An Efficient Delay-Constrained Multicast Routing

Algor ithm” , journal of High Speed Networks Vol. 7 No. 1 1998

[20] V. Kompella, J. Pasquale, and G. Polyzos, “ Two Distibuted Algor ithms for the Constrained

Steiner Tree Problem” , in Proceedings of the second International conference on Computer

Communications and Networking (ICCCN’93), pp 343-349, 1993.

[21] M . Parsa, “ Multicast Routing in Computer Networks” , PhD. Disser tion, University of

California, Santa Cruz, Computer Engineer ing, June 1998.

[22] Y. Im and Y. Choi, “ A Distr ibuted Multicast Routing with End-to-End Delay Bound” in

Proceeding of SEACOMM, Penang, August1998.

[23] X. Jia, “ A Distibuted Algor ithm of Delay-Bounded Multicast Routing for Multimedia

Applications in Wide Area Networks” , IEEE/ACM Transactions on Networking, vol. 6, no.

6, pp 828-837, December 1998.

[24] Y. Lee, Y. Im, K . Lee and Y. Choi, “ A Bandwidth and Delay constrained M inimum Cost

M ulticast Routing Algor ithm” in Proceeding of ICOIN-11, Taipei, Jan. 1997.

[25] G. Rouskas and I . Baldine, “ M ulticast Routing with End-to-End Delay and Delay Var iation

Constraints” , IEEE Journal of Selected Areas in Communications, vol.15, no.3, pp 346-356,

Apr il 1997.

[26] B. Haberman and G. Rouskas “ Cost, Delay, And Delay Var iation Conscious Multicast

Routing” , Tech. Rep. TR-97-03, Depar tment of Computer Science, North Carolina State

University, March 1996.

[27] B. Haberman “ Cost, Delay, And Delay Var iation Conscious Multicast Routing” , Master

Thesis, Depar tment of Computer Science, North Carolina State University, March 1997.

[28] H. Tode, Y. Sakai, H. Okada and Y. Tezuka, “ M ulticast Routing Algor ithm for Nodal Load

Balancing” , in Proceedings of IEEE INFOCOM’92, pp 2086-2095, 1992.

[29] F. Bauer and A. Verma “ Degree-Constrained Multicasting in Point-to-Point Networks” , in

Proceedings of IEEE INFOCOM’95, pp 369-376, 1995.

[30] F. Bauer “ Multicast Routing in Point-to-Point Networks Under Constraints” , PhD

Disser tion, University of California, Santa Cruz, Computer Engineer ing June 1996.

[31] M. Ammar, S. Cheung, and C. Scoglio “ Routing M ultipoint Connections Using Vir tual

Paths in an ATM Networks” , in Proceedings of IEEE INFOCOM ’93, pp 98-105, 1993.

[32] B. Waxman, “ Routing of M ultipoint Connections” , IEEE Journal on Selected Areas of

Communication, Vol. 6, No. 9, pp. 1617-1622 December 1988.

92

[33] F. Bauer and A. Verma “ ARIES: A Rearrangeable Inexpensive Edge-Based On-L ine

Steiner Algor ithm” , IEEE Journal of Selected Areas in Communications, vol.15, no.3, pp

382-397, Apr il 1997.

[34] E. Biersack and J. Nonnenmacher , “ WAVE: A new Multicast Routing Algor ithm for Static

and Dynamic M ulticast Groups” , in Proceedings of the Fifth International Workshop on

Network and Operating System Support for Digital Audio and Video, pp 228-239, 1995.

[35] Q. Sun and H. Langendoerfer , “ A Distr ibuted Delay-Constrained Dynamic Multicast

Routing Algor ithm” , in Proceedings of European Workshop on Interactive Distributed

Multimedia Systems and Telecommunication Services (IDMS'97) Vol. 1309, pp.97-106, 1997

[36] A. Geol and K . Munagala, “ Extending Greedy Multicast Routing to Delay Sensetive

Applications” , Tech. Rep. CS-TN-99-89, Stanford University, Deapr tment of Computer

Science, July 1999.

[37] H. Salama, D. Reeves and Y. Viniotis, “ A Distr ibuted Algor ithm for Delay-Constrained

Unicast Routing” , in Proceeding of IEEE INFOCOM’97, Apr il 1997.

[38] H. Salama, D. Reeves and Y. Viniotis, “ The Delay-Constrained Minimum Spanning Tree

Problem” , IEEE in Proceeding of Second IEEE Symposium on Computers and

Communications (ISCC’97), Alexandria, Egypt, July 1997.

[39] C. Noronha and F. Tobagi, “ Evaluation of Multicast Routing Algor ithms for Multimedia

Streams” , in Proceedings of IEEE International Telecommunications Symposium, August

1994.

[40] H. Salama, D. Reeves and Y. Viniotis, “ Evaluation of M ulticast Routing Algor ithms for

Real-Time Communication on High-Speed Networks” , IEEE Journal on Selected Areas of

Communication, Vol. 15, No. 3, pp. 332-345 Apr il 1997.

[41] C. Diot, W. Dabbous and J. Crowcroft, “ Multipoint Communication: A Survey of Protocols,

Functions, and Mechanisms” , IEEE Journal on Selected Areas of Communication, Vol. 15,

No. 3, pp. 277-290 Apr il 1997.

93

APPENDIX A : Pseudo Code of DCSP Algor ithm

In this appendix we present the pseudo code for DCSP algorithm with its two main subroutines that were described in chapter 3.

A.1 Pseudo Code for DCSP algor ithm

/* Delay Constrained Shortest Path Algorithm based on

Flooding mechanism, the input to the algorithm is:

1 - Graph G with nodes V and links E, G (V, E), to describe the

network topology.

2 - Source Node S

3 - Multicast Group M

4 - Delay Constraint ∆∆∆∆

5 - Constant K, Maximum Number of tokens in any node.

The algorithm outputs a subgraph G` which is either tree or directed acyclic graph and

it contains all the links needed for routing in the shortest path. The graph G (V, E) is

represented as a two dimensional array* /

Graph DCSP ( G(V,E) , S , M , ∆∆∆∆ , K )

{

Insert a token in S

/* Each token contains three fields, Delay(T), the token delay so far,

Cost(T), the token cost so far and an array of stamps that keeps track of

the nodes that token passed so far. At the first token Delay(T) = 0,

Cost(T) = 0 and the array of stamps contains only the stamp of the

source node*/

No. Of Tokens = 1

While ( No. of Tokens > 0 )

94

{

for each Node u in V

{

for each Token T currently in Node u

{

for each neighbor Node v to Node u

{

if Can_Duplicate ( T , u , v )

{

Duplicate_Token ( T , u , v)

I f Node v ∈ M

Update the winner Token of node v

/* The winner token is the token that reaches

the destination with lower Cost(T) and

Delay(T) < ∆ * /

} /* For Can_Duplicate * /

} /* For neighbor node v * /

No. Of Tokens = No. Of Tokens – 1

} /* For Token T * /

} /* For node u * /

} /* For While * /

for each Node u in M

Insert all links that the winner Token for u passed in subgraph G`

Return G`

} /* For DCSP * /

A.2 Pseudo Code for Function Can_Duplicate(T,u,v)

/* Function Can_Duplicate takes the input :

1 - Token T

2 - The Node u that currently holds the token

3 – The Node v that the token needs to be duplicated in.

95

Then the function outputs either False when the Token T can’ t be duplicated from u

to v or True when the token can safely be duplicated from u to v * /

Boolean Can_Duplicate ( T , u , v )

{

/* If the token will exceed the delay limit, we will not duplicate it * /

if ( Delay(T) + Delay ( u , v ) ) > ∆

Return False

/* If the token will make a loop, we will not duplicate it * /

if Node v stamped Token T before

Return False

/* If we got a better token before, we will not duplicate the token, this can be

achieved by comparing the current token by the history kept at node v to see if there

was a better token in terms of delay and cost w.r.t current token or not* /

if Node v got a better token before

Return False

/* If there is no room for the new token, we will not duplicate it * /

/* We limit the number of tokens that can be kept by any node by the number K.

So, if we have a new token after the first K, we have to choose a victim from the K+1

tokens. Our heuristic is to choose the token with the highest delay * /

if there are K tokens in Node v

if Token T has the highest delay among all tokens in node v

Return False

Else

Delete the token that has the maximum delay among all

tokens in

node v

/* Now the Token T is valid for duplication, and we have to put it in the

history of Node v as one of the best tokens so far * /

96

/* If the history is full, we have to remove one of the old entries in this

history. Our heuristic is to remove the entry with the highest delay * /

I f the history list of node v has K entries

Delete the one with the highest delay

Insert Token T in the history list of Node v

Return True

} /* for Can_Duplicate * /

A.3 Pseudo Code for Procedure Duplicate_Token(T,u,v)

/* Procedure Duplicate_Token is used to duplicate Token T from Node u to

Node v , the procedure has three inputs:

1 - Token T that needs to be duplicated

2 - The Node u that currently holds the token

3 – The Node v that the token needs to be duplicated in.

* /

Duplicate_Token ( T , u , v )

{

/* Update the token cost and delay * /

Cost(T) = Cost(T) + Cost ( u , v )

Delay(T) = Delay(T)+ Delay ( u , v )

Node v puts its stamp on Token T

No. Of Tokens = No. Of Tokens + 1

}

97

APPENDIX B : Pseudo Code of DVCSP Algor ithm

In this appendix we present the pseudo code for DVCSP algorithm with its main subroutines that were described in chapter 5.

B.1 Pseudo Code for DVCSP algor ithm

/* Delay and Delay Variation Constrained Shortest Path

Algorithm, the inputs to the algorithm are:

6 - Graph G with nodes V and links E, G (V, E), to describe the

network topology.

7 - Source Node S

8 - Multicast Group M

9 - Delay Constraint ∆∆∆∆

10 - Delay Variation Constraint

11 - Constant K, Maximum Number of tokens in any node.

The algorithm outputs a subgraph G` which is either tree or directed acyclic graph and

it contains all the links needed for routing in the shortest path. The graph G (V, E) is

represented as a two dimensional array* /

Graph DVCSP ( G(V,E) , S , M , ∆∆∆∆ , , K )

{

Delay_Constraint_Phase( G(V,E) , S , M , ∆∆∆∆, K )

for each node m in M

I f there is no tokens in m

return failure to satisfy the delay constraint.

98

Graph = Delay_Variation_Constraint_Phase( M , )

for each node m in M

I f there is no tokens in m

return failure to satisfy the delay variation constraint.

return Graph

}

B.2 Pseudo Code for Phase I : Delay_Constraint_Phase

/* Phase I: Delay Constraint Phase takes the input:

1- Graph G with nodes V and links E, G (V, E), to describe the

network topology.

2- Source Node S

3- Multicast Group M

4- Delay Constraint ∆∆∆∆

5- Constant K, Maximum Number of tokens in any node.

This phase divides the interval [0, �] into K segments with equal size � / K where

each node u can have only one token in each segment. This phase outputs at most 3K

tokens for each node m ∈ M where each segment can contain only the results of three

tokens, the least delay, highest delay and the least cost token. * /

Delay_Constraint_Phase ( G(V,E) , S , M , ∆∆∆∆ , K )

{

Insert a token in S

/* Each token contains three fields, Delay(T), the token delay so far,

Cost(T), the token cost so far and an array of stamps that keeps track of

the nodes that token passed so far. At the first token Delay(T) = 0,

99

Cost(T) = 0 and the array of stamps contains only the stamp of the

source node*/

No. Of Tokens = 1

While ( No. of Tokens > 0 )

{

for each Node u in V

{

for each Token T currently in Node u

{

for each neighbor Node v to Node u

if Can_Duplicate ( T , u , v ) Duplicate_Token ( T , u

, v, M)

No. Of Tokens = No. Of Tokens – 1

} /* For Token T * /

} /* For node u * /

} /* For While * /

} /* For Delay_Constraint_Phase * /

B.3 Pseudo Code for Function Can_Duplicate(T, u, v)

/* Function Can_Duplicate takes the input :

1 - Token T

2 - The Node u that currently holds the token

3 – The Node v that the token needs to be duplicated in.

The function outputs either False when the Token T can not be duplicated from u to v

or True when the token can safely be duplicated from u to v * /

Boolean Can_Duplicate ( T , u , v )

{

/* If the token will exceed the delay limit, we will not duplicate it * /

if ( Delay(T) + Delay ( u , v ) ) > ∆

Return False

100

/* If the token will make a loop, we will not duplicate it * /

if Node v stamped Token T before

Return False

/* Calculate the segment that token T wants to duplicate in * /

Segment_no = (Delay(T) * K ) / �

/* Each token should keep at most one token in each segment * /

if node v has another token T1 in the segment Segment_no

/* According to our heuristic, if two tokens want to

duplicate at the same time in the same segment in the same

node, we choose the token with least delay * /

if (Delay(T1) < Delay(T))

Return False

else

Delete token T1

Return True

} /* for Can_Duplicate * /

B.4 Pseudo Code for Procedure Duplicate_Token(T, u ,v, M)

/* Procedure Duplicate_Token is used to duplicate Token T from Node u to

Node v , the procedure has four inputs:

1 - Token T that needs to be duplicated 2 - The Node u that currently

holds the token

3 – The Node v that the token needs to be duplicated in. 4- Multicast Group M * /

Duplicate_Token ( T , u , v, M )

{

/* Update the token cost and delay * /

101

Cost(T) = Cost(T) + Cost ( u , v )

Delay(T) = Delay(T)+ Delay ( u , v )

Node v puts its stamp on Token T

No. Of Tokens = No. Of Tokens + 1

/* if node v is in multicast group, we will update the least delay, highest delay and least cost tokens

kept at the segment that token T wants to duplicate in. * /

if ( v ∈ M )

{

/* Calculate the segment that token T wants to duplicate in * /

Segment_no = ( (Delay(T) + Delay (u , v)) * K ) / �

/* Compare the duplicated token with the least delay token in

this segment and if it is better, replace the old one* /

if (Delay(T) < Least_Delay[ Segment_no] )

Least_Delay[ Segment_no] ) = Delay(T)

/* Compare the duplicated token with the highest delay token in this segment

and if it is better, replace the old one*/

if (Delay(T) > Highest_Delay[ Segment_no] )

Highest_Delay[ Segment_no] ) = Delay(T)

/* Compare the duplicated token with the least cost token in this

segment and if it is better, replace the old one* /

if (Cost(T) < Least_cost[ Segment_no] )

Least_cost[Segment_no] ) = Cost(T)

} /* for if condition * /

} /* for Duplicate_Token * /

B.5 Pseudo Code for Phase I I : Delay_Variation_Constraint_Phase

/*This phase is responsible for satisfying the delay variation constraint, given that all

the examined tokens in this phase are already satisfy the delay constraint. This phase

has two inputs :

1- Multicast Group M

2- Delay Variation Constraint

The phase returns a subgraph G` which is either tree or directed acyclic graph and

contains all the links needed for routing in the shortest path. * /

102

Graph Delay_Variation_Constraint_Phase ( M , )

{

/* Collect all the tokens that kept in each node u ∈ M in one array called

merged_array which is sorted in ascending order according to the delay of each

token* /

for each node u ∈ M

for each segment segment_no in node u

{

Insert the token least_delay[ segment_no] into merged_array.

Insert the token highest_delay[segment_no] into merged_array.

Insert the token least_delay[segment_no] into merged_array.

}

start_pointer = 0

for each token T in merged_array

{

/* We should keep track of start_pointer and end_pointer such that the

difference between the delay of the tokens at start_pointer and

end_pointer satisfy the delay variation constraint * /

end_pointer = start_pointer

Ts = The token that start_pointer points to

Te = The token that end_pointer points to

D = The destination that we got Te from

total_cost = 0

best_cost = �

Set all elements in cost_window array to �

/* Advance Te till it violates the delay variation constraint * /

while (Delay(Te) – Delay(Ts) < � )

{

/* We will check all the tokens that lie between Ts and

Te. If this goup of tokens contain at least one token from

each destination, then we got a solution and we will

compare it with the best solution we got before. If this

103

group of token does not contain any token from a certain

node, so there is no solution in this interval. * /

if (cost_window[D] = � )

{

/* This is the first token found in the interval

[Ts, Te] that represents the destination node D * /

total_cost = total_cost + Cost(Te)

cost_window[ D] = Cost[Te]

}

else

{

/* Destination D had a token before in

interval [Ts , Te], so, we will compare this

token by the new token and choose the least

cost one * /

if ( cost_window[D] > Cost(Te) )

{

total_cost = total_cost –

cost_window[ D] + Cost(Te)

cost_windoe[D] = Cost[ Te]

}

}

end_pointer = end_pointer + 1

}

/* Check if the interval [Ts, Te] covers all the destination or not. * /

if cost_window does not contain �

{

/* The interval [Ts, Te] covers all the destination, so, we will check

whether the total cost of the tokens so far is the best one or not * /

if (total_cost < best_cost)

{

best_cost = total_cost

best_window = cost_window

104

}

}

start_pointer = start_pointer + 1

} /* for For Loop * /

if best_window contain �

return failure to satisfy delay variation constraint

else

The returned graph is the union of all paths constituting the tokens in

best_window

} /* for Delay_Var iation_Constraint_Phase * /

B.6 Pseudo Code for Procedure Get_Minimum_Variation (M)

/* This procedure is executed only when phase II failed to satisfy the delay variation

constraint. The procedure returns a subgraph with the minimum possible delay

variation * /

Graph Get_Minimum_Variation ( M )

{

start_pointer = 0

Ts = The token that start_pointer points to

D = The destination that we got Te from

best_delay = �

Set all elements in best_window array to � for each token T in merged_array

{

delay_window[ D] = Delay(Ts)

if (delay_window does not contain �)

{

/* The maximum variation can be calculated by calculating the maximum and

minimum values in delay_window array and get their difference * /

Var = calculate the maximum variation in delay_window

If (Var < best_delay)

105

{

/* This is the best variation we got so far * /

best_delay = Var

best_window = delay_window

}

}

start_pointer = start_pointer + 1

} /* For Loop * /

The resulted graph is the graph that contains all the paths constituting the tokens

participating in best_window array

} /* For Get_Minimum_Var iation ( M)

106

�������� ������������� ����������������� !� � �"� ��#��$%�&��'(���)*+�,(��-

�.��/���01$���2�)����3���45�'$�����6�)�3��3���)� ���������7����8'�9-������2����/���01$��

&�5(3���2�&�-$:�����(3-;3���<=�>

? �,(��3���@2A��B#��$����C�? �2�@$D2�E�3F�G��<�����<���&D�����&/������<���-���H�C�

����012������I�����>�<���&D�����&/������<���-���H�C�?���,(��3����I�=���B#��$������J

� ���01$������K��/���� L �MJ�E�3F�N�*O�2� ����012������I�����@$D2�E�3F�G��<����

�����P� 6� ������� �9QH�RJ>

��S��9-�������O� ��T��2�U�$�J�V�'���H�&��'(�W

��$:�3���2� �������������$:�3���,(�2�&��'(���X$F$3��&�/�%�S ��-�S-�@2!��U�����

�C�?���Y�F$-�S-�N�*O�2�����T���01$���������� ������������� ������������3������ Z�

�?3�[9-�V�/�O�2�&��'(��� �>

I�=���U�������S-��1�2�2� ������������� ���������@�������&���������'������\ (6��

�<���] ����,(�G��X$I�<O����&�����������#��$����\ (6�G��X�$IJ���6���H��?/�9:-

B#��$%�<O���L�3��2�U$�6�&����̂TF$��B#��$%>

������� ����������������� !�,(��3���@2A��B#��$����\ (6����=���U�������S-��1�2

�������I�����@$D2�E�3F�G��<�����<���VD�����&/������<���-���H�C�? �R*���2� �����

����012�>�)����-�V"���,(�G��,(��3���B#��$������ �������I�����<��+�\ (6�S-�N�*O�2

&�TD���QH�2>

&�I�����_ (̀ � 6�,(��3���@2A��B#��$�����a�/���<��T-�<36�G��(���U�������S-��1�2�

�U���-� ��(�O���6�_ (̀ � 6�N�b�2�V��c3���d/I�<T��&�����3���&�����������#��$����

V����T������c����O�T-������)�O�T3��>

������� ����������������� !�,(��3����I�=���B#��$����\ (6�d������U�������S-��1�2

��<�����<���&D�����&/������<���-���H�C�? �R*���2� ������������I�����@$D2�E�3F�G

107

�����P� 6� ������� �9QH�RJ� ���01$������K��/���� L �MJ�E�3F�N�*O�2� ����012�>�S-��3O

)����-�V"���,(�G��,(��3���B#��$������ �������I�����<��+�\ (6>

�&�I�����_ (̀ � 6�,(��3����I�=���B#��$�����a�/���<��T-�<36�S-�e������U������

��$�����2�,(��3���@2A��B#��$�����&�I�����N�*O�2�G��(���U��������?-�O�T��03-����������#

V����T������c����O�T-������)�O�T3���U���-� ��(�O���6�_ (̀ � 6�N�b>

�&D�������P�(�1!��\ (6�G��V��'(���f5��9��] ���-�2�\ (6�G������U����.��S-��1�2

H� �3 ������&�����3���@�36A��&��'(���X$F$3���?���F>

��I�=���_T�3���<�J�,(��3���@2A��B#��$�������:/-�gD2�\ (6�S-�@2A��_T�3�����2

,(��3����I�=���B#��$�������:/-�gD2���6�R$�T��>

108

V ��9�'!��V���"

V'�9?���V��O

.�h��S�T����2�V'�T����Mh��S�1

V�����V��'� (���"�3���V"�����6�@$:T���.5L"�#��IZO

C�(H�0T- �$�O����b��'A��i�9 �����& LI��3T�

)�$�O����i4 $T����3T��@�3O��3PJ�a��2

V ��9�'!� jkkk