Please Whitelist This Site?
I know everyone hates ads. But please understand that I am providing premium content for free that takes hundreds of hours of time to research and write. I don't want to go to a pay-only model like some sites, but when more and more people block ads, I end up working for free. And I have a family to support, just like you. :)
If you like The TCP/IP Guide, please consider the download version. It's priced very economically and you can read all of it in a convenient format without ads.
If you want to use this site for free, I'd be grateful if you could add the site to the whitelist for Adblock. To do so, just open the Adblock menu and select "Disable on tcpipguide.com". Or go to the Tools menu and select "Adblock Plus Preferences...". Then click "Add Filter..." at the bottom, and add this string: "@@||tcpipguide.com^$document". Then just click OK.
Thanks for your understanding!
Sincerely, Charles Kozierok
Author and Publisher, The TCP/IP Guide
The User Datagram Protocol (UDP) and Transmission Control Protocol (TCP) are the siblings of the transport layer in the TCP/IP protocol suite. They perform the same role, providing an interface between applications and the data-moving capabilities of the Internet Protocol (IP), but they do it in very different ways. The two protocols thus provide choice to higher-layer protocols, allowing each to select the appropriate one depending on its needs.
I have described UDP and TCP in detail in their own sections. However, these sections take some time to read; the UDP section is several pages and the TCP section has many more! For your convenience I have included here Table 160, which helps illustrate the most important basic attributes of both protocols and how they contrast with each other:
Table 160: Summary Comparison of UDP and TCP
Characteristic / Description
UDP
TCP
General Description
Simple, high-speed, low-functionality wrapper that interfaces applications to the network layer and does little else.
Full-featured protocol that allows applications to send data reliably without worrying about network layer issues.
Protocol Connection Setup
Connectionless; data is sent without setup.
Connection-oriented; connection must be established prior to transmission.
Data Interface To Application
Message-based; data is sent in discrete packages by the application.
Stream-based; data is sent by the application with no particular structure.
Reliability and Acknowledgments
Unreliable, best-effort delivery without acknowledgments.
Reliable delivery of messages; all data is acknowledged.
Retransmissions
Not performed. Application must detect lost data and retransmit if needed.
Delivery of all data is managed, and lost data is retransmitted automatically.
Features Provided to Manage Flow of Data
None
Flow control using sliding windows; window size adjustment heuristics; congestion avoidance algorithms.
Overhead
Very low
Low, but higher than UDP
Transmission Speed
Very high
High, but not as high as UDP
Data Quantity Suitability
Small to moderate amounts of data (up to a few hundred bytes)
Small to very large amounts of data (up to gigabytes)
Types of Applications That Use The Protocol
Applications where data delivery speed matters more than completeness, where small amounts of data are sent; or where multicast/broadcast are used.
Most protocols and applications sending data that must be received reliably, including most file and message transfer protocols.
Well-Known
Applications and Protocols
Multimedia applications, DNS, BOOTP, DHCP, TFTP, SNMP, RIP, NFS (early versions)
FTP, Telnet, SMTP, DNS, HTTP, POP, NNTP, IMAP, BGP, IRC, NFS (later versions)