Prerequisite – Transport Layer responsibilities
Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) both are protocols of the Transport Layer. TCP is a connection-oriented protocol where as UDP is a part of the Internet Protocol suite, referred to as the UDP/IP suite. Unlike TCP, it is an unreliable and connectionless protocol.
Transmission Control Protocol (TCP)
TCP (Transmission Control Protocol) is one of the main protocols of the Internet protocol suite. It lies between the Application and Network Layers which are used in providing reliable delivery services. It is a connection-oriented protocol for communications that helps in the exchange of messages between different devices over a network. The Internet Protocol (IP), which establishes the technique for sending data packets between computers, works with TCP.
Transmission Control Protocol
Features of TCP
- TCP keeps track of the segments being transmitted or received by assigning numbers to every single one of them.
- Flow control limits the rate at which a sender transfers data. This is done to ensure reliable delivery.
- TCP implements an error control mechanism for reliable data transfer.
- TCP takes into account the level of congestion in the network.
Advantages of TCP
- It is reliable for maintaining a connection between Sender and Receiver.
- It is responsible for sending data in a particular sequence.
- Its operations are not dependent on OS.
- It allows and supports many routing protocols.
- It can reduce the speed of data based on the speed of the receiver.
Disadvantages of TCP
- It is slower than UDP and it takes more bandwidth.
- Slower upon starting of transfer of a file.
- Not suitable for LAN and PAN Networks.
- It does not have a multicast or broadcast category.
- It does not load the whole page if a single data of the page is missing.
User Datagram Protocol (UDP)
User Datagram Protocol (UDP) is a Transport Layer protocol. UDP is a part of the Internet Protocol suite, referred to as the UDP/IP suite. Unlike TCP, it is an unreliable and connectionless protocol. So, there is no need to establish a connection before data transfer. The UDP helps to establish low-latency and loss-tolerating connections establish over the network. The UDP enables process-to-process communication.
User Datagram Protocol
Features of UDP
- Used for simple request-response communication when the size of data is less and hence there is lesser concern about flow and error control.
- It is a suitable protocol for multicasting as UDP supports packet switching.
- UDP is used for some routing update protocols like RIP(Routing Information Protocol).
- Normally used for real-time applications which can not tolerate uneven delays between sections of a received message.
Advantages of UDP
- It does not require any connection for sending or receiving data.
- Broadcast and Multicast are available in UDP.
- UDP can operate on a large range of networks.
- UDP has live and real-time data.
- UDP can deliver data if all the components of the data are not complete.
Disadvantages of UDP
- We can not have any way to acknowledge the successful transfer of data.
- UDP cannot have the mechanism to track the sequence of data.
- UDP is connectionless, and due to this, it is unreliable to transfer data.
- In case of a Collision, UDP packets are dropped by Routers in comparison to TCP.
- UDP can drop packets in case of detection of errors.
Which Protocol is Better: TCP or UDP?
The answer to this question is difficult because it totally depends on what work we are doing and what type of data is being delivered. UDP is better in the case of online gaming as it allows us to work lag-free. TCP is better if we are transferring data like photos, videos, etc. because it ensures that data must be correct has to be sent.
In general, both TCP and UDP are useful in the context of the work assigned by us. Both have advantages upon the works we are performing, that’s why it is difficult to say, which one is better.
Difference Between TCP and UDP
Where TCP is Used?
- Sending Emails
- Transferring Files
- Web Browsing
Where UDP is Used?
- Video Streaming
- Online Video Chats
Differences between TCP and UDP
The main differences between TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) are:
|Basis ||Transmission Control Protocol (TCP) ||User Datagram Protocol (UDP)|
|Type of Service|
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, or terminating a connection. UDP is efficient for broadcast and multicast types of network transmission.
|Reliability||TCP is reliable as it guarantees the delivery of data to the destination router.||The delivery of data to the destination cannot be guaranteed in UDP.|
|Error checking mechanism |
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.|
|Acknowledgment||An acknowledgment segment is present.||No acknowledgment segment.|
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 the order is required, it has to be managed by the application layer.|
|Speed||TCP is comparatively slower than UDP.||UDP is faster, simpler, and more efficient than TCP.|
|Retransmission||Retransmission of lost packets is possible in TCP, but not in UDP.||There is no retransmission of lost packets in the User Datagram Protocol (UDP).|
|Header Length||TCP has a (20-60) bytes variable length header.||UDP has an 8 bytes fixed-length header.|
|Weight||TCP is heavy-weight.||UDP is lightweight.|
|Handshaking Techniques||Uses handshakes such as SYN, ACK, SYN-ACK||It’s a connectionless protocol i.e. No handshake|
|Broadcasting||TCP doesn’t support Broadcasting.||UDP supports Broadcasting.|
|Protocols||TCP is used by HTTP, HTTPs, FTP, SMTP and Telnet.||UDP is used by DNS, DHCP, TFTP, SNMP, RIP, and VoIP.|
|Stream Type||The TCP connection is a byte stream.||UDP connection is a message stream.|
|Overhead||Low but higher than UDP.||Very low.|
|Applications||This protocol is primarily utilized in situations when a safe and trustworthy communication procedure is necessary, such as in email, on the web surfing, and in military services.||This protocol is used in situations where quick communication is necessary but where dependability is not a concern, such as VoIP, game streaming, video, and music streaming, etc.|
Example: Suppose there are two houses, H1 and H2, and a letter has to be sent from H1 to H2. But there is a river in between those two houses. Now how can we send the letter?
Solution 1: Make a bridge over the river and then it can be delivered.
Solution 2: Get it delivered by a pigeon.
- Consider the first solution as TCP. A connection has to be made (bridge) to get the data (letter) delivered. The data is reliable because it will directly reach another end without loss of data or error.
- The second solution is UDP. No connection is required for sending the data. The process is fast as compared to TCP, where we need to set up a connection(bridge). But the data is not reliable: we don’t know whether the pigeon will go in the right direction, will drop the letter on the way, or some issue is encountered mid-travel.
1. Which is faster: TCP or UDP?
UDP is faster than TCP. The reason for the faster UDP is its non-existent acknowledge packet (ACK) which allows the streaming of continuous packets where as TCP always works on the acknowledgment of a set of packets calculated with the help of TCP window size and Round Trip Time (RTT).
2. Which is better for Video Conferencing?
Both Protocols, TCP and UDP have several practical uses in day-to-day life, but TCP has come as a better solution nowadays in the modern era as a solution for this question of who is better at Video Conferencing. The reason for this is because of the ability of UDP to order data correctly and it also produces the output without error. TCP can also be used for Video Conferencing when we have to focus more on quality rather than speed. UDP is generally used when speed matters most rather than the quality of the product. Some data packets might be lost or somehow received out of order, but UDP is more prominently used in the case of live streaming.