TCP is a full-duplex, connection-oriented, reliable and accurate protocol. It’s not a simple task to do all of those things and the cost is additional overhead. If a TCP packet is not received, the hosts will communicate this and the sending host can send the packet again. Before transmitting, a sending host establishes a connection with the TCP host. This is done via a few handshake messages.
UDP requires less bandwidth than TCP because it doesn’t care about reliability. It doesn’t need to be connection-oriented and know whether a packet is received or not. The best example of this is Voice over IP. VoIP packets are real-time. They are played as they’re received. If one is not received, it doesn’t make sense to retransmit it because it would be out of order anyways when it is received. So it makes sense for VoIP application developers to use UDP for their transport layer protocol.
Here is a quick reference chart describing the differences between TCP and UDP
PacketTracer Lab: CCNA-1.2-Compare-and-contrast-TCP-and-UDP-protocols.pkt
Subscribe Now for access to the labs!