| Acronym for |
Transmission Control Protocol |
User Datagram Protocol or Universal Datagram Protocol |
| Connection |
Transmission Control Protocol is a connection-oriented protocol. |
User Datagram Protocol is a connectionless protocol. |
| Function |
As a message makes its way across the internet from one computer to another. This is connection based. |
UDP is also a protocol used in message transport or transfer. This is not connection-based which means that one program can send a load of packets to another and that would be the end of the relationship. |
| Usage |
TCP is suited for applications that require high reliability, and transmission time is relatively less critical. |
UDP is suitable for applications that need a fast, efficient transmission, such as games. UDP's stateless nature is also useful for servers that answer small queries from huge numbers of clients. |
| Use by other protocols |
HTTP, HTTPS, FTP, SMTP, Telnet |
DNS, DHCP, TFTP, SNMP, RIP, VOIP. |
| Ordering of data packets |
TCP rearranges data packets in the order specified. |
UDP has no inherent order as all packets are independent of each other. If ordering is required, it has to be managed by the application layer. |
| Speed of transfer |
The speed for TCP is slower than UDP. |
UDP is faster because error recovery is not attempted. It is a "best-effort" protocol. |
| Reliability |
There is absolute guarantee that the data transferred remains intact and arrives in the same order in which it was sent. |
There is no guarantee that the messages or packets sent would reach at all. |
| Header |
TCP header size is 20 bytes |
UDP Header size is 8 bytes. |
| Common Header Fields |
Source port, Destination port, CheckSum |
Source port, Destination port, CheckSum |
| Streaming of data |
Data is read as a byte stream, no distinguishing indications are transmitted to signal message (segment) boundaries. |
Packets are sent individually and are checked for integrity only if they arrive. Packets have definite boundaries which are honored upon receipt, meaning a read operation at the receiver socket will yield an entire message as it was originally sent. |
| Weight |
TCP is heavy-weight. TCP requires three packets to set up a socket connection before any user data can be sent. TCP handles reliability and congestion control. |
UDP is lightweight. There is no ordering of messages, no tracking connections, etc. It is a small transport layer designed on top of IP. |
| Data Flow Control |
TCP does Flow Control. TCP requires three packets to set up a socket connection before any user data can be sent. TCP handles reliability and congestion control. |
UDP does not have an option for flow control |
| Error Checking |
TCP does error checking and error recovery. Erroneous packets are retransmitted from the source to the destination. |
UDP does error checking but simply discards erroneous packets. Error recovery is not attempted. |
| Header Fields |
1. Sequence Number, 2. AcK number, 3. Data offset 4. Reserved, 5. Control bit, 6. Window, 7. Urgent Pointer 8. Options, 9. Padding, 10. CheckSum, 11. Source port, 12. Destination port |
1. Length, 2. Source port, 3. Destination port, 4. CheckSum |
| Acknowledgement |
Acknowledgement segments |
No Acknowledgment |
| Handshake |
SYN, SYN-ACK, ACK |
No handshake (connectionless protocol) |