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.
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 x+1 hai.
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.
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.