A framework for reliability aware layered multi-cast in lossy networks with network coding

A framework for reliability aware layered multi-cast in lossy networks with network coding

Computer Communications 33 (2010) 1651–1663 Contents lists available at ScienceDirect Computer Communications journal homepage: www.elsevier.com/loc...

794KB Sizes 0 Downloads 7 Views

Computer Communications 33 (2010) 1651–1663

Contents lists available at ScienceDirect

Computer Communications journal homepage: www.elsevier.com/locate/comcom

A framework for reliability aware layered multi-cast in lossy networks with network coding Sucha Supittayapornpong a,*, Poompat Saengudomlert a, Wuttipong Kumwilaisak b a b

Telecommunications Field of Study, School of Engineering and Technology, Asian Institute of Technology, Pathum Thani, Thailand Electronics and Telecommunication Department, Faculty of Engineering, King Mongkut’s University of Technology Thonburi, Bangkok, Thailand

a r t i c l e

i n f o

Article history: Available online 18 April 2010 Keywords: Reliability guarantee Layered multi-cast Network coding Optimization Lossy network

a b s t r a c t This paper provides an explicit framework for reliability aware layered multi-cast of multimedia data in a lossy network coded by a static network code. In a lossy network, a data packet multi-cast from a source arrives at each destination successfully only with some probability. Destinations are heterogeneous in their maximum receiving rates, which are the maximum-flow rates through the network. The proposed framework first formulates the problem of assigning a transmission infrastructure (network subgraph) as well as a set of destinations to each multi-cast layer as a binary integer linear programming problem that can be solved using standard techniques. These infrastructures are selected subject to the reliability constraints for individual destinations in each multi-cast layer. To facilitate a network code construction for each layer with reliability awareness, the framework next provides an algorithm to generate a set of success patterns of link transmissions to be taken into account during code construction. Based on this set of success patterns, a static network code construction algorithm is proposed in order to create a static network code that allows a subset of destinations with sufficient receiving rates to receive the layer information. The resulted network code provides reliability for the infrastructures selected from the first step. Numerical results are provided to demonstrate the advantages of our framework in providing reliable layered multi-cast to heterogeneous destinations. Ó 2010 Elsevier B.V. All rights reserved.

1. Introduction Transmission of multimedia contents from a source to heterogeneous destinations with different receiving rates is a challenging problem. In general, destinations can receive different amounts of multimedia contents depending on their maximum-flow rates through the supporting network. The destinations with higher maximum-flow rates can obtain better multimedia qualities than those with lower maximum-flow rates. One of several popular multimedia coding approaches used in multimedia transmission under such a heterogeneous environment is successive refinement [1]. In the successive refinement coding, multimedia data are coded into several layers of information, where layer i is useful for decoding at a destination only when layers 1, 2, . . . , i  1 are correctly received at that destination. The more layers a destination correctly receives, the better multimedia quality the destination perceives. Network coding [2] is well-known in reducing delay, increasing throughput, and improving transmission reliability in a multi-cast * Corresponding author. Address: Telecommunications, School of Engineering and Technology, Asian Institute of Technology, Km 42, Phaholyothin Highway, Klong Nung, Klong Luang, Pathum Thani 12120, Thailand. Tel.: +66 (0) 89 449 0256; fax: +66 (0) 2 524 5730. E-mail addresses: [email protected] (S. Supittayapornpong), poompats@ ait.ac.th (P. Saengudomlert), [email protected] (W. Kumwilaisak). 0140-3664/$ - see front matter Ó 2010 Elsevier B.V. All rights reserved. doi:10.1016/j.comcom.2010.04.010

scenario. Using network coding in multi-casting layers of multimedia data can possibly enhance the multimedia qualities perceived by all heterogeneous destinations. The applications of network coding to layered multi-cast have been investigated in [3–5]. In [3], the problem of routing and link capacity allocation for layers of multi-cast information was formulated as a linear optimization problem. The goal of their work was to maximize the aggregate information rate to all destinations. In [4], Zhao et al. pointed out that the optimization approach requires global information and proposed a practical distributed heuristic algorithm to solve the routing and link capacity allocation problem. In [5], the information rates in different multi-cast layers were considered as decision variables to further improve the throughput of the system. However, there are two main issues the previous works in [3–5] did not consider. First, the networks were assumed to be lossless, where in practice the networks are generally lossy. Second, the routing and link capacity allocation for layered multi-cast did not take end-to-end reliability guarantee of each multimedia layer into account. To address these issues, we investigate reliability aware layered multi-cast of multimedia data in a lossy network. The data packets multi-cast from a source to heterogeneous destinations arrive at each destination successfully with some probability. Packet losses are modeled as being independent over time and among different links.

1652

S. Supittayapornpong et al. / Computer Communications 33 (2010) 1651–1663

Notations cl capacity of link l D set of all destinations Di set of potential destinations in layer i i D set of supported destinations in layer i F finite field for network coding ðd;iÞ fl information rate on link l to destination d in layer i GðV; EÞ a graph G consisting of set V of nodes and set E of links GðV; E½sÞ an error free topology at time s Gi ðVi ; Ei Þ subgraph for layer i GS set of global coding vectors in success pattern S CI(n) set of incoming links with respect to node n CO(n) set of outgoing links with respect to node n Cmax maximum number of incoming links over all nodes I g(l) global coding vector on link l gS(l) global coding vector on link l in success pattern S I set of layer indices

A static network code [6,7] is used as a tool to handle link transmission failures and to increase throughputs at destinations. Static network coding is attractive because the local coding performed at network nodes remains unchanged regardless of which transmissions fail. While methods for code construction exist in [6–8], two issues were not treated. First, these methods assume a given set of success patterns as an input, where a success pattern is the set of links with successful transmissions. Note that a success pattern can be used interchangeably with a failure pattern, which is a set of links with failed transmissions. Second, the considered success patterns are such that all multi-cast destinations are capable of receiving the source rate under each success pattern. To handle these issues, we explicitly provide a process of generating a set of success patterns to be used as an input in the proposed process of network code construction. Then, we proposed a network code construction algorithm which differs from [8] as the proposed algorithm is a destination-based method. More specifically, our consideration includes the cases in which only a subset of destinations are able to receive information while the algorithm in [8] considers only the cases in which all destinations are able to receive information. Other methods of network coding to handle link transmission failures are random network coding [9] and robust network coding with rate-diversity trade-off [10]. The former randomly combines input information at each intermediate node to generate output information. With a given redundancy in transmission links [9], the probability that a destination can retrieve the original source information is derived. The latter utilizes path diversity to increase the robustness against transmission failures, and needs to trade some source rate with the resistance to failures. Both methods consider increasing robustness and differ from our approach that considers providing reliability guarantee. The overall goal of this paper is to provide a framework for reliability aware layered multi-cast in lossy networks using static network coding. We reported preliminary results of this framework in [11]. The framework consists of the following main steps.

M M(r) m(l) PðÞ pl q(d,i) Rðd;iÞ Rd ðlÞ ri r(l)

q(d,i) Sd t(l) w(i) x(d,i)

number of information layers time to test linear independence among r vectors local coding vector for link l power set of its argument successful transmission probability of link l reliability requirement for destination d in layer i set of link-disjoint paths for destination d in layer i predecessor link of link l in some link-disjoint path of destination d rate of layer i receiver of link l lower bound on reliability for destination d in layer i set of success patterns for destination d transmitter of link l weight for a destination in layer i indicator variable for destination d in layer i

give priorities to lower layers since information in upper layers are not useful without them. The proposed optimization formulation is based partly on the work in [3–5].  For each multi-cast layer, a set of success patterns are created to be used as an input to the proposed static network code construction algorithm. We provide explicitly an algorithm for doing so. As mentioned above, a success pattern may allow only a subset of destinations with sufficient receiving rates to receive the layer information.  For each multi-cast layer, a static network code is created such that, under each success pattern, the subset of destinations capable of receiving the layer information can successfully decode. The proposed static network code construction algorithm is modified based on the work in [8]. Note that the proposed framework provides an explicit procedure to support bandwidth efficient multi-cast transmissions of multimedia data with reliability guarantee for individual destinations. Such guarantees are important in the Next Generation Network (NGN), where reliability guarantee of multimedia data is a crucial issue. The rest of this paper is organized as follows. Section 2 defines network and multi-cast traffic models as well as relevant assumptions used in this paper. Section 3 discusses the optimization formulation that provides transmission infrastructures for different multi-cast layers subject to the end-to-end reliability guarantee for each destination in each multi-cast layer. Section 4 provides a static network code construction algorithm that allows a subset of destinations to receive the information layer. Section 5 discusses how to systematically create a set of success patterns to be used as an input to the code construction algorithm. Section 6 demonstrates the advantages of our proposed framework for layered multi-cast with static network coding in comparison to existing techniques. Conclusions are provided in Section 7. 2. System model 2.1. Network model

 A transmission infrastructure (network subgraph) as well as a set of destinations is assigned to each multi-cast layer subject to the end-to-end reliability guarantee for each destination in the layer. We formulate the problem as a binary integer linear programming problem or a 0–1 linear program [12] that can be solved either optimally or suboptimally using standard heuristics. When different layers compete for link capacities, we

We model a communication network of interest as a directed graph GðV; EÞ, where each terminal is represented by a node in a set of nodes, denoted by V, and each transmission line is represented by a directed link in a set of links, denoted by E. Assume that each link l has a positive integral capacity denoted by cl. For simplicity, we consider a link capacity in packets per time unit,

S. Supittayapornpong et al. / Computer Communications 33 (2010) 1651–1663

with all packets having a fixed and equal size. An example network topology is illustrated in Fig. 1a. Assume that the network operates over slotted time. In each time slot, a packet transmission over link l 2 E is successful with probability pl, 0 6 pl 6 1. In addition, for each link l with cl > 1, individual packet transmissions (up to cl transmissions) in the same time slot are each successful with probability pl, independent of the other transmissions. For convenience and without loss of generality, a link with capacity cl > 1 will be considered as cl unitcapacity links in parallel. Therefore, in what follows, we shall assume that all links in E have a unit capacity. Assume that the statistics of transmission successes for each link is independent among different time slots, and is independent from the other links. These assumptions are reasonable for networks whose link qualities are relatively static. For a particular time slot s, let E½s be the set of links whose transmissions will be successful if they occur. We refer to the graph GðV; E½sÞ as the error-free topology at time s. An example of GðV; E½sÞ is shown in Fig. 1b, where there is one transmission failure on link 4 and one on link 5 in time slot s. Denote the transmitter and the receiver of link l 2 E by t(l) and r(l) respectively. For each node n 2 V, let CI ðnÞ ¼ fl 2 EjrðlÞ ¼ ng and CO ðnÞ ¼ fl 2 EjtðlÞ ¼ ng denote the sets of incoming and outgoing links with respect to node n. A multi-cast session consists of one source, denoted by s 2 V, and a set of destinations, denoted by D  V. In general, the destinations may have different maximum-flow rates from the source. Denote the maximum-flow rate of destination d 2 D by y(d). With the heterogeneity of destinations’ maximum-flow rates, information from the source is divided into layers to which each destination attempts to successively subscribe up to its capability. This layer concept is also presented in [3–5]. Let M be the number of information layers, and I ¼ f1; . . . ; Mg be the set of layer indices. The rate of layer i 2 I is denoted by ri, which we shall call it as layer-i rate. In general, the number of layers and the layer rates depend on the application. The set of destinations potentially receiving up to layer-i information is P n o P  Di ¼ d 2 D ij¼1 r i 6 yðdÞ < iþ1 j¼1 r i . Note that, in the end, some destinations in Di may not receive the layer information. This layering scheme is applicable to layered multimedia transmission where information is separated into layers and each destination successively subscribes to layers according to its maximum-flow rate [1]. In addition, a layer-i information unit, e.g., packet, is meaningful at a specific destination only if the corresponding information units from layers 1, . . . , i  1 are successfully received. 2.2. Static linear network coding Static linear network coding [6–8] is employed separately for each multi-cast information layer. This method is also called intra-session network coding [13] where the coding between layers, called inter-session network coding, is an ongoing research [13]. Each node in the network is capable of combining information

1653

from its incoming links before forwarding the combined information. The rule for combining is fixed at each node. This combining leads to link capacity sharing used in Section 3. For a destination node, network coding imposes a condition of successful decoding as stated in Statement 1. Statement 1. For each layer i with static linear network coding, each destination receives the information rate equal to layer-i rate when a supportable flow rate to d (in layer i) is at least the layer-i rate; otherwise, the receiving rate is zero. The previous static linear network code constructions [7,8] cannot be directly applied to our lossy network model since they do not guarantee decodability at a destination whose flow rate is still at least the layer rate while the flow rates of some other destinations are strictly below the layer rate. Therefore, we propose an algorithm for constructing a static linear network code with a reliability guarantee for each destination as defined in Section 2.4. The code construction is described in Section 4. The resulted code can tolerate some transmission failures as long as the flow rate to a particular destination is still at least the layer rate. 2.3. Layer subgraphs To support layered multi-cast, the network first determines a fixed infrastructure (network subgraph) used to send information to the destinations in each layer using an optimization formulation ðd;iÞ in Section 3. Over topology GðV; EÞ, let fl 2 f0; 1g be the rate of information flow on link l 2 E used to transmit layer-i information to node d 2 Di , where i 2 I. ðd;iÞ The subset of links with non-zero values of fl can be considered as a predefined acyclic subgraph for the transmission of layer-i information from source s to destination d. While convolutional network codes [7] can also be constructed based on cyclic subgraphs [14], we focus on acyclic subgraphs in this work. Thanks to network coding, the subgraphs for the destinations in the same layer can share link capacities instead of competing for them. Thus, ðiÞ the allocated capacity of link l for layer i is given by ul ¼ ðd;iÞ maxd2Di fl . We can define the layer-i subgraph as Gi ðVi ; Ei Þ, where ðiÞ Ei ¼ fl 2 Ejul > 0g and Vi ¼ fn 2 Vjn ¼ tðlÞ _ n ¼ rðlÞ; 9l 2 Ei g. For instance, based on the network in Fig. 1a, Fig. 2a illustrates the subgraph resulted from link capacity sharing between destina in the same layer. tions d and d Accordingly, let Gi ðVi ; Ei ½sÞ denote the error-free layer-i subgraph in time slot s. Fig. 2b shows one possible error-free subgraph corresponding to the subgraph in Fig. 2a with one transmission  receive flows failure on link 4. In this example, destinations d and d with rates 1 and 2 respectively. 2.4. Reliability We define the reliability according to Statement 1 when network coding is applied to each layer subgraph as follows.

Fig. 1. Example of a network model: (a) an original topology and (b) a topology at time s when links 4 and 5 fail. A dotted arrow represents transmission opportunity.

1654

S. Supittayapornpong et al. / Computer Communications 33 (2010) 1651–1663

ðdÞ

Fig. 2. Example of a network flow in layer i: (a) flows in the original topology and (b) flows in the topology at time s, where fl

Definition 1. The reliability perceived by a destination in layer i 2 I is defined as the probability that the destination’s receiving rate in layer i is at least ri. From the above definition, evaluation of the reliability for each destination in each layer requires extensive computational power [15] since we need to enumerate all error-free subgraphs that can support the layer rate to that destination. In order to incorporate reliability into the process of subgraph selection without too much computational complexity, a lower bound on reliability is used in the process instead of the actual reliability. Note that using a lower bound on reliability results in a conservative subgraph selection for each layer. A lower bound on the reliability can be derived from the probability that every link in the ri link-disjoint paths (with unit capacity) for destination d in layer-i subgraph is successful. This ri linkdisjoint paths always exist when a maximum-flow rate to the destination is ri [16]. More specifically, let Rðd;iÞ  E be the path set of ri link-disjoint paths for destination d 2 Di in the layer-i subgraph. This set can be obtained from the well known Ford–Fulkerson algorithm [17]. The lower bound on reliability for destination d in layer i, denoted by q(d,i), is then

qðd;iÞ ¼

Y l2Rðd;iÞ

pl ¼

Y

f

ðd;iÞ

pll

ð1Þ

;

l2E

where we use the notation l 2 Rðd;iÞ to indicate that link l is on some path in Rðd;iÞ . Eq. (1) gives a lower bound on the reliability because, in some networks, information flows of one destination may be redundant flows of other destinations. As an example, consider Fig. 2a, which shows information flows destined to destination d some of which  As we can see from Fig. 2b, destination are redundant flows of d.  can still receive with rate 2 although the transmission on link 4 d in its path set fails. 3. Reliable subgraph selection for layered multi-cast

(

wðiÞ ¼

1 QMi j¼1

Maximize

i¼M

wðiþ1Þ ðjDiþ1 j þ 1Þ i ¼ 1; . . . ; M  1;

X

xðd;iÞ :

ð4Þ

d2Di

Given the reliability requirement q(d,i), 0 6 q(d,i) 6 1, for destination d in layer i, a constraint for the reliability guarantee can be derived from the lower bound on reliability in (1) as

Y

f

ðd;iÞ

pll

P qðd;iÞ :

ð5Þ

l2E

Note that constraint (5) is conservative for the reliability since the left term is a lower bound. However, using (5) as a constraint yields an integer non-linear programming problem, which is known to be computationally difficult. Therefore, we transform the constraint into a linear form by taking the logarithm on both sides, yielding

X

^ðd;iÞ ; ^l flðd;iÞ P q p

ð6Þ

l2E

^ðd;iÞ ¼ log qðd;iÞ . ^l ¼ log pl and q where p 3.3. Problem formulation Using the objective function (4) and the transformed reliability constraint (6), the layer subgraph selection problem is formulated as the following binary integer linear programming problem.

X

wðiÞ

i2I

X

Subject to

X

xðd;iÞ

d2Di ðd;iÞ

fl

X



l2CO ðnÞ

ðd;iÞ

fl

l2CI ðnÞ

8 ðd;iÞ n¼s > < ri x ¼ ri xðd;iÞ n ¼ d > : 0 others ðiÞ

fl 6 tl X ðiÞ tl 6 1

i 2 I;

d 2 Di ;

l 2 E;

i 2 I;

n 2 V ð7aÞ d 2 Di

l2E

ð7bÞ ð7cÞ

i2I

X

1 destination d joins layer i 0 otherwise:

1

wðiÞ

ðd;iÞ

^ðd;iÞ ^l flðd;iÞ P q p

i 2 I;

d 2 Di

ð7dÞ

l2E

To give higher priorities for lower layers, we define the weight w(i) for a destination in layer i as

wðiÞ ¼

ð3Þ

3.2. Reliability constraint

Let x be an indicator variable specifying whether destination d 2 Di receives multi-cast information from layer i 2 I, i.e.,



X i2I

(d,i)



i¼M ðjDiþj j þ 1Þ i ¼ 1; . . . ; M  1:

The objective function is

3.1. Objective function

xðd;iÞ ¼

and only non-zero flows are labeled.

from all destinations in layer i + 1. From mathematical manipulation, the weight w(i) can be expressed in a closed form as

Maximize

The goal of this section is to select a subgraph as an infrastructure for each multi-cast layer subject to a reliability guarantee for each destination. We formulate the problem as a binary integer linear programming problem whose objective is to maximize the aggregate rate while giving higher priorities to lower layers.

ðd;iÞ

¼ fl

ð2Þ

where jAj is the cardinality of A. The weight in (2) ensures that the weight of a destination in layer i is higher than the total weight

Variables

xðd;iÞ P xðd;iþ1Þ

i 2 IM1 ;

ðd;iÞ fl 2 f0; 1g ðiÞ tl 2 f0; 1g ðd;iÞ

l 2 E;

i 2 I;

l 2 E;

i2I

ð7gÞ

i 2 I;

d 2 Di

ð7hÞ

x

2 f0; 1g ðiÞ

d 2 Di d 2 Di

ð7eÞ ð7fÞ

In the above problem, t l is the capacity used on link l by the layer-i subgraph and IM1 ¼ f1; . . . ; M  1g.

S. Supittayapornpong et al. / Computer Communications 33 (2010) 1651–1663

Constraints (7a) are flow conservation constraints. Constraint ðiÞ (7b) follows from the definition of tl . Constraint (7c) is the link capacity limit. Constraint (7d) is the reliability constraint. Constraint (7e) is the successive refinement condition. Constraints (7f), (7g), and (7h) specify the possible values for the decision variables. Note that the concept of layer subgraph merging used in formulation (7) is inspired by [3–5]. From an optimal solution of problem (7), layer subgraph ðiÞ Gi ðVi ; Ei Þ for every i 2 I is determined from ul for every l 2 E as stated in Section 2.3. In general, the layer-i subgraph contains a  i  Di since, due to limited link capacities, some destinasubset D tion may not be able to join a layer even if it exists. These subgraphs are used as basic infrastructures on which network coding is applied separately layer by layer. 4. Network code construction with reliability awareness A centralized polynomial time algorithm for network code construction with reliability awareness is proposed. The reliability is based on the subgraphs selected in Section 3. The algorithm exploits an idea from [8] but with a different approach in dealing with success patterns of link transmissions. Specifically, the proposed algorithm is a destination-based method, while the algorithm in [8] cannot treat individual destinations separately. In other words, the proposed algorithm produces a network code that guarantees decodability for a subset of destinations when some transmissions fail, while the algorithm in [8] does not guarantee. Since the algorithm can be executed separately for each layer, without loss of generality, we consider in this section a code construction for a single layer. For notational simplicity, we shall drop the layer index i 2 I in this section. 4.1. Basic definitions for network coding A source s with rate r (in packets per time slot) sends r uncoded  in each sequences of symbols b1, . . . , br to a set of destinations D time slot.1 For simplicity, we assume a packet consists of one symbol without loss of generality. The value of each symbol (packet) bj is taken from a finite field denoted by F. Let b(l) denote the transmitted symbol on link l 2 E. With linear network coding, node t(l) performs a linear combination of incoming symbols b(k), k 2 CI(t(l)), according to a local coding vector defined as follows.

mðlÞ : CI ðtðlÞÞ ! FjCI ðtðlÞÞj X bðlÞ ¼ mk ðlÞ  bðkÞ k2CI ðtðlÞÞ

The global coding vector on link l, denoted by gðlÞ 2 Fr , describes how b(l) is computed from a linear combination of the uncoded symbols b1, . . . , br. In particular,

bðlÞ ¼

r X

1655

4.2. Algorithm concepts Before presenting the detailed steps of the proposed algorithm for a static network code construction, we discuss its main concepts in this section. We first define a set of success patterns for a particular destination. These sets are used as inputs to the algorithm. A process of creating these success patterns is provided in Section 5. Let Rd be the path set of destination d containing r link-disjoint paths from s to d, and is supported by the layer subgraph found previously in Section 3. We next define the set of success patterns for destination d. Definition 2. An Rd -interfered success pattern is the union of the set of all links in Rd and the set of links from one or more paths in Rd each of which (i) originates and terminates at two different nodes on the path (s) in Rd and (ii) contains at least one link not in Rd . Definition 3. The set of success patterns Sd is the set that contains a set of all links in Rd and all possible Rd -interfered success patterns. As an example, Fig. 3a shows a network in which solid arrows represent links in Rd . Three possible Rd -interfered success patterns are shown in Fig. 3a–c. The success pattern set Sd contains those three Rd -interfered success patterns and the set of all links in Rd as shown in Fig. 3d. To illustrate the need to consider such Rd -interfered success patterns in Sd , consider the example in Fig. 4a with F ¼ f0; 1g. The local coding vectors are such that destination d can decode when all links in Rd (solid arrows in Fig. 4a) are successful, as  can decode when all shown in Fig. 4b. In addition, destination d  links in Rd (dashed arrows in Fig. 4a) are successful. However, S  when all links in Rd Rd are successful, destination d receives symbols with dependent global coding vectors as shown in Fig. 4c, and thus cannot decode. The following theorem states that it is sufficient to consider all success patterns in Sd . Theorem 1. Given that all links in Rd are successful, the set Sd contains all success patterns that modify the set of global coding vectors of the links in Rd . Proof. The theorem can be proved by contradiction. Suppose that there exists a success pattern F R Sd that modifies the set of global coding vectors for the links in Rd . Consider a particular link l in Rd whose global coding vector g(l) is modified. This link belongs to one of the r link-disjoint paths from s to d. For the modification of g(l) to happen, there must exist a path from s to t(l) that contains at least one link not in Rd . This path itself must contain (as a subpath) a path that originates and terminates at two different nodes on the

g j ðlÞ  bj :

j¼1

For link l 2 E with t(l) – s, the vector g(l) can be expressed as

gðlÞ ¼

X

mk ðlÞ  gðkÞ:

k2CI ðtðlÞÞ

To make the above expression applicable for all links, it is convenient to assume that the source s has r incoming artificial links with global coding vector g(j) = [0j1 1 0rj] for j = 1, . . . , r. When a destination receives r transmitted symbols whose global coding vectors are linearly independent, it can obtain the r uncoded symbols by solving a system of r linear equations. 1

Rate r corresponds to arbitrary layer-i rate ri.

Fig. 3. Example of a success pattern set Sd containing (a), (b), (c) and (d), where a solid arrow is a link in Rd and a dashed arrow is a link in the subgraph but not in Rd .

1656

S. Supittayapornpong et al. / Computer Communications 33 (2010) 1651–1663

Fig. 4. Coding with success patterns: (a) an original topology with local coding vectors, (b) global coding vectors over only part set Rd and (c) global coding vectors over all links that is reachable to d.

path (s) in Rd . However, by Definitions 2 and 3, this success pattern F must be contained in Sd , yielding a contradiction. h The proposed static network code construction algorithm takes the following inputs: layer subgraph GðV; EÞ, source s,  layer rate r, path set Rd and success patset of destinations D, d  With a field size jFj sufficiently tern set S for each d 2 D. large, the algorithm produces a set of local coding vectors mðlÞ; l 2 E; that guarantees decodability at a destination as long as its maximum-flow rate is at least r and all links in Rd are successful. Similar to [8], the algorithm assigns randomly local coding vectors to the layer subgraph in a topological order. In addition, the algorithm checks for linear independence of the set of most recently assigned global coding vectors on the r link-disjoint paths with respect to each success pattern for each destination. At termination, each destination receives r symbols with linearly independent global coding vectors and can therefore decode. Different from [8], which only deals with success patterns that still allow all destinations to receive the layer rate (maxi our algorithm mum-flow rate of d is at least r for every d 2 D), deals with success patterns that allow a strict subset of destinations to receive the layer rate (maximum-flow rate of d is at  While we can talk interchangeably least r for some d 2 D). about a failure pattern and a success pattern, we find it more convenient to base our discussion on success patterns, e.g., as in Definition 2. 0 The first stage creates an artificial source node s and artificial 0 0 0 links li for i = 1, . . . , r from s to s. In addition, link li is assigned 0 i1 ri the global coding vector gðli Þ ¼ ½0 1 0 . This set of artificial links belongs to each success pattern in Sd for each d 2 D and yields the initial set of global coding vectors on the r link-disjoint paths to each destination. The second stage assigns a local coding vector for each link l in a topological order. The local coding vector is chosen randomly and P uniformly over the field F with size jFj ¼ 2T, where T ¼ d2D jSd j is the total number of success patterns. Note that T gives an upper bound on the field size which is not necessary tight. The algorithm then checks whether this random choice of local coding vector yields linear independence among the most recently assigned global coding vectors on the r link-disjoint paths to each destination under each of its success patterns. If linear independence is achieved under each success pattern for each destination, the chosen local coding vector is kept. Otherwise, another local coding vector is randomly chosen and tested again until such linear independence is achieved. When the algorithm terminates, the obtained set of local coding vectors guarantee that a destination receives a set of symbols

whose global coding vectors are linearly independent under each success pattern for each destination. 4.3. Algorithm description The pseudocode of our algorithm is shown in Algorithm 1, where L denotes a set of local coding vectors and Rd ðlÞ denote a predecessor link of link l on some path in Rd . The computational complexity of each line in Algorithm 1 is listed as a right justified comment. Let Cmax denote the maximum I number of incoming links at a node in the network, and M(r) denote the time to test linear independence among r global coding vectors.2

2 Using the fast linear independence testing technique in [8], the factor M(r) can be replaced by r2.

S. Supittayapornpong et al. / Computer Communications 33 (2010) 1651–1663

The overall algorithm properties are summarized in the following theorem. Theorem 2. Given the layer subgraph GðV; EÞ, source s, set of  and success pattern  source rate r, path set Rd ; d 2 D, destinations D,  With field size jFj ¼ 2T, the algorithm produces a set sets Sd ; d 2 D.  of local coding vectors that guarantees decodability at each d 2 D d when every link in R issuccessful. The expected running time is   O jEjT r Cmax þ r 2 þ MðrÞ . I

1657

links that are not in Rd . We shall denote this set by H  Rd with a slight abuse of notation Rd to mean the set of all links in the original path set. This enumeration is equivalent to forming the power set of H  Rd , denoted by PðH  Rd Þ. Finally, a success pattern is created one by one by taking a union of all links in Rd and a member in PðH  Rd Þ. The overall process is presented as a pseudocode in Algorithm 2.

Algorithm 2. Success Pattern Creation Proof. We first argue that the field size jFj ¼ 2T is sufficient. From lemma 4 in [8], the probability that a randomly chosen local coding vector at a link yields linear dependence among a set of global coding vectors is 1=jFj under a particular success pattern. From the union bound, a randomly chosen local coding vector fails with probability 1=jFj  T. With jFj ¼ 2T, the failure probability is 1/2. It follows that the expected number of times each local coding vector must be chosen is O(1). From Theorem 1, checking all success patterns in Sd is sufficient to guarantee linear independence of the global coding vectors received at destination d when all links in Rd are successful. Hence, destination d can always decode when all links in Rd are successful. Finally, the expected running time can be derived from Algorithm 1 as

3 4 5 6 7 8 9 10 12

þ TðrCmax þ r2 þ MðrÞ þ r 2 Þ þ 1Þ ¼ OðTr2 þ jEj½Cmax I I 

1 2

11

Oððr 2 þ r2 Þ þ jEj½Cmax þ Tðr Cmax þ r 2 þ MðrÞ þ Tr 2  þ jEjÞ I I þ r 2 þ MðrÞÞÞ: ¼ OðjEjTðr Cmax I

Input: GðV; EÞ; s; d; Rd Output Sd //Initialization initialize Q CI ðdÞ initialize H £ // Find interfering links while Q–£ do pick l 2 Q Q Q  flg H H [ flg foreach incoming link of node t(l), j 2 CI(t(l)) do if j R H then Q Q [ fjg // Create success patterns foreach T 2 PðH  Rd Þ do Sd

Sd [ fRd [ Tg

return Sd

ð7iÞ

From Theorem 2, when every link in Rd is successful, destination d can always decode the source information. The probability of this situation is in fact the lower bound on the reliability given in (1), which is guaranteed to be above the reliability requirement by the optimization in (7). Thus, the network code obtained from Algorithm 1 provides both the required rate and the required reliability for each layer subgraph obtained from the optimization in (7). 5. Heuristic success pattern creation In this section, we propose a heuristic algorithm to create a success pattern set Sd as defined in Definition 3 for a particular des Note that an algorithm to create a set of success tination d 2 D. patterns, or equivalently failure patterns, has not been discussed in previous network coding literatures [6–8,10], which assume that the patterns are given. Given layer subgraph GðV; EÞ, source s, destination d, and its path set Rd , the proposed heuristic algorithm creates a super set of Sd . While the heuristic algorithm may generate unnecessary success patterns for Algorithm 1 to operate on, it does not prevent Algorithm 1 to generate a desired static network code that guarantees decodability under each success pattern in Sd . Note, however, that the field size jFj in Algorithm 1 can be selected according to the success patterns obtained from this heuristic. The algorithm first identifies links that can modify a set of global coding vectors of the links along the r link-disjoint paths in Rd . These links will be referred to as interfering links. The process starts from destination d and tracks upstream all the links such that each link is considered only once. As the algorithm proceeds, interfering links are collected in set H while set Q stores links pending for examination. To create a success pattern set for destination d, the algorithm enumerates all possible success patterns from the set of interfering

Algorithm 2 may produce unnecessary success patterns since it does not consider the flow aspect in creating a success pattern. For example, Fig. 5a illustrates a layer subgraph. The interfering links for destination d are shown (as dashed arrows) in Fig. 5b. The algorithm generates four success patterns as shown in Fig. 5c–f. Note that patterns in Fig. 5d and e are unnecessary success patterns. To reduce unnecessary success patterns produced by Algorithm 2, several techniques may For example, links in a gen be applied.  erated success pattern ( Rd [ T in Algorithm 2) that cannot be reached by s can be removed. Such a modification would eliminate the success pattern in Fig. 5e. In addition, links in a generated success pattern that do not lead to d can be removed. Such a modification would eliminate the success pattern in Fig. 5d. Finally, path contraction, where a path consisting of links in H  Rd is con-

Fig. 5. Example success pattern creation; (a) an original topology, (b) the interfering links for destination d and (c–f) all generated success patterns.

1658

S. Supittayapornpong et al. / Computer Communications 33 (2010) 1651–1663

Fig. 6. An example network: (a) an original topology, (b) reliable subgraphs from (7) and (c) unreliable subgraphs.

tracted to a single link, can be applied. Such a modification would eliminate both success patterns in Fig. 5d and e. 6. Numerical results The first part in this section illustrates our framework by providing instances of results in each step of the framework. The results are then compared with a baseline case where the framework is not used to show advantages of our framework. In the second part, results of solving the optimization problem (7) over 10 random topologies are compared with the rate-maximization results. For the first part, results are based on an example network shown in Fig. 6a where each link has a unit capacity and the successful probability of each link is listed in the table inside the figure. The source is node 1 and the destination set is D ¼ f7; 9g. An

application divides information into two layers. Layer-1 rate and reliability are r1 = 2 and q(7,1) = q(9,1) = 0.90, while layer-2 rate and reliability are r2 = 1 and q(7,2) = q(9,2) = 0.85. Based on the maximum-flow rate, the set of potential destinations for layers 1 and 2 are D1 ¼ D2 ¼ f7; 9g. Their weights as defined in (3) are w(1) = 3 and w(2) = 1. We first apply our framework to the example network to show the correctness of reliability guarantee. Then, we show that reliability is not guaranteed when our framework is not employed. 6.1. With the framework Our optimization (7) is solved by a GLPK solver [18] through Octave [19] and yields an optimal solution denoted by ðd;iÞ

ðiÞ

and xðd;iÞ .3 Then, the allocated capacity of links for layers  ðiÞ ðd;iÞ :l2E , 1 and 2 are u(1) and u(2) where uðiÞ ¼ ul ¼ maxd2Di fl fl

; tl

which yield subgraphs for layers 1 and 2 shown in Fig. 6b where the solid arrows represent the links in subgraph G1 ðV1 ; E1 Þ of layer 1 and the dashed arrows represent the links in subgraph G2 ðV2 ; E2 Þ of layer 2. Note that, since every link capacity is one, each arrow of link l in layer i represents that there exists at least one d 2 Di with ðd;iÞ

fl ¼ 1. From x(7,1)* = x(9,1)* = x(9,2)* = 1 and x(7,1)* = 0, the considered  2 ¼ f9g. For layer 1, the path  1 ¼ f7; 9g and D destination sets are D set of destination 7 is Rð7;1Þ ¼ f½2; 10; 13; 14; ½3g while the path set of destination 9 is Rð9;1Þ ¼ f½1; 7; 13; 15; ½2; 9; 12g where [l1, . . . , lk] denotes a path consisting of a sequence of links l1 to lk. For layer 2, the path set of destination 9 is Rð9;2Þ ¼ f½4g. In layer 1, the lower bound on destination 7’s reliability, which is calculated from the lower bound in (1), is q(7,1) =

Fig. 7. Sets of success patterns; (a) Sð7;1Þ and (b) Sð9;1Þ .

3 GNU Linear Programming Kit (GLPK) is a solver for solving large-scale linear programming, mixed integer programming, and other related problems. Octave is a numerical computation program that provides an interface to the GLPK solver. The command calling GLPK is glpk which takes matrix-form inputs of an optimization problem.

1659

S. Supittayapornpong et al. / Computer Communications 33 (2010) 1651–1663

Fig. 8. Network code over the example network: (a) the result from proposed framework and (b) the result from algorithm in [8].

p2p3p10p13p14 = 0.9033. The destination 9’s lower bound of reliability is q(9,1) = p1p2p7p9p12p13p15 = 0.9040. Both lower bounds are greater than the required reliabilities of both destinations. For layer 2, the lower bound of destination 9’s reliability is q(9,2) = p4 = 0.87 which is greater than the required reliability of the destination. Before a network code is constructed for each layer subgraph, sets of success pattern Sð7;1Þ and Sð9;1Þ for destinations 7 and 9 in layer 1 are created by Algorithm 2. We implement the algorithm using Python programming language [20]. The algorithm yields the sets shown in Fig. 7. For layer 2, since there is only one link, the success pattern set for this layer contains only a set containing this link. Then, a set of local coding vectors for each layer is constructed by Algorithm 1. We use the binary field F ¼ f0; 1g, which shows that the upper bound on the field size is not tight. For layer 1, the algorithm yields a set of local coding vectors shown in Fig. 8a. The local coding vector of link 4 in layer 2 is m(4) = [1]. A simulation program is implemented by Python programming. The simulation shows that destination 7 receives with the rate of 1.8068 for layer 1 while destination 8 receives with the rates of 1.8079 and 0.8701 for layers 1 and 2. Note that, for each destination in each layer, the receiving rate is greater than the expected rate which is the multiplication between the layer rate and the required reliability. Thus, the framework provides the reliability guarantee. In fact, each receiving rate is approximately the multiplication of the corresponding layer rate and the lower bound on reliability, e.g., 1.8068 2  0.9033. 6.2. Without the framework 6.2.1. Without the proposed network code construction In contrast, if the layer subgraphs obtained from optimization in (7) are not coded with a set of local coding vectors from Algorithm 1, e.g., using a code provided from previous literatures [7,8], the reliability may not be guaranteed. For example, since success patterns in [7,8] must be able to support every destination with the layer rate, all success patterns of layer 1 are shown in Fig. 9. A set of local coding vectors from [8] with these success patterns

Fig. 9. Success patterns for algorithm in [8].

Table 1 Reliability requirements. Reliability requirements

Group 1 Group 2 Group 3

Layer 1

Layer 2

Layer 3

Layer 4

0.95 0.94 0.93

0.94 0.93 0.92

0.93 0.92 0.91

0.92 0.91 0.90

can possibly be the network code shown in Fig. 8b. From a simulation of the network in Fig. 8b, the receiving rate of destination 7 in layer 1 is 1.7524 which is less than the expected rate from the required reliability (1.8 = 0.2  0.9). Indeed, even infrastructures are determined from the optimization in (7), a network code is also needed to be constructed from Algorithm 1 in order to maintain reliability guarantee. 6.2.2. Without the proposed optimization problem When reliability is not considered, the optimization in (7) assumes that every link is successful with probability 1. Further, the reliability constraint (7d) can be removed. In this case, the formulation finds layer subgraphs that give the highest total weighted rate without reliability consideration. We shall refer to this optimization problem as a rate-maximization problem. Note that the rate-maximization problem has a similar objective to the works in [3–5]. Then, the resulted subgraphs for layers 1 and 2 are shown in Fig. 6c. Instead of finding a network code for layer 1, we assume a network code used is an optimal network code with the property that each destination in a layer always receives the layer information whenever the destination’s receiving rate is at least the layer rate. This assumption implies that, within a certain layer, the optimal network code achieves a fundamental limit of information rate at which a particular destination can receive. Therefore, the reliability a destination perceives in a particular layer is the probability that the destination’s receiving rate is at least the layer rate. For destinations 7 and 9 in layer 1, the probability representing each destination’s reliability can be obtained by using the DeltaStar transformation [21].4 Then, the reliabilities perceived by destinations 7 and 9 are respectively p1p2p8p10p13p14 = 0.7920 and p1p2p7p11p13p15 = 0.7840. Both reliabilities are less than the required reliability which is 0.9. Thus, when our framework is not applied, even with an optimal network code the reliability of each destination in layer 1 of the example network is not guaranteed. 4 A method to enumerate all probabilities of each maximum-flow rate received by a destination.

1660

S. Supittayapornpong et al. / Computer Communications 33 (2010) 1651–1663

Table 2 The results from ten random topologies. Topology

Proposed framework

Rate-maximization framework

Guaranteed cost

1 2 3 4 5 6 7 8 9 10

Optimal cost

Guaranteed cost

Group 1

Group 2

Group 3

Group 1–3

Group 1

Group 2

Group 3

47(3,2,1,1) 47(3,2,1,1) 11(3,2,0,0) 31(3,1,1,1) 15(3,3,0,0) 42(3,2,0,0) 70(3,2,2,0) 105(3,2,2,0) 35(3,2,2,0) 58(3,2,2,0)

47(3,2,1,1) 47(3,2,1,1) 11(3,2,0,0) 31(3,1,1,1) 15(3,3,0,0) 45(3,3,0,0) 71(3,2,2,1) 105(3,2,2,0) 35(3,2,2,0) 62(3,2,2,0)

47(3,2,1,1) 47(3,2,1,1) 11(3,2,0,0) 31(3,1,1,1) 15(3,3,0,0) 47(3,3,2,0) 71(3,2,2,1) 105(3,2,2,0) 35(3,2,2,0) 63(3,3,3,0)

47(3,2,1,1) 47(3,2,1,1) 11(3,2,0,0) 31(3,1,1,1) 15(3,3,0,0) 47(3,3,2,0) 71(3,2,2,1) 107(3,2,2,2) 35(3,2,2,0) 63(3,3,3,0)

47(3,2,1,1) 0(0,0,0,0) 3(1,0,0,0) 0(0,0,0,0) 5(1,1,0,0) 0(0,0,0,0) 0(0,0,0,0) 27(1,0,0,0) 9(1,0,0,0) 0(0,0,0,0)

47(3,2,1,1) 16 (1,1,0,0) 7(2,1,0,0) 8(1,0,0,0) 5(1,1,0,0) 0(0,0,0,0) 0(0,0,0,0) 27(1,0,0,0) 35(3,2,2,0) 0(0,0,0,0)

47(3,2,1,1) 16(1,1,0,0) 11(3,2,0,0) 16(2,0,0,0) 10(2,2,0,0) 15(1,1,0,0) 53(2,2,2,1) 27(1,0,0,0) 35(3,2,2,0) 0(0,0,0,0)

6.3. Random scenarios In this part, 10 random topologies are evaluated by the proposed optimization framework and a rate-maximization framework. For the rate-maximization framework, we do not pay attention to reliability. Accordingly, a network code is constructed from the subgraph of each layer without considering link transmission failures. The topologies are randomly generated with 10 nodes, 3 destinations and 30 links. Each link has a capacity between 1 and 3 units and a successful transmission probability between 0.98 and 1. A source sends four information layers with rates 3, 2, 2 and 2 from layer 1 to layer 4. Three groups of reliability requirements for each layer are listed in Table 1. If a generated topology cannot support the first layer information rate to every destination, a new topology is re-generated. This process is programmed by Python programming language. We provide the 10 topologies in the appendix. Each generated topology is evaluated by optimization problem (7) and the rate-maximization problem using a GLPK solver through Python programming. Since an acyclic network code is considered in this work, acyclic optimal subgraph solutions from both problems are used for comparison. If the optimal solution is not acyclic, the problem is repeatedly augmented by constraint P P P P P P ðd;iÞ ðd;iÞ ðd;iÞ fl 6 i2I d2Di l2E fl  1 to find a different i2I d2Di l2E g l ðd;iÞ

ðd;iÞ

Þ. solution, where g l denotes the previously found solution (fl Then, a guaranteed cost from (4) which reflects rates with guarantee reliability is calculated for each case. The guaranteed cost is the weighted sum of x(d,i) with x(d,i) = 1 if and only if (i) destination d in layer i receives with its layer rate and (ii) the reliability requirement is guaranteed. Therefore, the guaranteed cost of the proposed problem is the problem’s optimal cost because the reliabilities are already guaranteed. On the other hand, the optimal cost of the rate-maximization problem does not come with reliability guarantee. Therefore, the guaranteed cost of the rate-maximization problem can be evaluated by considering the problem’s optimal solution and (i) reliability requirement of each destination in each layer and (2) the successive refinement conditions (7e).5 The 10 results are shown in Table 2, where Y(y1, y2, y3, y4) represents respectively the guaranteed cost (Y) and numbers of destinations in layers 1, 2, 3 and 4 (y1, y2, y3, y4). From Table 2, firstly, the proposed framework outperforms the rate-maximization framework in terms of the guaranteed cost as shown from topologies 2 to 9. This is clearly because reliabilities Q 5 The guaranteed reliability in this case is equal to l2H pl where H is the set of interfering links of a particular destination and layer, as defined in Section 5.

are considered in the proposed framework while the rate-maximization framework does not consider. Secondly, the guaranteed costs of the proposed framework approach the optimal cost of the rate-maximization problem when the requirements become less stringent, as shown in topologies 6, 7 and 10. This is because higher reliable rates can be supported by the same topology when the requirements are loosened. Thirdly, the guaranteed cost of the rate-maximization framework increases when the requirements become less stringent, as shown in topologies 2 to 7 and 9. The reason is that the probability that reliability requirements are satisfied by chance is higher. Lastly, the numbers of reliable layers and destinations increase as the reliability requirements are loosened. 7. Conclusion We proposed a framework for providing reliability guarantee in link capacity allocation for layered multi-cast in a lossy network, where static network coding is applied to each layer. We first formulated the binary integer linear programming problem for assigning reliable transmission infrastructures and determining sets of destinations in the layers. Since previous code construction algorithms cannot provide a network code for our framework, we proposed a polynomial time algorithm to construct a static network code that provides reliability guarantee. Since, this algorithm requires a set of success patterns as an input, we proposed a heuristic algorithm to construct this set. To evaluate the framework, numerical results from example scenarios show that our framework provide reliability guarantee while the guarantee may not be provided if the framework is not applied. Acknowledgements This research is supported by Royal Thai Government Joint Research Grant SET-2008-056. The authors thank assistant professor Jittat Fakcharoenphol and Munin Eamopas from Kasetsart University for discussions of network coding. Appendix A. Ten random topologies Each topology is represented by a 10-by-10 adjacency matrix [cl;pl]l=(i,j) where i and j are the index of a node. For each link l = (i, j), the notations cl and pl are respectively a link capacity and successful transmission probability of the link. The index of a source node in every topology is 1. Only an existing link is shown as an element in the matrix.

1661

S. Supittayapornpong et al. / Computer Communications 33 (2010) 1651–1663

For topology 1, destinations are 2, 8, 7.

2

3; 0:9986

6 6 3; 0:9838 6 6 6 6 6 3; 0:9846 6 6 6 6 6 6 6 6 6 6 6 6 3; 0:9838 6 6 4

3; 0:9826 2; 0:9808

3; 0:9880 3; 0:9875 2; 0:9803 1; 0:9962 3; 0:9969 3; 0:9840 1; 0:9937

2; 0:9877 3; 0:9870 1; 0:9806

3; 0:9865

3; 0:9802

2; 0:9814 2; 0:9843 3; 0:9991

1; 0:9971 1; 0:9824

2; 0:9822 3; 0:9999

2; 0:9999

1; 0:9894

3; 0:9953

3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5

1; 0:9998 2; 0:9993

For topology 2, destinations are 7, 9, 10.

2

3; 0:9876

3; 0:9987

3; 0:9926 2; 0:9932

3

7 2; 0:9954 1; 0:9870 2; 0:9880 3; 0:9946 7 7 7 2; 0:9877 1; 0:9997 1; 0:9977 7 7 7 3; 0:9981 7 7 7 3; 0:9962 1; 0:9834 3; 0:9846 7 7 3; 0:9991 7 7 7 7 3; 0:9878 7 7 7 1; 0:9981 3; 0:9862 1; 0:9998 7 7 3; 0:9801 3; 0:9904 5

6 6 6 6 6 6 6 2; 0:9871 6 6 6 6 6 6 6 6 6 1; 0:9828 6 6 6 2; 0:9824 6 6 4 1; 0:9871

1; 0:9941 1; 0:9871

1; 0:9853 2; 0:9948

For topology 3, destinations are 6, 7, 10.

2

1; 0:9805 1; 0:9861

6 6 6 6 6 6 6 2; 1:0000 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4

3

3; 0:9954

7 3; 0:9993 7 7 1; 0:9885 1; 0:9974 7 7 7 7 1; 0:9935 1; 0:9951 1; 0:9817 1; 0:9807 2; 0:9915 7 7 7 2; 0:9915 7 7 7 2; 0:9814 7 7 3; 0:9912 3; 0:9996 1; 0:9981 2; 0:9880 7 7 7 7 1; 0:9944 2; 0:9842 1; 0:9907 7 7 3; 0:9932 1; 0:9877 2; 0:9986 3; 0:9920 5 1; 0:9978

3; 0:9825

2; 0:9923

2; 0:9908

2; 0:9823

For topology 4, destinations are 2, 7, 8.

2

1; 0:9910

6 3; 0:9920 6 6 6 2; 0:9868 6 6 6 6 6 6 2; 0:9821 6 6 6 2; 0:9879 6 6 6 3; 0:9993 6 6 6 1; 0:9884 2; 0:9913 6 6 1; 0:9897 2; 0:9890 4 2; 0:9894 2; 0:9871

3; 0:9820 3; 0:9817 3; 0:9995

3

7 7 7 7 3; 0:9951 7 7 7 3; 0:9907 2; 0:9816 7 7 7 3; 0:9917 3; 0:9923 7 7 2; 0:9907 3; 0:9843 7 7 7 1; 0:9805 7 7 7 7 2; 0:9951 7 7 1; 0:9828 3; 0:9959 3; 0:9952 5 3; 0:9923 1; 0:9981

2; 0:9929

1662

S. Supittayapornpong et al. / Computer Communications 33 (2010) 1651–1663

For topology 5, destinations are 3, 7, 8.

2

1; 0:9833

6 6 6 6 6 6 6 6 6 6 6 2; 0:9883 6 6 6 1; 0:9818 6 6 6 2; 0:9832 6 6 6 6 6 6 1; 0:9978 4

2; 0:9991 3; 0:9801

3; 0:9838 2; 0:9968

1; 0:9993

1; 0:9816

7 7 7 7 7 7 7 2; 0:9976 7 7 7 2; 0:9986 2; 0:9805 7 7 7 7 7 7 7 2; 0:9966 7 7 1; 0:9832 7 7 7 7 5

2; 0:9971 1; 0:9836 1; 0:9811

2; 0:9898 3; 0:9841

2; 0:9990 3; 0:9869

3; 0:9958

3; 0:9876 1; 0:9949 2; 0:9970 2; 0:9922

3

3; 0:9974 1; 0:9919

For topology 6, destinations are 3, 4, 8.

2

3; 0:9915 1; 0:9994

1; 0:9966 2; 0:9932

1; 0:9867

3

7 6 7 6 2; 0:9976 3; 0:9871 3; 0:9945 7 6 7 6 7 6 7 6 7 6 7 6 2; 0:9824 1; 0:9998 1; 0:9888 7 6 7 6 6 2; 0:9977 2; 0:9882 1; 0:9818 7 7 6 7 6 7 6 3; 0:9931 1; 0:9859 7 6 7 6 7 6 3; 0:9979 1; 0:9888 1; 0:9916 7 6 7 6 7 6 3; 0:9808 3; 0:9887 2; 0:9892 7 6 7 6 7 6 3; 0:9870 1; 0:9878 5 4 1; 0:9998 2; 0:9909 1; 0:9927

1; 0:9847 3; 0:9909 2; 0:9833

For topology 7, destinations are 2, 6, 7.

2

2; 0:9931

2; 0:9998

6 6 2; 0:9930 2; 0:9963 6 6 6 6 6 6 2; 0:9841 3; 0:9855 6 6 6 1; 0:9810 6 6 6 3; 0:9835 6 6 6 3; 0:9880 3; 0:9980 6 6 6 3; 0:9834 3; 0:9956 1; 0:9938 6 6 6 3; 0:9869 4 3; 0:9941

1; 0:9993 3; 0:9829

2; 0:9923

3

7 7 7 7 7 7 7 7 3; 0:9873 7 7 3; 0:9828 3; 0:9944 2; 0:9983 1; 0:9980 7 7 7 7 2; 0:9946 7 7 1; 0:9821 7 7 7 7 2; 0:9834 7 7 7 2; 0:9975 5 1; 0:9866

2; 0:9916

1; 0:9830

For topology 8, destinations are 8, 9, 10.

3 1; 0:9873 1; 0:9859 2; 0:9997 3; 0:9860 7 6 7 6 3; 0:9805 1; 0:9911 3; 0:9977 2; 0:9901 1; 0:9959 7 6 7 6 7 6 1; 0:9849 7 6 7 6 6 2; 0:9886 2; 0:9891 7 7 6 7 6 7 6 2; 0:9840 2; 0:9814 3; 0:9933 2; 0:9950 7 6 7 6 7 6 1; 0:9953 1; 0:9896 2; 0:9953 3; 0:9984 7 6 7 6 7 6 7 6 7 6 6 1; 0:9927 3; 0:9832 3; 0:9876 7 7 6 7 6 7 6 0:9890 1; 5 4 2

1; 0:9857 3; 0:9804

1; 0:9811 2; 0:9922 3; 0:9927

3; 0:9951

1663

S. Supittayapornpong et al. / Computer Communications 33 (2010) 1651–1663

For topology 9, destinations are 6, 9, 10.

2

3; 0:9993 3; 0:9846

6 6 6 6 1; 0:9838 2; 0:9947 6 6 6 1; 0:9966 6 6 1; 0:9803 6 6 6 6 6 1; 0:9852 6 6 4 3; 0:9984 1; 0:9874 1; 0:9952

3 3; 0:9879 3; 0:9911 3; 0:9918 2; 0:9994 2; 0:9912 7 7 7 1; 0:9879 1; 0:9962 3; 0:9822 1; 0:9932 7 7 7 3; 0:9863 3; 0:9920 7 7 7 3; 0:9820 7 7 3; 0:9828 7 7 3; 0:9944 2; 0:9880 7 7 7 3; 0:9888 2; 0:9872 5 3; 0:9847 1; 0:9857 2; 0:9908

For topology 10, destinations are 4, 7, 10.

2

2; 0:9872 2; 0:9907

6 1; 0:9827 6 6 6 1; 0:9815 6 6 2; 0:9840 6 6 6 1; 0:9967 6 6 1; 0:9816 2; 0:9984 6 6 6 3; 0:9987 2; 0:9949 6 6 6 6 4

2; 0:9945 2; 0:9968

3; 0:9946

3; 0:9941 2; 0:9829 1; 0:9887 2; 0:9852 2; 0:9868 1; 0:9845 2; 0:9922

References [1] K. Rao, Z. Bojkovic, D. Milovanovic, Introduction to Multimedia Communications: Applications, Middleware, Networking, Wiley-Interscience, 2006. [2] R. Ahlswede, N. Cai, S.-Y. Li, R. Yeung, Network information flow, IEEE Transactions on Information Theory 46 (4) (2000) 1204–1216. [3] N. Sundaram, P. Ramanathan, S. Banerjee, Multirate media stream using network coding, in: 43rd Annual Allerton Conference on Communication, Control and Computing, 2005. [4] J. Zhao, F. Yang, Q. Zhang, Z. Zhang, F. Zhang, Lion: layered overlay multicast with network coding, IEEE Transactions on Multimedia 8 (5) (2006) 1021– 1032. [5] S. Jingjing, Z. Bojin, C. Anni, Optimal layered multicast using network coding, in: Fourth Workshop on Network Coding, Theory and Applications, 2008, pp. 1–6. [6] R. Koetter, M. Medard, An algebraic approach to network coding, IEEE/ACM Transactions on Networking 11 (5) (2003) 782–795. [7] R.W. Yeung, S.-Y.R. Li, N. Cai, Z. Zhang, Network coding theory: single sources, Communications and Information Theory 2 (4) (2005) 241–329. [8] S. Jaggi, P. Sanders, P. Chou, M. Effros, S. Egner, K. Jain, L. Tolhuizen, Polynomial time algorithms for multicast network code construction, IEEE Transactions on Information Theory 51 (6) (2005) 1973–1982. [9] T. Ho, M. Medard, R. Koetter, D. Karger, M. Effros, J. Shi, B. Leong, A random linear network coding approach to multicast, IEEE Transactions on Information Theory 52 (10) (2006) 4413–4430.

3

7 7 7 3; 0:9913 7 7 3; 0:9863 7 7 7 3; 0:9870 7 7 7 1; 0:9802 7 7 3; 0:9956 1; 0:9887 3; 0:9914 7 7 7 1; 0:9918 2; 0:9899 7 7 5 1; 0:9816

[10] H. Bahramgiri, F. Lahouti, Robust network coding using diversity through backup flows, in: Fourth Workshop on Network Coding, Theory and Applications, 2008, pp. 1–6. [11] S. Supittayapornpong, P. Saengudomlert, W. Kumwilaisak, Qos aware layered multi-cast with network coding in lossy networks, in: 10th Pacific Rim Conference on Multimedia, Advances in Multimedia Information Processing, vol. 5879, 2009. [12] C.H. Papadimitriou, K. Steiglitz, Combinatorial Optimization: Algorithms and Complexity, Prentice-Hall, Inc., NJ, USA, 1982. [13] D.L. Tracey Ho, Network Coding: An Introduction, Cambridge University Press, NY, USA, 2008. [14] J. Huang, L. Wang, W. Cheng, H. Li, Polynomial time construction algorithm of bcnc for network coding in cyclic networks, 2009, pp. 228–233. [15] S. Soh, S. Rai, An efficient cutset approach for evaluating communicationnetwork reliability with heterogeneous link-capacities, IEEE Transactions on Reliability 54 (1) (2005) 133–144. [16] C. Fragouli, E. Soljanin, Network coding fundamentals, Foundation and Trends in Networking 2 (1) (2007) 1–133. [17] T.H. Cormen, C. Stein, R.L. Rivest, C.E. Leiserson, Introduction to Algorithms, McGraw-Hill Higher Education, 2001. [18] Gnu linear programming kit version 4.38 [online]. . [19] Octave [online]. . [20] Python programming language [online]. . [21] C. Singh, S. Asgarpoor, Reliability evaluation of flow networks using delta-star transformations, IEEE Transactions on Reliability 35 (4) (1986) 472–477.