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.
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.
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.
Rotary Position | Traffic Lost | Traffic Carried |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
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.
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.
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.
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 |
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.
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.
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.
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 |
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.
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.
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. |
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.
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.
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.