CHAPTER 3 DIMENSIONING OPAQUE NETWORKS FOR EVOLV-
3.2 Dimensioning Procedure
At routing time, the actual load ratio l can be greater or smaller than the projected load ratio.
3.2
Dimensioning Procedure
The dimensioning algorithm appears in Algorithm 3.1. Basic dimension- ing (Lines 1-12) computes basic capacity B, and incremental dimensioning (Lines 13-20) computes extra capacity X according to the type of incremen-
λ
Pattern change
λ1 λ2
Traffic matrix space
Normalized traffic matrix Load scaling
high load
low load
Figure 3.1: Traffic space and evolution model for two node pairs. The arrival rates are noted by λ1 and λ2.
tal dimensioning algorithm ξ ∈ {MEAN, SD} used. If the projected load ratio is u = 1, X = 0, no incremental dimensioning is needed. In general, the simulation-based basic dimensioning algorithm can handle any traffic distribution with a given mean for arrival rate, departure rate, and capac- ity demand. Algorithm 3.2 shows a simpler analytical version for Poisson traffic that can generate equivalent results. However, the simulation version can be easily extended to handle more complicated cases. For example, if a link/node is physically bounded by a maximum capacity, the routes can avoid these links when they are full.
In our model, the load characteristics of each request pair (λi, µi) are ran-
domly drawn from a traffic space. The traffic space is characterized by an arrival rate, a departure rate, and a distribution that defines the probability of possible arrival rates. Let λ be the mean arrival rate and µ be the mean departure rate. Any traffic matrix is a point inside the whole space of all possible traffic matrices that can be generated from the distribution. Since the departure rates are assumed the same, the arrival rates are the varying values. Let T = {λi, µi}|R| denote a random projected traffic matrix that is
drawn from the space. Figure 3.1 illustrates a traffic space model for two node pairs. Assume that the arrival rate follows a bounded uniform distri- bution of mean λ. The space is a square. Over time, the real traffic load can vary in both scale and pattern, which is characterized as traffic evolution in Section 3.3.
The average traffic load is defined in Equation 3.3 such that all arrival rates equal the mean arrival rate λ.
loadavg = λ µ X j∈R T SLj (3.3)
The load of a random traffic matrix can be either lower or higher than the average traffic load. In practice, estimation of projected traffic matrices is susceptible to measurement errors or obsolete data. In order for the dimen- sioning algorithm to be robust to traffic load changes, the arrival rates of a projected traffic matrix are adjusted proportionally so the new load equals the average load. Equation (3.4) shows the normalization. Given a traffic matrix, each arrival rate is scaled by a constant.
λni = λi loadavg P j∈R λj µjT SLj (3.4)
The goal of incremental dimensioning is to allocate extra capacity, perhaps at a later time, to adapt to traffic evolution. The method should increase capacity allocation without interfering with established connections (and re- sources).
Two incremental dimensioning schemes (MEAN and SD) are proposed. The MEAN scheme increases each link’s capacity by an amount proportional to that capacity. MEAN over-dimensioning occurs implicitly when the offered traffic load ratio is smaller than the projected load ratio. The result is equiv- alent to explicit MEAN over-dimensioning in that the amount (1− l)PeBe
is the part of the extra capacity that is incrementally dimensioned using the MEAN algorithm.
The other scaling approach, SD, increases each link’s capacity propor- tionally to the statistical standard deviation of the basic dimensioned link capacity. The idea behind SD is that links with larger deviations tend to block more frequently due to traffic variations. It is thus more effective to allocate extra capacity to these links rather than to those with smaller traffic fluctuations.
ADJUST (x) is a procedure that adjusts the simulated capacity of each link into an integer (if it were not already) and makes the summed capacity of all links to the expected traffic load. The result B should satisfy Equa-
Algorithm 3.1: Dimensioning procedures (B, X) = BAL(T, u, ξ).
1 begin Basic dimensioning
Input: T
2 Get normalized traffic matrix Tn (using Equation (3.4));
3 while System has not reached steady state do
4 Draw a random event according to the traffic matrix Tn;
5 if An arrival event of connection request j then
6 Uniformly select a topological shortest path (SPF) p;
7 forall the Link e∈ p do
8 Ce← Ce+ 1;
9 else
/* An departure event of connection request j */
10 forall the Link e∈ p where p is the route of j do
11 Ce← Ce− 1;
12 B← ADJUST (C) ; /* Do it only once after incremental
dimensioning if incremental dimensioning is done immediately after basic dimensioning */
13 begin Incremental dimensioning
Input: B, u, ξ
14 Compute extra capacity X =1−u
u
P
e∈EBe;
15 Compute statistic deviation σe=√Be;
16 if ξ = M EAN then
17 Get extra link capacity Xe= XPBe
e∈EBe;
18 else if ξ = SD then
19 Get extra link capacity Xe= XPσe
e∈Eσe;
20 X← ADJUST (X);
tion (3.1), and X should satisfy Equation (3.2), where the traffic rates are normalized. Since the load of traffic Tn has been normalized, the computed
sum of Bes at steady state is the same as the expected load λµPi∈RT SLi.
The algorithm is presented in Procedure ADJUST(). I first round down the real numbers, and then adjust from the difference to the expected value com- puted by the equations. The total capacity difference is less than 0.2% of the expected load volume.
Algorithm 3.2: Basic dimensioning with Poisson-independent traffic matrix T{λi, µi}.
1 ∀e ∈ E, Ce← 0;
2 foreach request pair r∈ R do
3 foreach topological shortest path p∈ T SPi do
4 foreach link e∈ p do
5 Ce← Ce+ λi
µi|T SPi|;
Algorithm 3.3: Adjusted the simulated capacity ADJUST()
Input: Per link capacity B Input: Total capacity t Output: Per link capacity B
1 ∀e ∈ E, Ce← ⌊Be⌋;
2 Sort Ceascendantly by Be− Ceand let c(0 . . .|E| − 1) be the sorted array;
3 Computer the difference d← t −P
e∈ECe; 4 if d > 0 then 5 i← |E| − 1; 6 else 7 i← 0; 8 while d6= 0 do 9 if d > 0 then
10 c(i mod|E|) ← c(i mod |E|) + 1;
11 d← d − 1;
12 i← i − 1;
13 else
14 c(i mod|E|) ← c(i mod |E|) − 1;
15 d← d + 1;
16 i← i + 1;
17 Copy c() into B;