TCP (Transmission Control Protocol)

TCP (Transmission Control Protocol) is a connection-oriented transport layer protocol that ensures reliable, ordered, and error-checked delivery of data over a network. It is designed for applications where accuracy and data integrity are more important than speed.

Key Features:

  • Establishes a reliable connection using a three-way handshake.
  • Provides error detection, acknowledgment, and retransmission.
  • Ensures data is delivered in order and without duplicates.
  • Implements flow control and congestion control mechanisms.

Common Uses:

Web browsing (HTTP/HTTPS), email (SMTP, IMAP, POP3), file transfers (FTP), remote access (SSH).

Philosophy behind TCP Development:

  • Reliability over Speed: TCP is built to ensure accurate, ordered, and complete delivery of data.
  • Connection-Oriented Communication: Requires a three-way handshake before data transfer begins.
  • Error Detection and Recovery: Uses acknowledgments (ACKs), checksums, and retransmissions to guarantee data integrity.
  • Flow and Congestion Control: Adjusts data flow based on network conditions to prevent packet loss and network congestion.

Breakdown of TCP Header Format

A TCP header consists of several fields, each serving a specific purpose in ensuring reliable communication. TCP is Connection-oriented (requires a three-way handshake: SYN → SYN-ACK → ACK).

TCP Header Format (Image Source: )

1. Source Port (16 bits)

  • This field specifies the port number of the sender (originating application).
  • Used to differentiate multiple network connections.

2. Destination Port (16 bits)

  • Specifies the port number of the receiver.
  • Helps in directing the segment to the correct application.

3. Sequence Number (32 bits)

  • Specifies the sequence number of the first byte in the segment.
  • If the SYN flag is set, this is the initial sequence number (ISN).

4. Acknowledgment Number (32 bits)

  • Represents the next byte expected by the receiver.
  • Used for acknowledging received data.

5. Data Offset (4 bits)

  • Indicates the length of the TCP header in 32-bit words.
  • Helps in locating the start of the actual data.

6. Reserved (3 bits)

  • Reserved for future use and should be set to zero.

7. Control Flags (9 bits)

These flags control TCP operations:

  • URG (Urgent Pointer field significant)
  • ACK (Acknowledgment field significant)
  • PSH (Push function)
  • RST (Reset the connection)
  • SYN (Synchronize sequence numbers)
  • FIN (Finish the connection)

8. Window Size (16 bits)

  • Specifies the number of bytes the sender is willing to receive.
  • Used for flow control.

9. Checksum (16 bits)

  • Ensures the integrity of the header and data.
  • Computed using a checksum algorithm.

10. Urgent Pointer (16 bits)

  • Used if the URG flag is set.
  • Points to urgent data that needs immediate processing.

11. Options (Variable Length)

  • Optional parameters, such as Maximum Segment Size (MSS) and timestamps.

12. Padding

  • Ensures that the header is a multiple of 32 bits.

13. Data (Variable Length)

  • Contains the actual payload being transmitted.

Conclusion

This is the standard TCP header format, which allows reliable, connection-oriented communication. If you have any specific questions about it, feel free to ask! 🚀

×

Hello!

Click one of our engineer below to chat on WhatsApp

× Call/ Text Anytime