View Single Post
Old 16-09-2006, 03:14   #2
Yakkuz
Senior Member
 
Iscritto dal: Dec 2004
Città: Tenochtitlán Trattative:6
Messaggi: 941
PUNTO QUARTO (Una "breve" spiegazione )

Allora..cominciamo a sparare un po di nomi che ci serviranno e a spiegare brevemente cosa sono:

TCP/IP: E' un insieme di protocolli alla base del funzionamento di Internet..in pratica si occupa di come trasferire i dati dati tra PC, ovvero "impacchetandoli", utilizzando le Porte e L'ip (internet protcol) mentre il PPPoE e PPPoA sostanzialmente di occupano del COME e QUANTO impacchettarli. OVvio che la storia è moooolto + complessa, è solo per darvi un idea, se leggete la guida dal buon Hmetal avrete già le idee + chiare, se volete saperne di più, usate il Googlepower)
MTU: Maximum Transmit Unit, ovvero la dimensione massima di un frame che può essere trasmesso
MRU: Maximum Receive Unit, ovvero la dimensione massima di un frame che può essere ricevuto
MSS: Maximum Segment Size, nn vi spiego nel dettaglio cos'è xchè nn ci interessa molto
TTL: Time To Live, indica la quantita massima in secondo o il numero massimo di "punti" (ovvero router) per i quali un
pacchetto può passare prima di essere distrutto
RWIN: TCP Receive Window, è un buffer che indica un valore massimo, neccessità di una spiegazione adeguata visto che è il
parametro che più influenzerà la nostra ottimizzazione


Cercherò di spiegarvi in modo semplice xchè può esserci qualche vantaggio settando in modo corretto MTU/MRU:

Abbiamo appurato che i dati vengono mandati in "pacchetti", Senza entrare nel merito di cosa sono, vi spiegherò che i pacchetti possono avere dimensioni variabili, molto grandi e perciò spesso vanno "spezzettati" ed ecco che qui entrano in gioco MTU ed MRU(probabilmente l'MRU lo troverete settabile solo sul router) e ci tornano in soccorso i protocolli accennati prima, il PPPoA e il PPPoE(o RASPPPoE), infatti questi protocolli hanno dei limiti, ovvero il PPPoA può avere un MTU/MRU Massimo di 1500 mentre il PPPoE(o RasPPPoe) di 1492
Prendiamo in esempio un sistema cosi formato:

Personal Computer---Router---Centrale del nostro ISP---Internet(milioni e milioni di router e percorsi differenti)

Poniamo che l'MTU del nostro pc sia impostato a 1500, l'MTU/MRU del router 580 e il nostro Isp utilizzi il PPPoE quindi MTU a 1492.
Risulta chiaro che in questo caso ci sara un frammentazione dei dati inviati già dall'inizio, mentre se impostassimo l'MTU di win(del nostro adattatore di rete precisamente) a 1492 e anche quello del Router a 1492 filerebbe tutto più liscio nn vi pare?
E' Ovvio che in internet ci sono milioni di macchine e server che sfruttano protocolli differenti (anche con MTU + grandi di 1500) quindi, prima o poi questa frammentazione avverrà...ma meglio poi che prima
Ovvio che, proprio perchè questa frammentazione avverrà cmq, impostando un MTU in un range di 1400-1500 si avranno cmq prestazioni molto simili (margine di miglioramento appena percettibile) e poi spesso ci possono essere complicazioni hardware/software per le quali risulta meglio un valore piuttosto che un altro seppure la logica ci direbbe il contrario, quindi ogni caso è specifico, potete divertirvi a fare del prove, tanto non si possono fare grossi danni, al limite basta ricambiarlo e metterlo come prima l'importante è rimanere nel range di 1400-1500 (ovviamente se si utilizza il PPPoE il range diventa 1400-1492). Se invece impostate un MTU completamente sballato..per esempio 500..allora si che la situazione peggiorerà e ve ne accorgerete
Per vostra fortuna l'MSS si setta da solo in base all'MTU scelto, quindi una volta trovato il valore giusto, anche l'MSS sarà giusto
il TTL non influenzerà la vostre prestazioni, quindi potete tranquillamente lasciare i valori di default che in genere sono tra 64 e 128, ovvio il fatto che nn influenza le prestazioni nn vi autorizza a mettere valori completamente sballati già mi vedo il povero pacchetto vittima di un sadico che imposta il TTL a 65000 che starà li a saltare da un router a un altro
Ed ora il pezzo Grosso, il RWIN, che forse è il valore che più ottimizzerà la nostra DSL, ma buttiamoci nei particolari...
Abbiamo detto che le info in internte (che usa i protocolli TCP/iP) viaggiano in pacchetti...ma per essere sicuri che un pacchetto viene ricevuto, il rivente rimanda indietro un pacchetto detto ACK (acknowledgment) che in pratica sta a significare "Ok fratello, la merce è arrivata, manda la prossima spedizione), nel caso l'ACK non arrivasse entro un tempo limite il pacchetto viene ritenuto perso, e viene ritrasmesso. fin qui tutto ok, ma se per ogni pacchetto mandato dovessimo aspettare l'ack...col cavolo che avremmo le alte velocità ogni vota dovremmo aspettare che il nostro pacchetto arriva e che ci ritorna l'ack...moltiplicato per migliaia di pacchetti il nostro router creperebbe di vecchiaia. Per far fronte a questo problema si è pensato di continuare a permettere di trasmettere senza ricevere ack fino al raggiungimento di un valore massimo (indovinate come si chiama? RWIN!!!! ). PErtanto + grande è il RWIN più dati possiamo inviare prima di aspettare l'ack....FERMI!!!! So cosa state pensando..."ora imposto il Rwin a 1 Miliardo cosi vado come un scheggia"....sbagliatissimo!...perchè se per puro caso c'è un errore e i pacchetti si perdono...congratulazioni, avete buttato tempo e dovrete ritrasmetterli , quindi tutto sta a trovare il giusto compromesso...e ora vi spieghero come fare.
Per prima cosa voglio precisare (è sempre bello spalare un po di sterco su M$ ) che questo "problema" affligge Windows...ma non linux che determina automaticamente il giusto valore di RWIN in base al tipo di connessione
in casa M$ invece abbiamo che:
in WIN 95/98/NT il valore di default è di circa 8Kbytes mentre in Win ME/2000/XP è di circa 16kbytes.Tali valori vanno bene per connessioni relativamente lente (56k/ISDN) o per ADSL con latenze MOLTO basse (sotti i 20ms). Ma, qui in italia, escludendo forse i clienti NGI e forse qualche fortunato utente fastweb, chi diavolo ha una latenza media inferiore a 20ms? (VI prego ditemelo che cambio provider ). Io personalmente pingando nella mia centrale (praticamente il pacchetto passa dal router e poi si fa 500m di cavo visto che ci abito vicino) ho un ping medio di 50-60ms...e credo di essere fortunato, poi calcolate che più lontano è la destinazione da raggiungere piu tempo ci vuole..ponete per esempio che state facendo una videoconferenza con una bella polineasiana dispersa in un'atollo della Micronesia...in quel caso se vi va di lusso avrete una latenza di 500ms (e più che videoconferenza vi sembrerà di guardare un album di fotografie). Quindi è chiaro che questi valori vanno cambiati... vediamo come.
Come ho detto un valore adeguato deve tener conto della latenza e della vostra banda in dowload, senza scendere troppo nel dettaglio (vi fornirò a fine post dei link dove ci sono metodi di calcoli + complicati e spiegazioni più specifiche) come valore orientativo posso dirvi che il valore da impostare (seguendo consgili trovati su diversi siti, purtroppo a volte contrastanti) è tra 32K e 63K in genere (magari per una 640 meglio 32 e per una 4 mega meglio 63k) oppure in casi in cui abbiate una latenza media VERAMENTE ALTA (superiore a 250/300ms) potreste anche impostarli a più di 63k(per esempio 128k), ma più che altro in questo caso vi consiglierei di smadonnare con il customer care del vostro ISP
Alcune fonti sostengono che il RWIN debba essere un Multiplo del MSS (perciò ve l'ho nominato ), anche se in realtà altri dicono sia solo una leggenda metropolitana, però, visto che alla fine il Rwin è un numero piuttosto arbitrario, fare in modo che risulti un multiplo sicuramente nn può farvi male .
Per esempio adesso, utilizzando PPPoA con Tiscali, quindi MTU 1500 (e di conseguenza MSS automaticamente settato a 1460) ho scelto di impostare un RWIN di : 1460 X 22 = 32210. Voglio precisare che potete fare diversi tentativi, e trovare il rwin che piu vi soddisfa.

A 'sto punto, voi con gli occhi iniettati di sangue mi direte: " AOOOOOOOOOOOOOO...YAKKKK e che diamine...c'hai fatto na testa tanto co ste cavolate..ma io dove diavolo li vado a prendere sti dati e sopratutto come li cambio???"
Non temete...nn mi sono dimenticato ora procediamo

Ultima modifica di Yakkuz : 16-09-2006 alle 03:49.
Yakkuz è offline   Rispondi citando il messaggio o parte di esso