4.3.19 · HinglishComputer Networks

TCP — header, connection (3-way handshake, 4-way termination)

2,055 words9 min readRead in English

4.3.19 · Coding › Computer Networks


TCP ko header + handshake ki zaroorat kyun hai?

KYA TCP deta hai: bytes ki ek stream jo order mein aati hai, bina loss ke, bina duplication ke, flow control aur congestion control ke saath.

KYUN woh seedha data nahi bhej sakta: IP packets lost, reordered, ya duplicated ho sakte hain. Recover karne ke liye, receiver ko bolna hona chahiye "mujhe bytes mil gaaye position X tak." Iske liye dono sides ko agree karna hota hai ki counting kahaan se shuru hogi — Initial Sequence Number (ISN). Aap byte #5 ko acknowledge nahi kar sakte agar aapne kabhi agree nahi kiya ki byte #0 kahaan tha. Isliye data se pehle ek handshake hona zaroori hai.

KAISE cheezein number karta hai: TCP bytes number karta hai, packets nahi. Agar ISN 1000 hai aur aap 500 bytes bhejte ho, toh agla segment sequence 1500 se shuru hoga.


TCP Header

Figure — TCP — header, connection (3-way handshake, 4-way termination)

Key flags (TCP ke verbs)

  • SYN — "chalte hain synchronize karte hain sequence numbers" (sirf setup ke waqt).
  • ACK — "Ack field valid hai; main acknowledge kar raha hoon."
  • FIN — "mere paas aur data nahi bhejne ko" (meri direction band karta hai).
  • RST — "reset / abort, kuch galat hai."
  • PSH — "ye abhi app ko push karo, buffer mat karo."
  • URG — "urgent pointer valid hai."

3-Way Handshake (connection setup)

Ack = ISN + 1 kyun, ISN kyun nahi? ACK number ka matlab hai "agla byte jo main expect karta hoon." SYN ek phantom sequence slot occupy karta hai (taaki ek lost SYN khud reliably retransmit ho sake), isliye agla expected byte hai.


4-Way Termination (connection teardown)


Common Mistakes (Steel-manned)


Active Recall

Recall Quick self-test (answers cover karo!)
  • TCP header ka minimum / maximum size? → 20 / 60 bytes
  • ACK number field kya carry karta hai? → agla expected byte
  • Ack = ISN+1 kyun? → SYN ek sequence number consume karta hai
  • Teardown 4-way kyun hai? → har direction ke liye independent half-close
  • TIME_WAIT mein kaun jaata hai, aur kitne der ke liye? → active closer, 2·MSL
Recall Feynman: ek 12-saal ke bacche ko explain karo

Do dost reliably notes pass karna chahte hain. Pehle woh agree karte hain "main apne notes 1000 se count karunga, tum 5000 se shuru karo" — ye ek quick teen-message hello hai taaki koi track na kho (handshake). Har note kehta hai "ye mera note #N hai" aur "maine tumhara note #M tak padh liya." Jab woh khatam hote hain, har ek alag se "main baat karna khatam kar raha hoon" kehta hai aur "okay" ka wait karta hai — ye chaar goodbye messages hain, kyunki dono dosto mein se koi bhi doosre ke khatam ho jaane ke baad ek aakhri baat bol sakta hai.


Connections

  • IP — packet structure & routing (TCP, IP packets ke andar ride karta hai)
  • UDP — connectionless transport (contrast: koi handshake nahi, koi reliability nahi)
  • Sliding Window & Flow Control (Window field action mein)
  • TCP Congestion Control (cwnd, slow start — seq/ack use karta hai)
  • Sockets & Ports (source/dest port fields)
  • Reliable Data Transfer Principles (sequence numbers, retransmission)
TCP header ka minimum aur maximum size kya hota hai?
20 bytes minimum, 60 bytes maximum (Data Offset field = header length in 32-bit words, max 15×4).
TCP Sequence Number field kya represent karta hai?
Is segment ke pehle data byte ka byte-stream index.
TCP Acknowledgment Number field kya represent karta hai?
Woh agla byte jo receiver expect karta hai (cumulative ACK).
SYN-ACK mein ACK, client ke ISN + 1 ke barabar kyun hota hai?
Kyunki SYN flag ek sequence number consume karta hai, isliye agla expected byte ISN+1 hota hai.
TCP 3-way handshake ke teen segments list karo.
SYN (C→S), SYN+ACK (S→C), ACK (C→S).
TCP setup ko 4 ki jagah sirf 3 messages kyun chahiye?
Server ka client ACK aur server ka apna SYN ek SYN+ACK segment mein piggyback ho jaate hain.
TCP connection termination ke chaar segments list karo.
FIN (C→S), ACK (S→C), FIN (S→C), ACK (C→S).
Teardown 4-way kyun hai lekin setup 3-way?
Teardown asymmetric hai (half-close): har direction alag se band hoti hai, aur receiver abhi bhi data bhej sakta hai, isliye uska FIN hamesha ACK ke saath piggyback nahi ho sakta.
TIME_WAIT kya hai aur ye kitne der tak rehta hai?
Active closer ki state uske final ACK ke baad; 2×MSL tak rehta hai taaki lost FINs ko re-ACK kar sake aur purane duplicate packets expire ho sakein.
TIME_WAIT mein kaun jaata hai?
Jo side pehla FIN bhejti hai (active closer), client/server role se koi fark nahi.
TCP packets number karta hai ya bytes?
Bytes — TCP ek byte-stream protocol hai.
SYN, FIN, aur RST flags ka kya matlab hai?
SYN = ISNs synchronize karo (setup); FIN = aur data nahi (meri direction band karo); RST = connection abort/reset karo.
TCP mein har segment mein sequence aur acknowledgment number dono kyun chahiye?
TCP full-duplex hai; har direction ka apna byte stream hai, isliye har segment apna seq report karta hai aur doosri stream ko ack karta hai.

Concept Map

packets lost/reordered

needs

requires agreeing ISN

SYN then SYN-ACK then ACK

full-duplex data

numbered by

confirmed by

carries

carries

SYN synchronizes

FIN closes direction

polite flush both ways

Unreliable IP layer

TCP reliable byte stream

TCP segment header 20-60 B

3-way handshake

Established connection

Ordered byte stream

Sequence number 32b

Ack number 32b next expected byte

Flags SYN ACK FIN RST PSH URG

Window 16b flow control

4-way termination