Background
An Erlang measures load on a Circuit-Switched link. Quoting Russ Rowlett's page:
The erlang is a dimensionless "unit" representing a traffic density of one call-second per second (or one call-hour per hour, etc.).
The classical definition of an Erlang was developed in the early 1900s by Professor A.K. Erlang. Thus, his definition does not apply generically to data traffic, because there is no standard definition of a "call" in data traffic, nor is there call-blocking as you would find in a fully-utilized Circuit-Switched link.
Erlang-B and Erlang-C evolved from classical analysis of circuit-switched networks, but they can be adapted for use in data networks
Q & A
- Q1: How does this apply to data traffic?
- A1: You first have to define what a call is, the bandwidth consumed by a call, and the criteria for blocking a call. Typically you define bandwidth per data call by referencing how much bandwidth is consumed by the Voice Codec in question.
- Q2: What do we divide by what?
- A2: If you're strictly asking about basic Erlang calculations, it's not quite that simple because we have to hamstring the data network into a circuit-switched paradigm. Erlang-B and Erlang-C are a little easier to apply to a data network, because of queuing dynamics that are common to both circuit-switched and data networks.
For the purposes of a basic Erlang calculation... First, let's assume that voice gets absolute priority across the data network in question. Next, let's define the type of link we're dealing with (because the overhead of a call on Ethernet is different than a Packet-over-SONET link). Finally, let's define some call rejection criteria... the simplest is that the call is rejected if you don't have enough incremental bandwidth for another call (ref the Voice Codec).
After you define those boundaries...
- C is the total capacity (in bits-per-second) dedicated to voice traffic
- A is the bandwidth consumed by a single voice call, (ref Voice Codecs)
The formula is
Erlang (per unit of time) = C / A
Let's apply this to a 100Mbps Ethernet link, using G.729 voice calls (50pps @ 39200 bits/G.729 packet).
- C = 100000000
- A = 39200
Maximum Erlangs of a FastEthernet link (using G.729 calls):
100000000 / 39200 = 2551.02 Erlangs
Assumptions:
My assumptions about the G.729 packet (ref Cisco's Voice Codec numbers)...
- Preamble, SFD, IFG: 20B
- Ethernet II header: 18B
- IP Hdr: 20B
- UDP Hdr: 8B
- RTP Hdr: 12B
- Voice Payload: 20B
Total G.729 ethernet frame (including all overhead): 98 Bytes Total bandwidth (including "invisible" ethernet framing overhead):
50 G.729 packets/sec * 98 Bytes/G.729 packet * 8 bits/Byte = 39200 bits/second
Note: I took the liberty of modifying Cisco's bandwidth per G.729 call, because they leave out the Ethernet framing overhead in their 31.2Kbps per G.729 call figure.
- Q3: What is one Erlang of data traffic?
- A3: It's probably obvious by now... "it depends"