**2. Reference telecommunication network definition and decomposition**

At any fixed time, the telecommunication network can be defined in terms of its topological description as well as in terms of its traffic pattern. As far as network topology is concerned, we consider the network nodes *n* ∈ Ν = {*n*1,*n*2,…,*nN*} and the network links defined as ordered pairs of nodes *l* ∈ Λ = {*l*1,*l*2,…,*lL*}. To describe the network traffic request we first define a path *v* ∈ Ω = {*v*1,*v*2,…,*vV*} as a collection of consecutive links, denoted by Λ*v*, from an ingoing node *i* to an outgoing node *j* (where *i*,*j* ∈ **N**). Moreover a certain set of different Service Classes *k* ∈ Κ = {*k*1,*k*2,…,*kK*}, is defined, each one characterized by a set of Quality of Service (QoS) parameters. According to the most recent trends, the QoS control is performed on a per flow basis, where a flow *f* ∈ Φ = {*f*1,*f*2,…,*fF*} is defined as the triple *f* = (*ni,nj,kp*), with *ni* denoting the ingoing node, *nj* denoting the outgoing node and *kp* denoting the service class. The traffic associated with a given flow *f* may possibly be routed on a set Ω*f* of one or more paths. We further introduce the set of indices {*a*(*l*,*v*), *l* ∈ Λ*, v* ∈ Ω}, defined as follows:

$$a(l,v) = \begin{cases} 1, \text{ if } l \in v \\ 0, \text{ otherwise} \end{cases} \tag{1}$$

For each link *l* ∈ Λ, at the given time, we may consider its occupancy level *c*(*l*) defined as the sum of all contributions to the occupancy due to the flows routed on the link itself. Each contribution of this type will be quantified by the bit rate *R*(*l*,*f*) which, in turn, is the sum of bit rates of all in-progress connections going through the link *l* and relevant to the flow *f*, possibly weighted by a coefficient α(*l*,*f*) which accounts for the specific need of the flow itself. Therefore we have:

$$\mathcal{L}(l) = \sum\_{f \in \Phi} \alpha(l, f) R(l, f) \tag{2}$$

where α(*l*,*f*) are positive known coefficients which take into account the fact that some technologies differentiate the classes of service by varying modulation, coding, and so on. For each link *l*, we consider the so-called nominal capacity *cNOM*(*l*), that is the value of the occupancy level suggested for a proper behaviour of the link (typically in terms of QoS)1.

<sup>1</sup> *c*(*l*) and *cNOM*(*l*) can be interpreted as generalizations of "load factor" and "Noise Rise" in UMTS (see Holma and Toskala, 2002).

Optimal Control Strategies for Multipath Routing:

explicitly account for the network overloading.

several paths the function (9) can be rewritten as follows:

keeps increasing, then function (10) is approximated by:

arriving at the functions:

where:

over the whole sub-network:

From Load Balancing to Bottleneck Link Management 409

The optimal choice for *u* within its (convex) admissible set may be performed according to a cost function which assesses the network loading. In a previous work Bruni *et al.*, 2010, the control goal was the normalized load balancing in the sub-network, evaluated by the function:

> 1 () *NOM* ( ) *<sup>l</sup>*

with *L* denoting the cardinality of Λ. In Bruni *et al.*, 2010, and Bruni *et al.*, 2010 (to appear), a shortcoming of (7) was enlightened, which is due to the partial controllability property (therein defined) of some of the links. These links, in the following referred to as "ballast", are such that they are bound to accept traffic flows not controlled by the components of the control vector *u*. Thus other choices of the cost function might be considered which more

One first possibility is to assess the link overflow setting *k* = 0 in (7), thus more generally

*m*

*m*

( ) ( ) ( )

*l NOM c l J u c l* ∈Λ

for some integer *m* > 1. If the target is to give more importance to the links belonging to

( ) ( ) ( ) *<sup>v</sup>*

*v l NOM c l J u c l* ∈Ω ∈Λ

According to (9), (10) we try to distribute the total load in the network in such a way that the higher the normalized load for a link is, the stronger is the effort in reducing it. This selective attention to the most heavily loaded links progressively increases with *m*. As *m*

> ( ) ( )*<sup>m</sup> v*

( ) max*<sup>v</sup>* ( ) *<sup>v</sup> <sup>l</sup> NOM c l <sup>G</sup>*

Thus for each path *v* the optimization attention is just focused on the most heavily loaded link of the path itself (bottleneck). Eventually we can consider the worst bottleneck load

*v Ju G* ∈Ω

*c l <sup>k</sup> Lc l* ∈Λ

( ) ( ) *NOM* ( ) *<sup>l</sup> c l J u <sup>k</sup> c l* ∈Λ

with *k* a given constant. If, for any given *u*, we optimize (7) with respect to *k*, we get:

2

= − (7)

<sup>=</sup> (8)

<sup>=</sup> (9)

<sup>=</sup> (10)

<sup>=</sup> (11)

∈Λ *c l* <sup>=</sup> (12)

that indicates the fraction of *R*(*f*) to be routed on path *v* ∈ Ω*f*. Then, due to the bit conservation law, we have:

$$R(l,f) = \sum\_{v \in \Omega\_f} \alpha(l,f) R(f) \mu(f,v) \tag{3}$$

where obviously:

$$u(f, v) \in [0, 1], \,\forall f \in \Phi, \,\forall v \in \Omega\_f$$

$$\sum\_{v \in \Omega\_f} u(f, v) = 1, \,\forall f \in \Phi \tag{4}$$

As shown in Bruni *et al.*, 2010, with reference to the routing control problem, the link set Λ might be decomposed into separated subclasses Λ(*<sup>j</sup>*), *j* = 0,1,2,…,*P*, each of them involving separate subsets of control variables, where Λ(0) is the set, possibly empty, of links that cannot be controlled by any control variable and which therefore they are not involved in any routing control problem.

For every communicating class of links Λ(*j*) ⊂ Λ, there exists the (uniquely) corresponding communicating class of flows Φ(*j*) ⊂ Φ defined as the set of flows such that, for each *f* ∈ Φ(*<sup>j</sup>*), there exists (at least) a link *l* ∈ Λ(*<sup>j</sup>*), and therefore a pair of links (generally depending on *f* itself), which are controllable with respect to *f*. Clearly, the set Φ(0) coincides with the empty set. We now observe that the set {Φ(*<sup>j</sup>*), *j >* 0} of flow communicating classes forms a partition of Φ, corresponding to the fact that the set {Λ(*<sup>j</sup>*), *j >* 0} of link communicating classes forms a partition of Λ. This partition for Λ and Φ immediately induces a partition of the network. Note that each *j*-th part of the network is controlled by a corresponding subvector of control variables, later defined as *u*(*j*) independently of the other parts; the components of the vector *u*(*<sup>j</sup>*) are the variables *u*(*f*,*v*), *f* ∈ Φ(*<sup>j</sup>*), *v* ∈ Ω*f*. In the following {Λ(*<sup>j</sup>*), Φ(*<sup>j</sup>*)} will denote a sub-network. We will use the detailed network decomposition procedure described in Bruni *et al.*, 2010, facing the routing control problem in each sub-network (but in Λ(0)).

#### **3. A rationale for the network loading**

In the following, we will focus attention on the routing problem for any given sub-network {Λ(*<sup>j</sup>*), Φ(*<sup>j</sup>*)}. As mentioned above, any such problem is characterized by a set *u*(*<sup>j</sup>*) of control variables, which may be (optimally) selected independently of the other ones. As stated in Bruni *et al.*, 2010, the admissible set for *u*(*<sup>j</sup>*) is defined by the constraints:

$$
\mu(f, v) \in [0, 1], \,\forall f \in \Phi^{(j)}, \,\forall v \in \Omega\_f \tag{5}
$$

$$\sum\_{v \in \mathfrak{Q}\_f} u(f, v) = 1, \; \forall f \in \Phi^{(j)} \tag{6}$$

so that the set itself turns out to be convex. From here on, for sake of simplicity the apices *j* will be dropped.

that indicates the fraction of *R*(*f*) to be routed on path *v* ∈ Ω*f*. Then, due to the bit

(, ) (, ) ( ) ( , )

∈ ∀ ∈Φ ∀ ∈Ω

<sup>=</sup> (3)

*f*

= ∀ ∈Φ (4)

*Rl f l f R f u f v* α

*<sup>f</sup> v*

∈Ω

( , ) [0,1], , ( , ) 1,

*ufv f v ufv f*

As shown in Bruni *et al.*, 2010, with reference to the routing control problem, the link set Λ might be decomposed into separated subclasses Λ(*<sup>j</sup>*), *j* = 0,1,2,…,*P*, each of them involving separate subsets of control variables, where Λ(0) is the set, possibly empty, of links that cannot be controlled by any control variable and which therefore they are not involved in

For every communicating class of links Λ(*j*) ⊂ Λ, there exists the (uniquely) corresponding communicating class of flows Φ(*j*) ⊂ Φ defined as the set of flows such that, for each *f* ∈ Φ(*<sup>j</sup>*), there exists (at least) a link *l* ∈ Λ(*<sup>j</sup>*), and therefore a pair of links (generally depending on *f* itself), which are controllable with respect to *f*. Clearly, the set Φ(0) coincides with the empty set. We now observe that the set {Φ(*<sup>j</sup>*), *j >* 0} of flow communicating classes forms a partition of Φ, corresponding to the fact that the set {Λ(*<sup>j</sup>*), *j >* 0} of link communicating classes forms a partition of Λ. This partition for Λ and Φ immediately induces a partition of the network. Note that each *j*-th part of the network is controlled by a corresponding subvector of control variables, later defined as *u*(*j*) independently of the other parts; the components of the vector *u*(*<sup>j</sup>*) are the variables *u*(*f*,*v*), *f* ∈ Φ(*<sup>j</sup>*), *v* ∈ Ω*f*. In the following {Λ(*<sup>j</sup>*), Φ(*<sup>j</sup>*)} will denote a sub-network. We will use the detailed network decomposition procedure described in Bruni *et al.*, 2010, facing the

In the following, we will focus attention on the routing problem for any given sub-network {Λ(*<sup>j</sup>*), Φ(*<sup>j</sup>*)}. As mentioned above, any such problem is characterized by a set *u*(*<sup>j</sup>*) of control variables, which may be (optimally) selected independently of the other ones. As stated in

( ) ( , ) 1,

*ufv f*

so that the set itself turns out to be convex. From here on, for sake of simplicity the apices *j*

( ) ( , ) [0,1], , *<sup>j</sup> ufv f v* ∈ ∀ ∈Φ ∀ ∈Ω *<sup>f</sup>* (5)

= ∀ ∈Φ (6)

*j*

*f*

*v*

routing control problem in each sub-network (but in Λ(0)).

Bruni *et al.*, 2010, the admissible set for *u*(*<sup>j</sup>*) is defined by the constraints:

*f*

*v*

∈Ω

**3. A rationale for the network loading** 

will be dropped.

∈Ω

conservation law, we have:

any routing control problem.

where obviously:

The optimal choice for *u* within its (convex) admissible set may be performed according to a cost function which assesses the network loading. In a previous work Bruni *et al.*, 2010, the control goal was the normalized load balancing in the sub-network, evaluated by the function:

$$f(\mu) = \sum\_{l \in \Lambda} \left( \frac{c(l)}{c\_{NOM}(l)} - k \right)^2 \tag{7}$$

with *k* a given constant. If, for any given *u*, we optimize (7) with respect to *k*, we get:

$$k = \frac{1}{L} \sum\_{l \in \Lambda} \frac{c(l)}{c\_{NOM}(l)} \tag{8}$$

with *L* denoting the cardinality of Λ. In Bruni *et al.*, 2010, and Bruni *et al.*, 2010 (to appear), a shortcoming of (7) was enlightened, which is due to the partial controllability property (therein defined) of some of the links. These links, in the following referred to as "ballast", are such that they are bound to accept traffic flows not controlled by the components of the control vector *u*. Thus other choices of the cost function might be considered which more explicitly account for the network overloading.

One first possibility is to assess the link overflow setting *k* = 0 in (7), thus more generally arriving at the functions:

$$f(\mu) = \sum\_{l \in \Lambda} \left( \frac{c(l)}{c\_{NOM}(l)} \right)^m \tag{9}$$

for some integer *m* > 1. If the target is to give more importance to the links belonging to several paths the function (9) can be rewritten as follows:

$$f(\mu) = \sum\_{v \in \Omega} \sum\_{l \in \Lambda\_v} \left( \frac{c(l)}{c\_{NOM}(l)} \right)^m \tag{10}$$

According to (9), (10) we try to distribute the total load in the network in such a way that the higher the normalized load for a link is, the stronger is the effort in reducing it. This selective attention to the most heavily loaded links progressively increases with *m*. As *m* keeps increasing, then function (10) is approximated by:

$$J(u) = \sum\_{v \in \Omega} \left( G\_v \right)^m \tag{11}$$

where:

$$G\_v = \max\_{l \in \Lambda\_v} \frac{c(l)}{c\_{NOM}(l)} \tag{12}$$

Thus for each path *v* the optimization attention is just focused on the most heavily loaded link of the path itself (bottleneck). Eventually we can consider the worst bottleneck load over the whole sub-network:

$$J(u) = \max\_{v \in \Omega} G\_v \tag{13}$$

Optimal Control Strategies for Multipath Routing:

*cNOM*

Λ(0) x x

denoted by 'x' if *fi* ∈ Φ(*<sup>j</sup>*).

Management.

From Load Balancing to Bottleneck Link Management 411

Λ(1) x x x x ◊ x x x x x x x Λ(2) x x x x x x x x x

*<sup>v</sup>*; the generic entry

) is

) is

Table 1. Network Topology and Decomposition; the first row shows the nominal link

denoted by 'x' if *li* ∈ Λ(*<sup>j</sup>*), or by '◊' if *li* ∈ Λ(*<sup>j</sup>*) and *li* is a ballast link; the generic entry (*fi*,Λ (*j*)

The considered scenario has been simulated with MatLab. In particular we have tested two simuation sets reported in subsection 4.2 and 4.3respectively. In subsection 4.2 we considered the Bottleneck Link Management by varying the weights of the bottleneck loads, while in subsection 4.3 we made comparisons between Load Balancing and Bottleneck Link

a)

(*fi*,*vj*) is denoted by 'x' if it is possible to route *fi* on path *vj*; the generic entry (*li*,Λ (*j*)

capacities in [Mbps]; the generic entry (*li*,*vj*) is denoted by 'x' if *li* ∈ Λ(*j*)

[kbps] 10 10 5.4 5.4 5.4 5.4 10 5.4 5.4 5.4 5.4 5.4 5.4 5.4 5.4 5.4 5.4 5.4 5.4

*v*<sup>1</sup> x x x *v*2 x x x x *v*3 x x x x *v*4 x x x x x *v*5 x x x x x *v*6 x x x x *v*7 x x x x *v*8 x x x x

*l*<sup>1</sup> *l*<sup>2</sup> *l*<sup>3</sup> *l*<sup>4</sup> *l*<sup>5</sup> *l*<sup>6</sup> *l*<sup>7</sup> *l*<sup>8</sup> *l*<sup>9</sup> *l*<sup>10</sup> *l*<sup>11</sup> *l*<sup>12</sup> *l*<sup>13</sup> *l*<sup>14</sup> *l*<sup>15</sup> *l*<sup>16</sup> *l*<sup>17</sup> *l*<sup>18</sup> *l*<sup>19</sup> *f*<sup>1</sup> *f*<sup>2</sup> *f*<sup>3</sup> *f*<sup>4</sup>

*Remark.* Some methods are proposed in the literature to solve the above minimax optimization problem (see Warren *et al.*, 1967, Osborne and Wetson, 1969, Blander *et al.*, 1972, Blander and Charambous, 1972). The original minimax problem (11) is equivalent to the following:

$$\min\_{\mu, \mathbf{g} \in U} f(\mu, \mathbf{g}) \tag{14}$$

$$f(\boldsymbol{\mu}, \mathbf{g}) = \sum\_{\boldsymbol{\nu} \in \Omega} \left[ \mathcal{g}(\boldsymbol{\nu}) \right]^m \tag{15}$$

$$\begin{aligned} \mathcal{U} = \left\{ (u, g) \in \mathcal{R}^{V(F+1)} : u(f, v) \ge 0, \sum\_{v \in \Omega\_f} u(f, v) = 1, \\\\ \frac{c(l)}{c\_{\text{NOM}}(l)} \le g(v), \forall f \in \Phi, \forall v \in \mathfrak{Q}\_f \right\} \end{aligned} \tag{16}$$

where *g* is the vector of auxiliary variables *g*(*v*), *v* ∈ Ω. This is a nonlinear (linear if *m* = 1, quadratic if *m* = 2) programming problem that can be solved by well-established methods. We observe that the equivalence lies in the fact that, once (14) (15) (16) is solved, the optimal value assumed by *g*(*v*) coincides with *Gv* in (12), for *v* ∈ Ω, i.e., it represents the normalized bottleneck link load of path *v*.

The load balancing problem (7) (8), with constraints (5) (6) and the bottleneck load management problem (14) (15) (16) are easily seen to be convex. This allows standard minimization routines to be used for its solution, such as MatLab simulation tools.

*Remark*. The cost function (13) enlightens a further advantage of network decomposition. Indeed, in case the decomposition had not been performed, then (13) would describe an illposed optimal control problem whenever the worst bottleneck over the whole network happens to be an uncontrollable link. Similar considerations hold for cost function (11).

#### **4. Evaluation and comparison of optimal routing procedures**

#### **4.1 Network structure and decomposition**

The considered scenario is composed by 16 nodes and 19 links (see Fig. 1 a)). The traffic pattern involves 4 traffic flows of the same service class k, from 4 source nodes *ni*, *i* = 1,..,4, to 4 different destination nodes *nj*, *j* = 11,..,14. The traffic pattern is described by the set of traffic flows Φ = {*f*1,*f*2,*f*3,*f*4}, where each traffic flow is identified by the following triples: *f*1 = (*n*1*,n*11*,k*), *f*2 = (*n*2*,n*12*,k*), *f*3 = (*n*3*,n*13*,k*), *f*4 = (*n*4*,n*14*,k*). After performing the network decomposition as in Bruni *et al.*, 2010, we recognize three sub-networks (see, Fig. 1 b), c) and d)). The network topology is summarized in Table 1, where the network decomposition is reported as well.

( ) max *<sup>v</sup> <sup>v</sup> J u G* ∈Ω

*Remark.* Some methods are proposed in the literature to solve the above minimax optimization problem (see Warren *et al.*, 1967, Osborne and Wetson, 1969, Blander *et al.*, 1972, Blander and Charambous, 1972). The original minimax problem (11) is equivalent to

> min ( , ) *ug U*

(,) () [ ]*<sup>m</sup> v Jug gv* ∈Ω

=∈ ≥ =

where *g* is the vector of auxiliary variables *g*(*v*), *v* ∈ Ω. This is a nonlinear (linear if *m* = 1, quadratic if *m* = 2) programming problem that can be solved by well-established methods. We observe that the equivalence lies in the fact that, once (14) (15) (16) is solved, the optimal value assumed by *g*(*v*) coincides with *Gv* in (12), for *v* ∈ Ω, i.e., it represents the normalized

The load balancing problem (7) (8), with constraints (5) (6) and the bottleneck load management problem (14) (15) (16) are easily seen to be convex. This allows standard

*Remark*. The cost function (13) enlightens a further advantage of network decomposition. Indeed, in case the decomposition had not been performed, then (13) would describe an illposed optimal control problem whenever the worst bottleneck over the whole network happens to be an uncontrollable link. Similar considerations hold for cost function (11).

The considered scenario is composed by 16 nodes and 19 links (see Fig. 1 a)). The traffic pattern involves 4 traffic flows of the same service class k, from 4 source nodes *ni*, *i* = 1,..,4, to 4 different destination nodes *nj*, *j* = 11,..,14. The traffic pattern is described by the set of traffic flows Φ = {*f*1,*f*2,*f*3,*f*4}, where each traffic flow is identified by the following triples: *f*1 = (*n*1*,n*11*,k*), *f*2 = (*n*2*,n*12*,k*), *f*3 = (*n*3*,n*13*,k*), *f*4 = (*n*4*,n*14*,k*). After performing the network decomposition as in Bruni *et al.*, 2010, we recognize three sub-networks (see, Fig. 1 b), c) and d)). The network topology is summarized in Table 1, where the network decomposition is

minimization routines to be used for its solution, such as MatLab simulation tools.

**4. Evaluation and comparison of optimal routing procedures** 

*U ug R uf v uf v*

≤ ∀ ∈Φ ∀ ∈Ω

( 1) ( , ) : ( , ) 0, ( , ) 1,

*f*

*v*

∈Ω

*f*

,

( ) ( ), , ( )

*c l gv f v c l*

*NOM*

**4.1 Network structure and decomposition** 

bottleneck link load of path *v*.

reported as well.

*V F*

+

the following:

= (13)

*<sup>J</sup> u g* <sup>∈</sup> (14)

<sup>=</sup> (15)

(16)


Table 1. Network Topology and Decomposition; the first row shows the nominal link capacities in [Mbps]; the generic entry (*li*,*vj*) is denoted by 'x' if *li* ∈ Λ(*j*) *<sup>v</sup>*; the generic entry (*fi*,*vj*) is denoted by 'x' if it is possible to route *fi* on path *vj*; the generic entry (*li*,Λ (*<sup>j</sup>*)) is denoted by 'x' if *li* ∈ Λ(*<sup>j</sup>*), or by '◊' if *li* ∈ Λ(*<sup>j</sup>*) and *li* is a ballast link; the generic entry (*fi*,Λ (*j*) ) is denoted by 'x' if *fi* ∈ Φ(*<sup>j</sup>*).

The considered scenario has been simulated with MatLab. In particular we have tested two simuation sets reported in subsection 4.2 and 4.3respectively. In subsection 4.2 we considered the Bottleneck Link Management by varying the weights of the bottleneck loads, while in subsection 4.3 we made comparisons between Load Balancing and Bottleneck Link Management.

Optimal Control Strategies for Multipath Routing:

0,00 0,10 0,20 0,30 0,40 0,50 0,60 0,70 0,80 0,90 1,00

> *m =* 1 *m =* 2 *m =* 3

0,00 0,10 0,20 0,30 0,40 0,50 0,60 0,70 0,80 0,90 1,00

> *m =* 1 *m =* 2 *m =* 3

0,00 0,10 0,20 0,30 0,40 0,50 0,60 0,70 0,80 0,90 1,00

> *m =* 1 *m =* 2 *m =* 3

*l* <sup>1</sup> *l*

<sup>2</sup> *l*

<sup>5</sup>*l*

<sup>6</sup> *l*

c)

Fig. 2. Sub-network 1: a) optimal control variables, b) bottleneck link loads, c) link loads.

*u*(*f*

<sup>1</sup>,*v*1) *u*(*f*

From Load Balancing to Bottleneck Link Management 413

u(1,1) u(1,2) u(4,7) u(4,8)

g(1) g(2) g(7) g(8)

*g*(*v*1) *g*(*v*2) *g*(*v*7) *g*(*v*8)

l1 l2 l5 l6 l7 l10 l11 l14 l16 l19 m = 1 0,50 0,00 0,00 0,93 0,54 0,93 0,00 0,00 0,93 0,93 m = 2 0,41 0,09 0,16 0,77 0,71 0,77 0,16 0,16 0,77 0,77 m = 3 0,41 0,09 0,17 0,75 0,73 0,75 0,17 0,17 0,75 0,75

<sup>10</sup>*l*

<sup>11</sup>*l*

<sup>14</sup>*l*

<sup>16</sup>*l* 19

<sup>7</sup>*l*

m = 1 0,93 0,54 0,54 0,93 m = 2 0,77 0,71 0,71 0,77 m = 3 0,75 0,73 0,73 0,75

b)

<sup>4</sup>,*v*7) *u*(*f*

<sup>4</sup>,*v*<sup>8</sup> ) 8)

1,*v*2) *u*(*f*

m = 1 1,00 0,00 0,00 1,00 m = 2 0,83 0,17 0,17 0,83 m = 3 0,81 0,19 0,19 0,81

a)

d)

Fig. 1. a) Global Network, b) Sub-network 0 (Λ(0)), c) Sub-network 1 (Λ(1)), d) Sub-network 2 (Λ(2)).

#### **4.2 Optimal routing for different weights of bottleneck loads**

In this simulation set we consider that the bit rate of traffic flows *f*1, *f*3, *f*4 is equal to 5 Mbps whilst the bit rate of traffic flow *f*2 is equal to 5.4 Mbps. Fig. 2 and 3 show the dependence of the optimal solutions on index *m* of the Bottleneck Link Management problem.

b)

c)

d) Fig. 1. a) Global Network, b) Sub-network 0 (Λ(0)), c) Sub-network 1 (Λ(1)), d) Sub-network 2

In this simulation set we consider that the bit rate of traffic flows *f*1, *f*3, *f*4 is equal to 5 Mbps whilst the bit rate of traffic flow *f*2 is equal to 5.4 Mbps. Fig. 2 and 3 show the dependence of

the optimal solutions on index *m* of the Bottleneck Link Management problem.

**4.2 Optimal routing for different weights of bottleneck loads** 

(Λ(2)).

Fig. 2. Sub-network 1: a) optimal control variables, b) bottleneck link loads, c) link loads.

Optimal Control Strategies for Multipath Routing:

balancing optimal solution.

network 2.

Rate

From Load Balancing to Bottleneck Link Management 415

In this simulation set we consider that all the traffic sources transmit with an increasing trend from 4.5 Mbps to 8.5 Mbps. Tables 2-5 show the network load as the sources bit rate increase, and compares the optimal bottleneck control solutions for *m* = 1, 2, 3 with the load

In Tables 2-5, we denote by bold characters the normalized link loads exceeding 1;

The bottleneck control for *m* ≥ 2 manages a higher network load than the load balancing approach. In fact, the tables show that the solutions of the bottleneck control problem are such that no link is overloaded until the flow rates exceed 5 Mbps, 6.5 Mbps and 6.5 Mbps for *m* = 1,2,3, respectively; on the other hand, the load balancing solutions are such that no link is overloaded until the flow rates exceed 5 Mbps. Similar results are obtained for sub-

[Mbps] 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5

*g*(*v*1) 0,74 0,83 0,93 **1,02 1,11 1,20 1,30 1,39 1,48 1,57**  *g*(*v*2) 0,40 0,45 0,50 0,55 0,60 0,65 0,70 0,75 0,80 0,85 *g*(*v*7) 0,40 0,45 0,50 0,55 0,60 0,65 0,70 0,75 0,80 0,85 *g*(*v*8) 0,74 0,83 0,93 **1,02 1,11 1,20 1,30 1,39 1,48 1,57**  *l1* 0,40 0,45 0,50 0,55 0,60 0,65 0,70 0,75 0,80 0,85 *l2* 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 *l5* 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 *l6* 0,74 0,83 0,93 **1,02 1,11 1,20 1,30 1,39 1,48 1,57**  *l7* 0,40 0,45 0,50 0,55 0,60 0,65 0,70 0,75 0,80 0,85 *l10* 0,74 0,83 0,93 **1,02 1,11 1,20 1,30 1,39 1,48 1,57**  *l11* 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 *l14* 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 *l16* 0,74 0,83 0,93 **1,02 1,11 1,20 1,30 1,39 1,48 1,57**  *l19* 0,74 0,83 0,93 **1,02 1,11 1,20 1,30 1,39 1,48 1,57** 

Table 2. Sub-network 1: Optimal Solutions under bottleneck control, *m* =1.

**4.3 Comparisons between load balancing and bottleneck link management** 

hereinafter, the corresponding links will be denoted as overloaded links.

*u*(*f*1,*v*1) 1,00 *u*(*f*1, *v*2) 0,00 *u*(*f*4, *v*7) 0,00 *u*(*f*4, *v*8) 1,00

Fig. 3. Sub-network 2: a) optimal control variables, b) bottleneck link loads, c) link loads.

u(f2,v3) u(f2,v4) u(f3,v5) u(f3,v6)

<sup>2</sup>,*v*4) *u*(*f*

g(v3) g(v4) g(v5) g(v6)

*g*(*v*3) *g*(*v*4) *g*(*v*5) *g*(*v*6)

l8 l9 l12 l13 l15 l17 l18 m = 1 0,46 0,46 0,00 0,46 0,46 1,00 0,46 m = 2 0,36 0,57 0,21 0,57 0,57 0,79 0,36 m = 3 0,31 0,62 0,31 0,62 0,62 0,69 0,31

<sup>13</sup> *l*

<sup>15</sup>*l*

<sup>17</sup>*l* 18

<sup>12</sup>*l*

c)

Fig. 3. Sub-network 2: a) optimal control variables, b) bottleneck link loads, c) link loads.

<sup>9</sup> *l*

m = 1 0,00 1,00 0,46 0,46 m = 2 0,21 0,79 0,57 0,57 m = 3 0,31 0,69 0,62 0,62

b)

<sup>3</sup>,*v*5) *u*(*f*

<sup>3</sup>,*v*6)

m = 1 0,00 1,00 0,50 0,50 m = 2 0,21 0,79 0,38 0,62 m = 3 0,31 0,69 0,33 0,67

a)

0,00 0,10 0,20 0,30 0,40 0,50 0,60 0,70 0,80 0,90 1,00

> *m =* 1 *m =* 2 *m =* 3

0,00 0,10 0,20 0,30 0,40 0,50 0,60 0,70 0,80 0,90 1,00

> *m =* 1 *m =* 2 *m =* 3

0,00 0,10 0,20 0,30 0,40 0,50 0,60 0,70 0,80 0,90 1,00

> *m =* 1 *m =* 2 *m =* 3

*l* <sup>8</sup> *l*

*u*(*f*

<sup>2</sup>,*v*3) *u*(*f*
