टीसीपी नेटवर्क संचार के लिए नागल एल्गोरिथम का अवलोकन

विषयसूची:

टीसीपी नेटवर्क संचार के लिए नागल एल्गोरिथम का अवलोकन
टीसीपी नेटवर्क संचार के लिए नागल एल्गोरिथम का अवलोकन
Anonim

नागले एल्गोरिथ्म, जिसका नाम इंजीनियर जॉन नागले के नाम पर रखा गया था, को टीसीपी अनुप्रयोगों के साथ छोटे पैकेट समस्याओं के कारण नेटवर्क की भीड़ को कम करने के लिए डिज़ाइन किया गया था। UNIX कार्यान्वयन ने 1980 के दशक में नागल एल्गोरिथम का उपयोग करना शुरू किया, और यह आज भी TCP की एक मानक विशेषता बनी हुई है।

नागल एल्गोरिथम कैसे काम करता है

नागल एल्गोरिथ्म टीसीपी अनुप्रयोगों के भेजने वाले पक्ष पर डेटा को नागलिंग नामक विधि द्वारा संसाधित करता है। यह छोटे आकार के संदेशों का पता लगाता है और पूरे तार में डेटा भेजने से पहले उन संदेशों को बड़े टीसीपी पैकेट में जमा करता है। यह प्रक्रिया अनावश्यक रूप से बड़ी संख्या में छोटे पैकेटों के निर्माण से बचाती है।

नागल एल्गोरिथम के लिए तकनीकी विनिर्देश 1984 में RFC 896 के रूप में प्रकाशित किया गया था। कितना डेटा जमा करना है और कितनी देर तक भेजना है, इसके निर्णय इसके समग्र प्रदर्शन के लिए महत्वपूर्ण हैं।

नागलिंग के लाभ

नेगलिंग देरी, या विलंबता जोड़ने की कीमत पर नेटवर्क कनेक्शन की बैंडविड्थ का कुशलतापूर्वक उपयोग कर सकता है। RFC 896 में वर्णित एक उदाहरण संभावित बैंडविड्थ लाभों और इसके निर्माण के कारण को दर्शाता है:

  • यदि कोई TCP एप्लिकेशन जो कीबोर्ड कीस्ट्रोक्स को इंटरसेप्ट करता है, टाइप किए जा रहे प्रत्येक वर्ण को एक रिसीवर से संवाद करना चाहता है, तो यह संदेशों की एक श्रृंखला उत्पन्न कर सकता है, प्रत्येक में 1 बाइट डेटा होता है।
  • इन संदेशों को पूरे नेटवर्क में भेजने से पहले, प्रत्येक को टीसीपी/आईपी द्वारा आवश्यक टीसीपी हेडर जानकारी के साथ पैक किया जाना चाहिए। प्रत्येक हेडर का आकार 20 और 60 बाइट्स के बीच होता है।
  • नेगलिंग के बिना, यह उदाहरण एप्लिकेशन नेटवर्क संदेश उत्पन्न करेगा जिसमें 95 प्रतिशत या अधिक हेडर जानकारी (21 बाइट्स में से कम से कम 20) और प्रेषक के कीबोर्ड से 5 प्रतिशत या उससे कम वास्तविक डेटा शामिल होगा।नागल एल्गोरिथम का उपयोग करके, समान डेटा को कम संदेशों का उपयोग करके वितरित किया जा सकता है, जिसके परिणामस्वरूप बड़ी बैंडविड्थ बचत होती है।

एप्लिकेशन TCP_NODELA सॉकेट प्रोग्रामिंग विकल्प के साथ नागल एल्गोरिथम के अपने उपयोग को नियंत्रित करते हैं। विंडोज, लिनक्स और जावा सिस्टम सामान्य रूप से नागल को डिफ़ॉल्ट रूप से सक्षम करते हैं। इसलिए, उन परिवेशों के लिए लिखे गए अनुप्रयोगों को एल्गोरिदम को बंद करने के लिए TCP_NODELAY निर्दिष्ट करने की आवश्यकता है।

Image
Image

सीमाएं

ऐप्लिकेशन जिन्हें तेज़ नेटवर्क प्रतिक्रिया की आवश्यकता होती है, जैसे वीडियो कॉल और ऑनलाइन गेमिंग, नागले के सक्षम होने पर शायद ठीक से काम न करें। एल्गोरिथम को डेटा के छोटे हिस्से को इकट्ठा करने में अतिरिक्त समय लगने के कारण होने वाली देरी स्क्रीन पर या डिजिटल ऑडियो स्ट्रीम में ध्यान देने योग्य अंतराल को ट्रिगर कर सकती है। ऐसे एप्लिकेशन आमतौर पर नागल को अक्षम कर देते हैं।

यह एल्गोरिथम मूल रूप से ऐसे समय में विकसित किया गया था जब कंप्यूटर नेटवर्क आज की तुलना में कम बैंडविड्थ का समर्थन करते थे।ऊपर वर्णित उदाहरण 1980 के दशक की शुरुआत में फोर्ड एयरोस्पेस में जॉन नागले के अनुभवों पर आधारित था, जहां फोर्ड के धीमे, भारी-भरकम, लंबी दूरी के नेटवर्क पर परेशान करने वाले ट्रेडऑफ़ ने अच्छी समझ बनाई। आज ऐसी स्थितियाँ कम होती जा रही हैं जहाँ नेटवर्क अनुप्रयोग उसके एल्गोरिथम से लाभ उठा सकते हैं।

नागल एल्गोरिथम केवल टीसीपी के साथ प्रयोग करने योग्य है। अन्य प्रोटोकॉल, जैसे यूडीपी, इसका समर्थन नहीं करते हैं।

सिफारिश की: