Voice over IP bandwidth
Many factors are at play when considering the bandwidth required through a network for VoIP. We explain thethem and offer a simple means of making such calculations. We start with a basic ‘rule of thumb’ and then expand this to take specific voice coding algorithms into account.
You can carry out many of the calculations described on this page with VoIP Calculator, our voice over IP bandwidth calculator for Windows: only $59 for lifetime use and free upgrades.
Header overhead
In our technical paper Voice over IP Protocols for Voice Transmission, we concluded that the standard method of transporting voice samples through an IP based network requires the addition of three headers, one for each layer: IP (layer 3), UDP (layer 4) and RTP (layer 5). An IPv4 header is 20 octets; a UDP header is 8 octets and an RTP header is 12 octets.
The total length of this header information is 40 octets (bytes), or 320 bits, and these headers are sent each time a packet containing voice samples is transmitted. The additional bandwidth occupied by this header information is determined by the number of these packets that are sent each second.
Packet frequency
For the purposes of this analysis, we define packet frequency as the number of packets containing voice samples that are transmitted per second. The packet frequency is the inverse of the duration in seconds represented by the voice samples. For example, if the voice samples in one packet represent a duration of 50 milliseconds, then 20 of these samples would be required each second. The packet frequency would therefore be 20.
The selection of this payload duration is a compromise between bandwidth requirements and quality. Smaller payloads demand higher bandwidth per channel because the header length remains at forty octets. However, as payloads are increased, the overall delay of the system will also increase and it will be more susceptible to the loss of individual packets by the network. For this basic calculation, we will assume a packet duration of 20 ms.
Simple bandwidth calculation
If one packet carries the voice samples representing 20 milliseconds, then 50 such samples will be transmitted in every second. Each sample carries a IP/UDP/RTP header overhead of 320 bits. Therefore, in each second, 16,000 header bits are sent.
So as a general rule of thumb, header information will add 16 kbps to the bandwidth requirement for voice over IP. For example, if an 8 kbps algorithm such as G.729 is used, the total bandwidth required to transmit each voice channel would be 24 kbps, assuming a 20 ms packet duration.
Effects of coding algorithms
The designer of any network convergence solution that includes voice will need to choose which coding algorithm to use. CODECs perform the conversion from an analogue voice waveform to a digital stream of information. They sample the audio at regular intervals (125 microseconds is a typical value), and convert the measured analogue value into its closest numeric representation (known as quantising). The resulting output comprises discreet blocks of information sent at regular intervals.
The method we suggested in the previous section offers a simplistic view of the bandwidth calculation process. It is valid for most coding algorithms but assumes that voice samples can be transmitted within a 20 ms datagram. For coding algorithms that use much smaller sampling periods, multiple samples can be sent within each packet and the samples can be buffered for up to 20 ms. However, some algorithms do not produce samples that fit exactly into 20 ms datagrams and, for those algorithms, the 16 kbps rule of thumb becomes invalid.
Here the relevant characteristics of the most common coding algorithms:
Coding algorithm | Bandwidth | Sample | IP bandwidth | |
---|---|---|---|---|
G.711 | PCM | 64 kbps | 0.125 ms | 80 kbps |
G.723.1 | ACELP | 5.6 kbps | 30 ms | 16.27 kbps |
MP-MLQ | 6.4 kbps | 17.07 kbps | ||
G.726 | ADPCM | 32 kbps | 0.125 ms | 48 kbps |
G.728 | LD-CELP | 16 kbps | 0.625 ms | 32 kbps |
G.729A | CS-ACELP | 8 kbps | 10 ms | 24 kbps |
The algorithms listed that do not fit into the 16 kbps rule of thumb are the two G.723.1 systems highlighted in the table. As their sample duration is 30 ms rather than 20 ms, only 33 frames are sent each second and thus reduces the header overhead to 10.66 kbps.
Detailed consideration of each coding method is beyond the scope of this document, but it should be understood that the various coding methods vary in the levels of complexity, delay characteristics and quality. The CODECs offering compression that have become prevalent within the Voice over IP arena are G.729A and G.723.1.
Conclusion
This document has shown you a quick method of calculating the bandwidth requirement for individual calls being transmitted through an IP network. As a rule of thumb, we suggest that 16 kbps be added to the compressed voice bandwidth to calculate the total bandwidth needed per voice channel. This assumes a packet duration of 20 milliseconds. G.723.1 requires special treatment because its packet duration is 30 ms. For a typical 8 kbps compression scheme, the overhead is 16 kbps (or 200%). Methods exists that reduce this overhead, including RTP header compression and RTP multiplexing.
You can carry the calculations described on this page with VoIP Calculator, our voice over IP bandwidth calculator for Windows: only $59 for lifetime use and free upgrades.