System information
The purpose of TCP is to guarantee the delivery of packets. In order to do this, several
mechanisms are implemented, such as packet numbering (for reconstructing blocks of
data), delivery acknowledgment, and re-requesting of lost packets. In the world of VoIP,
getting the packets to the endpoint quickly is paramount—but 20 years of cellular
telephony has trained us to tolerate a few lost packets.
*
TCP’s high processing overhead, state management, and acknowledgment of arrival
work well for transmitting large amounts of data, but they simply aren’t efficient
enough for real-time media communications.
User Datagram Protocol
Unlike TCP, the User Datagram Protocol (UDP) does not offer any sort of delivery
guarantee. Packets are placed on the wire as quickly as possible and released into the
world to find their way to their final destinations, with no word back as to whether
they got there or not. Since UDP itself does not offer any kind of guarantee that the
data will arrive,
†
it achieves its efficiency by spending very little effort on what it is
transporting.
TCP is a more “socially responsible” protocol because the bandwidth
is more evenly distributed to clients connecting to a server. As the per-
centage of UDP traffic increases, it is possible that a network could be-
come overwhelmed.
Stream Control Transmission Protocol
Approved by the IETF as a proposed standard in RFC 2960, SCTP is a relatively new
transport protocol. From the ground up, it was designed to address the shortcomings
of both TCP and UDP, especially as related to the types of services that used to be
delivered over circuit-switched telephony networks.
Some of the goals of SCTP were:
• Better congestion-avoidance techniques (specifically, avoiding denial of service
attacks)
• Strict sequencing of data delivery
• Lower latency for improved real-time transmissions
* The order of arrival is important in voice communication, because the audio will be processed and sent to
the caller ASAP. However, with a jitter buffer the order of arrival isn’t as important, as it provides a small
window of time in which the packets can be reordered before being passed on to the caller.
† Keep in mind that the upper-layer protocols or applications can implement their own packet-
acknowledgment systems.
630 | Appendix B: Protocols for VoIP