GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu vyladit počáteční časový limit opakovaného přenosu TCP?

Řešení 1:

Ne, nemůžete; je pevně zakódován v jádře. Změňte tedy jádro a překompilujte.

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

Toto byste měli získat ve svém include/net/tcp.h.

Ale vidím, že někdo poskytl opravu, i když jsem to sám nikdy nezkusil

Řešení 2:

Počáteční nastavení by nemělo příliš ovlivnit váš celkový výkon, protože RTO se samo přizpůsobí podmínkám sítě. Pokud změníte RTO, můžete jej nastavit na 1 sekundu (ale ne méně).

O tom se diskutuje v 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 je navrhovaná aktualizace (zveřejněná v červnu 2011), která říká, že RTO lze inicializovat na nižší hodnotu (ale ne kratší než 1 sekundu) a obsahuje dodatek obsahující data, která odůvodňují 1 sekundu jako rozumnou počáteční hodnotu.


Linux
  1. Jak mohu přiřadit počáteční/výchozí heslo uživateli v Linuxu?

  2. 8G RAM a SSD - jak velký by měl být swap?

  3. Jak mohu sledovat délku fronty přijetí?

  1. Jak mohu najít verzi Fedory, kterou používám?

  2. Jak mohu získat stav klávesnice v Linuxu?

  3. Jak mohu v handleru SIGILL přeskočit problematickou instrukci?

  1. Jak mohu zabít TCP port 16969 v Bash?

  2. Jak mohu znát absolutní cestu běžícího procesu?

  3. Jak mohu upravit $PATH na linuxu?