CLOSE_WAIT और TIME_WAIT राज्य क्या हैं?


166

जब मैं netstat -aअपनी विंडोज मशीन पर करता हूं, मुझे चार राज्यों में से एक के साथ बंदरगाहों की एक सूची मिलती है:

- LISTENING
- CLOSE_WAIT
- TIME_WAIT
- ESTABLISHED

क्या करें CLOSE_WAITऔर क्या करें TIME_WAIT/ इंगित करें?



'मैन नेटस्टैट' देखें, राज्य अनुभाग तक नीचे जाएं: linux.die.net/man/8/netstat
MaQleod

1
हमारे बहिन सर्वर दोष पर एक जवाब के लिए बेशर्म प्लग
हेन्नेस

क्रॉस साइट शिकार: askubuntu.com/questions/538443/...
Mokubai

जवाबों:


179

टीसीपी / आईपी के काम करने के तरीके के कारण, कनेक्शन तुरंत बंद नहीं किए जा सकते हैं। कनेक्शन बंद होने के बाद पैकेट ऑर्डर से बाहर आ सकते हैं या वापस ले लिए जा सकते हैं। CLOSE_WAIT इंगित करता है कि दूरस्थ समापन बिंदु (कनेक्शन का दूसरा पक्ष) ने कनेक्शन बंद कर दिया है। TIME_WAIT इंगित करता है कि स्थानीय समापन बिंदु (इस तरफ) ने कनेक्शन बंद कर दिया है। कनेक्शन को चारों ओर रखा जा रहा है ताकि किसी भी देरी के पैकेट को कनेक्शन से मिलान किया जा सके और उचित तरीके से संभाला जा सके। चार मिनट के भीतर समय समाप्त होने पर कनेक्शन हटा दिए जाएंगे। अधिक जानकारी के लिए http://en.wikipedia.org/wiki/Transmission_Control_Protocol देखें ।


लेकिन क्या इसका मतलब यह नहीं है कि अगर पैकेट फंक्शन के वापस आने के बाद भी आते हैं, तो भी उन्हें आवेदन के द्वारा छोड़ दिया जाएगा?
मॉन्स्टरमोरपीजी

@MonsterMMORPG पैकेट जो कनेक्शन बंद होने के बाद ऑर्डर से बाहर आते हैं, उन्हें नेटवर्क स्टैक द्वारा नियंत्रित किया जाएगा। इन्हें आमतौर पर सामान्य डुप्लिकेट पैकेट नियमों के अनुसार सुरक्षित रूप से त्याग दिया जा सकता है। अज्ञात सक्रिय कनेक्शन से संबंधित पैकेट सामान्य रूप से खारिज कर दिया जाता है, और एक प्रतिक्रिया उत्पन्न करता है। WAIT राज्यों को इस यातायात से बचाता है।
बिलथोर

29

मूल रूप से "WAIT" का अर्थ है कि एक पक्ष ने कनेक्शन बंद कर दिया है, लेकिन अंतिम की अंतिम पुष्टि लंबित है।

विवरण के लिए देखें टीसीपी राज्यों का यह आरेख:

http://www.jxos.org/Projects/TCP/tcpstate.html


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

1
@ क्रिसमॉवटन, तो सही शब्दावली का उपयोग कौन कर रहा है? आरेख या netstat? ( cf. )
पेसियर

@ स्पेसर मुझे लगता है कि वे मेल खाते हैं - आपको क्या लगता है कि वे असहमत हैं?
क्रिस स्मौटन

@ChrisSmowton तो इसका मतलब है कि अगले बंदरगाह के मालिक को अतिरिक्त बाइट्स मिल सकते हैं और अगर हम TIME_WAIT = 0 सेट करते हैं तो प्रतिक्रिया को तोड़ सकते हैं?
मॉन्स्टरमोरपीजी

संभव है, लेकिन बहुत ही संभावना नहीं है, क्योंकि अनुक्रम संख्या आवेदन के लिए मैच करने की आवश्यकता होगी, ताकि धारा में बदमाश पैकेट को देखा जा सके, या रिसीवर को आदेश के पैकेट से जाहिरा तौर पर बफर करने की आवश्यकता होगी, जब तक कि सही अनुक्रम संख्या चारों ओर न आ जाए। मैं आपको यह बताने के लिए व्यावहारिक कार्यान्वयन के बारे में पर्याप्त नहीं जानता कि क्या बाद में अभ्यास किया जाता है।
क्रिस स्मौटन

1

TIME_WAIT यह सुनिश्चित करने के लिए पर्याप्त समय की प्रतीक्षा का प्रतिनिधित्व करता है कि दूरस्थ TCP को अपने अंतिम अनुरोध का ACK प्राप्त हुआ है। देखें en.wikipedia.org/wiki/Transmission_Control_Protocol (और यह भी 793 RFC)


1
यह मौजूदा उत्तरों द्वारा दी गई जानकारी से क्या जोड़ता है?
फिक्सर 1234

RFC 793
Denio Mariz
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.