Networking and VoIP
The IP in VoIP stands for Internet Protocol, and it's the same IP as in TCP/IP, which has been the standard networking protocol for quite a few years. It's what most networks run on these days, from a small office environment to the Internet itself. Within IP are two more protocols -- UDP and TCP -- each performing separate functions.
TCP, or Transmission Control Protocol, has a number of inbuilt features like handshaking and error correction. It's the favoured carrier when reliability of communication is more important than pure volume.
TCP packets carry information about where they've come from and where they're going, and require that the remote receiver acknowledge each packet to ensure continued reliability, and carry self-protective information in case things go wrong. This reliability comes at the cost of size and efficiency -- TCP packets are larger than their UDP counterparts, which results in additional networking overhead. UDP, or User Datagram Protocol, has none of the error correction or self-checking of TCP, so is inherently less reliable. However, it has the advantage of being light-weight and speedy -- perfect for situations where volume of traffic and throughput is more important.
Most network communication makes use of either TCP or UDP, but VoIP makes use of both. The reliability and handshaking of TCP is used to establish a proper connection with the receiver, and then the voice component is broken down and transmitted over quick UDP packets to ensure smooth communication. TCP monitors the call, correcting for errors, and then handles the hang-up.
A key feature of networking and one of the reasons for its efficiency is that each end point on a network knows very little about all the other points -- the computer in my office neither knows nor cares about the existence of another computer two offices away. But -- and here's the cool thing -- it knows how to find out. To talk on an IP-based network, all devices need three things (apart from a connection to the network):
1. An IP address, which is unique for at least as long as the device is connected
2. A subnet mask, to understand where its own address lies in the grand scheme of things
3. A default gateway, when attempting to connect to addresses not located in the local subnet
And that's basically it. Of course, for really seamless communication you need a few more things, like the address of a DNS server to resolve those odd IP addresses into understandable names (like www.google.com.au), but other than that, you can do quite a lot with just those three prerequisites.
The backend infrastructure of an IP network continues the concept in very much the same vein -- each point knows enough to forward traffic to the next logical point along the line, but no one device carries a working knowledge of the entire network. Additionally, all devices are adaptive learners. Network switches and routers carry dynamic information of the other devices directly connected to it -- change something and they will adjust that knowledge accordingly.
The wonderful advantage of this is that if a device fails, it's relatively easy to bypass it -- point the servers to another gateway and have them disseminate the information to the client machines, plug cables into another switch, rig up a temporary wireless connection, hang a cable from the ceiling -- anything. It all works.
And this is where the appeal of VoIP starts to take hold. A network is a dynamic, flexible environment, where communication and cross-communication is possible regardless of where you're plugged in. Upgrades are easy and are often done entirely in software -- no new hardware required, and telephony capabilities are much more dependent on the individual handsets. By comparison a telephone/switch voice network is static, inflexible and relies almost totally on the switching hardware for capability and capacity. If you want a new phone, you have to run a line straight back to the switch.