Velocizzare rete in Windows: TCP Autotuning

Chiunque usi sistemi Linux – o per questo discorso OS X – sa bene che la navigazione risulta molto più rapida che in Windows. Bisogna tener conto, però, che in quest’ultimo è d’obbligo avere un antivirus – magari un bell’Internet Security – che ci scansiona costantemente il traffico di rete. Solo questo fatto comporta un notevole rallentamento, specialmente poi se la nostra suite di sicurezza è aggressiva verso il mondo intero (ricordo quando provai GData 2009: terrificante).

Oltre a queste chiacchiere sui programmi di sicurezza, un’altra ragione risiede nelle impostazioni predefinite che Windows mette a disposizione per il protocollo TCP. Tra queste abbiamo:

  • Receive-Side Scaling;
  • Chimney Offload;
  • NetDMA;
  • Accesso cache diretto (DCA);
  • Livello regolazione automatica finestra ricezione (TCP Autotuing).

In questo articolo vedremo l’ultima impostazione, che si occupa – in teoria – di ottimizzare la finestra di ricezione .

Dritti al punto: cambio livello Autotuning

I motivi per cui andremo direttamente su questa impostazione è che le altre non è detto che funzionino a pieno con tutte le schede di rete e chipset (per questo non sempre la troviamo abilitata di default) e che solo regolando questa, si ha un notevole miglioramento.

  1. Prima di tutto dobbiamo aprire una sessione di console con privilegi elevati (Start -> scrivere cmd -> tasto destro -> Esegui come amministratore);
  2. Una volta aperto il prompt dei comandi come amministratori, scriviamo netsh interface tcp show global;

    Risultato comando "netsh interface tcp show global"

    Risultato comando “netsh interface tcp show global”

  3. Ora abbiamo un quadro completo dei nostri settaggi e possiamo intervenire dove necessario.

Come valore predefinito abbiamo normal, ma con netsh interface tcp set global autotuninglevel=<livello> è possibile impostare questi:

  • disabled: fissa la dimensione della RWIN a 65535 byte.
  • highlyrestricted: possibili espansioni della RWIN, con politiche molto conservatrici.
  • restricted: permette espansioni della RWIN in alcuni casi.
  • normal (enabled): cambia la dimensione della RWIN a seconda delle situazioni.
  • experimental: permette alla RWIN di espandersi oltre i 16 MB. È orientata a scopi di ricerca in scenari estremi e può degradare le performance in ambienti normali.

Es. netsh interface tcp set global autotuninglevel=restricted

Consiglio di impostarla a normal.

Per qualsiasi problema o domanda, commentate qui sotto 🙂

Cos’è la finestra di ricezione (RWIN)?

La finestra di ricezione TCP rappresenta il massimo numero di pacchetti cumulativi che possono essere ricevuti prima di inviare la conferma di ricezione (ACK) al trasmettitore. La RWIN, di fatto, è un buffer che immagazzina pacchetti fin quando non viene riempita; a questo punto il suo contenuto viene svuotato nello storage e si invia l’ACK al trasmettitore.

Davide

Fondatore ed Autore at FortyZone
Diplomato nel 2015 in Informatica. Studio Informatica alla Sapienza di Roma. Ho diversi interessi e passioni, tra cui musica, cinema, sviluppo software e web, SEO e digital marketing. Ah, suono il basso.