Let's take a look at the components of TCP/IP:
IP (Internet Protocol) is the fundamental protocol of the TCP/IP protocol suite. IP provides the basic delivery service on which TCP/IP networks are built. All TCP/IP data flows through IP. IP defines the means to identify and reach a target computer. It is called both an unreliable protocol and connectionless protocol. IP does not perform error-checking or verify delivery; those jobs are handled by other protocols. In practice it is fast and reliable.
TCP (Transmission Control Protocol) provides end-to-end error detection and correction. This is what makes it possible to transfer gigabytes of files over the network without mistakes. TCP first establishes and verifies a connection; it won't send data until it is sure the receiving host is ready to receive it. TCP then numbers each related packet in a data stream in sequence, and again does not send any data segments until the receiving host acknowledges the correct starting number. Each data segment is checksummed and acknowledged, so if a packet is lost or damaged TCP asks for it to be re-sent. When the network is congested a lot of packets are lost and re-sent.
UDP (User Datagram Protocol) is also called an unreliable, connectionless protocol because it has no error-checking or delivery guarantee. UDP is fast and low-overhead, and is used for things like DNS (Domain Name Service) and NTP (Network Time Protocol) that don't send complex data streams, and that need speed more than 100 percent reliability.
There is a lot of contention during a typical TCP/IP session; what we want to do is push our VoIP packets to the head of the line. Come back next week to learn how to do this.
This article was first published on LinuxPlanet.com.