Difference between TCP and UDP

TCP (Transmission Control Protocol) is connection oriented, whereas UDP (User Datagram Protocol) is connection-less. This means that TCP tracks all data sent, requiring acknowledgment for each frame (generally). UDP does not use acknowledgments at all and is usually used for protocols where a few lost frames do not matter.
Because of acknowledgments, TCP is considered a reliable data transfer protocol. It ensures that no data is sent to the upper layer application that is out of order, duplicated, or has missing pieces. It can even manage transmissions to attempt to reduce congestion.
UDP is suitable for applications that need fast and efficient transmissions (low latency). The primary uses for UDP include streaming applications, such as voice and video, where a lost frame is far less important.
Because of acknowledgments, TCP is considered a reliable data transfer protocol. It ensures that no data is sent to the upper layer application that is out of order, duplicated, or has missing pieces. It can even manage transmissions to attempt to reduce congestion.
UDP is suitable for applications that need fast and efficient transmissions (low latency). The primary uses for UDP include streaming applications, such as voice and video, where a lost frame is far less important.
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 |