Ottimizzare e velocizzare la connessione ADSL

In questa guida vedremo alcuni passi di base che possono servire a velocizzare ed ottimizzare la connessione adsl in modo da renderla più reattiva, con minori tempi di ping (tempo di riposta) e velocizzare nel complesso l'invio e la ricezione di pacchetti.
Come sistema operativo di esempio prenderemo Windows XP e Windows Vista, ciononostante le informazioni sono tranquillamente applicabili anche a qualsiasi altro sistema operativo su cui sia installato il driver TCP/IP.

Introduzione

Si tenga nota di questi importanti parametri:

  • MTU (Maximum Transfer Unit) : È la dimensione massima (in byte) di un pacchetto TCP inviato; il massimo è 1500.
  • MRU (Maximum Receive Unit) : È la dimensione massima (in byte) di un pacchetto TCP ricevuto.
  • MSS (Maximum Segment Size): La dimensione massima di un segmento. Solitamente viene calcolata automaticamente a partire dai valori di MTU e MRU. È importante che l' RWIN sia un multiplo dell' MSS moltiplicato per 44.
  • TTL (Time To Live): Il numero massimo di "punti" attraverso i quali un pacchetto può passare prima di essere considerato perso. Generalmente è impostato tra 64 e 128. È generalmente inutile modificarlo.
  • RWIN (TCP Receive Window) : È il numero di dati che un computer della rete può ricevere senza dover aspettare la conferma di avvenuto passaggio del pacchetto.
  • Il path mode della connessione ADSL: In italia esistono due tipi: Interleaved e Fast. Il primo ha tempi di ping medi ma con un controllo errori sui pacchetti di dati, il secondo ha tempi di ping ben inferiori ma senza controllo errori.

Tweaking connessione

Per velocizzare la connessione innanzitutto bisogna precisare alcune cose:
È impossibile superare il bandwith massimo dato dalla portante ADSL, ovvero se abbiamo una portante di 8128 kbps (attualmente il massimo per le ADSL2 e quelle in G.DMT), è impossibile scaricare a più di quella velocità. Stesso discorso per l'upload, se abbiamo la portante a 480 kbps, non si potrà superare quel valore.
Comunque, con una buona ottimizzazione potremo raggiungere velocità molto alte e molto vicine al limite "tecnico" della portante.

$GADS$

Path mode: interleaved e fast

Cominciamo con il path mode; grazie a una modifica di questo potremo avere tempi di ping inferiori di 20-30 ms rispetto a una connessione normale. Il ping è il tempo che impiega fisicamente un pacchetto di dati ad attraversare la rete e a tornare (la ricevuta di ricevimento) al mittente. Solitamente tempi di ping più che buoni sono tra i 50-60 ms, normali sui 60-70 ms, oltre i 100 ms possono dare problemi di lag (scatti) ad esempio nei giochi online. Con alcune connessioni si possono raggiungere tempi di ping bassissimi, spesso inferiori ai 30 ms.
Per modificare il path mode in Fast, e avere così tempi di ping inferiori, purtroppo con le attuali ADSL c'è poco da fare: se avete un contratto Alice Business ad esempio potete chiedere al servizio clienti di cambiare la configurazione da Interleaved a Fast. Se avete invece contratti come NGI, questi offrono già di default la modalità fast. Leggete bene le informazioni sui vari abbonamenti ADSL dei vari provider.
Per gli altri abbonamenti come Tiscali, Alice home, etc.; purtroppo c'è poco da fare. Se conoscete qualche amico tecnico che possa andare in centrale a fare la modifica (è roba di pochi minuti) bene, altrimenti è davvero difficile che ve la mettano in Fast, infatti questa modalità non è prevista per gli utenti "normali".

MTU e RWIN

L' MTU e l' RWIN sono due valori fondamentali nel tweaking di una qualsiasi connessione TCP/IP. Il primo definisce la massima dimensione di un pacchetto da inviare (che comunque ha come massimo assoluto 1500 bytes), mentre il secondo definisce la quantità massima di dati che un computer può inviare e ricevere senza dover attendere la conferma di ricezione del pacchetto TCP.
Infatti, molto spesso capita che alcuni pacchetti si "perdano" nel girare l'immensa rete di internet, per cui prima di considerare una transazione "conclusa", un computer aspetta la conferma di ricevimento che il computer ricevente provvederà a mandare. Purtroppo, a causa del già detto tempo di ping, ciò può portare a rallentamenti considerevoli (si deve aspettare la conferma per ogni pacchetto prima di poterne riceverne un altro).
È qui che entra in gioco l' RWIN (TCP Receive Window): esso stabilisce che un tot di pacchetti possano essere inviati uno dopo l'altro senza dover aspettare la conferma di ricevimento.
Purtroppo ciò comporta alcune cose:

  • Se l' RWIN è molto alto, si potranno avere picchi di velocità notevoli, se però un pacchetto si perde, si dovranno reinviare tutti i pacchetti della stessa transazione, perdendo così una considerevole quantità di tempo.
  • Se l' RWIN è basso, si avrà una velocità più bassa e stabile, e se un pacchetto si perde si dovranno reinviare meno pacchetti rispetto ad avere un RWIN molto alto.

Per cui, il valore di RWIN va attentamente scelto in base all'uso che si fa della connessione. Ad esempio, se si scarica da un server vicino, quindi con bassi tempi di ping, è consigliato un valore di RWIN basso; mentre se le distanze aumentano (e per cui anche il tempo di ping), è consigliato un valore RWIN maggiore. Per applicazioni particolari come il P2P dove i pc sono sparsi in giro per il mondo ad esempio è consigliato un valore mediamente alto.

Solitamente un buon valore per le ADSL "lentine" (una 640kbps ad esempio) è intorno i 32.000; mentre per le 4-6 mega meglio 64.000 circa. Meglio non aumentare comunque troppo l' RWIN, in quanto si potrebbero avere sbalzi di velocità davvero rilevanti. "pompatelo" molto (anche 128.000) solo nel caso abbiate tempi di ping molto alti (oltre 100 ms).

Una comoda formula per la scelta dell' RWIN è la seguente: velocità connessione * tempo di ping medio aumentato del 50%; diviso 8.

Riguardo la scelta dell' MTU invece valgono le seguenti considerazioni:

Per chi usa il PPPoA (solitamente i modem adsl USB o PCI usano questo sistema) è consigliato mettere 1500, ovvero il valore massimo per questo tipo di connessione.
Per chi usa il PPPoE (quasi tutti i modem ethernet e i router), invece il valore massimo assegnabile è di 1492.
Nel caso si abbiano problemi, ad esempio può capitare con connessioni wireless o con schede di rete vecchiotte, potete impostare un valore più basso come 1454 o 1300.

Qui una semplice tabella riassuntiva:

Byte

Spiegazione

1500

La massima dimensione MTU possibile per un pacchetto su internet senza che venga frammentato. Questa dimensione può essere utilizzata da chi utilizza un protocollo di connessione diverso dal PPPoe e una connessione non VPN.

1492

La massima dimensione MTU consigliata per chi utilizza il PPPoE.

1472

La massima dimensione delle informazioni trasportate dal singolo pacchetto non PPPoE a non VPN (dovete considerare che anche il pacchetto ha una dimensione in bytes che varia da 28 a 48 bytes, vedi dopo)

1464

La massima dimensione delle informazioni trasportate dal singolo pacchetto PPPoE

576

Il setaggio MTU consigliato se si usa un modem analogico tradizionale

48

La somma degli header IP, TCP e PPPoE (il pacchetto nelle connessioni PPPoE)

40

La somma degli header IP e TCP (il pacchetto nelle connessioni non PPPoE)

28

La somma degli header IP e ICMP.

Per controllare se la vostra scheda supporta un tot valore di MTU, potete fare in questo modo:

Aprire il prompt dei comandi e digitare:
ping -f -l VALORE_MTU www.google.com
Dove VALORE_MTU sarà ovviamente il valore MTU scelto. Ad esempio:
ping -f -l 1464 www.google.com
Se appare l'errore: "I pacchetti devono essere frammentati" vuol dire che il valore è troppo alto.

Per verificare gli attuali settaggi di MTU e RWIN potete andare sul sito DSLReports e fare il tweak test a questo indirizzo.

Modificare i valori

Per modificare i valori dipende innanzitutto dal sistema operativo che si usa. Se è windows potete usare TCP Optimizer o DrTCP ; con quest'ultimo seguite queste indicazioni per l'uso:

TCP Receive Windows: è il valore di RWIN che avete scelto
Window scaling: scegliere "yes" se, e solo se, si usa un RWIN maggiore di 65535
Time stampings: mettere "no"
Selective ACKs: mettere "yes"
Path MTU Discovery: mettere "yes"
Black Hole Detection: mettere "no"
Max Duplicate ACKs: mettere "3"
TTL: lasciare default o "128"
Dial UP (RAS) MTU: mettere il valore scelto di MTU
Adapter Setting: selezionare quello a cui è stato connesso il modem o il router, e inserite l' MTU scelto.

Una volta finiti i settaggi, cliccare su "save", chiudere il programma, quindi riavviare il pc.

Note importanti per chi ha un router

Se avete un router non dimenticate di settare gli stessi valori di MTU e di MRU anche lì! Altrimenti potrebbero esserci problemi, ovvero che il pacchetto viene "spezzato" ancor prima che passi il vostro router.

Note importanti per chi ha Windows Vista

Se avete Windows Vista, sappiate che ha una utility di auto-ottimizzazione pacchetti automatica simile a quelle presenti sui sistemi *nix. Se volete modificare manualmente quindi i valori di MTU e RWIN dovete disattivarla in questo modo:

Aprire il prompt dei comandi (con i permessi da amministratore, ovvero: click destro sull' icona -> esegui come amministratore -> e dare conferma), quindi digitare:

netsh interface tcp set global autotuning=disabled

Per verificare se l'auto-ottimizzazione (auto-tuning) è attiva o meno:

netsh interface tcp show global

Per ripristinarla una volta disattivata:

netsh interface tcp set global autotuning=normal

Conclusioni

Seguendo queste indicazioni potrete avere grossi miglioramenti sulla vostra connessione, ma ricordate di non esagerare: vi potreste ritrovare con una connessione ingestibile (difficoltà a scaricare piccoli file, basse velocità, etc.).
Ricordate inoltre che comunque è molto importante anche la qualità e lo stato della connessione. State molto attenti ai valori di SNR e attenuazione, e sopratutto attenzione ai disturbi che si possono avere nello stesso impianto casalingo (filtri difettosi, condensatori nelle prese, vecchie suonerie etc…).
Buon lavoro!
Per ulteriori domande, consigli, critiche etc, potete lasciare un commento o contattarmi per email.

Per altri chiarimenti inoltre potete vedere le guide di http://www.speedguide.net e http://www.dslreports.com

9 risposte

  1. luigi ha detto:

    ottimizza

  2. Berni73f ha detto:

    Volevo sapere se la guida si può applicare anche a connessioni Fastweb, grazie.

  3. gabriele ha detto:

    ciao senti io non sono un vero e proprio maestro del computer,però vorrei aumentare la velocità di connessione(ho un windows vista capable xp e poi appare amd sempreon) non è che mi potresti spiegare in maniera più semplice? grazie mille

  4. flavio ha detto:

    ciao, mi puoi dare indirizzo e-mail per contattarti.

  5. jean ha detto:

    lo fatto con windows vista ma i risultati sono nulli anche con xp questa cosa l ho provata gia un anno fa se avete cose veramente funzionanti o almeno che si vedono i risultati. con xp qualche piccolo miglioramento ce ma con vista nn se ne vedono se puoi almeno spiegare come si cambia il mtu con vista grazie

  6. Alessio ha detto:

    Ciao. io ho un problema in upload: facendo i test con speedtest ho una velocita di upload massima di 6,60Mb (ottimo visto ke ho un adsl 7mb con tiscali) ma solo 80k in upload!!! ed è un problema ke ho da poki giorni, ho usato TCP Optimizer e DrTCP ma il risultato è stato solo di aumentare il download. ke posso fare?

  7. Carmine ha detto:

    @Alessio:
    Ciao, è strano che faccia così. Dovresti provare a fare qualche controllo incrociato, ripetendo il test da un altro pc e magari ad orari diversi. È possibile che ci sia un sovraccarico a monte della centralina, e lì il problema sarebbe da imputare unicamente a Telecom (soprattutto se come dici fino a tempo prima andava bene).
    Al limite, controlla bene che non vi siano programmi attivi come eMule o altri che usano molta banda in upload.

  8. MARCO ha detto:

    ciao vorrei chiederti alcune cose hai skype x caso ?!?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *