मैं एक साधारण HTTP सर्वर लिख रहा हूं और TIME_WAIT के बारे में सीख रहा हूं। भारी वातावरण में असली वेब सर्वर हजारों उपयोगकर्ताओं से अनुरोधों को संभालने के बाद TIME_WAIT में फंसने वाले सभी सॉकेट के बिना अनुरोध कैसे संभालते हैं? (जीवित रहने के बारे में नहीं पूछना - इससे एक ग्राहक के लिए मदद मिलेगी, लेकिन हजारों विभिन्न ग्राहकों के माध्यम से नहीं आती)।वेब सर्वर TIME_WAIT से कैसे बचते हैं?
मैंने पढ़ा है कि आप क्लाइंट को पहले बंद करने का प्रयास करते हैं और प्राप्त करते हैं, ताकि सभी टाइम_डब्ल्यूआईटी सर्वर पर केंद्रित होने के बजाय सभी ग्राहकों के बीच फैल जाए।
यह कैसे किया जाता है? किसी बिंदु पर सर्वर को बंद/बंद करने की आवश्यकता होती है।
तो क्या सर्वर बस घूमता है और ग्राहक को बंद करने की प्रतीक्षा करता है? मुझे लगता है कि किसी बिंदु पर यह समय समाप्त करना और कनेक्शन को बंद करना चाहता है। – DougN
जो मुझे एक और प्रश्न के बारे में सोचता है :) क्या आपको लगता है कि एक वास्तविक वेब सर्वर (आईआईएस/अपाचे?) बस 5 (?) दूसरी टाइमआउट के साथ सॉकेट पर चयन करें - यह पता लगाना कि क्लाइंट के लिए बहुत समय होना चाहिए डिस्कनेक्ट करें (और त्रुटि सॉकेट के साथ वापसी का चयन करें)? – DougN
यदि आप इसे बंद करने के बजाय कनेक्शन रीसेट करते हैं तो आप TIME_WAIT में भी समाप्त नहीं होते हैं। इसलिए यदि आप निष्क्रिय कनेक्शन के लिए टाइमआउट जोड़ना चाहते हैं तो आप उन्हें पहले अदरक बंद करके और फिर बंद करने के द्वारा बंद कर देंगे। यह एक आरएसटी भेज देगा और आप TIME_WAIT में समाप्त नहीं होंगे। –