Site Navigation
|
VOIP - The Con job of the
Century?
VOIP - for me it makes an excellent illustration of how ignorance,
Hype and Dishonesty seems to replace sound Engineering, careful
design and common sense in so much modern Technology.
Maybe
before we proceed we should start with a brief bit of history In computing terms IP
is one of the last living dinosaurs, the idea
was originally proposed in the late 1950's and the protocol was
developed during the 1960's.
I expect many folk know of the history of
ARPA net but for those who do not - a bit of Background.
At the
time there were two competing ideas for how to shuffle Data around the
place one was packet switching (later to become X.25) and this was what is
now called a connection oriented service - that is it works pretty much
like a phone call, you send a lot of information out to set up the call
(phone number your number etc ) and after the call has been set up
from there on if you want to send data you only need to add a small header
to tell the network which 'Logical Channel' you want to use (with X.25 you
can set up multiple calls at the same time each call gets given
a Logical Channel Number or LCN a very short number often only 8 bits in
length unlike the X.25 address (phone number) which can be 80 bits in
length.
The other idea (which was later to become IP) was to build
a connectionless network in which each packet of data would carry the
addressing and routing information. The intention here was that since
there were no fixed routes through the network in the event of a failure
the packets would readily find alternate routes to their
destination.
Of course data on the connectionless network could
potentially have a higher latency (Delay across the network) as all the
switching nodes need to stop and look up a routing table for each packet
but since even X.25 used store, error detect/retransmission and
forward mechanisms there was not any appreciable difference in latency
between the two.
Both
these Networks were designed primarily with the idea of shuffling data
around - there were no mechanisms built in to provide any QOS (Quality Of
Service), There were no mechanisms built in to keep Latency to a
minimum.
In fact
as time went by the IP stack grew more and more unwieldy as
kludge after kludge after kludge got added on. Early on there was the idea of the OSI 7
layer model but IP has ended up carrying so much extra fat that the idea
of fitting everything into a mere 7 layers seems to have long
since gone the way of the Dodo.....
Roll forward nearly 50 years and we
are still trying to push this (now) aging and tired Legacy technology
on, to do things it was never designed or intended to do and the
latest two jokes seem to be 'Lets run real time applications over this
network, things such as voice and video.
A quick look at Voice before we head on. Voice is carried
across Telecommunication networks as a 64Kbps stream which is made up of
8,000 8 bit samples a Second.
Voice is a 'real time' application so it needs
to cross the network with a minimum of delay. When we are having a
conversation with someone there is a 'comfort factor' of less than 200mS.
As
delay in voice transport approaches 200mS then we find, that while the delay
is not obvious our conversations start to trip over each other - that
is you find that both parties will start to talk at once. As the delay
approaches 500mS however it becomes quite noticeable and even
more annoying.
Voice in the digital domain has traditionally been
switched using Time Division Multiplexing where 8000 times a second
another 8 bits (or Octet - in the wonderful world of communications there
is no certainty that every group of 8 bits are connected in any way as we
could have 3 bits for a flag 4 bits for something else and a Poll or final
bit as a result a group of 8 bits in a data frame, cell or packets is
called an Octet not a Byte) for the channel or timeslot are switched
across the network.
VOIP, it promises so much and delivers so little!
Lets run through the promises made for VOIP shall we?
VOIP you only need to run one Network, Voice and LAN
traffic happily sharing bandwidth only one LAN needed - in fact
save money
on CAT 5 cabling only
one Ethernet port needed at each desk.
VOIP
save money on WAN
links, Only one link needed to each site instead of the messy arrangement
of running one link for data and another for voice.
VOIP a much more efficient
way of transporting voice than say ATM use it and save
money
.
VOIP you
will have no trouble talking over it and may
even understand the person at
the other end!
OK lets start with the first.... most people who implement
VOIP for a living recommend that you run a separate LAN for VOIP running
on an independent Ethernet switch.
Hang
on though, wasn't the whole point of VOIP the one unified
Network? Well if we go all the way back to how IP was designed
in the first place we find that there is no way of prioritsing any Traffic
ahead of anything else*1
so there is NO
inherent way of prioritising Voice ahead of say Email (which is not a real
time application). What we also find
with variable frame length traffic (such as IP) is that as Traffic levels on
a link (say that nice fat 100Mbps LAN link to your desk) go
up the latency increases exponentially so for a typical link running
several streams of data once the utilisation goes past 25%, we start losing
any hope of maintaining order or keeping latency down. Picture
this you are on the phone to an important client and one of your mates
decides to Email a funny video clip. Mid conversation your email client
decides to check your email and down comes the file - making your IP phone
virtually unusable. So if you want to run VOIP around the
office run one piece of cable for the PC and another for the VOIP phone. So that
hasn't saved us anything has it?
Save money on WAN links? If we are struggling to get it to share
a 100Mbps LAN with a single PC attached how on
earth are we going to get it to work on a link that is typically
less than 2Mbps link with multiple streams of Traffic? Simple answer: YOU CANNOT.
OK I have managed to do it for various customers BUT this
is with the backing of a full QOS Wide Area Network (ATM) and by specifically
reserving bandwidth (in the case of frame Relay) on the link for voice AND
nailing down Traffic management on the Customer router. What
this means is that for say a 256Kbps Frame relay link we need to run
multiple PVC's (Private Virtual Circuits) one for the voice and a separate
one for the data. Nail the PIR (Peak Information Rate) for
the data PVC so it allows room for the voice PVC - this is
typically 30Kbps per voice channel if the customer is running 8:1
compression so if the customer wants to run up to 4 voice channels across
a 256Kbps link then the maximum data we can let him push across the link
will be 136Kbps - at this rate they might as well buy a separate link for
voice and data - really it does not cost much more in the scheme of
things. Run VOIP of acceptable quality over an
Internet link? Forget it....
*1 But what
about RTP? I hear you ask..... Well RTP illustrates the kludge on a
kludge approach of IP nicely.
OK lets start with the voice
payload running at a fairly typical 8:1 compression we want to keep
latency down so this limits the sample size - most VOIP vendors reccomend
around 50mS or 160 bytes as this means round trip delay is not much more
than 100mS which allows for some latency across the network and a
missing packet does not make a significant hole in voice quality. Now
if we compress that at 8:1 means we now have a tidy 20 bytes of voice
payload.
Now comes the real genius VOIP uses a protocol called
RTP which runs under UDP and then IP
so: IP adds 20
Bytes UDP adds 8 Bytes
and RTP adds another 12 Bytes This
means that we end up adding a 40 Byte header to our 20 Bytes of payload
and we have not yet even added transport layer Overheads is
this efficient or what?
Of course you can run cRTP (or compressed
RTP) which knocks the header down to a more comfortable 2 or 4 Bytes
provided; Your link is not going via ATM, Ethernet or another IP network -
which pretty well counts out most of the lower cost WAN options and only
leaves us with either a dedicated point to point link or Frame Relay,
either of which is likely to add about another 6 Bytes or so for
Transport.
Of course there are plenty of other caveats regarding cRTP and I have to
say that I have seen very few people using cRTP instead of fully fledged
RTP.
So in summary, on a good
day VOIP suffers about 50% overhead but more typically (and realistically) runs at a monstrously efficient
200% and the irony is the big marketing push for VOIP (over full Quality of service protocols
like ATM) was that it 'could' be much more efficient than
ATMs 10% overhead. |