मुख्य सामग्री पर जाएँ

सिलेबस · CS कंप्यूटर विज्ञान और सूचना प्रौद्योगिकी

विषय के सभी टॉपिक
C प्रोग्रामिंग की बुनियाद7
ऐरे और पॉइंटर9
रिकर्शन6
प्रायिकता और सांख्यिकी की बुनियाद9
डेटाबेस सिस्टम की बुनियाद15
रैखिक बीजगणित की बुनियाद6
कंप्यूटर नेटवर्क की बुनियाद9
कलन की बुनियाद6
संगणना सिद्धांत की बुनियाद9
कंपाइलर डिज़ाइन की बुनियाद9
लिंक्ड लिस्ट, स्टैक और क्यू5
ट्री, बाइनरी सर्च ट्री और हीप4
ग्राफ की बुनियाद3
एल्गोरिदम की बुनियाद15
असतत गणित की बुनियाद18
डिजिटल लॉजिक की बुनियाद22
कंप्यूटर संगठन की बुनियाद12
ऑपरेटिंग सिस्टम की बुनियाद15

Transport connections और congestion

पाठ 154 / 1798 मिनटमुफ़्त

दायरा और assumptions

Transport multiplexing, TCP reliability, receiver flow control और network congestion control जोड़ें। Congestion गणनाओं में स्पष्ट simplified Reno-style teaching model है; हर deployed TCP ऐसा नहीं बढ़ता। Bytes और segments अलग रखें। MSS केवल maximum TCP data bytes है, TCP/IP headers नहीं।

1. UDP, TCP और sockets

UDP datagram boundaries बचाता है और8-byte header में ports, length, checksum जोड़ता है। यह स्वयं connection setup, loss retransmission, ordering या congestion/flow control नहीं देता। Applications ऊपर ये सुविधाएँ बना सकते हैं। UDP length में header और data दोनों हैं। Checksum में pseudo-header भी आता है। IPv4 में checksum field zero हो तो checksum अनुपस्थित हो सकता है; IPv6 के सामान्य नियम अलग हैं। Local send सफल होना remote delivery का प्रमाण नहीं है।

TCP endpoints के बीच ordered reliable byte stream देता है और full-duplex में दोनों दिशाओं के sequence spaces स्वतंत्र हैं। Application write boundaries नहीं बचतीं: दो writes एक read में या एक write कई reads में आ सकती है। Application को length/delimiter जैसी framing चाहिए। Reliability से bounded delay या peer application द्वारा bytes process करने की गारंटी नहीं मिलती।

Socket OS का communication endpoint abstraction है। TCP server सामान्यतः socket बनाता, local address/port bind करता, listen करता और connections accept करता है। Accept नया connected socket देता है; listening socket दूसरे clients के लिए बना रहता है। Client server endpoint पर connect करता और सामान्यतः ephemeral local port लेता है। TCP के भीतर established connection source IP, source port, destination IP और destination port से पहचाना जाता है। अलग tuples वाली connections एक server port share कर सकती हैं। UDP में आवश्यकतानुसार bind और sendto/recvfrom होते हैं; UDP socket connect करने से default peer तय हो सकता है, TCP handshake नहीं होता।

2. Setup, numbering और closure

सामान्य three-way handshake दोनों initial sequence numbers synchronize करता है। Client ISN100, server ISN700 हों तो SYN seq100; SYN+ACK seq700 ack101; ACK seq101 ack701। SYN बिना data भी एक sequence number लेता है। पहली client data byte101 और server byte701 है। ACK अगला expected byte बताता और उससे पहले contiguous bytes cumulatively स्वीकारता है।

Seq101 से300 bytes भेजें तो101…400 cover होते हैं और अगला401 है।401…500 missing हों और501…600 आ जाएँ तो cumulative ACK401 ही रहता है; optional SACK बाद के received ranges बता सकता है। Numbering bytes की है, segments की नहीं। Retransmitted bytes अपने पुराने sequence positions रखते हैं।

FIN भी एक sequence number लेता और एक sending direction बंद करता है। दूसरी दिशा चल सकती है, जिसे half-close कहते हैं। FIN और ACK combine हो सकते हैं, इसलिए closure में हमेशा ठीक चार packets नहीं। RST orderly FIN के बजाय connection abort करता है। सामान्य active-close में TIME-WAIT delayed duplicates और final ACK की retransmission संभालने में मदद करता है; इसका अर्थ नया application data आते रहना नहीं है।

3. Flow control और send allowance

Receiver buffer के आधार पर rwnd advertise करता है। Sender network constraints के लिए cwnd रखता है। Recovery-specific adjustments छोड़ें तो outstanding data की सीमा min(rwnd,cwnd) है। नया भेजने की allowance max(0,min(rwnd,cwnd)−bytes_in_flight) है, पूरी window फिर से नहीं। ACK/window updates से ये मान बदलते हैं। Zero rwnd पर सामान्य नया data रुकता है; reopening update खो जाए तो probes deadlock रोकने में मदद करते हैं।

हल: rwnd12000 bytes, cwnd8000, outstanding5000 हों तो नया allowance3000 bytes है। MSS1000 हो तो तीन पूरे segments। rwnd6000 हो जाए तो allowance1000 रह जाता है, cwnd8000 होने पर भी। rwnd receiver बचाता है, cwnd network congestion के लिए है। बड़ा receiver buffer unlimited traffic की अनुमति नहीं है।

4. Loss detection और timeout

TCP retransmission timers और ACK evidence लेता है। Duplicate ACK से gap के बाद bytes पहुँचने का संकेत मिल सकता है। Classic fast retransmit में तीन duplicate ACK पर timer से पहले retransmission होता है। Reordering भी duplicate ACK दे सकती है, इसलिए यह प्रमाण नहीं, संकेत है। Timeout पर RTO backoff होता है। बहुत छोटा timer अनावश्यक retransmissions और बहुत बड़ा timer धीमी recovery देता है।

Initialization के बाद standard estimator: RTTVAR=(1−beta)×RTTVAR+beta×|SRTT−R|, फिर SRTT=(1−alpha)×SRTT+alpha×R। Deviation में पुराना SRTT लें; alpha1/8, beta1/4। RTO=SRTT+max(G,4×RTTVAR), फिर minimum bounds लगते हैं। Old SRTT100 ms, RTTVAR20 ms, sample140 ms से new RTTVAR25 ms और SRTT105 ms। G≤100 ms हो तो raw RTO205 ms, लेकिन RFC6298 का recommended lower bound इसे1 second करता है। प्रश्न अलग teaching floor ले तो स्पष्ट कहे। Basic Karn approach retransmitted data के ambiguous RTT samples छोड़ती है, जब तक timestamps उन्हें स्पष्ट न करें।

5. Slow start और congestion avoidance

Ideal slow start में नए data के ACKs पर cwnd बढ़ता है; हर segment का ACK मिले तो लगभग हर RTT double:1,2,4,8 MSS। नाम slow होने से growth linear नहीं है। ssthresh पर congestion avoidance में जाते हैं; ideal classic model में लगभग1 MSS प्रति RTT additive increase है। Delayed ACKs, byte counting, application limitation और modern algorithms exact pattern बदलते हैं। Initial cwnd और threshold लिखें; असली TCP हमेशा1 MSS से शुरू नहीं होता।

Round model उदाहरण: initial cwnd1 MSS, ssthresh8। Round-start windows1,2,4,8,9,10 हैं, यदि हर round पूरा ACK हो और8 पर growth बदले। पहले चार rounds में1+2+4+8=15 segments जाते हैं। Midround event हो तो उसी के दिए नियम लगाएँ।

Classic loss response में ssthresh सामान्यतः max(FlightSize/2,2 MSS) से आता है; receive window आधी करना नियम नहीं है। Retransmission timeout पर classic cwnd1 MSS होता और slow start लौटता है। Reno में तीन duplicate ACK पर threshold घटता, cwnd अस्थायी inflate होता और missing segment फिर जाता है। Recovery के बाद ssthresh के आसपास congestion avoidance चलता है। प्रश्न यदि केवल triple duplicates पर cwnd आधा कहे तो वह simplified model है। Tahoe, Reno, NewReno और modern controls एक जैसे नहीं हैं।

6. Rate checks और गलतियाँ

Headers/loss छोड़ें तो stable byte window B और feedback RTT T से rate लगभग B/T, path bottleneck से capped है। B64000 bytes और RTT0.04 s पर1.6 MB/s=12.8 Mb/s। Bottleneck10 Mb/s हो तो overhead से पहले भी सीमा10 Mb/s है।10 Mb/s और40 ms का bandwidth-delay product400000 bits=50000 bytes है। Loss में ये formulas application goodput का प्रमाण नहीं।

प्रश्न में direction, sequence meaning, payload bytes, flight size और controlling window पहचानें। Duplicate ACK और duplicate data अलग हैं। Ports transport endpoints चुनते हैं; IP hosts/interfaces के बीच packets route करता है। TCP checksum cryptographic authentication नहीं है। UDP का कम overhead हर workload में कम latency की गारंटी नहीं देता।

मौलिक अभ्यास: छह single-correct MCQ

ये मौलिक शिक्षण प्रश्न हैं, पिछले वर्षों के प्रश्न नहीं। ठीक एक उत्तर चुनें।

P01. TCP SYN का sequence900 है और data नहीं। अगली पहली data byte का number क्या है?

A. 900 B. 901 C. 902 D. 0

उत्तर: B

A: SYN एक sequence position लेता है।

B: अगली byte901 है।

C: केवल एक position इस्तेमाल हुई।

D: SYN के बाद numbering reset नहीं होती।

P02. TCP seq1001 से250 bytes भेजता है। सभी क्रम में मिलने पर cumulative ACK क्या होगा?

A. 1250 B. 1251 C. 1002 D. 250

उत्तर: B

A: 1250 अंतिम byte है, अगली expected नहीं।

B: अगली expected1001+250=1251 है।

C: ACK bytes से बढ़ता है, एक segment से नहीं।

D: ACK sequence-space position है, केवल byte count नहीं।

P03. rwnd9000, cwnd6000 और flight size4000 bytes है। सामान्य नया send allowance कितना है?

A. 2000 bytes B. 4000 bytes C. 6000 bytes D. 9000 bytes

उत्तर: A

A: min(9000,6000)−4000=2000।

B: 4000 पहले से outstanding हैं।

C: 6000 कुल सीमा है, बची allowance नहीं।

D: छोटी congestion window भी सीमा लगाती है।

P04. TCP application के लिए कौन सी assumption गलत है?

A. Stream में received bytes क्रम में हैं B. Connection दोनों दिशाओं में चल सकती है C. हर send call के लिए ठीक एक receive call होता है D. Ports endpoints पहचानने में मदद करते हैं

उत्तर: C

A: Ordered delivery TCP stream की विशेषता है।

B: TCP full duplex है।

C: TCP bytes बचाता है, application calls की boundaries नहीं।

D: Ports endpoint पहचान में भाग लेते हैं।

P05. दिए ideal round model में cwnd1 MSS और ssthresh4 MSS है। पहले पाँच round-start windows क्या हैं?

A. 1,2,4,8,16 B. 1,2,3,4,5 C. 1,2,4,5,6 D. 4,4,4,4,4

उत्तर: C

A: यह threshold पर बदलाव छोड़ता है।

B: इसमें शुरुआती slow start गलत ढंग से linear है।

C: 4 तक double, फिर इस model में हर RTT1 जोड़ें।

D: Initial window1 दी गई है।

P06. सामान्य TCP server में sockets के बारे में कौन सा कथन सही है?

A. accept TCP को UDP में बदलता है B. हर client को अलग server listening port चाहिए C. accept connected socket देता है और listening socket बना रहता है D. UDP connect TCP three-way handshake करता है

उत्तर: C

A: accept transport protocol नहीं बदलता।

B: अलग client tuples एक server port साझा कर सकती हैं।

C: Listening endpoint दूसरे connections स्वीकार सकता है।

D: UDP connect में TCP handshake नहीं होता।

स्रोत और दायरा

यह 2026 course के बताए भाग का पाठ है, पूरे Computer Networks syllabus की समाप्ति नहीं। सभी गणनात्मक उदाहरण और प्रश्न मौलिक हैं। 2027 की पूर्णता का दावा नहीं।

प्रगति सहेजने के लिए साइन इन करें। साइन इन