The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite . It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, the entire suite is commonly referred to as TCP/IP. TCP provides reliable, ordered, and error-checked delivery of a stream of octets (bytes) between applications running on hosts communicating via an IP network.
TCP is connection-oriented communication , and a connection between client and server is established before data can be sent.
Transmission Control Protocol
- Data comes from the application layer and is packaged by TCP into segments which are then handed to the internet layer .
TCP Segment #
Protocol operation #
Connection establishment #
TCP 3-way handshake
Before transmission sending and receiving devices must acknowledge each other’s presence and readiness to send and receive data.
- SYN: The active open is performed by the client sending a SYN to the server. The client sets the segment’s sequence number to a random value A.
- SYN-ACK: In response, the server replies with SYN-ACK. The acknowledgement number is set to one more than the received sequence number i.e. A+1, and the sequence number that the server chooses for the packet is another random number, B.
- ACK: Finally, the client sends an ACK back to the server. The sequence number is set to the received acknowledgment value i.e. A+1, and the acknowledgment number is set to one more than the received sequence number i.e. B+1.
Note: Steps 1 & 2 establish and acknowledge the sequence number for one direction. Steps 2 & 3 establish and acknowledge the sequence number for the other direction. Following the completion of these steps, both the client and server have received acknowledgements anda full-duplex communication is established.
Connection termination #
Once transmission is complete - Sending device: FIN Receiving device: ACK, FIN Sending device: ACK