Is there a difference between a data transfer and a VoIP call? There isn’t a significant difference, the same IP packets are used, the same medium is used but there is one important difference – how big can a packet be?
With a data transfer you don’t care about latency i.e. how long it takes for the packet to be generated, then transmitted and then deciphered and re-assembled at the other end. Whether an email takes 1 second to be sent or if it takes 1 minute do we really care? With voice this latency is a big problem, this was one of the main problems VoIP faced. However over the last 5 or 10 years this problem has all but been solved. The advancements in silicon technology by shrinking the geometry of transistors enables more of them to integrated on a piece of silicon. This then enables DSP’s, Codecs, network processors (all key elements of the internet) to run faster, have more functions and have more on silicon memory and hence do more in a shorter period of time. Without these powerful key elements we would not be able to meet the strict latency requirements for a conversation or have the bandwidth we enjoy with the likes of comcast and verizon.
With a traditional phone call, 8 bits are generated every frame, they are sent every frame, decoded at the other end every frame and translated back to analog every frame, it is a very linear process in that each function has the same job to do in the same amount of time.
Now looking back at the IP packet in the previous blog there is at least 24 bytes in a header before you even get to the data. So to send 8 bits every 125us (8KHz), would require at least 25 bytes – this is more DS0’s than a T1 has and is a complete waste of bandwidth. There are two main techniques used to reduce the bandwidth required, however they negatively impact the latency. As in all engineering solutions there is a trade off from what one desires with the effects of getting what one wants.
- To reduce the bandwidth of the actual 8 bit voice sample a technique called voice compression is used. There are many compression algorithms available, these typically run on DSP’s or ASICS inside your ATA or IP phones. These algorithms take in numerous samples and through a complex mathematical process can compress these 64kKbits per second samples down to an 8kKbits per second sample or even lower. The advancements in silicon technology allow these powerful algorithms to be run ever faster and allow even more complex algorithms to be developed that reduce the final data rate even more.
- Now for the obvious one – Send as much data in one packet as possible. This reduces the amount of overhead as the ratio of data to header information increases.
The trick now is to pack as many of these compressed samples into an IP packet but yet keep the latency low enough so as to not make a conversation impossible. Next time we’ll look more closely at the tolerable delay and IP packet frequency.