Transmission Control Protocol (TCP):
- Transmission Control Protocol (TCP) takes large blocks of information from an application and breaks them into segments. It numbers and sequences each segment so that the destination’s TCP stack can put the segments back into the order the application intended. After these segments are sent on the transmitting host, TCP waits for an acknowledgment of the receiving end’s TCP virtual circuit session, retransmitting any segments that aren’t acknowledged.
- TCP is a full-duplex, connection-oriented, reliable, and accurate protocol, but establishing all these terms and conditions, in addition to error checking, is no small task.
- TCP is very complicated, and so not surprisingly, it’s costly in terms of network overhead.
- Most programmers use TCP because it removes a lot of programming work, but for real-time video and VoIP, User Datagram Protocol (UDP) is often better because using it results in less overhead.
- TCP is connection oriented which means that TCP tracks all data sent, requiring an acknowledgment for all octet. And because of Acknowledgement TCP is considered as a reliable data transfer protocol. It ensures that no data is sent to the upper layer application that is out of order.
- TCP also manages transmission to attempt to reduce the congestion.
- TCP is used by HTTP, HTTPS, FTP, SMTP, and Telnet.
User Datagram Protocol (UDP):
- UDP is a datagram-oriented program as there is no overhead for opening a connection, maintaining the connection and terminating a connection. UDP is efficient for broadcast and multicast type of network transmission.
- The delivery of data to the destination cannot be guaranteed by UDP.
- UDP has only the basic error checking mechanism using checksums.
- UDP is faster, simpler and more efficient than TCP.
- There is no retransmission of the lost packets in UDP.
- UDP is used by DNS, DHCP, TFTP, SNMP, RIP, and VoIP
The filtered and most common difference between TCP(Transmission Control Protocol) and UDP(User Datagram Protocol) is described below in a table:
|Segment retransmission and flow control through windowing||No windowing or retransmission|
|Segment sequencing||No sequencing|
|Acknowledge sequencing||No acknowledgment|
*Source: Network Maintenance and Troubleshooting Guide, Second Edition, by Neal Allen.