मैं शुरुआती टीसीपी रीट्रिमस टाइमआउट को कैसे ट्यून कर सकता हूं?


14

3s का प्रारंभिक TCP RTO मान अधिकांश LAN- आधारित अनुप्रयोगों के लिए बहुत लंबा है। मैं इसे कैसे कम कर सकता हूं? वहाँ एक sysctl है?

जवाबों:


12

नहीं, आप नहीं कर सकते; यह कर्नेल में हार्डकोड है। इसलिए कर्नेल और रीकैपाइल बदलें।

#define TCP_TIMEOUT_INIT ((unsigned)(3*HZ))     /* RFC 1122 initial RTO value   */

यह वही है जो आपको अपने शामिल / नेट / tcp.h में प्राप्त करना चाहिए।

लेकिन मैं देख सकता हूं कि किसी ने एक पैच प्रदान किया , भले ही उसने खुद कभी कोशिश नहीं की


4

प्रारंभिक सेटिंग आपके समग्र प्रदर्शन को बहुत प्रभावित नहीं करना चाहिए, क्योंकि आरटीओ नेटवर्क स्थितियों के लिए स्वयं को समायोजित करता है। यदि आप RTO बदलते हैं, तो आप इसे 1 सेकंड (लेकिन कम नहीं) पर सेट कर सकते हैं।

RFC 1122 में इसकी चर्चा है :

        The following values SHOULD be used to initialize the
        estimation parameters for a new connection:
        (a)  RTT = 0 seconds.

        (b)  RTO = 3 seconds.  (The smoothed variance is to be
             initialized to the value that will result in this RTO).

        The recommended upper and lower bounds on the RTO are known
        to be inadequate on large internets.  The lower bound SHOULD
        be measured in fractions of a second (to accommodate high
        speed LANs) and the upper bound should be 2*MSL, i.e., 240
        seconds.

        DISCUSSION:
             Experience has shown that these initialization values
             are reasonable, and that in any case the Karn and
             Jacobson algorithms make TCP behavior reasonably
             insensitive to the initial parameter choices.

RFC 6298 एक प्रस्तावित अपडेट (जून 2011 में प्रकाशित) है जो कहता है कि आरटीओ को कम मूल्य (लेकिन 1 सेकंड से कम नहीं) में आरंभीकृत किया जा सकता है, और इसमें एक परिशिष्ट युक्त डेटा शामिल है जो 1 सेकंड को एक उचित प्रारंभिक मूल्य के रूप में बताता है ।


1 सेकेंड SHOULD है, न कि MUST; btw आप एक प्रसिद्ध खोज इंजन सामने के छोरों के
आरटीओ

मैं इस कथन से असहमत हूं "प्रारंभिक सेटिंग को आपके समग्र प्रदर्शन को प्रभावित नहीं करना चाहिए,"। यह प्रारंभिक संचार पर आवेदन के लिए आपकी त्रुटि दर को प्रभावित कर सकता है। जब बैकएंड एप्लिकेशन 3 सेकंड या उससे कम समय के लिए रीडआउट टाइमआउट सेट करता है, तो शुरुआती टीसीपी संचार के दौरान नेटवर्क पर पैकेट ड्रॉप (किसी भी भीड़ के साथ सामान्य घटना) एक गिराए गए पैकेट के उचित पुनर्प्राप्ति के लिए अनुमति नहीं देगा। प्रारंभिक मूल्य प्राप्त अंत तक पढ़े गए टाइमआउट से कम होना चाहिए और आपके द्वारा चलाए जा रहे नेटवर्क के क्यूओएस पर आधारित होना चाहिए।
जो

3 सेकंड स्थानीय नेटवर्क पर एक अनंत काल है और पैकेट ड्रॉप वास्तविक तेजी से एक नेटवर्क होता है जहां गोल यात्रा का समय मिलीसेकंड में होता है।
जो

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