Simple, High speed, low-functionally “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. |
Connectionless, data is sent without setup. |
Connection-oriented, connection must be established prior to transmission. |
Message-based, Data is sent in discrete packages by the application |
Stream-based, Data is sent by the application with no particular structure. |
Unreliable, best effort delivery without acknowledgments. |
Reliable delivery of messages, all data is acknowledged. |
Not performed. Application must detect lost data and retransmit if needed. |
Delivery of all data is managed and lost data is retransmitted automatically. |
No features are provided to manage flow of data. |
Flow control using sliding windows, window size adjustment heuristics, congestion avoidance algorithms. |
Very low overhead. |
Low overhead but higher than UDP. |
Very high transmission speed. |
High, but not as high as UDP. |
Small to moderate amounts of data. |
Small to very large amounts of data. |
Applications when data delivery speed matters more than completeness, where small amounts of data are sent, or where multicast are used. |
Most protocols and applications sending data that must be received reliably, including most file and message transfer protocol. |
Multimedia, DNS, BOOTP, DHCP, SNMP etc. |
FTP, TELNET, SMTP, DNS, HTTP, IMAP etc. |