Difference between revisions of "Bandwidth estimates"

From TD-er's Wiki
Jump to navigationJump to search
 
(16 intermediate revisions by the same user not shown)
Line 6: Line 6:
  
 
See for more detailed information [[ethernet payload datarates]].
 
See for more detailed information [[ethernet payload datarates]].
 +
 +
 +
Along with the data used by the codec(s), some control data also has to be transmitted.
 +
This means the overhead per packet is even greater than only the IP-headers.
 +
This overhead is different for several protocols (e.g. SIP and IAX) and may also be dependant on the number of streams combined in the packet. (e.g. audio and video or even multiple conversations)
  
 
== Trunking ==
 
== Trunking ==
Because of this packet-overhead, several protocols support some kind of multiplexing.
+
Because of this packet-overhead, several protocols (like IAX2) support some kind of multiplexing.
 
This means in each datapacket which is sent over the network, several packets of multiple conversations are put together in order to minimize the amount of packets on the network, thus maximizing the payload and minimizing the overhead.
 
This means in each datapacket which is sent over the network, several packets of multiple conversations are put together in order to minimize the amount of packets on the network, thus maximizing the payload and minimizing the overhead.
  
== Audio codecs ==
+
This means the bandwith used between 2 PBX stations can be seen as:
Bandwidth Requirements for Several Common VoIP Compression Algorithms
+
 
 +
* BR<sub>codec</sub> * #channels + IP-overhead + PBX-protocol-overhead.
 +
This saves ''(n-1) * (IP-overhead + PBX-overhead)'' in traffic and even more important, all traffic can be sent over one connection.
 +
 
 +
 
 +
Trunk mode '''''requires''''' having a Zaptel interface in the Asterisk server. Therefore we were not able to do measurements on the effect trunking has on the bandwidth consumption.
 +
We found however a site where someone has put a low of testresults on trunking.
 +
 
 +
[[IAX2 bandwidth comparison]]
 +
 
 +
== Bandwidth calculators ==
 +
'''Audio codec-only:'''
 +
* [http://www.bandcalc.com/ Packetize VoIP Bandwidth Calculator] - Support for multiple channels.
 +
* [http://www.erlang.com/calculator/eipb/ Erlangs and VoIP Bandwidth Calculator] - Uses "Erlangs" as parameter. (''Erlangs'' is the number of hours of call traffic there are during the busiest hour of operation of a telephone system.)
 +
* [http://www.erlang.com/calculator/lipb/ Lines to VoIP Bandwidth calculator] - Estimate the bandwidth required to transport a given number of voice paths through an IP based network.  Reverse calculations are also possible.
 +
* [http://www.erlang.com/calculator/ List of various online calculators] - Eight free traffic calculators for dimensioning telecommunications trunk groups, calculating Voice over IP bandwidth and estimating staffing requirements of a call center / call center.
 +
* [http://www.asteriskguru.com/tools/bandwidth_calculator.php Asterisk-guru bandwidth calculator] - Bandwidth calculator which takes the VoIP-interconnect protocol into account ('''MGCP/H323/SIP/IAX2/IAX2-trunked''').
 +
* [http://site.asteriskguide.com/bandcalc/bandcalc.php AsteriskGuide Bandwidth calculator for VoIP] - Straightforward bandwidth calculator, which takes into account L2-technollogy (ADSL/ethernet/WiFi etc), protocol (SIP/IAX/etc), VPN and some protocol overhead.
 +
 
 +
 
 +
* [http://www.openh323.org/docs/bandwidth.html Codec Bandwidth and Latency Calculations] - Pre-calculated, Excel-sheet also available.
 +
 
 +
<big>Links</big>
 +
* [[Links#Bandwidth_calculators|More bandwidth calculators]]
  
{| border="1" cellspacing="0"
+
== Audio Codecs ==
! Codec
+
See the [[Audio Codecs]]-section for detailed info on various audio codecs.
! Bit rate
 
! NEB
 
|-
 
|G.711 
 
|64 Kbps 
 
|87.2 Kbps
 
|-
 
|G.729 
 
|8 Kbps 
 
|31.2 Kbps
 
|-
 
|G.723.1
 
|6.4 Kbps 
 
|21.9 Kbps
 
|-
 
|G.723.1
 
|5.3 Kbps 
 
|20.8 Kbps
 
|-
 
|G.726 
 
|32 Kbps 
 
|55.2 Kbps
 
|-
 
|G.726 
 
|24 Kbps 
 
|47.2 Kbps
 
|-
 
|G.728 
 
|16 Kbps 
 
|31.5 Kbps
 
|-
 
|iLBC   
 
|15 Kbps 
 
|27.7 Kbps
 
|-
 
|}
 
''NEB = Nominal Ethernet Bandwidth (one direction)''
 
  
* G711u/a - Requires 64+Kbps (inbound and outbound) continuous data stream for a quality call, plus the SIP signal. A 128Kbps connection has shown to be the minimal connection needed in our testing.
+
== Asterisk bandwidth IAX2 ==
* G723 - Requires 6.4+Kbps (I and O) continuous data stream and also needs room for the SIP signal, 28.8Kbps connection has shown to be the minimal connection.  
+
See the [[IAX2 bandwidth comparison]]-section for more numbers on trunking over an IAX-connection.
  
([http://www.terracall.com/FAQs_white_1.aspx Source])
+
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 IAX2 Bandwidth Study] - To obtain a better chart of actual bandwidth usage per codec as seen "on-the-wire" when using IAX2 trunking between two Asterisk telephony servers.

Latest revision as of 20:43, 20 February 2007

Packet overhead

Communication over an IP-network has some overhead for each data-packet. This overhead can be seen as a constant value in calculations, although it is dependant on a few parameters like the networkstructure and wether it is an TCP or UDP packet.

For TCP, an overhead of 52 Bytes is average and for UDP it is 28 Bytes.

See for more detailed information ethernet payload datarates.


Along with the data used by the codec(s), some control data also has to be transmitted. This means the overhead per packet is even greater than only the IP-headers. This overhead is different for several protocols (e.g. SIP and IAX) and may also be dependant on the number of streams combined in the packet. (e.g. audio and video or even multiple conversations)

Trunking

Because of this packet-overhead, several protocols (like IAX2) support some kind of multiplexing. This means in each datapacket which is sent over the network, several packets of multiple conversations are put together in order to minimize the amount of packets on the network, thus maximizing the payload and minimizing the overhead.

This means the bandwith used between 2 PBX stations can be seen as:

  • BRcodec * #channels + IP-overhead + PBX-protocol-overhead.

This saves (n-1) * (IP-overhead + PBX-overhead) in traffic and even more important, all traffic can be sent over one connection.


Trunk mode requires having a Zaptel interface in the Asterisk server. Therefore we were not able to do measurements on the effect trunking has on the bandwidth consumption. We found however a site where someone has put a low of testresults on trunking.

IAX2 bandwidth comparison

Bandwidth calculators

Audio codec-only:


Links

Audio Codecs

See the Audio Codecs-section for detailed info on various audio codecs.

Asterisk bandwidth IAX2

See the IAX2 bandwidth comparison-section for more numbers on trunking over an IAX-connection.

  • IAX2 Bandwidth Study - To obtain a better chart of actual bandwidth usage per codec as seen "on-the-wire" when using IAX2 trunking between two Asterisk telephony servers.