/etc/init.d/networking restart
मुझे विस्तार से बताएं ट्रांसमिशन कंट्रोल प्रोटोकॉल (टीसीपी) को दो अंत बिंदुओं (कार्यक्रमों) के बीच एक द्विदिश, आदेशित और विश्वसनीय डेटा ट्रांसमिशन प्रोटोकॉल के रूप में डिज़ाइन किया गया है। इस संदर्भ में, विश्वसनीय शब्द का अर्थ है कि यदि यह बीच में खो जाता है तो यह पैकेट को फिर से भेज देगा। टीसीपी एक एकल या सहकर्मी से प्राप्त पैकेटों की एक श्रृंखला के लिए वापस पावती (एसीके) पैकेट भेजकर विश्वसनीयता की गारंटी देता है।
यह नियंत्रण संकेतों जैसे समाप्ति अनुरोध / प्रतिक्रिया के लिए समान है। RFC 793 टाइम-वॉइट स्थिति को निम्नानुसार परिभाषित करता है:
TIME-WAIT - यह सुनिश्चित करने के लिए पर्याप्त समय बीतने का इंतजार करता है कि रिमोट टीसीपी को अपने कनेक्शन समाप्ति अनुरोध की पावती प्राप्त हो।
निम्नलिखित टीसीपी राज्य आरेख देखें:
टीसीपी एक द्विदिश संचार प्रोटोकॉल है, इसलिए जब कनेक्शन स्थापित किया जाता है, तो क्लाइंट और सर्वर के बीच कोई अंतर नहीं होता है। इसके अलावा, दोनों में से कोई भी क्विट कह सकता है, और दोनों साथियों को एक स्थापित टीसीपी कनेक्शन को पूरी तरह से बंद करने पर सहमत होने की आवश्यकता है।
चलो पहले को कॉल करने के लिए क्विट्स को सक्रिय करीब कहते हैं, और दूसरा सहकर्मी निष्क्रिय करीब। जब सक्रिय करीब फिन भेजता है, तो राज्य फिन-वॉइट -1 में जाता है। फिर यह भेजे गए फिन के लिए एक एसीके प्राप्त करता है और राज्य फिन-वॉइट -2 में जाता है। एक बार यह निष्क्रिय पास से भी एफआई प्राप्त करता है, सक्रिय करीब एसीके को फिन को भेजता है और राज्य टाइम-वॉइट को जाता है। यदि निष्क्रिय पास को दूसरे फाइनल में ACK प्राप्त नहीं हुआ, तो यह फिन पैकेट को फिर से भेज देगा।
RFC 793 अधिकतम सेगमेंट लाइफटाइम या 2MSL होने के लिए TIME-OUT सेट करता है। MSL के बाद से, एक पैकेट अधिकतम समय इंटरनेट पर घूम सकता है, 2 मिनट के लिए सेट होता है, 2MSL 4 मिनट का होता है। चूँकि ACK में ACK नहीं है, इसलिए सक्रिय करीब कुछ भी नहीं कर सकता है, लेकिन 4 मिनट प्रतीक्षा करने के लिए अगर यह TCP / IP प्रोटोकॉल का सही ढंग से पालन करता है, बस निष्क्रिय प्रेषक ने AC को इसके अंतिम (सैद्धांतिक रूप से) प्राप्त नहीं किया है ।
वास्तव में, लापता पैकेट शायद दुर्लभ हैं, और बहुत दुर्लभ हैं अगर यह सब लैन के भीतर या एक मशीन के भीतर हो रहा है।
प्रश्न शब्द के उत्तर देने के लिए, TIME_WAIT में एक सॉकेट को जबरन बंद कैसे करें ?, मैं अभी भी अपने मूल उत्तर से चिपका रहूंगा:
/etc/init.d/networking restart
व्यावहारिक रूप से, मैं इसे प्रोग्राम करूँगा ताकि यह SO_REUSEADDR विकल्प का उपयोग करके TIME-WAIT स्थिति को अनदेखा करे जैसा कि WMR ने उल्लेख किया है। वास्तव में SO_REUSEADDR क्या करता है?
यह सॉकेट विकल्प कर्नेल को बताता है कि भले ही यह पोर्ट व्यस्त हो (
TIME_WAIT स्थिति में), फिर भी आगे बढ़ें और किसी भी तरह पुन: उपयोग करें। यदि यह व्यस्त है, लेकिन किसी अन्य राज्य के साथ, आपको अभी भी उपयोग त्रुटि में पहले से ही एक पता मिल जाएगा। यदि आपका सर्वर बंद कर दिया गया है, तो यह उपयोगी है, और इसके तुरंत बाद फिर से चालू हो जाता है जबकि सॉकेट्स अभी भी इसके पोर्ट पर सक्रिय हैं। आपको पता होना चाहिए कि यदि कोई अप्रत्याशित डेटा आता है, तो यह आपके सर्वर को भ्रमित कर सकता है, लेकिन जब यह संभव है, तो इसकी संभावना नहीं है।
TIME_WAIT
सर्वर पर बहुत अधिक" के कारण यहां हैं , तो बस पहले तीन उत्तरों के माध्यम से छोड़ें जो प्रश्न का उत्तर देने से बचें।