नेटवर्क पैकेट ब्रोकर टीसीपी कनेक्शन के प्रमुख रहस्य: ट्रिपल हैंडशेक की आवश्यकता को कम कर दिया

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

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

टीसीपी थ्री-वे हैंडशेक प्रक्रिया और राज्य संक्रमण
टीसीपी एक कनेक्शन-उन्मुख परिवहन प्रोटोकॉल है, जिसे डेटा ट्रांसमिशन से पहले कनेक्शन स्थापना की आवश्यकता होती है। यह कनेक्शन स्थापना प्रक्रिया तीन-तरफ़ा हैंडशेक द्वारा की जाती है।

 टीसीपी थ्री-वे हैंडशेक

आइए प्रत्येक कनेक्शन में भेजे गए टीसीपी पैकेटों पर करीब से नज़र डालें।

प्रारंभ में, क्लाइंट और सर्वर दोनों बंद हैं। सबसे पहले, सर्वर सक्रिय रूप से एक पोर्ट पर सुनता है और सुनने की स्थिति में है, जिसका अर्थ है कि सर्वर को शुरू किया जाना चाहिए। अगला, क्लाइंट वेबपेज तक पहुंचने के लिए तैयार है। यह सर्वर के साथ कनेक्शन स्थापित करने की आवश्यकता है। पहले कनेक्शन पैकेट का प्रारूप इस प्रकार है:

 सिन पैकेट

जब कोई क्लाइंट एक कनेक्शन शुरू करता है, तो यह एक यादृच्छिक प्रारंभिक अनुक्रम संख्या (client_isn) उत्पन्न करता है और इसे TCP हेडर के "अनुक्रम संख्या" फ़ील्ड में रखता है। इसी समय, क्लाइंट यह इंगित करने के लिए SYN ध्वज स्थिति को 1 पर सेट करता है कि आउटगोइंग पैकेट एक SYN पैकेट है। क्लाइंट इंगित करता है कि वह सर्वर को पहला SYN पैकेट भेजकर सर्वर के साथ कनेक्शन स्थापित करना चाहता है। इस पैकेट में एप्लिकेशन लेयर डेटा (यानी, डेटा भेजा गया है) नहीं है। इस बिंदु पर, क्लाइंट की स्थिति को SYN-SENT के रूप में चिह्नित किया गया है।

Syn+ack पैकेट

जब कोई सर्वर क्लाइंट से एक SYN पैकेट प्राप्त करता है, तो यह बेतरतीब ढंग से अपने स्वयं के सीरियल नंबर (Server_isn) को इनिशियलाइज़ करता है और फिर उस नंबर को TCP हेडर के "सीरियल नंबर" फ़ील्ड में डालता है। इसके बाद, सर्वर "पावती संख्या" फ़ील्ड में Client_isn + 1 में प्रवेश करता है और Syn और ACK बिट्स दोनों को 1 पर सेट करता है। अंत में, सर्वर क्लाइंट को पैकेट भेजता है, जिसमें कोई एप्लिकेशन-लेयर डेटा नहीं होता है (और सर्वर को भेजने के लिए कोई डेटा नहीं)। इस समय, सर्वर SYN-RCVD स्थिति में है।

एक पैकेट

एक बार जब क्लाइंट को सर्वर से पैकेट प्राप्त होता है, तो उसे अंतिम उत्तर पैकेट का जवाब देने के लिए निम्नलिखित अनुकूलन करने की आवश्यकता होती है: सबसे पहले, क्लाइंट उत्तर पैकेट के टीसीपी हेडर के एसीके बिट को 1 पर सेट करता है; दूसरा, क्लाइंट "उत्तर संख्या" फ़ील्ड में मान Server_isn + 1 में प्रवेश करता है; अंत में, क्लाइंट सर्वर को पैकेट भेजता है। यह पैकेट क्लाइंट से सर्वर तक डेटा ले जा सकता है। इन कार्यों के पूरा होने पर, ग्राहक स्थापित राज्य में प्रवेश करेगा।

एक बार जब सर्वर क्लाइंट से उत्तर पैकेट प्राप्त करता है, तो यह स्थापित स्थिति में भी स्विच करता है।

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

तीन हैंडशेक क्यों? दो बार नहीं, चार बार?
आम जवाब है, "क्योंकि तीन-तरफ़ा हैंडशेक प्राप्त करने और भेजने की क्षमता की गारंटी देता है।" यह उत्तर सही है, लेकिन यह केवल सतह का कारण है, मुख्य कारण को आगे नहीं बढ़ाता है। निम्नलिखित में, मैं इस मुद्दे की हमारी समझ को गहरा करने के लिए तीन पहलुओं से ट्रिपल हैंडशेक के कारणों का विश्लेषण करूंगा।

तीन-तरफ़ा हैंडशेक प्रभावी रूप से ऐतिहासिक रूप से दोहराए गए कनेक्शन (मुख्य कारण) के आरंभ से बच सकता है
तीन-तरफ़ा हैंडशेक गारंटी देता है कि दोनों पक्षों को एक विश्वसनीय प्रारंभिक अनुक्रम संख्या मिली है।
तीन-तरफ़ा हैंडशेक संसाधनों को बर्बाद करने से बचता है।

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

तीन-तरफ़ा हैंडशेक ऐतिहासिक डुप्लिकेट कनेक्शन से बचता है

जब कोई ग्राहक उत्तराधिकार में कई SYN कनेक्शन स्थापना पैकेट भेजता है, तो नेटवर्क भीड़ जैसी स्थितियों में, निम्नलिखित हो सकता है:

1- पुराने SYN पैकेट नवीनतम SYN पैकेट से पहले सर्वर पर पहुंचते हैं।
2- सर्वर पुराने SYN पैकेट को प्राप्त करने के बाद क्लाइंट को एक SYN + ACK पैकेट का जवाब देगा।
3- जब क्लाइंट SYN + ACK पैकेट प्राप्त करता है, तो यह निर्धारित करता है कि कनेक्शन अपने स्वयं के संदर्भ के अनुसार एक ऐतिहासिक कनेक्शन (अनुक्रम संख्या समाप्त या टाइमआउट) है, और फिर कनेक्शन को निरस्त करने के लिए सर्वर को RST पैकेट भेजता है।

दो-हैंडशेक कनेक्शन के साथ, यह निर्धारित करने का कोई तरीका नहीं है कि वर्तमान कनेक्शन एक ऐतिहासिक कनेक्शन है या नहीं। तीन-तरफ़ा हैंडशेक ग्राहक को यह निर्धारित करने की अनुमति देता है कि क्या वर्तमान कनेक्शन एक ऐतिहासिक कनेक्शन है जो संदर्भ के आधार पर है जब यह तीसरा पैकेट भेजने के लिए तैयार है:

1- यदि यह एक ऐतिहासिक कनेक्शन (अनुक्रम संख्या समाप्त या टाइमआउट) है, तो तीसरे हैंडशेक द्वारा भेजा गया पैकेट ऐतिहासिक कनेक्शन को निरस्त करने के लिए एक आरएसटी पैकेट है।
2- यदि यह एक ऐतिहासिक संबंध नहीं है, तो तीसरी बार भेजा गया पैकेट एक ACK पैकेट है, और दो संचार करने वाले दल सफलतापूर्वक कनेक्शन स्थापित करते हैं।

इसलिए, टीसीपी तीन-तरफ़ा हैंडशेक का उपयोग करने का मुख्य कारण यह है कि यह ऐतिहासिक कनेक्शन को रोकने के लिए कनेक्शन को इनिशियलाइज़ करता है।

कारण 2: दोनों पक्षों के प्रारंभिक अनुक्रम संख्या को सिंक्रनाइज़ करने के लिए
टीसीपी प्रोटोकॉल के दोनों किनारों को एक अनुक्रम संख्या बनाए रखना चाहिए, जो विश्वसनीय ट्रांसमिशन सुनिश्चित करने के लिए एक महत्वपूर्ण कारक है। अनुक्रम संख्या टीसीपी कनेक्शन में एक महत्वपूर्ण भूमिका निभाती है। वे निम्नलिखित करते हैं:

रिसीवर डुप्लिकेट डेटा को समाप्त कर सकता है और डेटा की सटीकता सुनिश्चित कर सकता है।

रिसीवर डेटा की अखंडता सुनिश्चित करने के लिए अनुक्रम संख्या के क्रम में पैकेट प्राप्त कर सकता है।

● अनुक्रम संख्या अन्य पक्ष द्वारा प्राप्त किए गए डेटा पैकेट की पहचान कर सकती है, जो विश्वसनीय डेटा ट्रांसमिशन को सक्षम करती है।

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

दोनों पक्षों के प्रारंभिक सीरियल नंबरों को सिंक्रनाइज़ करें

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

कारण 3: संसाधनों को बर्बाद करने से बचें
यदि केवल एक "दो-हैंडशेक" है, जब क्लाइंट SYN अनुरोध नेटवर्क में अवरुद्ध हो जाता है, तो क्लाइंट सर्वर द्वारा भेजे गए ACK पैकेट को प्राप्त नहीं कर सकता है, इसलिए SYN नाराज हो जाएगा। हालाँकि, चूंकि कोई तीसरी हैंडशेक नहीं है, इसलिए सर्वर यह निर्धारित नहीं कर सकता है कि क्लाइंट को कनेक्शन स्थापित करने के लिए ACK पावती प्राप्त हुई है या नहीं। इसलिए, सर्वर केवल प्रत्येक SYN अनुरोध प्राप्त करने के बाद केवल एक कनेक्शन स्थापित कर सकता है। यह निम्नलिखित की ओर जाता है:

संसाधनों की बर्बादी: यदि क्लाइंट का SYN अनुरोध अवरुद्ध है, जिसके परिणामस्वरूप कई SYN पैकेटों का बार -बार ट्रांसमिशन होता है, तो सर्वर अनुरोध प्राप्त करने के बाद कई निरर्थक अमान्य कनेक्शन स्थापित करेगा। यह सर्वर संसाधनों की अनावश्यक अपशिष्ट की ओर जाता है।

संदेश प्रतिधारण: तीसरे हैंडशेक की कमी के कारण, सर्वर के पास यह जानने का कोई तरीका नहीं है कि क्लाइंट को कनेक्शन स्थापित करने के लिए ACK पावती को सही ढंग से प्राप्त किया गया है या नहीं। नतीजतन, यदि संदेश नेटवर्क में फंस जाते हैं, तो क्लाइंट बार -बार SYN अनुरोध भेजता रहेगा, जिससे सर्वर लगातार नए कनेक्शन स्थापित कर सकता है। यह नेटवर्क की भीड़ और देरी को बढ़ाएगा और समग्र नेटवर्क प्रदर्शन को नकारात्मक रूप से प्रभावित करेगा।

संसाधनों को बर्बाद करने से बचें

इसलिए, नेटवर्क कनेक्शन की स्थिरता और विश्वसनीयता सुनिश्चित करने के लिए, टीसीपी इन समस्याओं की घटना से बचने के लिए कनेक्शन को स्थापित करने के लिए तीन-तरफ़ा हैंडशेक का उपयोग करता है।

सारांश
नेटवर्क पैकेट दलालटीसीपी कनेक्शन प्रतिष्ठान तीन-तरफ़ा हैंडशेक के साथ किया जाता है। तीन-तरफ़ा हैंडशेक के दौरान, क्लाइंट पहले सर्वर को SYN ध्वज के साथ एक पैकेट भेजता है, यह दर्शाता है कि वह एक कनेक्शन स्थापित करना चाहता है। क्लाइंट से अनुरोध प्राप्त करने के बाद, सर्वर क्लाइंट को SYN और ACK झंडे के साथ एक पैकेट का जवाब देता है, यह दर्शाता है कि कनेक्शन अनुरोध स्वीकार कर लिया गया है, और अपना प्रारंभिक अनुक्रम संख्या भेजता है। अंत में, क्लाइंट सर्वर को एक ACK ध्वज के साथ जवाब देता है कि कनेक्शन सफलतापूर्वक स्थापित किया गया है। इस प्रकार, दोनों पक्ष स्थापित अवस्था में हैं और एक दूसरे को डेटा भेजना शुरू कर सकते हैं।

सामान्य तौर पर, टीसीपी कनेक्शन स्थापना के लिए तीन-तरफ़ा हैंडशेक प्रक्रिया कनेक्शन स्थिरता और विश्वसनीयता सुनिश्चित करने के लिए डिज़ाइन की गई है, ऐतिहासिक कनेक्शन पर संसाधनों की भ्रम और बर्बादी से बचें, और यह सुनिश्चित करें कि दोनों पक्ष डेटा प्राप्त करने और भेजने में सक्षम हैं।


पोस्ट टाइम: JAN-08-2025