नैगल एल्गोरिदम कैसे काम करता है
नैगल एल्गोरिदम, इंजीनियर जॉन नैगल के नाम पर, TCP एप्लिकेशन के साथ छोटे पैकेट समस्याओं के कारण नेटवर्क कंजेशन को कम करने के लिए डिज़ाइन किया गया था। UNIX कार्यान्वयन 1980 के दशक में नैगल एल्गोरिदम का उपयोग करने लगे, और यह आज TCP की एक मानक विशेषता बनी हुई है।
नैगल एल्गोरिदम TCP एप्लिकेशन के भेजने वाले पक्ष पर डेटा को "नैगलिंग" नामक विधि द्वारा संसाधित करता है। यह छोटे आकार के मैसेज का पता लगाता है और उन मैसेज को तार पर डेटा भेजने से पहले बड़े TCP पैकेट में जमा करता है। यह प्रक्रिया अनावश्यक रूप से बड़ी संख्या में छोटे पैकेट उत्पन्न होने से रोकती है।
नैगल एल्गोरिदम के लिए तकनीकी विनिर्देश 1984 में RFC 896 के रूप में प्रकाशित किया गया था। कितना डेटा जमा करना है और भेजने के बीच कितनी देर प्रतीक्षा करनी है, इसके निर्णय इसके समग्र प्रदर्शन के लिए महत्वपूर्ण हैं।
नैगलिंग के लाभ
नैगलिंग विलंबता जोड़ने की कीमत पर नेटवर्क कनेक्शन के बैंडविड्थ का कुशलता से उपयोग कर सकता है। RFC 896 में वर्णित एक उदाहरण संभावित बैंडविड्थ लाभ और इसके निर्माण का कारण दर्शाता है:
- यदि एक TCP एप्लिकेशन जो कीबोर्ड कीस्ट्रोक्स को इंटरसेप्ट करता है, टाइप किए जा रहे प्रत्येक कैरेक्टर को रिसीवर को संप्रेषित करना चाहता है, तो यह मैसेज की एक श्रृंखला उत्पन्न कर सकता है, प्रत्येक में 1 बाइट डेटा होता है।
- इन मैसेज को नेटवर्क पर भेजे जाने से पहले, प्रत्येक को TCP/IP द्वारा आवश्यक TCP हेडर जानकारी के साथ पैकेज किया जाना चाहिए। प्रत्येक हेडर का आकार 20 से 60 बाइट्स के बीच होता है।
- नैगलिंग के बिना, यह उदाहरण एप्लिकेशन 95% या अधिक हेडर जानकारी (कम से कम 21 में से 20 बाइट्स) और 5% या कम वास्तविक डेटा वाले नेटवर्क मैसेज उत्पन्न करेगा। नैगल एल्गोरिदम का उपयोग करके, समान डेटा को कम मैसेज का उपयोग करके वितरित किया जा सकता है, जिसके परिणामस्वरूप बड़ी बैंडविड्थ बचत होती है।
एप्लिकेशन TCP_NODELAY सॉकेट प्रोग्रामिंग विकल्प के साथ नैगल एल्गोरिदम के उपयोग को नियंत्रित करते हैं। Windows, Linux, और Java सिस्टम आमतौर पर डिफ़ॉल्ट रूप से नैगल को सक्षम करते हैं। इसलिए, उन वातावरण के लिए लिखे गए एप्लिकेशन को एल्गोरिदम को बंद करने के लिए TCP_NODELAY निर्दिष्ट करना होगा।
सीमाएं
- तेज़ नेटवर्क प्रतिक्रिया की आवश्यकता वाले एप्लिकेशन, जैसे वीडियो कॉल और ऑनलाइन गेमिंग, नैगल सक्षम होने पर अच्छा काम नहीं कर सकते। एल्गोरिदम द्वारा छोटे डेटा चंक्स को असेंबल करने में अतिरिक्त समय लेने के कारण होने वाली देरी स्क्रीन पर या डिजिटल ऑडियो स्ट्रीम में ध्यान देने योग्य लैग ट्रिगर कर सकती है। ऐसे एप्लिकेशन आमतौर पर नैगल को अक्षम करते हैं।
- यह एल्गोरिदम मूल रूप से उस समय विकसित किया गया था जब कंप्यूटर नेटवर्क आज की तुलना में कम बैंडविड्थ का समर्थन करते थे। उपरोक्त उदाहरण 1980 के दशक की शुरुआत में फोर्ड एयरोस्पेस में जॉन नैगल के अनुभवों पर आधारित था, जहां फोर्ड के धीमे, भारी-भरकम, लंबी दूरी के नेटवर्क पर नैगलिंग ट्रेडऑफ समझ में आते थे। आज ऐसी कम स्थितियां हैं जहां नेटवर्क एप्लिकेशन उनके एल्गोरिदम से लाभ उठा सकते हैं।
- नैगल एल्गोरिदम केवल TCP के साथ उपयोग योग्य है। UDP जैसे अन्य प्रोटोकॉल इसका समर्थन नहीं करते।