# Topic covered
* Transmission Control Protocol (TCP)
  * TCP Three-Way Handshake Process
* User Datagram Protocol (UDP)
* TCP vs UDP
* When to use UDP and TCP?

4.1 Transmission Control Protocol (TCP)

TCP is a transport layer protocol. TCP is defined as a connection-oriented communication protocol that allows computing devices and applications to send data via a network and verify its delivery.

It is a reliable protocol as it detects the error and retransmits the damaged frames. Therefore, it ensures all the segments must be received and acknowledged before the transmission is considered to be completed and a virtual circuit is discarded.

At the sending end, TCP divides the whole message into smaller units known as segment, and each segment contains a sequence number which is required for reordering the frames to form an original message. At the receiving end, TCP collects all the segments and reorders them based on sequence numbers.

TCP Three-Way Handshake Process

https://www.guru99.com/tcp-3-way-handshake.html

TCP is as a connection-oriented communication protocol, It creates a virtual circuit between the sender and receiver, and it is active for the duration of the transmission.

When the transmission process is finished the connection is terminated by the closing of an established virtual circuit

The connection is established with the help of three-way handshake protocol like SYN, SYN-ACK, ACK.

TCP Three-Way Handshake Process

Features of TCP

* Connection oriented - Reliability
* Delivery Acknowledgements
* Inorder delivery
* Error Control
* Flow control
* Congestion Control

4.2 User Datagram Protocol (UDP)

UDP is a transport layer protocol. It provides connectionless service and end-to-end delivery of transmission.

It is an unreliable protocol as it discovers the errors but not specify the error.

UDP is a Datagram oriented protocol. It is used for broadcast and multicast type of network transmission. The UDP protocol works almost similar to TCP, but it throws all the error-checking stuff out, all the back-and-forth communication and deliverability.

  • UDP discovers the error, and ICMP protocol reports the error to the sender that user datagram has been damaged.
  • UDP consists of the following fields:
    • Source port address: The source port address is the address of the application program that has created the message.
    • Destination port address: The destination port address is the address of the application program that receives the message.
    • Total length: It defines the total number of bytes of the user datagram in bytes.
    • Checksum: The checksum is a 16-bit field used in error detection.
  • UDP does not specify which packet is lost. UDP contains only checksum; it does not contain any ID of a data segment.

4.3 TCP vs UDP

https://www.guru99.com/tcp-vs-udp-understanding-the-difference.html

https://www.spiceworks.com/tech/networking/articles/tcp-vs-udp/

.

  • Type of Service
    • TCP is a connection-oriented protocol
    • UDP is a connectionless protocol.
  • Speed
    • TCP is comparatively slower than UDP.
    • UDP is faster, simpler, and more efficient than TCP.
  • 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.
  • Ordering
    • In TCP data in received in Inorder
    • In UPD data received is out-of-order
  • Error checking
    • TCP provides extensive error-checking mechanisms and mandatory.
    • UDP has only the basic error checking mechanism using checksums and is optional.
  • Retransmission
    • Retransmission of lost packets is possible in TCP, but not in UDP.
    • There is no retransmission of lost packets in UDP
  • Overhead
    • TCP has has more overhead
    • UDP has less overhead
  • TCP handles flow-control, Congestion-control, In UDP there is no FC, CC
  • Usage
    • TCP - HTTP, FTP
    • UDP - DNS, DHCP, RIP

4.4 When to use UDP and TCP?

TCP Applications

  • When latency and performance issues are not that critical.
  • HTTP protocol used to be based on TCP, but the latest protocol HTTP/3 is based on UDP

UDP Applications

  • Query response protocol
    • One query one response
    • Eg - DNS, DHCP
  • High speed
    • Receive data quickly even if accuracy suffers.
    • Eg - Games, Voice over IP
  • Broadcast/Multicast
    • Routing Information Protocol (RIP)
  • Continuous Streaming
    • Skype, YouTube

Ref