<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[TCP Working: 3-Way Handshake]]></title><description><![CDATA[TCP Working: 3-Way Handshake]]></description><link>https://tcp3wayhandsheck.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 05:13:46 GMT</lastBuildDate><atom:link href="https://tcp3wayhandsheck.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[TCP Working: 3-Way Handshake & Reliable Communication]]></title><description><![CDATA[What Is TCP and Why Is It Needed?
TCP (Transmission Control Protocol) is a communication rule that ensures reliable data transfer between two systems.
In very simple terms:
TCP makes sure data is delivered correctly, completely, and in order.
Why pro...]]></description><link>https://tcp3wayhandsheck.hashnode.dev/tcp-working-3-way-handshake-and-reliable-communication</link><guid isPermaLink="true">https://tcp3wayhandsheck.hashnode.dev/tcp-working-3-way-handshake-and-reliable-communication</guid><category><![CDATA[tcp workflow]]></category><category><![CDATA[tcp3wayhandshacking]]></category><dc:creator><![CDATA[Vinayak Solanke]]></dc:creator><pubDate>Sat, 31 Jan 2026 13:26:05 GMT</pubDate><content:encoded><![CDATA[<h2 id="heading-what-is-tcp-and-why-is-it-needed">What Is TCP and Why Is It Needed?</h2>
<p><strong>TCP (Transmission Control Protocol)</strong> is a communication rule that ensures <strong>reliable data transfer</strong> between two systems.</p>
<h3 id="heading-in-very-simple-terms">In very simple terms:</h3>
<p>TCP makes sure data is delivered <strong>correctly, completely, and in order</strong>.</p>
<h3 id="heading-why-programmers-need-tcp">Why programmers need TCP:</h3>
<ul>
<li><p>Websites must load fully</p>
</li>
<li><p>APIs must return accurate data</p>
</li>
<li><p>Files must download without corruption</p>
</li>
<li><p>Logins and payments must be reliable</p>
</li>
</ul>
<p>TCP is the reason the web feels <strong>stable and trustworthy</strong>.</p>
<h2 id="heading-what-is-the-tcp-3-way-handshake">What Is the TCP 3-Way Handshake?</h2>
<p>Before any data is sent, TCP first <strong>establishes a connection</strong>.This process is called the <strong>TCP 3-Way Handshake</strong></p>
<h3 id="heading-simple-idea">Simple idea:</h3>
<blockquote>
<p>Both sides must agree to communicate before exchanging data.</p>
</blockquote>
<h3 id="heading-real-life-analogy-conversation">Real-life analogy (Conversation):</h3>
<ol>
<li><p><strong>Client:</strong> “Hey, can we talk?”</p>
</li>
<li><p><strong>Server:</strong> “Yes, I hear you. Can we talk?”</p>
</li>
<li><p><strong>Client:</strong> “Great, let’s talk.”</p>
</li>
</ol>
<p>Only after this confirmation does real communication begin.</p>
<hr />
<h2 id="heading-step-by-step-syn-syn-ack-and-ack">Step-by-Step: SYN, SYN-ACK, and ACK</h2>
<p>Let’s break the handshake <strong>slowly and clearly</strong>.</p>
<h3 id="heading-1-syn-synchronize">1) SYN (Synchronize)</h3>
<ul>
<li><p>Client sends a <strong>SYN</strong> message to the server</p>
</li>
<li><p>Meaning:<br />  “I want to start a connection”</p>
</li>
</ul>
<p>This also includes a <strong>starting sequence number</strong> (think of it as message numbering).</p>
<h3 id="heading-2-syn-ack-synchronize-acknowledge">2) SYN-ACK (Synchronize + Acknowledge)</h3>
<ul>
<li><p>Server replies with <strong>SYN-ACK</strong></p>
</li>
<li><p>Meaning:<br />  “I received your request, and I’m ready too”</p>
</li>
</ul>
<p>The server also sends <strong>its own sequence number</strong>.</p>
<h3 id="heading-3-ack-acknowledge">3) ACK (Acknowledge)</h3>
<ul>
<li><p>Client sends <strong>ACK</strong></p>
</li>
<li><p>Meaning:<br />  “I acknowledge your response. Let’s start sending data.”</p>
</li>
</ul>
<p>Connection is now established!</p>
<hr />
<h2 id="heading-how-data-transfer-works-in-tcp">How Data Transfer Works in TCP</h2>
<p>Once the connection is open, data can flow.</p>
<h3 id="heading-what-tcp-does-during-data-transfer">What TCP does during data transfer:</h3>
<ul>
<li><p>Breaks data into segments</p>
</li>
<li><p>Numbers each segment (sequence numbers)</p>
</li>
<li><p>Sends them one by one</p>
</li>
<li><p>Expects acknowledgements (ACKs)</p>
</li>
</ul>
<h3 id="heading-simple-analogy">Simple analogy:</h3>
<p>Sending a numbered book:</p>
<ul>
<li><p>Page 1, Page 2, Page 3…</p>
</li>
<li><p>Receiver confirms which pages arrived</p>
</li>
<li><p>Missing pages are resent</p>
</li>
</ul>
<h2 id="heading-how-tcp-ensures-reliability-order-and-correctness">How TCP Ensures Reliability, Order, and Correctness</h2>
<p>TCP uses <strong>three key ideas</strong>:</p>
<h3 id="heading-sequence-numbers">Sequence Numbers</h3>
<ul>
<li><p>Every piece of data is numbered</p>
</li>
<li><p>Helps arrange data in the correct order</p>
</li>
</ul>
<h3 id="heading-acknowledgements-acks">Acknowledgements (ACKs)</h3>
<ul>
<li><p>Receiver confirms what it received</p>
</li>
<li><p>Sender knows what arrived safely</p>
</li>
</ul>
<h3 id="heading-retransmission">Retransmission</h3>
<ul>
<li><p>If data is missing or corrupted</p>
</li>
<li><p>TCP automatically resends it</p>
</li>
</ul>
<p>All of this happens <strong>behind the scenes</strong>.</p>
<p>Thanks for reading!<br />If DNS ever felt confusing, I hope this article made it a little clearer 😊<br />Keep learning, keep building If you like my blog please subscribe my page and like the blog. if you have any doubt feel free to reply</p>
<p>Resources Used<br />🌐 Google<br />🐦 Twitter (X)</p>
<p>🤖 ChatGPT</p>
]]></content:encoded></item></channel></rss>