Differences between TCP and UDP
|Basis||Transmission control protocol (TCP)||User datagram protocol (UDP)|
|Type of Service||TCP is a connection-oriented protocol. Connection-orientation means that the communicating devices should establish a connection before transmitting data and should close the connection after transmitting the data.||UDP is the Datagram-oriented protocol. This is because there is no overhead for opening a connection, maintaining a connection, and terminating a connection. UDP is efficient for broadcast and multicast types of network transmission.|
|Reliability||TCP is reliable as it guarantees the delivery of data to the destination router.||The delivery of data to the destination cannot be guaranteed in UDP.|
|Error checking mechanism||TCP provides extensive error-checking mechanisms. It is because it provides flow control and acknowledgment of data.||UDP has only the basic error checking mechanism using checksums.|
|Acknowledgment||An acknowledgment segment is present.||No acknowledgment segment.|
|Sequence||Sequencing of data is a feature of Transmission Control Protocol (TCP). this means that packets arrive in order at the receiver.||There is no sequencing of data in UDP. If the order is required, it has to be managed by the application layer.|
|Speed||TCP is comparatively slower than UDP.||UDP is faster, simpler, and more efficient than TCP.|
|Retransmission||Retransmission of lost packets is possible in TCP, but not in UDP.||There is no retransmission of lost packets in the User Datagram Protocol (UDP).|
|Header Length||TCP has a (20-60) bytes variable length header.||UDP has an 8 bytes fixed-length header.|
|Weight||TCP is heavy-weight.||UDP is lightweight.|
|Handshaking Techniques||Uses handshakes such as SYN, ACK, SYN-ACK||It’s a connectionless protocol i.e. No handshake|
|Broadcasting||TCP doesn’t support Broadcasting.||UDP supports Broadcasting.|
|Protocols||TCP is used by HTTP, HTTPs, FTP, SMTP and Telnet.||UDP is used by DNS, DHCP, TFTP, SNMP, RIP, and VoIP.|
|Stream Type||The TCP connection is a byte stream.||UDP connection is message stream.|
|Overhead||Low but higher than UDP.||Very low.|
A short example to understand the differences clearly :
Suppose there are two houses, H1 and H2 and a letter have to be sent from H1 to H2. But there is a river in between those two houses. Now how can we send the letter?
Solution 1: Make a bridge over the river and then it can be delivered.
Solution 2: Get it delivered through a pigeon.
Consider the first solution as TCP. A connection has to be made ( bridge ) to get the data (letter) delivered.
The data is reliable because it will directly reach another end without loss in data or error.
And the second solution is UDP. No connection is required for sending the data.
The process is fast as compared to TCP, where we need to set up a connection(bridge). But the data is not reliable: we don’t know whether the pigeon will go in the right direction, or it will drop the letter on the way, or some issue is encountered in mid-travel.