बैंडविड्थ-डिले प्रोडक्ट क्या है?
बैंडविड्थ-डिले प्रोडक्ट (BDP) किसी नेटवर्क लिंक पर एक समय में "रास्ते में" मौजूद रह सकने वाले डेटा की अधिकतम मात्रा को दर्शाता है। इसे निकालने के लिए लिंक की बैंडविड्थ को उसके राउंड-ट्रिप टाइम (RTT) से गुणा किया जाता है। TCP ट्यूनिंग में BDP एक अहम अवधारणा है: किसी तेज़ रफ़्तार लेकिन ऊँची लेटेंसी वाले लिंक (यानी "लॉन्ग फ़ैट नेटवर्क") का पूरा फ़ायदा उठाने के लिए TCP रिसीव विंडो कम से कम BDP जितनी बड़ी होनी चाहिए। वरना थ्रूपुट उपलब्ध बैंडविड्थ से काफ़ी कम पर ही अटक जाता है।
इस कैलकुलेटर का इस्तेमाल कैसे करें
लिंक की बैंडविड्थ डालें और उसकी इकाई चुनें (bit/s, Kbit/s, Mbit/s या Gbit/s)। इसके बाद राउंड-ट्रिप टाइम को मिलीसेकंड में दर्ज करें — यही वह सामान्य मान है जो आमतौर पर ping कमांड दिखाती है। कैलकुलेटर BDP को बिट, बाइट और किलोबाइट में बता देगा। सॉकेट बफ़र या TCP विंडो साइज़ सेट करने के लिए बाइट वाले मान का उपयोग करें।
फ़ॉर्मूला समझें
$$\text{BDP (bits)} = \text{Bandwidth (bits/s)} \times \text{RTT (s)}$$ सबसे पहले बैंडविड्थ को बिट प्रति सेकंड में बदला जाता है और RTT को मिलीसेकंड से सेकंड में (1000 से भाग देकर)। बिट वाले नतीजे को 8 से भाग देने पर बाइट मिलते हैं, और बाइट को 1024 से भाग देने पर किबीबाइट (KB) मिलते हैं।
$$\text{BDP (bytes)} = \frac{\text{Bandwidth} \times \text{Unit} \times \dfrac{\text{RTT (ms)}}{1000}}{8}$$
हल किया हुआ उदाहरण
मान लीजिए एक 100 Mbit/s का लिंक है जिसका RTT 40 ms है। तब बैंडविड्थ = \(100{,}000{,}000\) बिट/सेकंड और RTT = \(0.040\) सेकंड। $$\text{BDP} = 100{,}000{,}000 \times 0.040 = 4{,}000{,}000 \text{ बिट} = 500{,}000 \text{ बाइट} \approx 488.28 \text{ KB}$$ इस लिंक को पूरी तरह भरने (saturate करने) के लिए आपकी TCP विंडो कम से कम ~500 KB होनी चाहिए।
आपके BDP परिणाम की व्याख्या
BDP वह अस्वीकृत डेटा की मात्रा है जिसे प्रेषक को किसी लिंक का पूरी तरह से उपयोग करने के लिए वायर पर रखने में सक्षम होना चाहिए। TCP के पास स्वीकृति की प्रतीक्षा करने से पहले केवल एक विंडो के बराबर डेटा बकाया हो सकता है, इसलिए प्राप्ति विंडो को संतुष्ट करना चाहिए:
$$\text{TCP विंडो} \ge \text{BDP}$$यदि विंडो BDP से छोटी है, तो प्रेषक डेटा की एक विंडो प्रेषित करता है और फिर ACK की प्रतीक्षा करते हुए शेष दौर-यात्रा के लिए निष्क्रिय रहता है। तब प्राप्त थ्रूपुट को सीमित किया जाता है, भले ही लिंक कितनी बैंडविड्थ प्रदान करता है:
$$\text{थ्रूपुट} \approx \frac{\text{विंडो (बाइट)} \times 8}{\text{RTT (सेकंड)}}$$उदाहरण के लिए, 150 मिमी महाद्वीप पथ पर क्लासिक 64 KB विंडो केवल \(\frac{65{,}536 \times 8}{0.150} \approx 3.5\) Mbit/s प्राप्त करती है — 100 Mbit/s लिंक की क्षमता से बहुत कम।
- डिफ़ॉल्ट विंडो (कोई स्केलिंग नहीं): मूल 16-बिट TCP विंडो फील्ड अधिकतम 65,535 बाइट (64 KB) तक पहुँचती है। कम विलंबता वाली LANs पर यह आमतौर पर काफी होता है।
- विंडो स्केलिंग (RFC 1323 / RFC 7323): कोई भी पथ जिसका BDP 64 KB से अधिक हो, TCP विंडो-स्केल विकल्प की आवश्यकता होती है, जो विज्ञापित विंडो को दो की घात तक लगभग 1 GB तक गुणा करता है। यह दोनों अंत बिंदुओं पर सक्षम होना चाहिए (और मध्यस्थ बॉक्स द्वारा नहीं हटाया जाना चाहिए)।
- अपर्याप्त विंडो: थ्रूपुट को विंडो ÷ RTT तक नियंत्रित किया जाता है; विलंबता को दोगुना करने से निश्चित विंडो के लिए प्राप्त गति आधी हो जाती है। यही कारण है कि "लंबे मोटे नेटवर्क" (उच्च BDP) तेज़ लिंक पर भी धीमे लगते हैं।
- अत्यधिक बड़ी विंडो: विंडो को BDP से बहुत अधिक बड़ा सेट करने से स्मृति बर्बाद होती है और बफरिंग/विलंबता बढ़ सकती है, लेकिन स्थिर-स्थिति थ्रूपुट में सुधार नहीं होता है।
व्यावहारिक नियम के रूप में, अधिकतम TCP बफर को कम से कम BDP (अक्सर ACK टाइमिंग और पुनः प्रसारण को अवशोषित करने के लिए BDP का 2× उपयोग किया जाता है) पर सेट करें। आधुनिक ऑपरेटिंग सिस्टम विंडो को BDP की ओर स्वचालित रूप से ट्यून करते हैं, इसलिए मुख्य बात यह सत्यापित करना है कि विंडो स्केलिंग को अंत से अंत तक अनुमति है।
विशिष्ट RTT और बैंडविड्थ संदर्भ मान
जब आपके पास मापा हुआ RTT न हो तो इनपुट के रूप में ये विशिष्ट सीमाओं का उपयोग करें। वास्तविक RTT भौतिक दूरी, राउटिंग, कतारबद्धता और माध्यम पर निर्भर करता है; उपग्रह लिंक भूस्थिर कक्षा तक प्रसार विलंब से प्रभावित होते हैं और वापस आते हैं।
| नेटवर्क पथ | विशिष्ट RTT | नोट्स |
|---|---|---|
| समान LAN / डेटा सेंटर | < 1 ms | स्विच Ethernet, स्थानीय सबनेट |
| समान मेट्रो / ISP | 1–10 ms | स्थानीय पीयरिंग, क्षेत्रीय सर्वर |
| समान देश | 10–40 ms | क्रॉस-क्षेत्र स्थलीय फाइबर |
| अंतरमहाद्वीपीय / अंतरमहाद्वीपीय | 80–150 ms | उदा. US–Europe, US–Asia |
| भूस्थिर उपग्रह | 500–700 ms | ~36,000 km ऊपर और प्रति हॉप वापस |
कनेक्शन प्रकार द्वारा सामान्य एक्सेस बैंडविड्थ (डाउनस्ट्रीम, सांकेतिक):
| कनेक्शन प्रकार | विशिष्ट बैंडविड्थ |
|---|---|
| ADSL | 5–24 Mbit/s |
| VDSL / निश्चित वायरलेस | 25–100 Mbit/s |
| केबल (DOCSIS) | 100–1000 Mbit/s |
| होम में फाइबर (FTTH) | 100 Mbit/s – 10 Gbit/s |
| 4G LTE | 10–100 Mbit/s |
| 5G | 100 Mbit/s – 1 Gbit/s+ |
| गीगाबिट Ethernet (LAN) | 1 Gbit/s |
| 10 गीगाबिट Ethernet | 10 Gbit/s |
BDP की गणना करने से पहले एक उद्धृत योजना गति को इकाइयों के बीच परिवर्तित करने के लिए, Gbps-से-Mbps या Kbps-से-Mbps रूपांतरण मदद कर सकता है; याद रखें कि BDP सूत्र को कच्चे बिट प्रति सेकंड की अपेक्षा है।
अक्सर पूछे जाने वाले सवाल
थ्रूपुट के लिए लेटेंसी क्यों मायने रखती है? क्योंकि भेजने वाला (sender) एक समय में केवल एक विंडो जितना बिना-पुष्टि वाला डेटा बाहर रख सकता है। अगर विंडो BDP से छोटी है, तो sender ACK का इंतज़ार करते हुए रुक जाता है और बैंडविड्थ बेकार पड़ी रहती है।
मुझे बाइट इस्तेमाल करना चाहिए या बिट? बैंडविड्थ आमतौर पर बिट में बताई जाती है, लेकिन बफ़र और विंडो साइज़ बाइट में सेट होते हैं। इसलिए ट्यूनिंग के लिए बाइट वाला नतीजा सबसे काम का है।
मुझे कौन-सा RTT लेना चाहिए? दोनों एंडपॉइंट के बीच का राउंड-ट्रिप टाइम लें, जिसे आमतौर पर ping से मापा जाता है या भौगोलिक दूरी के आधार पर अनुमानित किया जाता है।