|Transmission control protocol (TCP)||User datagram protocol (UDP)|
|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 type of network transmission.|
|TCP is reliable as it guarantees delivery of data to the destination router.||The delivery of data to the destination cannot be guaranteed in UDP.|
|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.|
|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 ordering is required, it has to be managed by the application layer.|
|TCP is comparatively slower than UDP.||UDP is faster, simpler and more efficient than TCP.|
|Retransmission of lost packets is possible in TCP, but not in UDP.||There is no retransmission of lost packets in User Datagram Protocol (UDP).|
|TCP header size is 20 bytes.||UDP Header size is 8 bytes.|
|TCP is heavy-weight.||UDP is lightweight.|
|TCP is used by HTTP, HTTPs, FTP, SMTP and Telnet||UDP is used by DNS, DHCP, TFTP, SNMP, RIP, and VoIP.|
- Differences between JDK, JRE and JVM
- Differences between IPv4 and IPv6
- Similarities and Differences between Ruby and C++
- What are the differences between HTTP, FTP, and SMTP?
- Differences between Bootstrap and JQuery UI
- Differences between 8086 and 8088 microprocessors
- Similarities and Differences between Ruby and C language
- Differences between Flatten() and Ravel() | Numpy
- Differences between wait() and join() methods in Java
- Differences between TreeMap, HashMap and LinkedHashMap in Java
- Differences between Virtual Circuits & Datagram Networks
- Differences between number of increasing subarrays and decreasing subarrays in k sized windows
- Differences between Black Box Testing vs White Box Testing
- DFA for strings not containing consecutive two a's and starting with 'a'
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.