Exercises — HTTP - 3 — QUIC, UDP-based, why
4.3.26 · D4· Coding › Computer Networks › HTTP - 3 — QUIC, UDP-based, why
Yeh page parent topic ke upar build hoti hai. Prerequisites jo tumhe open rakhne chahiye: TCP — three-way handshake and reliability, UDP — connectionless transport, TLS 1.3 — handshake and 0-RTT, Head-of-line blocking.
Symbols jo hum use karenge (pehle define karke)
Neeche sab kuch sirf inhee terms aur plain arithmetic use karta hai.
Level 1 — Recognition
L1.1
Batao ki HTTP/3 ke seedha neeche kaun sa transport protocol hai, aur seedha uske neeche kaun sa protocol hai.
Recall Solution
HTTP/3 ke seedha neeche QUIC hai. QUIC ke seedha neeche UDP hai. Poora stack hai: HTTP/3 → QUIC → UDP → IP. Yahan IP (Internet Protocol, upar define kiya) woh bottom network layer hai jo actually machines ke beech packets route karta hai. TCP is stack mein kaheen nahi aata — yehi poora point hai.
L1.2
Mnemonic SHIM-E QUIC ke advantages ko paanch letters mein pack karta hai. Paanchon items list karo, phir identify karo ki kaun sa letter TCP par chaar distinct wins mein se ek nahi hai aur overlap explain karo.
Recall Solution
Paanch letters expand hote hain:
- S — Setup faster (0/1-RTT),
- H — HOL blocking gone (independent streams),
- I — IP migration (Connection ID),
- M — Multiplexing without TCP,
- E — Encryption built-in (TLS 1.3 mandatory).
TCP par chaar distinct wins hain S, H, I, aur E. M (Multiplexing) woh overlapping letter hai: kaafi streams ko multiplex karna koi nayi capability nahi hai jo QUIC ne invent ki — HTTP/2 pehle se TCP par streams multiplex karta tha. QUIC jo add karta hai woh hai yeh multiplexing karna bina TCP ke single ordered stream ke, jo exactly wahi hai jo H win (HOL blocking gone via independent streams) already describe karta hai. Isliye M actually H ka hi ek alag angle se restatement hai, na ki paanchvaa independent benefit. SHIM-E mein M sirf isliye hai kyunki isse word pronounceable banta hai.
L1.3
Sahi ya galat: "HTTP/3 ek GET request ke meaning ko badal deta hai."
Recall Solution
Galat. HTTP semantics (methods, headers, status codes) HTTP/2 ke same hain. Sirf transport badla. Header compression alag hai — HTTP/2 HPACK use karta hai aur HTTP/3 QPACK (dono upar define: repeated headers ko chhota karne ka same goal, lekin QPACK QUIC streams par out-of-order arrival tolerate karta hai) — phir bhi GET /index.html ka matlab dono mein exactly same hai.
Level 2 — Application
L2.1
Ek mobile link par ms hai. (a) TCP + TLS 1.3, (b) fresh QUIC, (c) resumed QUIC (0-RTT) ke liye compute karo. Pehle derive karo ki har RTT count kahan se aata hai — round trips count karke.
Recall Solution
TCP + TLS 1.3 ke liye 2 RTT kyun? HTTP byte bhejne se pehle round trips count karo:
- TCP three-way handshake (dekho TCP — three-way handshake and reliability): client
SYNbhejta hai, serverSYN-ACKreply karta hai, clientACKbhejta hai. Client data sirf tabhi bhej sakta hai jabSYN-ACKwapas aaye — woh client ka packet bahar aur server ki reply wapas = 1 full RTT of pure waiting. - TLS 1.3 handshake (dekho TLS 1.3 — handshake and 0-RTT): ab open TCP connection ke upar, client
ClientHellobhejta hai, serverServerHello+ keys reply karta hai, aur sirf woh reply aane ke baad hi client encrypted data bhej sakta hai = 1 aur RTT.
Isliye .
Fresh QUIC ke liye sirf 1 RTT kyun? QUIC transport handshake aur crypto handshake ko same first flight of packets mein fold kar deta hai. Client ki first flight mein "let's connect" aur "here is my crypto" dono hote hain; server ki single reply dono ka jawab deti hai. Isliye .
Resumed QUIC ke liye 0 RTT kyun? Repeat visit par client pehle se server ki crypto keys yaad rakhta hai, isliye woh actual HTTP request ko pehle packet ke saath encrypt karke attach kar sakta hai. Pure waiting ka koi round trip nahi chahiye: .
Ab ms plug karo:
- (a) ms.
- (b) ms.
- (c) ms.
L2.2
Same ms link par, ek returning QUIC visitor TCP+TLS 1.3 ke comparison mein kitna time bachata hai?
Recall Solution
Returning QUIC 0-RTT use karta hai: ms. TCP+TLS1.3: ms. Saving ms.
L2.3
objects diye gaye hain jo ek ek packet mein hain, aur per-packet loss hai. Batch mein kam se kam ek packet lose hone ki probability kya hai?
Recall Solution
Assumption (pehle bataya): packet losses independent hain — ek packet ka gayab hona humein kuch nahi batata ki koi aur packet bhi gayab hoga ya nahi. Yahi hume per-packet survival probabilities ko multiply karne deta hai; independence ke bina product valid nahi hota. Ek single packet ke survive hone ki probability hai . Kyunki losses independent hain, sabhi ka saath survive karna probability hai . Isliye Yeh formula kyun? "Kam se kam ek" "koi nahi gaya" ka complement hai. "Koi nahi gaya" calculate karna easy hai kyunki independent survivals multiply hote hain; se subtract karna saare "exactly--lost" cases add karne se bahut simple hai.
L2.4 (multiple-loss edge case)
Same , . (a) Expected number of packets lost kya hai? (b) Exactly two packets lose hone ki probability kya hai?
Recall Solution
Assumption (pehle bataya): jaise L2.3 mein, losses independent hain packets ke across, har ek same probability se lost. Yeh exactly woh setup hai jo binomial count define karta hai, isliye binomial coefficient aur factors justified hain. Lost packets ki sankhya binomial count follow karti hai: packets mein se har ek independently probability se lost hota hai. (a) Expected losses. Independent indicators ke sum ki expectation unki probabilities ka sum hai: Isliye average par ek packet lost hota hai — yehi reason hai ki L3/L4 mein single-loss model natural baseline hai, lekin note karo yeh sirf average hai, guarantee nahi. (b) Exactly two lost. Choose karo ki mein se kaun se lost hain ( ways), woh lost (), baaki survive karte hain (): Isliye bhaale average ek loss hai, phir bhi roughly chance hai do losses ka — multiple losses common hain, exotic nahi.
Level 3 — Analysis
L3.1
objects ke same batch ke liye, exactly ek packet lost hai, aur woh TCP ke single ordered stream mein position (1 se count karte hue) par hai. Worst case mein, TCP/HTTP2 ke under kitne baad wale objects ek loss se block hote hain, aur QUIC/HTTP3 ke under kitne?
Figure (neeche): ek side-by-side comparison. Left par, TCP ko ek single lane ki tarah draw kiya gaya hai jisme chhe numbered packets strict order mein hain; packet 2 red coloured hai aur "LOST" marked hai, aur packets 3–6 jo uske peeche hain yellow coloured hain aur "wait" marked hain kyunki woh block hain. Right par, QUIC ko chhe alag horizontal lanes ki tarah draw kiya gaya hai, ek packet per lane; lane 2 red hai ("lost -> only this delayed") jabki lanes 1, 3, 4, 5, 6 green hain jinpar arrows poori tarah right ki taraf flow kar rahe hain ("flows"). Picture dikhata hai ek tooti hui lane TCP ke under sabko freeze karti hai jabki QUIC ke under sirf khud ko.

Recall Solution
TCP: delivery strictly in order hai, isliye lost object ke baad aane wala har object tab tak roka jaata hai jab tak retransmission aaye. Agar loss position par hai, toh objects block hain — woh baad wale objects block hain, aur object khud bhi late hai. Worst case hai : tak baad wale objects block. QUIC: har object apni stream par ride karta hai, isliye stream par loss sirf stream ko block karta hai. Exactly object delayed hai. Baaki flow karte rehte hain. Yeh "independent streams" ka visual meaning hai: ek toota hua go-kart, na ki ek frozen truck.
L3.2
Explain karo kyun HTTP/2 TCP par run karke bhi head-of-line blocking suffer karta hai, bhaale HTTP/2 application layer par streams multiplex karta ho.
Recall Solution
HTTP/2 kaafi logical streams ko frames mein slice karta hai aur unhe interleave karta hai — isse application-layer HOL blocking hati hai. Lekin woh saare frames ek TCP byte-stream mein dal diye jaate hain. TCP promise karta hai ki byte-#500 tab tak deliver nahi hoga jab tak bytes #1–#499 nahi pahunchein. Jab ek TCP segment lost hota hai, TCP saare already-arrived later bytes ko rok leta hai — including frames jo doosri HTTP/2 streams ke hain — jab tak retransmission gap nahi bharta. Isliye blocking ek layer neeche chali gayi, HTTP se TCP mein, lekin khatam nahi hui. QUIC isse solve karta hai har stream ko transport ke andar apna ordering dekar, taaki ek stream mein gap doosri stream ko kabhi nahi rokta. Dekho Head-of-line blocking.
L3.3 (multiple-loss impact)
Ab maano objects mein do packets lost hain. Compare karo ki total number of delayed objects TCP versus QUIC ke under kaise behave karta hai, aur explain karo ki unke beech ka gap zyada losses ke saath kyun barta hai.
Recall Solution
QUIC: har lost packet sirf apni stream ko delay karta hai. Do alag streams par do independent losses exactly 2 objects delay karte hain; baaki flow karte hain. Delayed objects ka count losses ke count ke barabar hota hai — yeh linearly aur dheere barta hai. TCP: sab kuch ek ordered stream hai, isliye jo matter karta hai woh hai do losses mein se earliest kaun sa hai. Agar earlier loss position par hai, toh saare objects block hain = objects — doosra loss practically kuch nahi add karta, kyunki earliest gap already tail ko freeze kar chuka hai. Worst case () abhi bhi block karta hai. Gap kyun barta hai: QUIC ke under, blocked-objects ≈ number-of-losses (linear, chhota). TCP ke under, blocked-objects earliest loss ki position se govern hota hai, aur zyada losses ke saath earliest loss aage badhta jaata hai, ek aur badi tail freeze karta hai. Zyada losses QUIC ko barely hurt karte hain lekin TCP ko worst case ki taraf push karte hain — isliye lossy links ( zyada, losses zyada) par independent streams ka advantage barta hai.
Level 4 — Synthesis
L4.1
Ek user objects ka page ms, mobile link par load karta hai. Ek rough end-to-end story banao: (a) fresh QUIC ki TCP+TLS1.3 se setup time saving, aur (b) parent ke toy model use karke har protocol ke under expected number of blocked objects (assume karo exactly ek loss hota hai, uniformly placed).
Recall Solution
(a) Setup. ms; ms. Saving ms. (b) Blocked objects. Ek loss jo uniformly position par placed hai:
- TCP: blocked-later count hai . par averaging:
- QUIC: exactly lost stream delayed hai, isliye . Story: fresh-connection setup win ek fixed ms hai, lekin HOL win page ke saath scale karta hai — average par TCP ek loss ke peeche ~ objects stall karta hai jabki QUIC ek. Rich, lossy pages par HOL win dominate karta hai.
L4.2
Same link ( ms). Ek returning visitor QUIC 0-RTT use karta hai. Define karo ek single "combined saving" number aur use compute karo: setup latency saved plus HOL blocking se avoid hoti extra latency, jahan ek blocked object ko unblock hone mein ek extra retransmission round trip () lagta hai. Assume karo ek uniformly-placed loss aur L4.1 ke average blocked counts use karo.
Recall Solution
Define combined saving , blocked objects ko time mein convert karke "har average blocked object retransmission ke liye ek extra wait karta hai."
Setup saving. ms; ms. Setup saved ms.
HOL time. Toy model ke under ek stalled batch ek retransmission wait karta hai unblock hone ke liye, aur number stalled alag hai: TCP average par objects gap ke peeche rakhta hai, QUIC sirf . Kyunki TCP mein woh objects sab same single retransmission ke peeche wait karte hain, extra wall-clock delay hai ms TCP ke liye versus ms QUIC ke liye — same ek retransmission RTT. Isliye is simplest model mein HOL wall-clock time saving ms hai bhaale kam objects stalled hoon: QUIC ka win yahan yeh hai ki kitne objects ruke hain, na ki single retransmission wait ki length.
Combined saving (wall-clock ms) ms, plus ek throughput/experience win of fewer objects stalled jo yeh ms-only number deliberately capture nahi karta.
Honest answer: clean combined time saving hai ms (sab setup se); HOL benefit dikhta hai fewer blocked objects mein, jo perceived load improve karta hai bhaale single retransmission RTT shared ho. Dono report karo — sirf ek ms figure QUIC ko understate karta hai.
Level 5 — Mastery
L5.1
Ek skeptic kehta hai: "Agar QUIC apna transport chahta tha, toh unhein TCP (6) aur UDP (17) ki tarah ek naya IP protocol number register karna chahiye tha, UDP mein tunnel nahi karna chahiye tha — tunneling ek hack hai." QUIC ke UDP choice ko do concrete reasons aur ek consequence ke saath defend karo.
Recall Solution
Reason 1 — deployability. Middleboxes (NATs, firewalls) routinely unknown IP protocol numbers wale packets drop kar dete hain. Ek brand-new protocol number internet ke bahut bade hisse mein silently blackhole ho jaata, isliye use kabhi deploy nahi kiya ja sakta. UDP already universally permitted hai (DNS carry karta hai), isliye QUIC packets har jagah pass hote hain. Reason 2 — evolvability. TCP OS kernel mein rehta hai aur middleboxes dwara fossilize ho gaya hai jo uske headers inspect aur rewrite karte hain. QUIC user space mein rehta hai aur apna almost poora packet encrypt kar leta hai, isliye browsers/servers ordinary software ki tarah transport upgrades ship kar sakte hain aur middleboxes peek ya meddle nahi kar sakte. Consequence: UDP sirf ports + checksum provide karta hai, isliye QUIC ko khud reliability, ordering, flow control, aur congestion control rebuild karna padta hai (dekho Congestion control — slow start, AIMD). Yeh ek cost hai, lekin yeh cost user-space code mein paid hai jo evolve ho sakta hai — exactly yehi point hai.
L5.2
Tumhara video call tab bhi chalta rehta hai jab tum Wi-Fi range se bahar niklo aur 4G par switch ho — tumhara IP address mid-call change ho jaata hai. Precisely explain karo ki ek plain TCP connection kyun mar jaati, aur QUIC ka kaun sa feature use bachata hai.
Recall Solution
Ek TCP connection 4-tuple (source IP, source port, destination IP, destination port) se identify hoti hai. Jab Wi-Fi → 4G tumhara source IP change karta hai, tuple kisi known connection se match nahi karta — OS packets ko treat karta hai jaise woh kisi known connection ke nahi — TCP connection mar jaati hai aur rebuild karni padti hai (naya handshake, naya TLS). QUIC connection ko Connection ID se tag karta hai jo IP aur port se independent hai. Jab tumhara IP change hota hai, server tab bhi same Connection ID recognize karta hai aur connection migrate ho jaata hai bina interruption ke — koi naya handshake nahi, koi dropped call nahi.
L5.3
Is claim ko rigorously critique karo: "Kyunki QUIC UDP par run karta hai aur UDP unreliable hai, HTTP/3 data silently lose kar sakta hai."
Recall Solution
Yeh claim layers confuse karta hai. UDP sach mein koi retransmission nahi offer karta — woh dumb "delivery truck" hai. Lekin QUIC, UDP ke upar, apna khud ka packet numbers, acknowledgements, aur retransmission logic add karta hai. Agar ek QUIC packet lost hota hai, QUIC missing ACK detect karta hai aur affected stream par data resend karta hai. Application ke view se, HTTP/3 har byte reliably aur per-stream order mein deliver karta hai — TCP jaisa reliable, aur TCP ke cross-stream HOL blocking ke bina. Isliye HTTP/3 fully reliable hai; unreliability sirf UDP carrier mein rehti hai QUIC ki reliability machinery ke neeche.
Recall Quick self-quiz reveal lines
HTTP/3 ke seedha neeche transport ::: QUIC (jo UDP par run karta hai). Fresh QUIC ke liye RTTs mein ::: RTT. TCP+TLS1.3 ke liye RTTs mein ::: RTT (1 TCP handshake ke liye + 1 TLS 1.3 ke liye). Probability of at least one loss among packets, per-packet loss (losses independent) ::: . Expected number of packets lost among at loss ::: . Probability of exactly losses among at loss (independent) ::: . Average objects blocked by one uniformly-placed loss under TCP, objects ::: . Objects blocked by one loss under QUIC ::: exactly 1. Header compression format in HTTP/2 vs HTTP/3 ::: HPACK vs QPACK (QPACK tolerates out-of-order streams). QUIC feature that survives Wi-Fi→4G ::: the Connection ID (connection migration).
Connections
- HTTP-2 — multiplexing and HPACK
- TCP — three-way handshake and reliability
- UDP — connectionless transport
- TLS 1.3 — handshake and 0-RTT
- Head-of-line blocking
- Congestion control — slow start, AIMD
- Middlebox ossification and protocol evolution