यदि दो होस्ट (ए & बी) के बीच एक टीसीपी कनेक्शन स्थापित किया गया है, और कहें कि मेजबान ए ने बी होस्ट करने के लिए 5 ऑक्टेट्स भेजे हैं, और फिर होस्ट बी क्रैश (अज्ञात कारण के कारण)। होस्ट ए स्वीकृति के लिए इंतजार करेगा, लेकिन उन्हें प्राप्त करने पर, ऑक्टेट्स को फिर से भेज देगा और प्रेषक विंडो आकार को भी कम करेगा। यह दो बार दोहराएगा जब तक कि पैकेट नुकसान की वजह से खिड़की का आकार शून्य तक गिर जाए। मेरा सवाल है, आगे क्या होगा?मशीन में से एक मरने पर टीसीपी कनेक्शन कैसे समाप्त हो जाता है?
उत्तर
इस मामले में, टीसीपी आखिरकार एएके की प्रतीक्षा कर रहा है और एप्लिकेशन में एक त्रुटि लौटाता है। उस त्रुटि के बारे में जानने के लिए एप्लिकेशन को टीसीपी सॉकेट से पढ़ना/आरईवी करना होगा, बाद में लिखने/प्रेषण कॉल भी असफल हो जाएगी। इस बिंदु तक कि टीसीपी ने निर्धारित किया है कि कनेक्शन खत्म हो गया है, कॉल लिखना/भेजना असफल नहीं होगा, अगर सॉकेट बफर भरा हुआ है तो वे एप्लिकेशन से दिखाई देंगे या ब्लॉक करेंगे।
यदि आपका होस्ट बी इसके एसीके भेजे जाने के बाद गायब हो जाता है, तो होस्ट ए उस बारे में तब तक नहीं सीख पाएगा जब तक कि यह बी को कुछ नहीं भेजता, जो अंततः समय समाप्त हो जाएगा, या परिणामस्वरूप आईसीएमपी त्रुटि होगी। (आम तौर पर पहला लिखना/प्रेषण कॉल विफल नहीं होगा क्योंकि टीसीपी तुरंत कनेक्शन में विफल नहीं होगा, और ध्यान रखें कि कॉल लिखना/भेजना एसीके तक पूरा होने तक इंतजार नहीं करता है)।
ध्यान दें कि पुन: ट्रांसमिशन खिड़की के आकार को कम नहीं करता है।
इस link
अब मेरे विचार में अपने प्रश्न का एक बहुत ही सरल जवाब है, कनेक्शन का समय समाप्त हो जाएगा का पालन करें और बंद कर दिया जाएगा कृपया। एक और संभावना मौजूद है कि कुछ गैर-उत्तरदायी मशीन के कारण कुछ आईसीएमपी त्रुटि उत्पन्न हो सकती है।
इसके अलावा, यदि क्रैश मशीन फिर से ऑनलाइन है, तो ऊपर दिए गए लिंक में वर्णित प्रक्रिया को देखा जाएगा।
ओएस कार्यान्वयन पर निर्भर करता है। संक्षेप में यह एसीके की प्रतीक्षा करेगा और समय-समय पर पैकेट फिर से भेज देगा। तब आपका कनेक्शन फटा जाएगा। लिनक्स में वास्तव में क्या होता है यह देखने के लिए here अन्य ओएस समान एल्गोरिदम का पालन करते हैं।
आपके मामले में, एक एफआईएन उत्पन्न होगा (जीवित नोड द्वारा) और कनेक्शन अंततः बंद राज्य में माइग्रेट हो जाएगा। यदि आप गंतव्य आईपी पते पर नेटस्टैट आउटपुट के लिए grep-ing रखते हैं, तो आप एस्टाब्लिश किए गए राज्य से TIMED_WAIT पर माइग्रेशन देखेंगे और फिर अंततः गायब हो जाएंगे।
आपके मामले में, ऐसा तब होगा जब टीसीपी ने भेजे गए पैकेट के लिए एसीके प्राप्त करने के लिए टाइमर रखा है। यह टाइमर काफी लंबा नहीं है इसलिए पता लगाना बहुत जल्दी होगा।
हालांकि, यदि ए बी के बाद एसी प्राप्त हो जाता है तो मशीन बी मर जाता है और उसके बाद ए कुछ भी नहीं भेजता है, तो उपरोक्त टाइमर एक ही घटना का पता नहीं लगा सकता है, हालांकि एक और टाइमर (निष्क्रिय टाइमआउट कॉल करता है) उस स्थिति का पता लगाएगा और कनेक्शन तब बंद हो जाएगा। यह टाइमआउट अवधि डिफ़ॉल्ट रूप से उच्च है। लेकिन आम तौर पर यह मामला नहीं है, मशीन ए बीच में सामान भेजने की कोशिश करेगा और पथ भेजने में त्रुटि स्थिति का पता लगाएगा।
संक्षेप में, टीसीपी एक मामले को छोड़कर कनेक्शन को बंद करने के लिए पर्याप्त स्मार्ट है (और इसके बारे में एप्लिकेशन को इसके बारे में पता है) (निष्क्रिय टाइमआउट: जो डिफ़ॉल्ट रूप से बहुत अधिक है)।
cforfun
मरने वाली मशीन मरने पर एफआईएन कैसे उत्पन्न कर सकती है? – EJP
@EJP: एक टीसीपी एफआईएन दोनों सिरों द्वारा उत्पन्न किया जा सकता है: जीवित पक्ष में त्रुटि प्रबंधन अपने कार्यान्वयन में सक्रिय बंद कर सकता है और आप जीवित नोड में इस कनेक्शन के लिए नेटस्टैट आउटपुट में FIN_WAIT_1 स्थिति देख सकते हैं। – cforfun
लेकिन एफआईएन उत्पन्न करने से पहले क्या होता है? – EJP
सामान्य मामलों में, प्रत्येक पक्ष एक फिन (समाप्त) के साथ एक विशेष संदेश भेजकर संपर्क के अपने अंत को समाप्त सेट बिट। यह एफआईएन प्राप्त करने वाला डिवाइस एफआईएन को एक पावती के साथ प्रतिक्रिया देता है यह इंगित करने के लिए कि यह प्राप्त हुआ है। पूरे कनेक्शन को समाप्त नहीं किया जाता है जब तक कि दोनों डिवाइस एक एफआईएन भेजकर और पावती प्राप्त करके शट डाउन प्रक्रिया पूरी नहीं कर लेते।
- 1. आपके पास एक ही पोर्ट पर एक टीसीपी कनेक्शन वापस कैसे हो सकता है?
- 2. कैसे पता चलेगा कि एक टीसीपी कनेक्शन एक ही मशीन पर दो प्रक्रियाओं के बीच है?
- 3. एक टीसीपी कनेक्शन
- 4. प्रक्रिया समाप्त हो जाता है कारण StackOverflowException
- 5. मेटा "समाप्त हो जाता है" टैग
- 6. एक विशिष्ट इंटरफेस पर टीसीपी/आईपी कनेक्शन
- 7. HTTP "समाप्त हो जाता है" हैडर क्रोम
- 8. एक टीसीपी कनेक्शन (जावा प्रोग्रामिंग)
- 9. एक टीसीपी कनेक्शन रीडायरेक्ट करें
- 10. HttpContext.Current.Cache - यह स्वचालित रूप से कब समाप्त हो जाता है?
- 11. मर जाता है() PHP में अपना सत्र समाप्त करता है?
- 12. क्या लिनक्स पर मशीनों के बीच टीसीपी/आईपी कनेक्शन की संख्या पर कोई सीमा है?
- 13. टीसीपी क्लाइंट कनेक्शन
- 14. जब ब्राउज़र बंद हो जाता है तो Omniauth सत्र समाप्त हो जाता है
- 15. क्या कोई एप्लिकेशन बंद होने पर एक SQL कनेक्शन स्वचालित रूप से बंद हो जाता है?
- 16. क्या HTTP कनेक्शन मरने पर अपाचे द्वारा निष्पादित एक PHP स्क्रिप्ट है?
- 17. क्या पोर्ट बदलता है जब एक सर्वर द्वारा एक टीसीपी कनेक्शन स्वीकार किया जाता है?
- 18. डेल्फी: सीमित टीसीपी कनेक्शन
- 19. टेलनेट कच्चे टीसीपी कनेक्शन से अलग कैसे होता है
- 20. पोस्टग्रेएसक्यूएल कनेक्शन बड़े डालने पर अप्रत्याशित रूप से बंद हो जाता है
- 21. जावा टीसीपी कनेक्शन
- 22. जब मैं HTTP "समाप्त हो जाता है" शीर्षलेख
- 23. एक मिलियन एक साथ टीसीपी कनेक्शन कैसे बनाए रखें?
- 24. एक्सएपी आधे दिन के बाद समाप्त हो जाता है?
- 25. टीसीपी कनेक्शन लाइफ
- 26. एक टीसीपी कनेक्शन बनाने के सामान्य ओवरहेड
- 27. रूबी में एक टूटी हुई TCP सॉकेट से पुन: प्राप्त करना जब) हो जाता है में (
- 28. फॉर्म प्रमाणीकरण टिकट जल्द ही समाप्त हो जाता है
- 29. एंड्रॉइड httpclient सर्वर के दूसरे अनुरोध पर लटकता है (कनेक्शन का समय समाप्त हो गया है)
- 30. सॉकेट कनेक्शन और टीसीपी कनेक्शन के बीच कोई अंतर?
यह सिंक बाढ़ नहीं है? –