TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) are the most common network protocols used in network device communication today.
The connection-oriented TCP was developed first and is more common, as it guarantees delivery and accuracy of the data transmission. The protocol tracks and acknowledges all information sent between two devices, and if data is lost or corrupted during transmission, TCP automatically resends or repairs packets. Therefore, network communications use TCP when reliability is critical. File transfer, email, and web browsing applications use TCP because, for those processes, incorrect or lost information would be unacceptable. For example, when financial information is transferred between devices, the application cannot provide incorrect account balances to customers or the entire business would be compromised. The main disadvantage of TCP is that it is slower becuase of the overhead necesssary to ensure reliable and accurate information transfer.
UDP, on the other hand, is preferable when speed is critical, and some data loss or corruption is not catastrophic. UDP is connectionless and does not guarantee data accuracy or order. Applications that use UDP include VoIP, Audio and Video Streaming, Video Conferencing, and Gaming. In these applications, there is no time to retransmit errors, and a few lost packets still enable satisfactory communication. For example, if a few packets are lost during a phone conversation, the conversation is still intelligible. If TCP were used and errors retransmitted, the conversation would be garbled. UDP also allows for broadcast traffic to multiple devices, as acknowledgements from individual target end devices are not needed.
In summary, TCP is a reliable and connection-oriented transmission protocol, suitable when accuracy is critical, while UDP is a fast, simple protocol used when some data loss is okay.
TCP | UDP |
---|---|
Guarantees frame delivery | Does not Guarantee frame delivery |
No acknowledgment used | Poor |
Connectionless | Good |
Used when fast transmissions are required | Excellent |
Used by HTTP, HTTPS, FTP, SMTP, Telnet | Used by DNS, DHCP, TFTP, SNMP, RIP, VOIP |