Pagina 1 di 1

Ottimizzazione tcp per connessioni laggose

Inviato: gio 12 ott 2006, 15:05
da KiaZ
Per lavoro ho spesso a che vedere con delle connessioni satellitari bidirezionali : si tratta di una sorta di "ultima spiaggia" per posti dove non arrivera' mai l'adsl. Sono connessioni che funzionano con una parabola da 80 o 120 cm e un "modem" satellitare. I tempi di ping si attestano intorno ai 700 msec, mentre la banda in download e' comunque buona (fino a 8 mbits per chi se lo puo' permettere). Il problema e' che questo lag spesso porta a congestione tcp.
Mi chiedevo se qualcuno ha avuto esperienze con linux e connessioni simili, e se aveva qualche consiglio su possibili ottimizzazioni a livello tcp per evitare la congestione. Per ora in genere noi mettiamo uno squid trasparent proxy per agevolare la navigazione e un postfix come smtp locale, ma per gli altri servizi ??
So che ci sono prodotti commerciali che fanno tcp optimization per connessioni satellitari, ma volevo crearmi un alternativa "open" .

Qualcuno ha avuto esperienze simili e puo' darmi qualche suggerimento ?

grazie, ciao
KiaZ

Re: Ottimizzazione tcp per connessioni laggose

Inviato: gio 12 ott 2006, 16:29
da masalapianta
KiaZ ha scritto:Per lavoro ho spesso a che vedere con delle connessioni satellitari bidirezionali : si tratta di una sorta di "ultima spiaggia" per posti dove non arrivera' mai l'adsl. Sono connessioni che funzionano con una parabola da 80 o 120 cm e un "modem" satellitare. I tempi di ping si attestano intorno ai 700 msec, mentre la banda in download e' comunque buona (fino a 8 mbits per chi se lo puo' permettere). Il problema e' che questo lag spesso porta a congestione tcp.
Mi chiedevo se qualcuno ha avuto esperienze con linux e connessioni simili, e se aveva qualche consiglio su possibili ottimizzazioni a livello tcp per evitare la congestione.
devi lavorare principalmente sulla sliding window (ingrandendo i valori della finestra un bel po); i file in /proc su cui lavorare sono:

/proc/sys/net/core/rmem_default (dimensione di default della window di ricezione)
/proc/sys/net/core/rmem_max (dimensione massima della window di ricezione)
/proc/sys/net/core/wmem_default (dimensione di default della window di trasmissione)
/proc/sys/net/core/wmem_max (dimensione massima della window di trasmissione)
/proc/sys/net/ipv4/tcp_mem (dimensione minima, standard e massima dei buffer tcp)
/proc/sys/net/ipv4/tcp_rmem (dimensione minima, standard e massima dei buffer tcp di ricezione)
/proc/sys/net/ipv4/tcp_wmem (dimensione minima, standard e massima dei buffer tcp di trasmissione)

dei valori di riferimento da cui iniziare li puoi ricavare in base all'effettivo troughput e all'rtt, btw l'unico modo per avere una buona ottimizzazione e' mettersi con un po di pazienza e fare dei test.
Per ora in genere noi mettiamo uno squid trasparent proxy per agevolare la navigazione e un postfix come smtp locale
metti pure un dns locale che fa caching
So che ci sono prodotti commerciali che fanno tcp optimization per connessioni satellitari, ma volevo crearmi un alternativa "open" .
basta conoscere un minimo il tcp/ip, non serve alcun prodotto

Re: Ottimizzazione tcp per connessioni laggose

Inviato: gio 12 ott 2006, 16:54
da KiaZ
masalapianta ha scritto:
KiaZ ha scritto:Per lavoro ho spesso a che vedere con delle connessioni satellitari bidirezionali : si tratta di una sorta di "ultima spiaggia" per posti dove non arrivera' mai l'adsl. Sono connessioni che funzionano con una parabola da 80 o 120 cm e un "modem" satellitare. I tempi di ping si attestano intorno ai 700 msec, mentre la banda in download e' comunque buona (fino a 8 mbits per chi se lo puo' permettere). Il problema e' che questo lag spesso porta a congestione tcp.
Mi chiedevo se qualcuno ha avuto esperienze con linux e connessioni simili, e se aveva qualche consiglio su possibili ottimizzazioni a livello tcp per evitare la congestione.
devi lavorare principalmente sulla sliding window (ingrandendo i valori della finestra un bel po); i file in /proc su cui lavorare sono:

/proc/sys/net/core/rmem_default (dimensione di default della window di ricezione)
/proc/sys/net/core/rmem_max (dimensione massima della window di ricezione)
/proc/sys/net/core/wmem_default (dimensione di default della window di trasmissione)
/proc/sys/net/core/wmem_max (dimensione massima della window di trasmissione)
/proc/sys/net/ipv4/tcp_mem (dimensione minima, standard e massima dei buffer tcp)
/proc/sys/net/ipv4/tcp_rmem (dimensione minima, standard e massima dei buffer tcp di ricezione)
/proc/sys/net/ipv4/tcp_wmem (dimensione minima, standard e massima dei buffer tcp di trasmissione)

dei valori di riferimento da cui iniziare li puoi ricavare in base all'effettivo troughput e all'rtt, btw l'unico modo per avere una buona ottimizzazione e' mettersi con un po di pazienza e fare dei test.
Per ora in genere noi mettiamo uno squid trasparent proxy per agevolare la navigazione e un postfix come smtp locale
metti pure un dns locale che fa caching
So che ci sono prodotti commerciali che fanno tcp optimization per connessioni satellitari, ma volevo crearmi un alternativa "open" .
basta conoscere un minimo il tcp/ip, non serve alcun prodotto
Grazie 1000 mi serviva proprio sapere cosa cercare in /proc
Giusto poi non ci avevo pensato al dns caching .... anche quello e' da mettere si.
Sto facnedo sta cosa per dimostrare ai miei capi che non ci vuole nessun prodotto !!!