Why is TCP a reliable Protocol for sending data.

TCP stands for transport control protocol and it works in Transport Layer of Internet Protocol Stack. In this article we will see in short why is TCP a reliable protocol for sending data. This article is meant for very basic understanding and doesn’t deal with packets and other algorithms. We will talk about them in later articles.

TCP makes the sending of packets reliable by using below techniques.

Retry:

TCP tries to resend the packets that it thinks doesn’t reach the destination .

Acknowledgement:

Each packet that is transferred between TCP. The sender sends the Ack for the received packets thus informing the sender that the packet has reached otherwise after a certain timeout the sender will try and resend the packet again.

Order:

TCP makes sure that the data that is send after reaching the destination can be ordered in sequential manner.

Congestion Control:

TCP also tries to deal with congestion control to make sure not to bombard any destination that is not ready to accept more packets.

How TCP works

Now that we know what it does in basic steps. Lets see what exactly happens.

TCP keeps number and FSM [finite state machine] to keep track of all the packets that are send and the order to be mentioned in packet headers. So that if the Ack of a packet doesn’t come it can try to resend the packet.

TCP sends a packet and wait for the acknowledgement to arrive. Now if the ack doesn’t reach it with in a time which is predefined. It tries to send the packet again and wait for it.

Now when the sender receives the packet it sends an acknowledgement. The sender open the packet and there is a sequence number that helps the sender to keep the order of packets intact.

This was basic of how TCP tries to be reliable protocol for sending data. We will talk about it in depth in later videos.




If you like the article please share and subscribe and write to me if you want me to write about any other technology.


Gaurav Yadav

Gaurav is cloud infrastructure engineer and a full stack web developer and blogger. Sportsperson by heart and loves football. Scale is something he loves to work for and always keen to learn new tech. Experienced with CI/CD, distributed cloud infrastructure, build systems and lot of SRE Stuff.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.