Difference between TCP and UDP
Key Difference: TCP stands for transport control protocol. It is a connection oriented and reliable protocol and is used for transfer of crucial data. On the other hand, UDP stands for User Datagram Protocol. It is an unreliable and connection-less protocol which is used for services that require fast transmission of data.
We are living in a world full of various types of networks. The most important network consists of computers. We send e-mails to our friends, send them our pictures, listen to a distant radio channel, and many more things. The whole functioning of the network seems to be running seamlessly on a simple platform. However, behind this simple looking network, lies a complex system that has been simplified by use of various protocols. Protocols define the rules, conventions and data structures that govern the data communication.
These protocols are required because a computer network is a heterogeneous mixture of various components. Computers that are interacting with each other may differ in various attributes like hardware, software, specifications etc. Thus, a unifying set of rules is a must that should be followed world wide, in order to communicate the data between various types of computer systems. We can simply say that it is a language that computers use to talk to each other.
TCP and UDP are two such protocols. The protocols are placed in a layered hierarchy. Whenever the message is passed from a source to sender, it must pass from each layer of the protocol stack. Today, the networking standards use two main protocol stacks known by Open System Interconnection (OSI) model and the TCP/IP model. OSI is a seven layered architecture, whereas TCP/IP consists of four layers. TCP and UDP both are put under the transport layer.
Let us understand the functioning of TCP Protocol. It stands for Transmission Control Protocol. It is a connection oriented and reliable protocol. It means that first the connection is set up, and then the message is sent across and later after the data transfer, the connection is terminated. Thus, the connection remains open throughout the process of transfer. It is responsible for breaking the data messages into packets that are sent by using internet protocol. TCP is also used in remote login i.e. one can get access to the other computer for maintenance or trouble shooting purposes. It is also used in file transfers.
Another important term that is associated with the TCP is handshaking. It refers to the reliable feature of TCP. How this reliability is achieved? It is achieved with the help of acknowledgements. Firstly, the message that is in bytes (form of 0 and 1) is broken up into chucks which are known as segments.
After receiving the segments, the receiver sends acknowledgements for segments. TCP also maintains a timer. If the acknowledgement is not received in time, then the message is resent. Each byte that is transmitted through TCP protocol contains a sequence number. A TCP segment is made up of a segment header and a data section. The header contains 10 fields that must exist and an optional extension field.
UDP is the name for User Datagram Protocol or Universal Datagram Protocol. It is also a protocol but it greatly differs from the TCP. It is used in place of TCP when the data transfer is not that critical. UDP do not set up end to end connection between the systems. It is also known for its best effort in delivering the data.
However, the reliability is less but it still offers efficient communication. It is also used as a tunneling protocol in which UDP datagrams contain the packets of other protocols and then transmits them to the other end. However, a computer may send UDP packets even before establishing a connection. The UDP header contains four fields and each field is of 2 bytes in terms of its length. The four fields are the source port, destination port, UDP length and UDP checksum. The datagram is carried in a single IP packet and later at the destination the UDP protocol layer receives the packets from IP network layer.
Some of the key differences are listed below in the table:
TCP | UDP | |
Stands for: | Transmission Control Protocol | User Datagram Protocol or Universal Datagram Protocol |
Type of Connection: | It is a connection oriented protocol | It is a connection less protocol |
Usage: | TCP is used in case of applications in which fast transmission of data is not required | UDP is preferred in case of the applications which have the priority of sending the data on time and on faster rates |
Examples: | HTTP, FTP, SMTP Telnet etc | DNS, DHCP, TFTP, SNMP, RIP, VOIP etc |
Ordering of data packets: | It rearranges data packets in the order specified | No inherent ordering, the data packets of same message may be ordered differently |
Speed of transfer: | Comparatively slow | Comparatively fast |
Reliability: | Reliable (defines that data will be definitely sent across) | Unreliable |
Header Size: | TCP header size is 20 bytes | UDP Header size is 8 bytes |
Fields: | 1. Sequence Number, 2. AcK number, 3. Data offset, 4. Reserved, 5. Control bit, 6. Window, 7. Urgent Pointer, 8. Options, 9. Padding, 10. Check Sum, 11. Source port, 12. Destination port. | 1. Length, 2. Source port, 3. Destination port, 4. Check Sum. |
Streaming of data: | Data is read as a byte stream, thus no distinguishing indications are transmitted to the signal message | Packets are sent individually and after the arrival the packets are rearranged |
Weight: | It is heavier as it requires three packets to set up a socket connection, before any user data can be sent. TCP handles reliability and congestion control. | UDP is lightweight due to no ordering of messages, no tracking connections, etc. |
Data Flow Control: | TCP controls the flow of data | UDP does not have an option for flow control |
ncG1vJloZrCvp2OxqrLFnqmeppOar6bA1p6cp2aZo7Owe8OinZ%2Bdopq7pLGMm5ytr5Wau27AwqlkmqaUYsKlvA%3D%3D