टीसीपी विश्वसनीयता परिवहन
हम सभी एक विश्वसनीय परिवहन प्रोटोकॉल के रूप में टीसीपी प्रोटोकॉल से परिचित हैं, लेकिन यह परिवहन की विश्वसनीयता कैसे सुनिश्चित करता है?
विश्वसनीय ट्रांसमिशन प्राप्त करने के लिए, कई कारकों पर विचार करने की आवश्यकता होती है, जैसे डेटा भ्रष्टाचार, हानि, दोहराव और आउट-ऑफ-ऑर्डर शार्क। यदि इन समस्याओं को हल नहीं किया जा सकता है, तो विश्वसनीय संचरण प्राप्त नहीं किया जा सकता है।
इसलिए, टीसीपी विश्वसनीय ट्रांसमिशन प्राप्त करने के लिए अनुक्रम संख्या, पावती उत्तर, पुनरुत्थान नियंत्रण, कनेक्शन प्रबंधन और विंडो नियंत्रण जैसे तंत्रों को नियोजित करता है।
इस पत्र में, हम स्लाइडिंग विंडो, प्रवाह नियंत्रण और टीसीपी के भीड़ नियंत्रण पर ध्यान केंद्रित करेंगे। Retransmission तंत्र अगले भाग में अलग से कवर किया गया है।
नेटवर्क प्रवाह नियंत्रण
नेटवर्क फ्लो कंट्रोल या नेटवर्क ट्रैफ़िक कंट्रोल के रूप में पता है कि वास्तव में उत्पादकों और उपभोक्ताओं के बीच सूक्ष्म संबंध की अभिव्यक्ति है। आप शायद इस परिदृश्य में काम या साक्षात्कार में बहुत कुछ आ गए हैं। यदि निर्माता की क्षमता का उत्पादन करने की क्षमता उपभोक्ता की उपभोग करने की क्षमता से बहुत अधिक है, तो यह कतार को अनिश्चित काल तक बढ़ने का कारण बनेगी। अधिक गंभीर मामले में, आप जान सकते हैं कि जब RabbitMQ संदेश बहुत अधिक ढेर होते हैं, तो यह पूरे MQ सर्वर के प्रदर्शन में गिरावट का कारण बन सकता है। टीसीपी के लिए भी यही सच है; यदि अनियंत्रित छोड़ दिया जाता है, तो बहुत सारे संदेश नेटवर्क में डाल दिए जाएंगे, और उपभोक्ता अपनी क्षमता से अधिक हो गए होंगे, जबकि निर्माता डुप्लिकेट संदेश भेजना जारी रखेंगे, जो नेटवर्क के प्रदर्शन को बहुत प्रभावित करेगा।
इस घटना को संबोधित करने के लिए, टीसीपी प्रेषक को रिसीवर की वास्तविक रिसेप्शन क्षमता के आधार पर भेजे गए डेटा की मात्रा को नियंत्रित करने के लिए एक तंत्र प्रदान करता है, जिसे प्रवाह नियंत्रण के रूप में जाना जाता है। रिसीवर एक प्राप्त विंडो को बनाए रखता है, जबकि प्रेषक एक सेंड विंडो रखता है। यह ध्यान दिया जाना चाहिए कि ये खिड़कियां केवल एक ही टीसीपी कनेक्शन के लिए हैं और सभी कनेक्शन एक विंडो साझा नहीं करते हैं।
टीसीपी एक प्राप्त विंडो के लिए एक चर का उपयोग करके प्रवाह नियंत्रण प्रदान करता है। प्राप्त विंडो प्रेषक को इस बात का संकेत देती है कि कैश स्पेस अभी भी कितना उपलब्ध है। प्रेषक रिसीवर की वास्तविक स्वीकृति क्षमता के अनुसार भेजे गए डेटा की मात्रा को नियंत्रित करता है।
रिसीवर होस्ट उस डेटा के आकार के प्रेषक को सूचित करता है जो उसे प्राप्त हो सकता है, और प्रेषक इस सीमा तक भेजता है। यह सीमा खिड़की का आकार है, टीसीपी हेडर याद रखें? एक प्राप्त विंडो फ़ील्ड है, जिसका उपयोग बाइट्स की संख्या को इंगित करने के लिए किया जाता है जो रिसीवर सक्षम है या प्राप्त करने के लिए तैयार है।
प्रेषक होस्ट समय -समय पर एक विंडो जांच पैकेट भेजेगा, जिसका उपयोग यह पता लगाने के लिए किया जाता है कि क्या रिसीवर होस्ट अभी भी डेटा स्वीकार करने में सक्षम है। जब रिसीवर के बफर को अतिप्रवाह का खतरा होता है, तो भेजे गए डेटा की मात्रा को नियंत्रित करने के लिए प्रेषक को निर्देश देने के लिए विंडो का आकार एक छोटे मूल्य पर सेट होता है।
यहाँ एक नेटवर्क प्रवाह नियंत्रण आरेख है:
नेटवर्क भीड़ नियंत्रण
कंजेशन कंट्रोल शुरू करने से पहले, हमें यह समझने की आवश्यकता है कि प्राप्त विंडो और सेंड विंडो के अलावा, एक भीड़भाड़ की खिड़की भी है, जिसका उपयोग मुख्य रूप से इस समस्या को हल करने के लिए किया जाता है कि प्रेषक किस दर से प्राप्त विंडो को डेटा भेजना शुरू करता है। इसलिए, TCP प्रेषक द्वारा भीड़ की खिड़की को भी बनाए रखा जाता है। हमें यह तय करने के लिए एक एल्गोरिथ्म की आवश्यकता है कि डेटा भेजने के लिए कितना उपयुक्त है, क्योंकि बहुत कम या बहुत अधिक डेटा भेजना आदर्श नहीं है, इसलिए एक भीड़ खिड़की की अवधारणा।
पिछले नेटवर्क फ्लो कंट्रोल में, हमने जो टाल दिया था, वह प्रेषक डेटा के साथ रिसीवर के कैश को भरने वाला था, लेकिन हमें नहीं पता था कि नेटवर्क में क्या हो रहा था। आमतौर पर, कंप्यूटर नेटवर्क एक साझा वातावरण में होते हैं। नतीजतन, अन्य मेजबानों के बीच संचार के कारण नेटवर्क की भीड़ हो सकती है।
जब नेटवर्क को कंजेस्ट किया जाता है, यदि बड़ी संख्या में पैकेट भेजे जाते हैं, तो यह देरी और पैकेटों के नुकसान जैसी समस्याओं का कारण हो सकता है। इस बिंदु पर, टीसीपी डेटा को फिर से स्थापित करेगा, लेकिन रिट्रांसमिशन नेटवर्क पर बोझ को बढ़ाएगा, जिसके परिणामस्वरूप बड़ी देरी और अधिक पैकेट नुकसान होगा। यह एक दुष्चक्र में आ सकता है और बड़ा हो सकता है।
इस प्रकार, टीसीपी नेटवर्क पर क्या हो रहा है, इसे अनदेखा नहीं कर सकता है। जब नेटवर्क भीड़भाड़ में होता है, तो टीसीपी अपने द्वारा भेजे गए डेटा की मात्रा को कम करके खुद को बलिदान करता है।
इसलिए, भीड़ नियंत्रण प्रस्तावित है, जिसका उद्देश्य प्रेषक से डेटा के साथ पूरे नेटवर्क को भरने से बचना है। प्रेषक को भेजने वाले डेटा की मात्रा को विनियमित करने के लिए, टीसीपी एक अवधारणा को परिभाषित करता है जिसे कंजेशन विंडो कहा जाता है। कंजेशन कंट्रोल एल्गोरिथ्म नेटवर्क की भीड़ की डिग्री के अनुसार कंजेशन विंडो के आकार को समायोजित करेगा, ताकि प्रेषक द्वारा भेजे गए डेटा की मात्रा को नियंत्रित किया जा सके।
कंजेशन विंडो क्या है? यह विंडो के साथ क्या करना है?
कंजेशन विंडो प्रेषक द्वारा बनाए रखा एक राज्य चर है जो डेटा भेजने वाले डेटा की मात्रा को निर्धारित करता है। नेटवर्क के भीड़ के स्तर के अनुसार भीड़ की खिड़की गतिशील रूप से बदल जाती है।
भेजने वाली विंडो प्रेषक और रिसीवर के बीच खिड़की के आकार पर एक सहमत है जो रिसीवर द्वारा प्राप्त डेटा की मात्रा को इंगित करता है। कंजेशन विंडो और भेजने वाली खिड़की संबंधित हैं; भेजने वाली खिड़की आमतौर पर भीड़ के न्यूनतम और खिड़कियों को प्राप्त करने के बराबर होती है, अर्थात, swnd = min (cwnd, rwnd)।
कंजेशन विंडो cwnd इस प्रकार बदलती है:
यदि नेटवर्क में कोई भीड़ नहीं है, तो, यानी, कोई रिट्रांसमिशन टाइमआउट नहीं होता है, कंजेशन विंडो बढ़ जाती है।
यदि नेटवर्क में भीड़ होती है, तो कंजेशन विंडो कम हो जाती है।
प्रेषक यह निर्धारित करता है कि क्या नेटवर्क को यह देखकर भीड़भाड़ दी जाती है कि क्या ACK पावती पैकेट निर्दिष्ट समय के भीतर प्राप्त होता है। यदि प्रेषक को निर्दिष्ट समय के भीतर ACK पावती पैकेट प्राप्त नहीं होता है, तो यह माना जाता है कि नेटवर्क भीड़भाड़ है।
कंजेशन विंडो के अलावा, यह टीसीपी कंजेशन कंट्रोल एल्गोरिथ्म पर चर्चा करने का समय है। टीसीपी कंजेशन कंट्रोल एल्गोरिथ्म में तीन मुख्य भाग होते हैं:
धीमी शुरुआत:प्रारंभ में, CWND भीड़ खिड़की अपेक्षाकृत छोटी है, और प्रेषक नेटवर्क की क्षमता के लिए जल्दी से अनुकूलित करने के लिए तेजी से भीड़ खिड़की को बढ़ाता है।
भीड़ को परिहार:कंजेशन विंडो एक निश्चित सीमा से अधिक होने के बाद, प्रेषक कंजेशन विंडो की वृद्धि दर को धीमा करने और नेटवर्क को ओवरलोड करने से बचने के लिए कंजेशन विंडो को एक रैखिक तरीके से बढ़ाता है।
तेजी से पुनःप्राप्ति:यदि भीड़ होती है, तो प्रेषक कंजेशन विंडो को आधा कर देता है और प्राप्त डुप्लिकेट एसीके के माध्यम से नेटवर्क रिकवरी के स्थान को निर्धारित करने के लिए तेज रिकवरी स्थिति में प्रवेश करता है, और फिर भीड़भाड़ खिड़की को बढ़ाता रहता है।
धीमी शुरुआत
जब एक टीसीपी कनेक्शन स्थापित किया जाता है, तो कंजेशन विंडो CWND शुरू में न्यूनतम MSS (अधिकतम खंड आकार) मान पर सेट किया जाता है। इस तरह, प्रारंभिक भेजने की दर MSS/RTT बाइट्स/सेकंड के बारे में है। वास्तविक उपलब्ध बैंडविड्थ आमतौर पर एमएसएस/आरटीटी की तुलना में बहुत बड़ा होता है, इसलिए टीसीपी इष्टतम भेजने की दर को ढूंढना चाहता है, जिसे धीमी गति के माध्यम से प्राप्त किया जा सकता है।
धीमी गति से शुरू होने वाली प्रक्रिया में, कंजेशन विंडो CWND का मान 1 एमएसएस के लिए आरंभ किया जाएगा, और हर बार जब संचारित पैकेट सेगमेंट को स्वीकार किया जाता है, तो CWND का मूल्य एक MSS द्वारा बढ़ाया जाएगा, अर्थात, CWND का मान 2 MSS बन जाएगा। उसके बाद, एक पैकेट खंड के प्रत्येक सफल ट्रांसमिशन के लिए CWND का मूल्य दोगुना हो जाता है, और इसी तरह। विशिष्ट विकास प्रक्रिया को निम्नलिखित आंकड़े में दिखाया गया है।
हालांकि, भेजने की दर हमेशा बढ़ नहीं सकती है; विकास को कभी -कभी समाप्त करना पड़ता है। तो, भेजने की दर बढ़ जाती है? धीमी गति से आम तौर पर कई तरीकों में से एक में भेजने की दर में वृद्धि समाप्त होती है:
पहला तरीका धीमी शुरुआत की प्रक्रिया के दौरान पैकेट के नुकसान का मामला है। जब एक पैकेट का नुकसान होता है, तो टीसीपी प्रेषक की भीड़ खिड़की CWND को 1 पर सेट करता है और धीमी गति से शुरू होने वाली प्रक्रिया को पुनरारंभ करता है। इस बिंदु पर, धीमी शुरुआत थ्रेशोल्ड ssthresh की एक अवधारणा पेश की गई है, जिसका प्रारंभिक मूल्य CWND के मूल्य का आधा है जो पैकेट हानि उत्पन्न करता है। यही है, जब भीड़ का पता चला है, तो ssthresh का मान खिड़की के मूल्य का आधा है।
दूसरा तरीका सीधे धीमी गति से शुरू होने वाले ssthresh के मूल्य के साथ सहसंबंधित है। चूंकि Ssthresh का मान खिड़की के मूल्य का आधा हिस्सा है जब भीड़ का पता चला है, पैकेट की हानि प्रत्येक दोहरीकरण के साथ हो सकती है जब CWND Ssthresh से बड़ा होता है। इसलिए, CWND को Ssthresh पर सेट करना सबसे अच्छा है, जिससे TCP भीड़ नियंत्रण मोड पर स्विच करने और धीमी गति से शुरू होने का कारण होगा।
अंतिम तरीका जो धीमी शुरुआत समाप्त हो सकती है, अगर तीन निरर्थक ACK का पता चला है, तो TCP एक तेज़ रिट्रांसमिशन करता है और रिकवरी स्टेट में प्रवेश करता है। (यदि यह स्पष्ट नहीं है कि तीन ACK पैकेट क्यों हैं, तो इसे अलग -अलग रिट्रांसमिशन तंत्र में समझाया जाएगा।)
भीड़ को परिहार
जब टीसीपी भीड़ नियंत्रण स्थिति में प्रवेश करता है, तो CWND आधे भीड़ की थ्रेसहोल्ड ssthresh पर सेट होता है। इसका मतलब यह है कि हर बार एक पैकेट सेगमेंट प्राप्त होने पर CWND का मूल्य दोगुना नहीं किया जा सकता है। इसके बजाय, एक अपेक्षाकृत रूढ़िवादी दृष्टिकोण को अपनाया जाता है जिसमें प्रत्येक ट्रांसमिशन पूरा होने के बाद CWND का मूल्य केवल एक MSS (अधिकतम पैकेट खंड लंबाई) द्वारा बढ़ाया जाता है। उदाहरण के लिए, भले ही 10 पैकेट सेगमेंट को स्वीकार किया जाता है, लेकिन CWND का मूल्य केवल एक MSS द्वारा बढ़ेगा। यह एक रैखिक विकास मॉडल है और इसमें वृद्धि पर एक ऊपरी सीमा भी है। जब पैकेट हानि होती है, तो CWND का मान एक MSS में बदल दिया जाता है, और ssthresh का मान CWND के आधे हिस्से में सेट होता है। या यह एमएसएस के विकास को भी रोक देगा जब 3 निरर्थक एसीके प्रतिक्रियाएं प्राप्त होती हैं। यदि CWND के मूल्य को कम करने के बाद तीन निरर्थक ACK अभी भी प्राप्त होते हैं, तो SSthresh का मान CWND के आधे मूल्य के रूप में दर्ज किया जाता है और तेजी से रिकवरी स्थिति दर्ज की जाती है।
तेजी से पुनःप्राप्ति
फास्ट रिकवरी स्टेट में, कंजेशन विंडो CWND का मूल्य प्रत्येक प्राप्त निरर्थक ACK के लिए एक MSS द्वारा बढ़ाया जाता है, अर्थात्, ACK जो अनुक्रम में नहीं आता है। यह उन पैकेट सेगमेंट का उपयोग करना है जो ट्रांसमिशन दक्षता को यथासंभव सुधारने के लिए नेटवर्क में सफलतापूर्वक प्रसारित किए गए हैं।
जब खोए हुए पैकेट सेगमेंट का एक ACK आता है, तो TCP CWND के मूल्य को कम कर देता है और फिर भीड़ से बचने की स्थिति में प्रवेश करता है। यह कंजेशन विंडो के आकार को नियंत्रित करने और नेटवर्क की भीड़ को और बढ़ाने से बचने के लिए है।
यदि कंजेशन कंट्रोल स्टेट के बाद कोई टाइमआउट होता है, तो नेटवर्क की स्थिति अधिक गंभीर हो जाती है और टीसीपी कंजेशन से बचने की स्थिति से धीमी गति से शुरू होने की स्थिति में माइग्रेट हो जाती है। इस मामले में, कंजेशन विंडो CWND का मान 1 एमएसएस, अधिकतम पैकेट सेगमेंट की लंबाई पर सेट है, और धीमी गति से शुरू होने वाली थ्रेसहोल्ड ssthresh का मान CWND के आधे हिस्से में सेट है। इसका उद्देश्य ट्रांसमिशन दर और नेटवर्क की भीड़ की डिग्री को संतुलित करने के लिए नेटवर्क के ठीक होने के बाद कंजेशन विंडो के आकार को फिर से बढ़ाना है।
सारांश
एक विश्वसनीय परिवहन प्रोटोकॉल के रूप में, टीसीपी अनुक्रम संख्या, पावती, रिट्रांसमिशन नियंत्रण, कनेक्शन प्रबंधन और विंडो नियंत्रण द्वारा विश्वसनीय परिवहन को लागू करता है। उनमें से, प्रवाह नियंत्रण तंत्र रिसीवर की वास्तविक प्राप्त क्षमता के अनुसार प्रेषक द्वारा भेजे गए डेटा की मात्रा को नियंत्रित करता है, जो नेटवर्क की भीड़ और प्रदर्शन गिरावट की समस्याओं से बचता है। कंजेशन कंट्रोल मैकेनिज्म प्रेषक द्वारा भेजे गए डेटा की मात्रा को समायोजित करके नेटवर्क की भीड़ की घटना से बचता है। कंजेशन विंडो और भेजने वाली विंडो की अवधारणाएं एक -दूसरे से संबंधित हैं, और प्रेषक पर डेटा की मात्रा को कंजेशन विंडो के आकार को गतिशील रूप से समायोजित करके नियंत्रित किया जाता है। धीमी शुरुआत, भीड़ से बचने और तेजी से वसूली टीसीपी कंजेशन कंट्रोल एल्गोरिथ्म के तीन मुख्य भाग हैं, जो नेटवर्क की क्षमता और भीड़ डिग्री के अनुकूल होने के लिए विभिन्न रणनीतियों के माध्यम से कंजेशन विंडो के आकार को समायोजित करते हैं।
अगले भाग में, हम टीसीपी के रिट्रांसमिशन तंत्र की विस्तार से जांच करेंगे। विश्वसनीय ट्रांसमिशन प्राप्त करने के लिए Retransmission तंत्र TCP का एक महत्वपूर्ण हिस्सा है। यह खो, दूषित या विलंबित डेटा को फिर से शुरू करके डेटा के विश्वसनीय ट्रांसमिशन को सुनिश्चित करता है। रिट्रांसमिशन तंत्र के कार्यान्वयन सिद्धांत और रणनीति को अगले भाग में विस्तार से पेश और विश्लेषण किया जाएगा। बने रहें!
पोस्ट टाइम: फरवरी -24-2025