टीसीपी विश्वसनीयता वाहतूक
आपण सर्वजण टीसीपी प्रोटोकॉलला एक विश्वासार्ह वाहतूक प्रोटोकॉल म्हणून ओळखतो, परंतु ते वाहतुकीची विश्वासार्हता कशी सुनिश्चित करते?
विश्वसनीय प्रसारण साध्य करण्यासाठी, डेटा करप्टेशन, तोटा, डुप्लिकेशन आणि अयशस्वी शार्ड्स यासारख्या अनेक घटकांचा विचार करणे आवश्यक आहे. जर या समस्या सोडवल्या गेल्या नाहीत तर विश्वसनीय प्रसारण साध्य करता येणार नाही.
म्हणून, विश्वसनीय प्रसारण साध्य करण्यासाठी TCP अनुक्रम क्रमांक, पावती उत्तर, पुन्हा पाठवा नियंत्रण, कनेक्शन व्यवस्थापन आणि विंडो नियंत्रण यासारख्या यंत्रणा वापरते.
या पेपरमध्ये, आपण TCP च्या स्लाइडिंग विंडो, फ्लो कंट्रोल आणि कंजेशन कंट्रोलवर लक्ष केंद्रित करू. पुढील भागात रीट्रान्समिशन यंत्रणेचा स्वतंत्रपणे विचार केला आहे.
नेटवर्क फ्लो कंट्रोल
नेटवर्क फ्लो कंट्रोल किंवा नेटवर्क ट्रॅफिक कंट्रोल म्हणून ओळखले जाणारे हे प्रत्यक्षात उत्पादक आणि ग्राहकांमधील सूक्ष्म संबंधांचे प्रकटीकरण आहे. तुम्ही कदाचित कामावर किंवा मुलाखतींमध्ये या परिस्थितीचा अनेकदा अनुभव घेतला असेल. जर उत्पादकाची उत्पादन करण्याची क्षमता ग्राहकाच्या वापर करण्याच्या क्षमतेपेक्षा जास्त असेल, तर त्यामुळे रांग अनिश्चित काळासाठी वाढेल. अधिक गंभीर प्रकरणात, तुम्हाला माहित असेल की जेव्हा RabbitMQ संदेश खूप जास्त जमा होतात, तेव्हा ते संपूर्ण MQ सर्व्हरच्या कार्यक्षमतेत घट होऊ शकते. TCP साठीही हेच खरे आहे; जर ते तपासले नाही तर, नेटवर्कमध्ये बरेच संदेश टाकले जातील आणि ग्राहकांनी त्यांची क्षमता ओलांडली असेल, तर उत्पादक डुप्लिकेट संदेश पाठवत राहतील, ज्यामुळे नेटवर्कच्या कार्यक्षमतेवर मोठा परिणाम होईल.
या घटनेला तोंड देण्यासाठी, TCP प्रेषकाला प्राप्तकर्त्याच्या प्रत्यक्ष रिसेप्शन क्षमतेवर आधारित पाठवलेल्या डेटाचे प्रमाण नियंत्रित करण्यासाठी एक यंत्रणा प्रदान करते, ज्याला फ्लो कंट्रोल म्हणतात. प्राप्तकर्ता एक रिसीव्ह विंडो राखतो, तर प्रेषक एक सेंड विंडो राखतो. हे लक्षात घेतले पाहिजे की हे विंडोज फक्त एकाच TCP कनेक्शनसाठी आहेत आणि सर्व कनेक्शन एक विंडो शेअर करत नाहीत.
TCP रिसीव्ह विंडोसाठी व्हेरिअबल वापरून फ्लो कंट्रोल प्रदान करते. रिसीव्ह विंडो प्रेषकाला किती कॅशे स्पेस उपलब्ध आहे याचे संकेत देते. प्रेषक रिसीव्हरच्या प्रत्यक्ष स्वीकृती क्षमतेनुसार पाठवलेल्या डेटाचे प्रमाण नियंत्रित करतो.
रिसीव्हर होस्ट प्रेषकाला तो किती डेटा प्राप्त करू शकतो याची सूचना देतो आणि प्रेषक या मर्यादेपर्यंत पाठवतो. ही मर्यादा विंडो आकार आहे, TCP हेडर लक्षात ठेवा? एक रिसीव्हर विंडो फील्ड आहे, जो रिसीव्हर किती बाइट्स प्राप्त करण्यास सक्षम आहे किंवा करण्यास इच्छुक आहे हे दर्शविण्यासाठी वापरला जातो.
प्रेषक होस्ट वेळोवेळी एक विंडो प्रोब पॅकेट पाठवेल, ज्याचा वापर रिसीव्हर होस्ट अजूनही डेटा स्वीकारण्यास सक्षम आहे की नाही हे शोधण्यासाठी केला जातो. जेव्हा रिसीव्हरचा बफर ओव्हरफ्लो होण्याचा धोका असतो, तेव्हा प्रेषकाला पाठवलेल्या डेटाचे प्रमाण नियंत्रित करण्याची सूचना देण्यासाठी विंडोचा आकार लहान मूल्यावर सेट केला जातो.
येथे नेटवर्क फ्लो कंट्रोल आकृती आहे:
नेटवर्क गर्दी नियंत्रण
गर्दी नियंत्रण सुरू करण्यापूर्वी, आपल्याला हे समजून घेणे आवश्यक आहे की रिसीव्ह विंडो आणि सेंड विंडो व्यतिरिक्त, एक गर्दी विंडो देखील आहे, जी प्रामुख्याने प्रेषक रिसीव्ह विंडोवर डेटा पाठवण्यास किती वेगाने सुरुवात करतो या समस्येचे निराकरण करण्यासाठी वापरली जाते. म्हणून, गर्दी विंडो देखील TCP प्रेषकाद्वारे राखली जाते. किती डेटा पाठवणे योग्य आहे हे ठरवण्यासाठी आपल्याला अल्गोरिथमची आवश्यकता आहे, कारण खूप कमी किंवा जास्त डेटा पाठवणे आदर्श नाही, म्हणूनच गर्दी विंडोची संकल्पना आहे.
मागील नेटवर्क फ्लो कंट्रोलमध्ये, आम्ही जे टाळले ते म्हणजे प्रेषक प्राप्तकर्त्याच्या कॅशेमध्ये डेटा भरत होता, परंतु आम्हाला नेटवर्कमध्ये काय चालले आहे हे माहित नव्हते. सामान्यतः, संगणक नेटवर्क सामायिक वातावरणात असतात. परिणामी, इतर होस्टमधील संप्रेषणामुळे नेटवर्क गर्दी होऊ शकते.
जेव्हा नेटवर्क गर्दीचे असते, तेव्हा जर मोठ्या संख्येने पॅकेट्स पाठवले जात राहिले तर त्यामुळे विलंब आणि पॅकेट्स हरवणे यासारख्या समस्या उद्भवू शकतात. या टप्प्यावर, TCP डेटा पुन्हा पाठवेल, परंतु पुन्हा पाठवल्याने नेटवर्कवरील भार वाढेल, ज्यामुळे जास्त विलंब होईल आणि अधिक पॅकेट नुकसान होईल. हे एका दुष्टचक्रात अडकू शकते आणि मोठे होत राहू शकते.
अशाप्रकारे, नेटवर्कवर काय घडत आहे ते TCP दुर्लक्ष करू शकत नाही. जेव्हा नेटवर्क गर्दीचे असते, तेव्हा TCP पाठवलेल्या डेटाचे प्रमाण कमी करून स्वतःचे बलिदान देते.
म्हणून, प्रेषकाकडून संपूर्ण नेटवर्कमध्ये डेटा भरणे टाळण्याचा उद्देश कंजेशन कंट्रोल प्रस्तावित आहे. प्रेषकाने किती डेटा पाठवावा याचे नियमन करण्यासाठी, TCP कंजेशन विंडो नावाची संकल्पना परिभाषित करते. कंजेशन कंट्रोल अल्गोरिथम नेटवर्कच्या कंजेशन डिग्रीनुसार कंजेशन विंडोचा आकार समायोजित करेल, जेणेकरून प्रेषकाने पाठवलेल्या डेटाचे प्रमाण नियंत्रित करता येईल.
गर्दीची खिडकी म्हणजे काय? याचा पाठवण्याच्या खिडकीशी काय संबंध आहे?
कंजेशन विंडो ही प्रेषकाद्वारे राखली जाणारी एक स्थिती चल आहे जी प्रेषक किती डेटा पाठवू शकतो हे ठरवते. नेटवर्कच्या कंजेशन पातळीनुसार कंजेशन विंडो गतिमानपणे बदलते.
पाठवण्याची विंडो ही प्रेषक आणि प्राप्तकर्त्यामधील एक मान्य केलेली विंडो आकार आहे जी प्राप्तकर्त्याला किती डेटा मिळू शकतो हे दर्शवते. कंजेशन विंडो आणि पाठवण्याची विंडो संबंधित आहेत; पाठवण्याची विंडो सहसा कंजेशन आणि प्राप्तकर्त्याच्या किमान विंडोजइतकी असते, म्हणजेच, swnd = min(cwnd, rwnd).
कंजेशन विंडो cwnd खालीलप्रमाणे बदलते:
जर नेटवर्कमध्ये गर्दी नसेल, म्हणजेच रीट्रान्समिशन टाइमआउट नसेल, तर गर्दीची वेळ वाढते.
जर नेटवर्कमध्ये गर्दी असेल तर गर्दीची विंडो कमी होते.
निर्दिष्ट वेळेत ACK पावती पॅकेट प्राप्त झाले आहे की नाही हे पाहून प्रेषक नेटवर्क गर्दीत आहे की नाही हे ठरवतो. जर प्रेषकाला निर्दिष्ट वेळेत ACK पावती पॅकेट प्राप्त झाले नाही तर नेटवर्क गर्दीत आहे असे मानले जाते.
गर्दीच्या खिडकीव्यतिरिक्त, TCP गर्दी नियंत्रण अल्गोरिदमवर चर्चा करण्याची वेळ आली आहे. TCP गर्दी नियंत्रण अल्गोरिदममध्ये तीन मुख्य भाग असतात:
हळू सुरुवात:सुरुवातीला, cwnd कंजेशन विंडो तुलनेने लहान असते आणि नेटवर्कच्या क्षमतेशी जलद जुळवून घेण्यासाठी प्रेषक कंजेशन विंडो वेगाने वाढवतो.
गर्दी टाळणे:गर्दीची वेळ एका विशिष्ट मर्यादेपेक्षा जास्त झाल्यानंतर, प्रेषक गर्दीची वेळ वाढविण्यासाठी आणि नेटवर्क ओव्हरलोड होऊ नये म्हणून गर्दीची वेळ रेषीय पद्धतीने वाढवतो.
जलद पुनर्प्राप्ती:जर गर्दी झाली तर, प्रेषक गर्दीची विंडो अर्धी करतो आणि प्राप्त झालेल्या डुप्लिकेट अॅक्सेसद्वारे नेटवर्क रिकव्हरीचे स्थान निश्चित करण्यासाठी जलद पुनर्प्राप्ती स्थितीत प्रवेश करतो आणि नंतर गर्दीची विंडो वाढवत राहतो.
हळू सुरुवात
जेव्हा TCP कनेक्शन स्थापित केले जाते, तेव्हा कंजेशन विंडो cwnd सुरुवातीला किमान MSS (जास्तीत जास्त सेगमेंट आकार) मूल्यावर सेट केली जाते. अशा प्रकारे, प्रारंभिक पाठविण्याचा दर सुमारे MSS/RTT बाइट्स/सेकंद असतो. प्रत्यक्ष उपलब्ध बँडविड्थ सहसा MSS/RTT पेक्षा खूप जास्त असते, म्हणून TCP ला इष्टतम पाठविण्याचा दर शोधायचा आहे, जो स्लो-स्टार्टद्वारे साध्य करता येतो.
स्लो-स्टार्ट प्रक्रियेत, कंजेशन विंडो cwnd चे मूल्य 1 MSS पर्यंत सुरू केले जाईल आणि प्रत्येक वेळी ट्रान्समिटेड पॅकेट सेगमेंट स्वीकारले जाईल तेव्हा cwnd चे मूल्य एका MSS ने वाढेल, म्हणजेच cwnd चे मूल्य 2 MSS होईल. त्यानंतर, पॅकेट सेगमेंटच्या प्रत्येक यशस्वी ट्रान्समिशनसाठी cwnd चे मूल्य दुप्पट केले जाते, आणि असेच पुढे चालू राहते. विशिष्ट वाढ प्रक्रिया खालील आकृतीमध्ये दर्शविली आहे.
तथापि, पाठवण्याचा दर नेहमीच वाढू शकत नाही; वाढ कधीतरी संपली पाहिजे. तर, पाठवण्याचा दर वाढ कधी संपेल? स्लो-स्टार्ट सामान्यतः अनेक मार्गांपैकी एका प्रकारे पाठवण्याच्या दरातील वाढ समाप्त करते:
पहिला मार्ग म्हणजे स्लो स्टार्टच्या पाठवण्याच्या प्रक्रियेदरम्यान पॅकेट लॉस होणे. जेव्हा पॅकेट लॉस होतो, तेव्हा TCP प्रेषकाची कंजेशन विंडो cwnd 1 वर सेट करते आणि स्लो-स्टार्ट प्रक्रिया पुन्हा सुरू करते. या टप्प्यावर, स्लो स्टार्ट थ्रेशोल्ड ssthresh ची संकल्पना मांडली जाते, ज्याचे प्रारंभिक मूल्य cwnd च्या मूल्याच्या अर्धे असते जे पॅकेट लॉस निर्माण करते. म्हणजेच, जेव्हा कंजेशन आढळते, तेव्हा ssthresh चे मूल्य विंडो व्हॅल्यूच्या अर्धे असते.
दुसरा मार्ग म्हणजे स्लो-स्टार्ट थ्रेशोल्ड ssthrash च्या मूल्याशी थेट सहसंबंधित करणे. जेव्हा कंजेशन आढळते तेव्हा ssthrash चे मूल्य विंडो मूल्याच्या अर्धे असते, तेव्हा cwnd ssthresh पेक्षा मोठे असताना प्रत्येक दुप्पट झाल्यावर पॅकेट लॉस होऊ शकतो. म्हणून, cwnd ला ssthresh वर सेट करणे चांगले आहे, ज्यामुळे TCP कंजेशन कंट्रोल मोडवर स्विच करेल आणि स्लो-स्टार्ट समाप्त करेल.
जर तीन रिडंडंट अॅक्स आढळले तर स्लो स्टार्ट संपवण्याचा शेवटचा मार्ग म्हणजे TCP जलद रीट्रान्समिशन करते आणि रिकव्हरी स्टेटमध्ये प्रवेश करते. (जर तीन ACK पॅकेट्स का आहेत हे स्पष्ट नसेल, तर ते रीट्रान्समिशन यंत्रणेत स्वतंत्रपणे स्पष्ट केले जाईल.)
गर्दी टाळणे
जेव्हा TCP कंजेशन कंट्रोल स्टेटमध्ये प्रवेश करते, तेव्हा cwnd कंजेशन थ्रेशोल्ड ssthrash च्या अर्ध्यावर सेट केले जाते. याचा अर्थ असा की प्रत्येक वेळी पॅकेट सेगमेंट प्राप्त झाल्यावर cwnd चे मूल्य दुप्पट करता येत नाही. त्याऐवजी, एक तुलनेने रूढीवादी दृष्टिकोन स्वीकारला जातो ज्यामध्ये प्रत्येक ट्रान्समिशन पूर्ण झाल्यानंतर cwnd चे मूल्य फक्त एका MSS (कमाल पॅकेट सेगमेंट लांबी) ने वाढवले जाते. उदाहरणार्थ, जरी 10 पॅकेट सेगमेंट स्वीकारले गेले तरी, cwnd चे मूल्य फक्त एका MSS ने वाढेल. हे एक रेषीय वाढ मॉडेल आहे आणि त्यात वाढीवर वरची मर्यादा देखील आहे. जेव्हा पॅकेट लॉस होते, तेव्हा cwnd चे मूल्य MSS मध्ये बदलले जाते आणि ssthresh चे मूल्य cwnd च्या अर्ध्यावर सेट केले जाते. किंवा 3 रिडंडंट ACK प्रतिसाद प्राप्त झाल्यावर ते MSS ची वाढ देखील थांबवेल. जर cwnd चे मूल्य अर्धे केल्यानंतरही तीन रिडंडंट acks प्राप्त झाले, तर ssthresh चे मूल्य cwnd च्या अर्ध्या मूल्या म्हणून नोंदवले जाते आणि जलद पुनर्प्राप्ती स्थिती प्रविष्ट केली जाते.
जलद पुनर्प्राप्ती
फास्ट रिकव्हरी स्थितीत, कंजेशन विंडो cwnd चे मूल्य प्रत्येक प्राप्त झालेल्या रिडंडंट ACK साठी एका MSS ने वाढवले जाते, म्हणजेच, ACK जो क्रमाने येत नाही. हे नेटवर्कमध्ये यशस्वीरित्या प्रसारित केलेल्या पॅकेट सेगमेंटचा वापर करून ट्रान्समिशन कार्यक्षमता शक्य तितकी सुधारण्यासाठी केले जाते.
जेव्हा हरवलेल्या पॅकेट सेगमेंटचा ACK येतो तेव्हा TCP cwnd चे मूल्य कमी करते आणि नंतर कंजेशन अव्हॉइडन्स स्टेटमध्ये प्रवेश करते. हे कंजेशन विंडोचा आकार नियंत्रित करण्यासाठी आणि नेटवर्क कंजेशन आणखी वाढण्यापासून रोखण्यासाठी आहे.
जर कंजेशन कंट्रोल स्टेट नंतर टाइमआउट झाला तर नेटवर्कची स्थिती अधिक गंभीर होते आणि TCP कंजेशन अव्हॉइडन्स स्टेट मधून स्लो-स्टार्ट स्टेट मध्ये स्थलांतरित होते. या प्रकरणात, कंजेशन विंडो cwnd चे मूल्य 1 MSS वर सेट केले जाते, कमाल पॅकेट सेगमेंट लांबी, आणि स्लो-स्टार्ट थ्रेशोल्ड ssthresh चे मूल्य cwnd च्या अर्ध्यावर सेट केले जाते. याचा उद्देश नेटवर्क रिकव्हर झाल्यानंतर ट्रान्समिशन रेट आणि नेटवर्क कंजेशनची डिग्री संतुलित करण्यासाठी कंजेशन विंडोचा आकार हळूहळू पुन्हा वाढवणे आहे.
सारांश
एक विश्वासार्ह वाहतूक प्रोटोकॉल म्हणून, TCP अनुक्रमांक, पावती, पुनर्प्रसारण नियंत्रण, कनेक्शन व्यवस्थापन आणि विंडो नियंत्रणाद्वारे विश्वसनीय वाहतूक लागू करते. त्यापैकी, प्रवाह नियंत्रण यंत्रणा प्रेषकाने प्राप्तकर्त्याच्या वास्तविक प्राप्त क्षमतेनुसार पाठवलेल्या डेटाचे प्रमाण नियंत्रित करते, जे नेटवर्क गर्दी आणि कार्यप्रदर्शन क्षीण होण्याच्या समस्या टाळते. गर्दी नियंत्रण यंत्रणा प्रेषकाने पाठवलेल्या डेटाचे प्रमाण समायोजित करून नेटवर्क गर्दीची घटना टाळते. गर्दी विंडो आणि पाठविण्याच्या विंडोच्या संकल्पना एकमेकांशी संबंधित आहेत आणि गर्दी विंडोचा आकार गतिमानपणे समायोजित करून प्रेषकावरील डेटाचे प्रमाण नियंत्रित केले जाते. स्लो स्टार्ट, गर्दी टाळणे आणि जलद पुनर्प्राप्ती हे TCP गर्दी नियंत्रण अल्गोरिथमचे तीन मुख्य भाग आहेत, जे नेटवर्कच्या क्षमता आणि गर्दीच्या डिग्रीशी जुळवून घेण्यासाठी वेगवेगळ्या धोरणांद्वारे गर्दी विंडोचा आकार समायोजित करतात.
पुढील भागात, आपण TCP च्या पुनर्प्रसारण यंत्रणेचे तपशीलवार परीक्षण करू. विश्वसनीय प्रसारण साध्य करण्यासाठी पुनर्प्रसारण यंत्रणा ही TCP चा एक महत्त्वाचा भाग आहे. हरवलेला, दूषित किंवा विलंबित डेटा पुनर्प्रसारण करून डेटाचे विश्वसनीय प्रसारण सुनिश्चित करते. पुनर्प्रसारण यंत्रणेच्या अंमलबजावणीचे तत्व आणि धोरण पुढील भागात तपशीलवार सादर केले जाईल आणि त्याचे विश्लेषण केले जाईल. संपर्कात रहा!
पोस्ट वेळ: फेब्रुवारी-२४-२०२५