नेटवर्क पॅकेट ब्रोकर टीसीपी कनेक्शनची मुख्य रहस्ये: ट्रिपल हँडशेकची गरज अस्पष्ट

TCP कनेक्शन सेटअप
जेव्हा आम्ही वेब ब्राउझ करतो, ईमेल पाठवतो किंवा एखादा ऑनलाइन गेम खेळतो, तेव्हा आम्ही अनेकदा त्यामागील जटिल नेटवर्क कनेक्शनचा विचार करत नाही. तथापि, या वरवर लहान पायऱ्या आहेत जे आपल्या आणि सर्व्हरमध्ये स्थिर संवाद सुनिश्चित करतात. सर्वात महत्त्वाच्या पायऱ्यांपैकी एक म्हणजे TCP कनेक्शन सेटअप, आणि याचा मुख्य भाग म्हणजे थ्री-वे हँडशेक.

हा लेख थ्री-वे हँडशेकचे तत्त्व, प्रक्रिया आणि महत्त्व याबद्दल तपशीलवार चर्चा करेल. स्टेप बाय स्टेप, आम्ही थ्री-वे हँडशेक का आवश्यक आहे, ते कनेक्शनची स्थिरता आणि विश्वासार्हता कशी सुनिश्चित करते आणि डेटा ट्रान्सफरसाठी ते किती महत्त्वाचे आहे हे स्पष्ट करू. थ्री-वे हँडशेकच्या सखोल आकलनासह, आम्ही नेटवर्क कम्युनिकेशनच्या अंतर्निहित यंत्रणेची अधिक चांगली समज आणि TCP कनेक्शनच्या विश्वासार्हतेचे स्पष्ट दृश्य प्राप्त करू.

TCP थ्री-वे हँडशेक प्रक्रिया आणि राज्य संक्रमण
TCP एक कनेक्शन-देणारं ट्रान्सपोर्ट प्रोटोकॉल आहे, ज्यासाठी डेटा ट्रान्समिशनपूर्वी कनेक्शन स्थापित करणे आवश्यक आहे. ही कनेक्शन स्थापना प्रक्रिया तीन-मार्गी हँडशेकद्वारे केली जाते.

 TCP थ्री-वे हँडशेक

प्रत्येक कनेक्शनमध्ये पाठवलेले TCP पॅकेट्स जवळून पाहू.

सुरुवातीला, क्लायंट आणि सर्व्हर दोन्ही बंद असतात. प्रथम, सर्व्हर पोर्टवर सक्रियपणे ऐकतो आणि LISTEN स्थितीत असतो, याचा अर्थ सर्व्हर सुरू करणे आवश्यक आहे. पुढे, क्लायंट वेबपृष्ठावर प्रवेश करण्यास तयार आहे. त्याला सर्व्हरशी कनेक्शन स्थापित करणे आवश्यक आहे. पहिल्या कनेक्शन पॅकेटचे स्वरूप खालीलप्रमाणे आहे:

 SYN पॅकेट

जेव्हा क्लायंट कनेक्शन सुरू करतो, तेव्हा तो एक यादृच्छिक प्रारंभिक अनुक्रम क्रमांक (client_isn) व्युत्पन्न करतो आणि तो TCP शीर्षलेखाच्या "अनुक्रम क्रमांक" फील्डमध्ये ठेवतो. त्याच वेळी, क्लायंट आउटगोइंग पॅकेट एक SYN पॅकेट असल्याचे सूचित करण्यासाठी SYN ध्वज स्थिती 1 वर सेट करते. क्लायंट सूचित करतो की तो सर्व्हरला पहिले SYN पॅकेट पाठवून सर्व्हरशी कनेक्शन स्थापित करू इच्छितो. या पॅकेटमध्ये ऍप्लिकेशन लेयर डेटा नाही (म्हणजे डेटा पाठवला आहे). या टप्प्यावर, क्लायंटची स्थिती SYN-SENT म्हणून चिन्हांकित केली जाते.

SYN+ACK पॅकेट

जेव्हा सर्व्हरला क्लायंटकडून SYN पॅकेट प्राप्त होते, तेव्हा तो यादृच्छिकपणे स्वतःचा अनुक्रमांक (server_isn) सुरू करतो आणि नंतर तो क्रमांक TCP शीर्षलेखाच्या "सिरियल नंबर" फील्डमध्ये ठेवतो. पुढे, सर्व्हर "पोचती क्रमांक" फील्डमध्ये client_isn + 1 प्रविष्ट करतो आणि SYN आणि ACK दोन्ही बिट 1 वर सेट करतो. शेवटी, सर्व्हर क्लायंटला पॅकेट पाठवतो, ज्यामध्ये कोणताही अनुप्रयोग-स्तर डेटा नसतो (आणि सर्व्हरसाठी कोणताही डेटा नसतो. पाठवणे). यावेळी, सर्व्हर SYN-RCVD स्थितीत आहे.

ACK पॅकेट

क्लायंटला सर्व्हरकडून पॅकेट मिळाल्यावर, त्याला अंतिम उत्तर पॅकेटला प्रतिसाद देण्यासाठी खालील ऑप्टिमायझेशन करणे आवश्यक आहे: प्रथम, क्लायंट उत्तर पॅकेटच्या TCP शीर्षलेखाचा ACK बिट 1 वर सेट करतो; दुसरे, क्लायंट "उत्तर क्रमांकाची पुष्टी करा" फील्डमध्ये सर्व्हर_isn + 1 मूल्य प्रविष्ट करतो; शेवटी, क्लायंट पॅकेट सर्व्हरला पाठवतो. हे पॅकेट क्लायंटकडून सर्व्हरवर डेटा वाहून नेऊ शकते. या ऑपरेशन्स पूर्ण झाल्यावर, क्लायंट स्थापित स्थितीत प्रवेश करेल.

सर्व्हरला क्लायंटकडून प्रत्युत्तर पॅकेट प्राप्त झाल्यानंतर, ते स्थापित स्थितीवर देखील स्विच करते.

वरील प्रक्रियेतून तुम्ही बघू शकता, त्रि-मार्गी हँडशेक करताना, तिसऱ्या हँडशेकला डेटा ठेवण्याची परवानगी आहे, परंतु पहिले दोन हँडशेक नाहीत. हा प्रश्न अनेकदा मुलाखतींमध्ये विचारला जातो. एकदा थ्री-वे हँडशेक पूर्ण झाल्यावर, दोन्ही पक्ष स्थापित स्थितीत प्रवेश करतात, हे दर्शविते की कनेक्शन यशस्वीरित्या स्थापित केले गेले आहे, ज्या वेळी क्लायंट आणि सर्व्हर एकमेकांना डेटा पाठवणे सुरू करू शकतात.

तीन हस्तांदोलन का? दोनदा नाही, चार वेळा?
सामान्य उत्तर आहे, "कारण तीन-मार्गी हँडशेक प्राप्त आणि पाठविण्याच्या क्षमतेची हमी देते." हे उत्तर बरोबर आहे, परंतु ते केवळ पृष्ठभागाचे कारण आहे, मुख्य कारण पुढे करत नाही. या मुद्द्याबद्दलची आपली समज वाढवण्यासाठी मी पुढील तीन पैलूंमधून तिहेरी हस्तांदोलनाच्या कारणांचे विश्लेषण करेन.

थ्री-वे हँडशेक ऐतिहासिकरित्या पुनरावृत्ती झालेल्या कनेक्शनची सुरुवात प्रभावीपणे टाळू शकते (मुख्य कारण)
थ्री-वे हँडशेक हमी देतो की दोन्ही पक्षांना विश्वासार्ह प्रारंभिक अनुक्रम क्रमांक प्राप्त झाला आहे.
थ्री-वे हँडशेक संसाधनांचा अपव्यय टाळतो.

कारण 1: ऐतिहासिक डुप्लिकेट सामील होणे टाळा
थोडक्यात, थ्री-वे हँडशेकचे मुख्य कारण म्हणजे जुन्या डुप्लिकेट कनेक्शनच्या प्रारंभामुळे होणारा गोंधळ टाळणे. जटिल नेटवर्क वातावरणात, डेटा पॅकेट्सचे प्रसारण नेहमी निर्धारित वेळेनुसार गंतव्य होस्टकडे पाठवले जात नाही आणि नेटवर्क गर्दी आणि इतर कारणांमुळे जुनी डेटा पॅकेट्स प्रथम गंतव्य होस्टवर येऊ शकतात. हे टाळण्यासाठी, TCP कनेक्शन स्थापित करण्यासाठी तीन-मार्गी हँडशेक वापरते.

थ्री-वे हँडशेक ऐतिहासिक डुप्लिकेट कनेक्शन टाळते

जेव्हा क्लायंट एकापाठोपाठ एकापेक्षा जास्त SYN कनेक्शन स्थापना पॅकेट पाठवतो, नेटवर्क गर्दीसारख्या परिस्थितीत, खालील गोष्टी उद्भवू शकतात:

1- जुने SYN पॅकेट नवीनतम SYN पॅकेट्सपूर्वी सर्व्हरवर येतात.
2- जुने SYN पॅकेट मिळाल्यानंतर सर्व्हर क्लायंटला SYN + ACK पॅकेटचे उत्तर देईल.
3- जेव्हा क्लायंटला SYN + ACK पॅकेट प्राप्त होते, तेव्हा ते त्याच्या स्वतःच्या संदर्भानुसार कनेक्शन ऐतिहासिक कनेक्शन (क्रम क्रमांक कालबाह्य किंवा कालबाह्य) असल्याचे निर्धारित करते आणि नंतर कनेक्शन रद्द करण्यासाठी सर्व्हरला RST पॅकेट पाठवते.

दोन-हँडशेक कनेक्शनसह, वर्तमान कनेक्शन ऐतिहासिक कनेक्शन आहे की नाही हे निर्धारित करण्याचा कोणताही मार्ग नाही. थ्री-वे हँडशेक क्लायंटला तिसरे पॅकेट पाठवण्यास तयार असताना संदर्भावर आधारित वर्तमान कनेक्शन ऐतिहासिक कनेक्शन आहे की नाही हे निर्धारित करण्यास अनुमती देते:

1- जर ते ऐतिहासिक कनेक्शन (क्रम क्रमांक कालबाह्य किंवा कालबाह्य) असेल तर, तिसऱ्या हँडशेकद्वारे पाठवलेले पॅकेट ऐतिहासिक कनेक्शन रद्द करण्यासाठी RST पॅकेट आहे.
2- जर ते ऐतिहासिक कनेक्शन नसेल, तर तिसऱ्यांदा पाठवलेले पॅकेट ACK पॅकेट असते आणि दोन संप्रेषण करणारे पक्ष यशस्वीरित्या कनेक्शन स्थापित करतात.

म्हणून, TCP थ्री-वे हँडशेक वापरते याचे मुख्य कारण म्हणजे ते ऐतिहासिक कनेक्शन टाळण्यासाठी कनेक्शन सुरू करते.

कारण 2: दोन्ही पक्षांचे प्रारंभिक अनुक्रम क्रमांक सिंक्रोनाइझ करण्यासाठी
TCP प्रोटोकॉलच्या दोन्ही बाजूंनी अनुक्रम क्रमांक राखला पाहिजे, जो विश्वासार्ह प्रसारण सुनिश्चित करण्यासाठी एक महत्त्वाचा घटक आहे. टीसीपी कनेक्शनमध्ये अनुक्रम संख्या महत्त्वाची भूमिका बजावतात. ते पुढील गोष्टी करतात:

प्राप्तकर्ता डुप्लिकेट डेटा काढून टाकू शकतो आणि डेटाची अचूकता सुनिश्चित करू शकतो.

डेटाची अखंडता सुनिश्चित करण्यासाठी प्राप्तकर्ता अनुक्रम क्रमांकाच्या क्रमाने पॅकेट प्राप्त करू शकतो.

● क्रम क्रमांक दुसऱ्या पक्षाकडून प्राप्त झालेला डेटा पॅकेट ओळखू शकतो, विश्वसनीय डेटा ट्रान्समिशन सक्षम करतो.

म्हणून, TCP कनेक्शन स्थापित केल्यावर, क्लायंट प्रारंभिक अनुक्रम क्रमांकासह SYN पॅकेट पाठवतो आणि क्लायंटच्या SYN पॅकेटचे यशस्वी रिसेप्शन दर्शविणाऱ्या ACK पॅकेटसह सर्व्हरला उत्तर देणे आवश्यक आहे. त्यानंतर, सर्व्हर क्लायंटला प्रारंभिक अनुक्रम क्रमांकासह SYN पॅकेट पाठवतो आणि प्रारंभिक अनुक्रम क्रमांक विश्वसनीयरित्या सिंक्रोनाइझ केले आहेत याची खात्री करण्यासाठी क्लायंट एकदा आणि सर्वांसाठी उत्तर देण्याची प्रतीक्षा करतो.

दोन्ही पक्षांचे प्रारंभिक अनुक्रमांक समक्रमित करा

जरी चार-मार्गी हँडशेक दोन्ही पक्षांचे प्रारंभिक अनुक्रम क्रमांक विश्वसनीयपणे सिंक्रोनाइझ करण्यासाठी देखील शक्य असले तरी, दुसरे आणि तिसरे चरण एकाच चरणात एकत्र केले जाऊ शकतात, परिणामी तीन-मार्गी हँडशेक होते. तथापि, दोन हँडशेक केवळ हमी देऊ शकतात की एका पक्षाचा प्रारंभिक अनुक्रम क्रमांक दुसऱ्या पक्षाकडून यशस्वीरित्या प्राप्त झाला आहे, परंतु दोन्ही पक्षांच्या प्रारंभिक अनुक्रम क्रमांकाची पुष्टी केली जाऊ शकते याची कोणतीही हमी नाही. म्हणून, TCP कनेक्शनची स्थिरता आणि विश्वासार्हता सुनिश्चित करण्यासाठी त्रि-मार्गी हँडशेक हा सर्वोत्तम पर्याय आहे.

कारण 3: संसाधने वाया घालवणे टाळा
जर फक्त "टू-हँडशेक" असेल, जेव्हा क्लायंट SYN विनंती नेटवर्कमध्ये अवरोधित केली जाते, तेव्हा क्लायंट सर्व्हरद्वारे पाठविलेले ACK पॅकेट प्राप्त करू शकत नाही, म्हणून SYN पुन्हा पाठविला जाईल. तथापि, तिसरा हँडशेक नसल्यामुळे, क्लायंटला कनेक्शन स्थापित करण्यासाठी ACK पावती मिळाली की नाही हे सर्व्हर निर्धारित करू शकत नाही. म्हणून, प्रत्येक SYN विनंती प्राप्त केल्यानंतर सर्व्हर सक्रियपणे कनेक्शन स्थापित करू शकतो. यामुळे पुढील गोष्टी होतात:

संसाधनांचा अपव्यय: जर क्लायंटची SYN विनंती अवरोधित केली असेल, परिणामी एकाधिक SYN पॅकेट्सचे वारंवार प्रसारण होत असेल, तर विनंती प्राप्त झाल्यानंतर सर्व्हर एकाधिक अनावश्यक अवैध कनेक्शन स्थापित करेल. यामुळे सर्व्हर संसाधनांचा अनावश्यक अपव्यय होतो.

संदेश धारणा: तिसऱ्या हँडशेकच्या कमतरतेमुळे, क्लायंटने कनेक्शन स्थापित करण्यासाठी ACK पावती योग्यरित्या प्राप्त केली आहे की नाही हे जाणून घेण्याचा सर्व्हरकडे कोणताही मार्ग नाही. परिणामी, संदेश नेटवर्कमध्ये अडकल्यास, क्लायंट वारंवार SYN विनंत्या पाठवत राहील, ज्यामुळे सर्व्हर सतत नवीन कनेक्शन स्थापित करेल. यामुळे नेटवर्कची गर्दी आणि विलंब वाढेल आणि एकूण नेटवर्क कार्यक्षमतेवर नकारात्मक परिणाम होईल.

संसाधनांचा अपव्यय टाळा

म्हणून, नेटवर्क कनेक्शनची स्थिरता आणि विश्वासार्हता सुनिश्चित करण्यासाठी, TCP या समस्या उद्भवू नये म्हणून कनेक्शन स्थापित करण्यासाठी थ्री-वे हँडशेक वापरते.

सारांश
नेटवर्क पॅकेट ब्रोकरटीसीपी कनेक्शनची स्थापना तीन-मार्गी हँडशेकसह केली जाते. थ्री-वे हँडशेक दरम्यान, क्लायंट प्रथम SYN ध्वजासह एक पॅकेट सर्व्हरला पाठवतो, जे सूचित करते की त्याला कनेक्शन स्थापित करायचे आहे. क्लायंटकडून विनंती प्राप्त केल्यानंतर, सर्व्हर क्लायंटला SYN आणि ACK ध्वजांसह एक पॅकेट प्रत्युत्तर देतो, हे दर्शविते की कनेक्शन विनंती स्वीकारली गेली आहे आणि स्वतःचा प्रारंभिक क्रम क्रमांक पाठवतो. शेवटी, कनेक्शन यशस्वीरित्या स्थापित झाले आहे हे सूचित करण्यासाठी क्लायंट सर्व्हरला ACK ध्वजासह उत्तर देतो. अशा प्रकारे, दोन पक्ष स्थापन स्थितीत आहेत आणि एकमेकांना डेटा पाठवणे सुरू करू शकतात.

सर्वसाधारणपणे, TCP कनेक्शन स्थापनेसाठी थ्री-वे हँडशेक प्रक्रिया कनेक्शनची स्थिरता आणि विश्वासार्हता सुनिश्चित करण्यासाठी, ऐतिहासिक कनेक्शनवर गोंधळ आणि संसाधनांचा अपव्यय टाळण्यासाठी आणि दोन्ही पक्ष डेटा प्राप्त करण्यास आणि पाठविण्यास सक्षम आहेत याची खात्री करण्यासाठी डिझाइन केलेले आहे.


पोस्ट वेळ: जानेवारी-08-2025