टीसीपी / आईपी रीसेट (आरएसटी) ध्वज भेजने का क्या कारण है?


122

मैं यह पता लगाने की कोशिश कर रहा हूं कि मेरे ऐप का टीसीपी / आईपी कनेक्शन हर 10 मिनट (वास्तव में, 1-2 सेकंड के भीतर) हिचकी क्यों रखता है। मैंने विंडशार्क चलाया और पाया कि 10 मिनट की निष्क्रियता के बाद दूसरा छोर रीसेट (आरएसटी) ध्वज सेट के साथ एक पैकेट भेज रहा है। एक Google खोज मुझे बताती है "RESET ध्वज दर्शाता है कि रिसीवर भ्रमित हो गया है और इसलिए कनेक्शन को समाप्त करना चाहता है" लेकिन मुझे उस विवरण की थोड़ी कमी है जो मुझे चाहिए। ऐसा किसके कारण हो सकता है? और क्या यह संभव है कि इसके साथ कुछ राउटर इसके लिए जिम्मेदार हैं या यह हमेशा दूसरे बिंदु से आएगा?

संपादित करें: मेरे कंप्यूटर और दूसरे समापन बिंदु के बीच एक राउटर है (विशेष रूप से एक Linksys WRT-54G), जो राउटर सेटिंग्स में दिखना चाहिए?


12
यहाँ एक और है: कॉमकास्ट
टॉम रिटर

1
हे सौभाग्य से मुझे कॉमकास्ट पर निर्भरता नहीं है क्योंकि यह एक लैन के भीतर हो रहा है। मेरी इच्छा है कि मैं उस दोष को आसानी से शिफ्ट कर सकूं;)
ल्यूक

क्या आपको कभी यह पता चला? मैं टिप्पणी नहीं कर सकता क्योंकि मेरे पास पर्याप्त अंक नहीं हैं, लेकिन मेरे पास एक ही सटीक समस्या है जो आप कर रहे थे और मैं एक फिक्स की तलाश कर रहा हूं।

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

"कॉमकास्ट" आप कहते हैं? : D इस संबंधित रेपो की जाँच करें: github.com/tylertreat/comcast
joonas.fi

जवाबों:


88

एक 'राउटर' कुछ भी कर सकता है - विशेष रूप से NAT, जिसमें ट्रैफ़िक के साथ बग-राइड की गड़बड़ी की कोई भी राशि शामिल हो सकती है ...

एक कारण एक डिवाइस एक RST भेजेगा जो एक बंद सॉकेट के लिए एक पैकेट प्राप्त करने की प्रतिक्रिया में है।

एक फर्म लेकिन सामान्य उत्तर देना कठिन है, क्योंकि इसकी स्थापना के बाद से हर संभव विकृति टीसीपी पर देखी गई है, और यातायात को अवरुद्ध करने के प्रयास में सभी प्रकार के लोग आरएसटी डाल सकते हैं। (उदाहरण के लिए कुछ राष्ट्रीय फायरवॉल 'इस तरह से काम करते हैं।)


6
या तो राउटर में टीसीपी कनेक्शन के लिए 10 मिनट का टाइमआउट है या राउटर में "गेटवे स्मार्ट पैकेट डिटेक्शन" सक्षम है।
डेविड श्वार्ट्ज

2
यह सुझाव देना थोड़ा समृद्ध है कि राउटर बग-राइड हो सकता है।
लोर्ने

22

एक पैकेट स्निफ़र (उदाहरण के लिए, विरेचक) भी सहकर्मी पर देखें कि क्या वह सहकर्मी है जो आरएसटी या किसी को बीच में भेज रहा है।


14

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


7

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


6
दोनों पक्ष एक सामान्य क्लोजर में एक फिन भेजते हैं और प्राप्त करते हैं। इस स्थिति में कुछ भी गलत नहीं है, और इसलिए एक पक्ष के लिए रीसेट जारी करने का कोई कारण नहीं है। पहला वाक्य भी समझ में नहीं आता है।
लोरेन

2
[आरएसटी, एसीके] को उस पक्ष द्वारा भी भेजा जा सकता है जो एक बंदरगाह पर SYN प्राप्त कर रहा है जिसे नहीं सुना जा रहा है। मेरे द्वारा चलाए गए एक मामले में, पहले SYN के लगभग 60 सेकंड बाद RST / ACK आया। एफडब्ल्यूआईडब्ल्यू
लेस

6

कुछ फ़ायरवॉल ऐसा करते हैं कि यदि कनेक्शन x मिनट की संख्या के लिए निष्क्रिय है। कुछ ISP ने अपने राउटर को ऐसा करने के लिए विभिन्न कारणों से निर्धारित किया है।

इस दिन और उम्र में, आपको उस शर्त को इनायत से संभालना होगा (आवश्यकतानुसार फिर से स्थापित करना होगा)।


2
कनेक्शन फिर से ठीक स्थापित किया गया है, समस्या यह है कि डिस्कनेक्ट की संक्षिप्त अवधि अनावश्यक रूप से अलर्ट का कारण बनती है।
ल्यूक

1
मैं विशेष रूप से सिस्को PIX / ASA उपकरण के साथ समस्या है। उनके पास विशेष रूप से कम समय चूक हैं। इस संबंध में सस्ता उपकरण आमतौर पर "बेहतर" होता है (जैसा कि वे वास्तविक तेजी से समय समाप्त नहीं करते हैं ...)
ब्रायन नोब्लुच

6

यदि कोई राउटर नैट कर रहा है, विशेष रूप से कुछ संसाधनों के साथ एक कम अंत वाला राउटर, तो यह सबसे पुराने टीसीपी सत्रों को पहले आयु देगा। ऐसा करने के लिए यह RSTपैकेट में ध्वज को सेट करता है जो प्रभावी रूप से प्राप्त स्टेशन को बताता है (बहुत ही अनमने से) कनेक्शन को बंद करें। यह संसाधनों को बचाने के लिए किया जाता है।


3

एक बात का ध्यान रखें कि कई लिनक्स नेटफिल्टर फायरवॉल गलत हैं।

यदि आपके पास कुछ ऐसा है:

-एक फॉरवर्ड राज्य - संबंधित संबंधित, स्थापित -j ACCEPT

एक फॉरवर्ड -p tcp -j REJECT --reject-tcp-reset के साथ

फिर पैकेट रिवाइंडिंग के परिणामस्वरूप पैकेट को अमान्य मानकर फ़ायरवॉल में परिणाम किया जा सकता है और इस तरह से रीसेट कर सकते हैं जो बाद में अन्यथा स्वस्थ कनेक्शन को तोड़ देगा।

वायरलेस नेटवर्क के साथ रीऑर्डरिंग की संभावना विशेष रूप से होती है।

इसके बजाय यह होना चाहिए:

-एक फॉरवर्ड राज्य - संबंधित संबंधित, स्थापित -j ACCEPT

-एक फॉरवर्ड राज्य - स्टेट इनवैलिड -जे डीआरओपी

एक फॉरवर्ड -p tcp -j REJECT --reject-tcp-reset के साथ

मूल रूप से आपके पास कभी भी:

... -म राज्य - संबंधित संबंधित, स्थापित -j ACCEPT

इसका तुरंत पालन किया जाना चाहिए:

... -म राज्य --state INVALID -j DROP

एक पैकेट को फिर से गिराना बेहतर है ताकि tcp रीसेट को बाधित करने वाले एक संभावित प्रोटोकॉल को उत्पन्न किया जा सके। रीसेट बेहतर हैं जब वे भेजने के लिए सही तरीके से सही हैं ... क्योंकि इससे समय समाप्त हो जाता है। लेकिन अगर कोई मौका है तो वे अमान्य हैं तो वे इस तरह के दर्द का कारण बन सकते हैं।


0

ऐसा इसलिए है क्योंकि आपके टीसीपी कनेक्शन के लिए आरएसटी भेजने वाले नेटवर्क में एक और प्रक्रिया है।

आम तौर पर निम्नलिखित मामले में RST भेजा जाएगा

  • सॉकेट बंद करने की प्रक्रिया जब SO_LINGER विकल्प का उपयोग करके सॉकेट को सक्षम किया जाता है
  • जब आप सॉकेट को बंद किए बिना अपनी प्रक्रिया से बाहर निकलते हैं, तो ओएस संसाधन की सफाई कर रहा होता है।

आपके मामले में, ऐसा लगता है कि एक प्रक्रिया आपके कनेक्शन (आईपी + पोर्ट) को जोड़ रही है और कनेक्शन स्थापित करने के बाद आरएसटी भेजती रहती है।

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