5.4 The Erlang Traffic Formula


5.4 The Erlang Traffic Formula

The most commonly used telephone traffic dimensioning equation is the erlang B formula. This formula is predominantly used outside the North American continent . In addition to assuming that data traffic originates from an infinite number of sources, this formula is based on the lost call-cleared concept. This assumption is equivalent to stating that traffic offered to but not carried by one or more trunks vanishes, and this is the key difference between this formula and the Poisson formula. The latter formula assumes that lost calls are held, and it is used for telephone dimensioning mainly in North America. Because data communications system users can be characterized by either the lost call-cleared or lost call-held concept, both traffic formulas and their application to data networks are discussed in this chapter.

If E is used to denote the traffic intensity in erlangs and T represents the number of trunks, channels, or ports designed to support the traffic, the probability P(T, E) represents the probability that T trunks are busy when a traffic intensity of E erlangs is offered to those trunks. The probability is equivalent to specifying a grade of service and can be expressed by the erlang traffic formula as follows :

where:

  • T! = T * (T ˆ’ 1)(T ˆ’ 2) 3 * 2 * 1

and

  • 0! = 1

A list of factorials and their values is presented in Table 5.3 to assist readers in computing specific grades of service based on a given traffic intensity and trunk quantity.

Table 5.3: Factorial Values

N

Factorial N

N

Factorial N

1

1

51

1.551118753287382E+66

2

2

52

8.065817517094390E+67

3

6

53

4.274883284060024E+69

4

24

54

2.308436973392413E+71

5

120

55

1.269640335365826E+73

6

720

56

7.109985878048632E+74

7

5040

57

4.052691950487723E+76

8

40320

58

2.350561331282879E+78

9

362880

59

1.386831185456898E+80

10

3628800

60

8.320987112741390E+81

11

39916800

61

5.075802138772246E+83

12

479001600

62

3.146997326038794E+85

13

6227020800

63

1.982608315404440E+87

14

87178291200

64

1.268869321858841E+89

15

1307674368000

65

8.247650592082472E+90

16

20922789888000

66

5.443449390774432E+92

17

355687428096000

67

3.647111091818871E+94

18

6402373705728000

68

2.480035542436830E+96

19

1.216451004088320E+17

69

1.711224524281413E+98

20

2.432902008176640E+18

70

1.197857166966989E+100

21

5.109094217170944E+19

71

8.504785885678624E+101

22

1.124000727777608E+21

72

6.123445837688612E+103

23

2.585201673888498E+22

73

4.470115461512686E+105

24

6.204484017332394E+23

74

3.307885441519387E+107

25

1.551121004333098E+25

75

2.480914081139540E+109

26

4.032914611266057E+26

76

1.855494701666051E+111

27

1.088886945041835E+28

77

1.451830920282859E+113

28

3.048883446117138E+29

78

1.132428117820629E+115

29

8.841761993739701E+30

79

8.946182130782980E+116

30

2.652528598121911E+32

80

7.156945704626380E+118

31

8.222838654177924E+33

81

5.797126020747369E+120

32

2.631308369336936E+35

82

4.753643337012843E+122

33

8.683317618811889E+36

83

3.045523969720660E+124

34

2.952327990396041E+38

84

3.314240134565354E+126

35

1.033314796638614E+40

85

2.817104114380549E+128

36

3.719933267899013E+41

86

2.422709538367274E+130

37

1.376375309122635E+43

87

2.107757298379527E+132

38

5.230226174666010E+44

88

1.854826422573984E+134

39

2.036788208119745E+46

89

1.650795516090847E+136

40

8.159152832478980E+47

90

1.485715964481761E+138

41

3.345252661316380E+49

91

1.352001527678403E+140

42

1.405006117752880E+51

92

1.243841405464131E+142

43

6.041526306837884E+52

93

1.156772507081641E+144

44

2.658271574788450E+54

94

1.087366156656743E+146

45

1.196222208654802E+56

95

1.032997848823906E+148

46

5.502622159812089E+57

96

9.916779348709491E+149

47

2.586232415111683E+59

97

9.619275968248216E+151

48

1.241391559253607E+61

98

9.426890448883248E+153

49

6.082818640342679E+62

99

9.332621544394415E+155

50

3.041409320171338E+64

100

9.332621544394418E+157

To illustrate the use of the erlang traffic formula, assume that a traffic intensity of 3 erlangs is offered to a three-position rotary . The grade of service is calculated as follows:

This means that, on average during the busy hour , 34.6 out of every 100 calls will encounter a busy signal and for most organizations will represent an undesirable grade of service.

5.4.1 Computing Lost Traffic

Based on the computed grade of service, we can compute the traffic lost during the busy hour. Here, the traffic lost (e) is the traffic intensity multiplied by the grade of service. Thus, the traffic lost by position 3 is:

Now let us assume the rotary is expanded to four positions . The grade of service then becomes:

This expansion improves the grade of service so that approximately one in five calls now receives a busy signal during the busy hour. The traffic lost by position 4 now becomes:

Note that the traffic carried by the fourth position is equal to the difference between the traffic lost by the three-position rotary and the traffic lost by the four-position rotary. That is:

  • traffic carried by position 4 = 1.038 ˆ’ 0.6183 = 0.4197 erlangs

Based upon the preceding , we can calculate both the traffic carried and the traffic lost by each position of an n-position rotary. The results of the traffic computations are obtainable once we know the number of positions on the rotary and the traffic intensity offered to the rotary group . As previously noted, the traffic lost by position n(e n ) can be expressed in terms of the grade of service and traffic intensity as follows:

Substituting the preceding in the erlang formula gives:

where e n is the traffic lost by the n th position on the rotary.

Because the traffic carried by any rotary position is the difference between the traffic offered to the position and the traffic lost by the position, we can easily compute the traffic carried by each rotary position. To do so, let us proceed as follows.

Let e n ˆ’ 1 equal the traffic lost by position n ˆ’ 1. Then, e n ˆ’ 1 becomes the traffic that is offered to position n on the rotary. Thus, the traffic carried by position n is equivalent to e n ˆ’ 1 ˆ’ e n . In the case of the first rotary position on a four-position rotary, the traffic lost becomes:

Then, the traffic carried by the first rotary position is the difference between the traffic intensity offered to the rotary group (E) and the traffic lost by the first position. That is, if T Cn is the traffic carried by position n, then:

For the second rotary position, traffic lost by that position is:

Then, the traffic carried by the second position on the rotary is e 1 ˆ’ e 2, or:

We can continue this process to compute both the traffic carried as well as the traffic lost by each rotary position. Table 5.4 summarizes the formulas used to obtain the traffic lost and traffic carried for each position of a four position rotary group.

Table 5.4: Traffic Lost and Traffic Carried by Rotary Position

Rotary Position

Traffic Lost

Traffic Carried

1

2

3

4

5.4.2 Traffic Analysis Program

To assist readers in performing the computations required to determine the grade of service and traffic distribution over each port on a rotary group, a program was developed using the Microsoft QuickBasic compiler. Table 5.5 contains the listing of the traffic analysis program that can be used to analyze rotaries containing up to 60 positions. For rotaries beyond 60 positions, the program can be altered ; however, execution time will considerably increase. This program is contained on the file TRAFFIC.BAS in the directory BASIC at the Web address previously referenced in this book.

Table 5.5: Traffic Analyzer Program Listing
 REM Traffic Analyzer Program REM $DYNAMIC DIM FACTORIAL#(60) DIM TL#(60), TC#(60) REM E is the offered load in Erlangs REM PORT is the number of ports, dial in lines or trunks REM GOS is the grade of service for port or channel PORT with traffic E REM TL# is an array that holds traffic lost by port number REM TC# is an array that holds traffic carried by port number CLS PRINT TAB(25); "Traffic Analyzer" PRINT PRINT "This program computes the grade of service and the traffic carried" PRINT "and lost by each port or channel in an n position rotary type group" PRINT INPUT "Enter traffic intensity in Erlangs"; E# 1 INPUT "Enter number of ports -maximum 60"; PORT IF PORT > 60 OR PORT < 1 GOTO 1 GOSUB 100 'compute factorial 1 TO PORT REM Compute the grade of service                 PORT# = PORT                 N# = (E# ^ PORT#)/FACTORIAL#(PORT)                         D# = 0                         FOR S = 0 TO PORT                         S# = S                         D# = D# + (E# ^ S#)/FACTORIAL#(S)                         NEXT S                 GOS# = N#/D# REM Compute the traffic lost by port         FOR S = 1 TO PORT                 S# = S                 LN# = E# * (E# ^ S#/FACTORIAL#(S))                 LD# = 0 FOR S1 = 0 TO S                         S1# = S1                         LD# = LD# + E# ^ S1#/FACTORIAL#(S1)                         NEXT S1                         TL#(S) = LN#/LD#                 NEXT S REM Compute the traffic carried by port         FOR I = 1 TO PORT                 IF I = 1 THEN                         TC#(I) = E# - TL#(1)                         ELSE                         TC#(I) = TL#(I - 1) - TL#(I)                         END IF         NEXT I REM Output results PRINT PRINT "TOTAL TRAFFIC OFFERED"; E#; "ERLANGS TO"; PORT; "PORTS PROVIDES A"; PRINT USING "##.####"; GOS#; PRINT " GRADE OF SERVICE" PRINT PRINT TAB(25); "TRAFFIC DISTRIBUTION" PRINT PRINT "PORT# TRAFFIC OFFERED TRAFFIC CARRIED TRAFFIC LOST" PRINT FOR I = 1 TO PORT         PRINT USING "##"; I;         PRINT USING "       ###.#####"; E#;         PRINT USING "       ###.#####"; TC#(I);         PRINT USING "       ###.#####"; TL#(I)         E# = E# - TC#(I) NEXT I PRINT PRINT "TRAFFIC LOST BY LAST PORT IS "; PRINT USING "###.##### "; TL#(PORT); PRINT "ERLANGS" PRINT PRINT "GRADE OF SERVICE IS EQUIVALENT TO 1 IN "; PRINT USING "##### "; INT((1/GOS#) +.5); PRINT "CALLS RECEIVING A BUSY SIGNAL" END REM subroutine to compute factorials 100 FOR I = 1 TO PORT         p# = 1                 FOR J = I TO 1 STEP -1                 p# = p# * J                 NEXT J         FACTORIAL#(I) = p#         NEXT I         FACTORIAL#(0) = 1         RETURN 

For readers not familiar with the Microsoft Basic compiler, several entries in the program listing contained in Table 5.5 may warrant an explanation. Due to this, we examine the program listing to provide all readers with a firm understanding of statements that may be different from the basic interpreter or compiler they are using, as well as to obtain a better understanding of the logical construction of the program.

The $DYNAMIC statement in the second program line allocates memory to arrays as required. The FACTORIAL# statement allocates 61 elements (0 through 60) for the array that will contain the values of factorial 0 through factorial 60. Note that the variable suffix # (hash sign) is used in Microsoft Basic to denote a double precision variable. Similar to FACTORIAL#, TL#, and TC# are arrays that are used to hold the double precision values of traffic lost and traffic carried by each port.

After the traffic intensity in erlangs (assigned to the variable E#) and the number of ports (assigned to the variable PORT) are entered, the program branches to the subroutine beginning at statement number 100. This sub-routine computes the values of factorial 0 through the number assigned to PORT and stores those factorial values in the array FACTORIAL#.

After computing the factorial values, the program computes the grade of service using the equations previously described in this chapter. Similarly, the traffic lost and carried by each port is computed by computerizing the previously described equations to Basic language statements.

To illustrate the equivalency of a grade of service (stored in the variable GOS#) to 1 in N calls obtaining a busy signal GOS# is first divided into 1. Next, 0.5 is added to the result to raise its value to the next highest number prior to taking the integer value of the computation. This is necessary because the INT function rounds down the result obtained by dividing GOS# into unity.

The result of the execution of the traffic analyzer program using a traffic intensity of 3 erlangs being presented to a four-position rotary is contained in Table 5.6. Note that the grade of service is 0.2061, which is approximately equivalent to one in five calls receiving a busy signal.

Table 5.6: Traffic Analyzer Program Execution
 Traffic Analyzer This program computes the grade of service and the traffic carried and lost by each port or channel in an n position rotary type group Enter traffic intensity in Erlangs? 3 Enter number of ports -maximum 60? 4 TOTAL TRAFFIC OFFERED 3 ERLANGS TO 4 PORTS PROVIDES A 0.2061 GRADE OF SERVICE                         TRAFFIC DISTRIBUTION PORT#   TRAFFIC OFFERED   TRAFFIC CARRIED   TRAFFIC LOST  1          3.00000          0.75000         2.25000  2          2.25000          0.66176         1.58824  3          1.58824          0.54977         1.03846  4          1.03846          0.42014         0.61832 TRAFFIC LOST BY LAST PORT IS 0.61832 ERLANGS GRADE OF SERVICE IS EQUIVALENT TO 1 IN 5 CALLS RECEIVING A BUSY SIGNAL 

Through the use of the traffic analyzer program, you can vary the traffic intensity and/or the number of ports on the rotary group to study the resulting traffic distribution and grade of service. To illustrate this, assume you want to analyze the effect of increasing the rotary group to five positions. Here, you could simply rerun the traffic analyzer program as illustrated in Table 5.7. Note that when the rotary group is expanded to five positions, the grade of service is approximately equivalent to one in nine calls receiving a busy signal. In addition, you can use multiple executions of the traffic analyzer program to determine the change in the traffic lost by the last port in a port grouping as you increase or decrease the number of ports to service a given traffic intensity. In comparing the executions of the program displayed in Table 5.6 and Table 5.7, note that an increase in the number of ports from three to five decreased the traffic lost by the last port from 0.61832 to 0.33016 erlangs. Thus, you can use this program as a " devil 's advocate" to determine "what if" information without having to actually install or remove equipment and perform the line measurements normally associated with sizing such equipment.

Table 5.7: Analyzing the Effect of Port Expansion
 Traffic Analyzer This program computes the grade of service and the traffic carried and lost by each port or channel in an n-position rotary type group. Enter traffic intensity in Erlangs? 3 Enter number of ports - maximum 60? 5 TOTAL TRAFFIC OFFERED 3 ERLANGS TO 5 PORTS PROVIDES A 0.1101 GRADE OF SERVICE                         TRAFFIC DISTRIBUTION PORT#   TRAFFIC OFFERED   TRAFFIC CARRIED   TRAFFIC LOST  1          3.00000          0.75000         2.25000  2          2.25000          0.66176         1.58824  3          1.58824          0.54977         1.03846  4          1.03846          0.42014         0.61832  5          0.61832          0.28816         0.33016 TRAFFIC LOST BY LAST PORT IS 0.33016 ERLANGS GRADE OF SERVICE IS EQUIVALENT TO 1 IN 9 CALLS RECEIVING A BUSY SIGNAL 

5.4.3 Traffic Capacity Planning

There are three methods by which the erlang distribution equation can be used for capacity planning purposes. The first method, as previously illustrated, uses the erlang distribution equation to compute a grade of service based on a defined traffic intensity and number of ports or channels. Using the value of the computed grade of service, you can then accept it or alter the traffic intensity and/or number of ports to obtain a desired grade of service.

A second method by which the erlang formula can be used is to determine the amount of traffic that can be serviced by a given number of ports or channels to provide a predefined grade of service. Using the erlang formula in this manner involves a trial-and-error process because different traffic intensity values must be substituted into the formula to determine if it results in the desired grade of service. And because this process can be quite laborious, a computer program was developed to generate a table of traffic intensities that can be serviced by a varying number of ports or channels to provide predefined grades of service.

Table 5.8 contains a program listing of a Traffic Capacity Planner Program, which was also developed using the Microsoft QuickBasic Compiler. You will find this program in the file CAPACITY.BAS in the directory BASIC at the Web URL previously mentioned in this book. This program computes and displays the traffic intensity that can be offered to 1 to 40 ports to obtain 0.01, 0.02, 0.04, and 0.08 grades of service you can easily vary both the grades of service and/or number of ports.

Table 5.8: Traffic Capacity Planner Program
 REM Traffic Capacity Planner Program REM $DYNAMIC DIM FACTORIAL#(60) DIM E#(4, 40) DIM GOS(10) REM E is the offered load in Erlangs REM E#(I,S) contains resulting traffic for GOS of I when S ports used REM PORT is the number of ports, dial in lines or trunks REM GOS is the grade of service for port or channel PORT with traffic E MAXPORT = 40 CLS FOR I = 1 TO 4 READ GOS(I) NEXT I DATA.01,.02,.04,.08 LPRINT TAB(25); "Capacity Planner" LPRINT LPRINT "This program computes and displays a table containing the traffic" LPRINT "carrying capacity for a group of ports that will result in" LPRINT "               a predefined grade of service" LPRINT        LPRINT        LPRINT " NUMBER OF PORTS          TRAFFIC SUPPORTED IN ERLANGS PER PORT"        LPRINT "                            FOR INDICATED GRADE OF SERVICE"        LPRINT TAB(30);        LPRINT USING "#.### #.### "; GOS(1); GOS(2);        LPRINT USING "#.### #.### "; GOS(3); GOS(4)        LPRINT GOSUB 100 'compute factorial 1 TO factorial MAXPORT REM vary grade of service from.01 to.08 or 1 in 100 to 1 in 12.5 calls busy FOR I = 1 TO 4        GOS# = GOS(I)        REM Vary ports from 1 to MAXPORT            FOR PORT = 1 TO MAXPORT                   REM Find traffic in Erlangs that provides GOS                       LOW# = 1                       HIGH# = 100000                         TRY# = (LOW# + HIGH#)/2 1 E# = TRY#/1000 PORT# = PORT                       N# = (E# ^ PORT#)/FACTORIAL#(PORT)                       D# = 0                       FOR S = 0 TO PORT                       S# = S                       D# = D# + (E# ^ S#)/FACTORIAL#(S)                       NEXT S                       IF ABS(GOS# - N#/D#) <.0005 THEN GOTO 5                       IF GOS# - N#/D# < 0 THEN                                   OLD# = TRY#                               TRY# = TRY# - ((TRY# - LOW#)/2)                                  GOTO 1                       ELSEIF GOS# - N#/D# > 0 THEN                              TRY# = (TRY# + OLD#)/2                              GOTO 1                       END IF 5 E#(I, PORT) = TRY#/1000 NEXT PORT                       NEXT I REM output results         FOR S = 1 TO MAXPORT                 LPRINT TAB(4); S;                  LPRINT TAB(29);             LPRINT USING "##.### ##.### "; E#(1, S); E#(2, S);              LPRINT USING "##.### ##.###"; E#(3, S); E#(4, S)               NEXT S         END REM subroutine to compute factorials 100 FOR I = 1 TO MAXPORT         p# = 1                 FOR J = I TO 1 STEP -1                 p# = p# * J                 NEXT J         FACTORIAL#(I) = p#         NEXT I         FACTORIAL#(0) = 1         RETURN 

To vary the grades of service, the DATA statement should be changed. To increase the number of ports, the variable MAXPORT's value of 40 should be changed. When the number of grades of service and/or number of ports are increased, the DIM E#(4,40) statement should be increased to reflect the revised number of grades of service and/or ports for which the traffic intensity is to be computed. If the number of ports increases beyond 60, you should increase the size of the FACTORIAL#(60) array as well as have patience as the computations become lengthy. A word of caution is in order for readers who may require an expansion of the size of arrays. If the total number of elements in your program will exceed 64K, you must use the /AH option when invoking Microsoft's QuickBasic compiler. The reader is referred to Microsoft's QuickBasic manual for information concerning the use of the /AH option.

The modifications required to change the program to compute the traffic supported by 1 to 44 ports or channels for grades of service ranging from 0.01 to 0.55 or 1 in 100 to 55 in 100 calls receiving a busy signal in increments of 0.005 are contained in Table 5.9. This illustration contains the revised Traffic Capacity Planner Program listing that readers can compare to the program listing contained in Table 5.8 to denote the use of two additional FOR-NEXT statements that permit the use of only one DATA statement.

Table 5.9: Revised Traffic Planner Capacity Program
 REM Traffic Capacity Planner Program REM $DYNAMIC DIM FACTORIAL#(60) DIM E#(4, 40) DIM GOS(10) REM E is the offered load in Erlangs REM E#(I,S) contains resulting traffic for GOS of I when S ports used REM PORT is the number of ports, dial in lines or trunks REM GOS is the grade of service for port or channel PORT with traffic E MAXPORT = 44 CLS FOR I = 1 TO 4 READ GOS(I) NEXT I DATA -.01,-.005,.00,.005 FOR TT = 1 TO 25 FOR K= 1 TO 4 GOS(K) = GOS(K) + 2/100 NEXT K LPRINT TAB(30); "Capacity Planner" LPRINT LPRINT "This program computes and displays a table containing the traffic" LPRINT "carrying capacity for a group of ports that will result in" LPRINT "               a predefined grade of service" LPRINT         LPRINT         LPRINT " NUMBER OF PORTS          TRAFFIC SUPPORTED IN ERLANGS PER PORT"         LPRINT "                             FOR INDICATED GRADE OF SERVICE"         LPRINT TAB(30);         LPRINT USING "#.### #.### "; GOS(1); GOS(2);         LPRINT USING "#.### #.### "; GOS(3); GOS(4)         LPRINT GOSUB 100 'compute factorial 1 TO factorial MAXPORT REM vary grade of service from.01 to.08 or 1 in 100 to 1 in 12.5 calls busy         FOR I = 1 TO 4         GOS# = GOS(I)         REM Vary ports from 1 to MAXPORT             FOR PORT = 1 TO MAXPORT                    REM Find traffic in Erlangs that provides GOS                         LOW# = 1                         HIGH# = 100000                           TRY# = (LOW# + HIGH#)/2 1 E# = TRY#/1000 PORT# = PORT                         N# = (E# ^ PORT#)/FACTORIAL#(PORT)                         D# = 0                         FOR S = 0 TO PORT                         S# = S                         D# = D# + (E# ^ S#)/FACTORIAL#(S)                         NEXT S                         IF ABS(GOS# - N#/D#) <.0005 THEN GOTO 5                         IF GOS# - (N#/D#) < 0 THEN                                     HIGH# = TRY#                                  TRY# = TRY# - ((TRY# - LOW#)/2)                                     GOTO 1                         ELSEIF GOS# - N#/D# > 0 THEN                                TRY# = (TRY# + HIGH#)/2                                GOTO 1                         END IF 5 E#(I, PORT) = TRY#/1000 NEXT PORT                       NEXT I REM output results         FOR S = 1 TO MAXPORT                 LPRINT TAB(4); S;                  LPRINT TAB(29);              LPRINT USING "##.### ##.### "; E#(1, S); E#(2, S);               LPRINT USING "##.### ##.###"; E#(3, S); E#(4, S)                NEXT S REM Skip to next page        FOR I = 1 TO 12        LPRINT        NEXT I NEXT TT END REM subroutine to compute factorials 100 FOR I = 1 TO MAXPORT         p# = 1                 FOR J = I TO 1 STEP -1                 p# = p# * J                 NEXT J         FACTORIAL#(I) = p#         NEXT I         FACTORIAL#(0) = 1         RETURN 

To speed up the computations of the trial-and-error procedure, the program was written to increment or decrement trials by one half of the previously used value. When the grade of service and the computed grade of service differ by less than 0.0005, a match is considered to have occurred and the traffic intensity used to compute the grade of service is placed into the E# array.

Table 5.10 illustrates the output produced from the execution of the Capacity Planner Program listed in Table 5.8. In examining the traffic support by grade of service, you will note that a large group of ports is more efficient with respect to their traffic capacity support for a given grade of service than small groups of ports. Similarly, a small reduction in the number of ports from a large group of ports has a much more pronounced effect on traffic capacity support than a similar reduction in the number of ports from a smaller group of ports. To illustrate the preceding, consider the 0.01 grade of service. Four groups of ten ports support a total traffic intensity of 17.684 (4.471 * 4) erlangs. In comparison, one 40-port group supports a total of 28.877 erlangs. Based on this, it is more than efficient to have one large rotary group than several smaller rotary groups, and readers may wish to consider this important concept of equipment sizing prior to breaking rotary or port groups into subgroups designed to service individual groups of end users. This concept also explains why it would be better to have one rotary group connected to V.90 modems operating at 56 Kbps that can also service end- user 33.6-Kbps transmission requirements than separate rotary groups.

Table 5.10: Capacity Planner Program Execution
 Capacity Planner This program computes and displays a table containing the traffic carrying capacity for a group of ports that will result in a predefined grade of service NUMBER OF PORTS           TRAFFIC SUPPORTED IN ERLANGS PER PORT                               FOR INDICATED GRADE OF SERVICE                               0.010   0.020   0.040   0.080    1                          0.010   0.020   0.042   0.086    2                          0.151   0.221   0.332   0.514    3                          0.450   0.599   0.812   1.127    4                          0.880   1.100   1.398   1.849    5                          1.368   1.649   2.052   2.629    6                          1.924   2.271   2.773   3.462    7                          2.484   2.931   3.517   4.327    8                          3.126   3.610   4.293   5.216    9                          3.786   4.327   5.088   6.105    10                         4.471   5.088   5.891   7.032    11                         5.128   5.860   6.733   7.966    12                         5.860   6.593   7.571   8.906    13                         6.593   7.393   8.449   9.857    14                         7.335   8.204   9.303  10.832    15                         8.076   9.012  10.175  11.782    16                         8.871   9.857  11.045  12.772    17                         9.614  10.683  11.969  13.763    18                        10.431  11.491  12.877  14.727    19                        11.176  12.306  13.735  15.739    20                        12.016  13.184  14.668  16.731    21                        12.772  14.063  15.585  17.741    22                        13.624  14.901  16.480  18.751    23                        14.420  15.770  17.442  19.751    24                        15.262  16.633  18.386  20.780    25                        16.151  17.510  19.252  21.790    26                        17.030  18.386  20.188  22.802    27                        17.881  19.227  21.192  23.795    28                        18.604  20.188  22.090  24.805    29                        19.557  21.027  23.072  25.855    30                        20.348  21.876  24.030  26.876    31                        21.192  22.892  24.903  27.906    32                        21.973  23.748  25.855  28.936    33                        22.892  24.610  26.821  29.987    34                        23.841  25.544  27.797  30.986    35                        24.610  26.368  28.712  32.048    36                        25.544  27.363  29.685  33.070    37                        26.368  28.263  30.642  34.069    38                        27.247  29.106  31.664  35.157    39                        28.126  30.045  32.557  36.187    40                        28.877  31.047  33.526  37.208 

5.4.4 Traffic Tables

A third method by which the erlang formula can be used is through the generation of a series of tables that indicate grades of service based on specific traffic loads and a given number of ports or channels. Once again, a computer program was developed to facilitate the required computations.

Table 5.11 contains the Microsoft QuickBasic program listing of a program that was written to compute a table of grades of service based on a given traffic intensity and port or channel size using the erlang distribution. This program is stored on the file ERLANG.BAS under the BASIC directory at the Web URL previously indicated in this book.

Table 5.11: Program to Generate Table of Grades of Service Using the Erlang Distribution
 REM $DYNAMIC DIM FACTORIAL#(60) DIM E#(80), B#(80, 80) REM E is the offered load in Erlangs REM S is the number of ports, dial in lines or trunks REM B(i,j) contains grade of service for port or channel i with traffic j OPEN "D:ERLANG.DAT" FOR OUTPUT AS #1 GOSUB 100 'compute factorial 1 TO 60 C = 0 FOR I = 5 TO 400 STEP 5         C = C + 1         E# = I/10         E#(C) = E#                 FOR S = 1 TO 60                         SX# = S                         N# = (E# ^ SX#)/FACTORIAL#(S)                         D# = 1                         FOR D1 = 1 TO S                         D1X# = D1                         D# = D# + (E# ^ D1X#)/FACTORIAL#(D1)                         NEXT D1                 B#(S, C) = N#/D#                 NEXT S   NEXT I   FOR I = 1 TO 80 STEP 5 'print 16 pages 5 entries per page         PRINT #1, "                   ERLANG B DISTRIBUTION"         PRINT #1, "      PROBABILITY ALL PORTS ARE BUSY WHEN CALL ATTEMPTED"        PRINT #1, "            WHICH IS THE GRADE OF SERVICE"         PRINT #1,         PRINT #1, "PORT #             TRAFFIC IN ERLANGS"         PRINT #1,        PRINT #1, USING "   ##.##      ##.##"; E#(I); E#(I + 1);         PRINT #1, USING "     ##.## "; E#(I + 2);        PRINT #1, USING " ##.## ##.##"; E#(I + 3); E#(I + 4)          PRINT #1,  FOR S = 1 TO 60                IF B#(S, I + 4) <.00001# GOTO 50                PRINT #1, USING "## #.##### "; S; B#(S, I);                PRINT #1, USING " #.##### "; B#(S, I + 1);                PRINT #1, USING " #.##### "; B#(S, I + 2);                PRINT #1, USING " #.##### "; B#(S, I + 3);                PRINT #1, USING " #.##### "; B#(S, I + 4)        NEXT S 50     REM space to top of page        FOR LINECOUNT = 1 TO (66 - S)        PRINT #1,        NEXT LINECOUNT NEXT I CLOSE #1 END REM subroutine to compute factorials 100 FOR I = 1 TO 60         p# = 1                 FOR j = I TO 1 STEP -1                 p# = p# * j                 NEXT j         FACTORIAL#(I) = p#         NEXT I         RETURN 

The execution of the ERLANG.BAS program results in the generation of a data file named ERLANG.DAT that contains the grades of service for traffic intensities ranging from 0.5 to 40 erlangs for groups of up to 60 ports or channels. This program, like other programs developed to assist in traffic computations, can be easily modified to obtain grades of service for a different range of traffic intensities or larger number of ports or channels. A comprehensive table is contained on the file ERLANG.DAT at the indicated Web URL. This table lists grades of service based on traffic intensities up to 77.5 erlangs in increments of 0.5 erlangs. Because the data file is in ASCII format, you can use any data processor capable of reading ASCII files to manipulate the entries to meet their specific requirements or you can use the DOS redirect feature to print the file. Concerning the latter, you can enter the DOS command:

 TYPE ERLANG.DAT > LPT1: 

to direct the contents of the file ERLANG.DAT to your printer. These tables can be used to reduce many sizing problems to a simple lookup procedure to determine equipment and/or facility size once the concepts involved in the use of the tables are understood . Thus, we will next focus our attention on the use of traffic tables and their use in the equipment sizing process.

In examining the program listing contained in Table 5.11, note that although the program was written to store output on a file, the program can be easily modified to direct output to a printer. This can be accomplished by removing the statement OPEN "D:ERLANG.DAT" FOR OUTPUT AS #1 and changing all PRINT #1 entries to LPRINT.

Extracts from the execution of the ERLANG.BAS program are listed in Table 5.12. While the use of the erlang B formula is normally employed for telephone dimensioning, it can be easily adapted to sizing data communications equipment. As an example of the use of Table 5.12, consider the following situation. Suppose one desires to provide customers with a grade of service of 0.1 when the specific traffic intensity is 7.5 erlangs. From Table 5.12, ten channels or trunks would be required because the use of the table requires one to interpolate and round to the highest port or channel. Thus, if it was desired to offer a 0.01 grade of service when the traffic intensity was 7 erlangs, you could read down the 7.0 erlang column and determine that between 13 and 14 channels are required. Because you cannot install a fraction of a trunk or channel, 14 channels would be required, as we round to the highest channel number.

Table 5.12: Erlang B Distribution Extracts

Traffic in erlangs

Port No.

5.50

6.00

6.50

7.00

7.50

1

0.84615

0.85714

0.86667

0.87500

0.88235

2

0.69942

0.72000

0.73799

0.75385

0.76792

3

0.56184

0.59016

0.61523

0.63755

0.65751

4

0.43583

0.46957

0.49994

0.52734

0.55214

5

0.32406

0.36040

0.39391

0.42472

0.45302

6

0.22902

0.26492

0.29910

0.33133

0.36154

7

0.15250

0.18505

0.21737

0.24887

0.27921

8

0.09490

0.12188

0.15010

0.17882

0.20746

9

0.05481

0.07514

0.09780

0.12210

0.14740

10

0.02927

0.04314

0.05977

0.07874

0.09954

11

0.01442

0.02299

0.03412

0.04772

0.06356

12

0.00657

0.01136

0.01814

0.02708

0.03821

13

0.00277

0.00522

0.00899

0.01437

0.02157

14

0.00109

0.00223

0.00416

0.00713

0.01142

15

0.00040

0.00089

0.00180

0.00332

0.00568

Probability that all ports are busy when call attempted, which is the grade of service.

5.4.4.1 Access Controller Sizing

In applying the erlang B formula to access controller sizing, an analogy can be made between telephone network trunks and controller ports. Let us assume that a survey of users in a geographic area has indicated that during the busy hour, normally six personal computer users would be active. This would represent a traffic intensity of 6 erlangs. Suppose we wish to size the access controller to ensure that, at most, only one out of every 100 calls to the device encounters a busy signal. Then our desired grade of service becomes 0.01. From Table 5.12, the 6-erlang column indicates that to obtain a 0.01136 grade of service would require 12 channels or ports, while a 0.00522 grade of service would result if the device had 13 channels. Based on the preceding data, the access controller would be configured for 13 channels, as illustrated in Figure 5.4.

click to expand
Figure 5.4: Access Controller Sizing

From a practical consideration, the erlang B formula assumption that lost calls are cleared and traffic not carried vanishes can be interpreted as traffic overflowing one dial-in port is switched to the next port on the telephone company rotary as each dial-in port becomes busy. Thus, traffic overflowing dial-in port n is offered to port n + 1 and the traffic lost by the n th dial-in port, e n , is the total traffic offered to the entire group of dial-in ports multiplied by the probability that all dial-in ports are busy. Thus,

where E is the traffic intensity in erlangs and n the number of ports or channels. For the first dial-in port, when n is 1, the proportion of traffic blocked becomes:

For the second dial-in port, the proportion of traffic lost by that port becomes:

In general, the proportion of traffic lost by the n th port can be expressed as:

From the preceding we note that we can analyze the traffic lost by each port on the access controller in the same manner as our previous discussion concerning the computation of lost traffic. In fact, the formulas contained in Table 5.12 for traffic lost and traffic carried by rotary position are applicable to each rotary position on the access controller. To verify this, let us reduce the complexity of calculations by analyzing the data traffic carried by a group of four dial-in ports connected to a four-channel access controller when a traffic intensity of 3 erlangs is offered to the group.

For the first dial-in port, the proportion of lost traffic becomes:

The proportion of lost traffic on the first port multiplied by the offered traffic provides the actual amount of lost traffic on port 1. Thus,

The total traffic carried on the first access controller port is the difference between the total traffic offered to that port and the traffic that overflows or is lost to the first port. Thus, the total traffic carried by port 1 is:

Because we consider the rotary a device that will pass traffic lost from port 1 to the remaining ports, we can compute the traffic lost by the second port in a similar manner. Substituting in the formula to determine the proportion of traffic lost, we obtain for the second port:

The amount of traffic lost by the second port, e 2 , becomes:

The traffic carried by the second port is the difference between the traffic lost by the first port and the traffic lost by the second port; thus:

A summary of individual port traffic statistics is presented in Table 5.13 for the four-port access controller based on a traffic intensity of 3 erlangs offered to the device. Note that the computation results contained in Table 5.13 are within a small fraction of the results computed by the traffic analyzer program execution displayed in Table 5.6. The differences between the two can be attributed to the accuracy of the author's hand calculator versus the use of double precision in the program developed by the author. From Table 5.13, the traffic carried by all four ports totaled 2.3817 erlangs. Because 3 erlangs were offered to the access controller ports, then 0.6183 erlangs were lost. The proportion of traffic lost to the group of four ports is e 4 /E or 0.6183/3, which is 0.2061. If you examine the ERLANG.DAT file, at the column for a traffic intensity of 3 erlangs and a row of four channels, you will note a similar 0.2061 grade of service. These calculations become extremely important from a financial standpoint if a table lookup results in a device dimensioning that requires an access controller expansion nest to be obtained to service one or only a few ports. Under such circumstances, you may wish to analyze a few of the individual high-order ports to see what the effect of the omission of one or more of those ports will have upon the system.

Table 5.13: Individual Port Traffic Statistics

Port

Proportion of Lost Traffic

Amount of Lost Traffic

Traffic Carried

1

0.7500

2.2500

0.3462

2

0.5294

1.5880

0.6620

3

0.3462

1.0380

0.5500

4

0.2061

0.6813

0.4197

If data tables are available, the previous individual calculations are greatly simplified. From such tables the grade of service for channels 1 through 4 with a traffic intensity of 3 erlangs is the proportion of traffic lost to each port. Thus, if tables are available, you only have to multiply the grade of service by the traffic intensity to determine the traffic lost to each port.




Enhancing LAN Performance
Enhancing LAN Performance
ISBN: 0849319420
EAN: 2147483647
Year: 2003
Pages: 111
Authors: Gilbert Held

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net