The Wonder Shaper

Software screenshot:
The Wonder Shaper
Dettagli del software:
Versione: 1.1a
Data di caricamento: 2 Jun 15
Sviluppatore: Bert Hubert
Licenza: Libero
Popolarità: 32

Rating: nan/5 (Total Votes: 0)

Il Shaper Wonder è uno molto speciale script di shaper di rete con un sacco di funzioni. Funziona su Linux 2.4 e superiore.
Obiettivi
Ho cercato di creare il Santo Graal:
* Mantenere bassa latenza per il traffico interfactive in ogni momento.
Ciò significa che il download o caricamento dei file non dovrebbero turbare SSH o Telnet. Queste sono le cose più importanti, anche la latenza 200ms è lenta a lavorare sopra.
* Consenti 'surf' a velocità ragionevoli, mentre verso l'alto o il download
Anche se http è traffico 'massa', altro traffico non dovrebbe affogare fuori troppo.
* Assicurarsi che arrivi non danneggiano download, e viceversa
Si tratta di un fenomeno molto più osservato dove il traffico a monte distrugge semplicemente la velocità di download. Si scopre che tutto questo è possibile, a costo di un po 'di larghezza di banda. La ragione per cui arrivi, download e ssh vicenda male è la presenza di code di grandi dimensioni in molti dispositivi di accesso nazionali come i modem via cavo o DSL.
Perché non funziona bene per impostazione predefinita
ISP sanno di benchmarking esclusivamente su come le persone possono scaricare velocemente. Inoltre la larghezza di banda disponibile, la velocità di download è influenzata fortemente dalla perdita di pacchetti, che ostacola seriamente le prestazioni TCP / IP. Grandi code possono aiutare a prevenire packetloss, e accelerare il download. Quindi gli ISP configurano code di grandi dimensioni.
Questi grandi code comunque danneggiano l'interattività. Un tasto deve prima percorrere la coda di monte, che può essere secondi (!) Di lunghezza e vai al tuo host remoto. Viene quindi visualizzato, che porta ad un pacchetto a tornare, che deve poi attraversare la coda a valle, che si trova presso l'ISP, prima che appare sullo schermo.
Questo HOWTO insegna come manipolare ed elaborare la coda in molti modi, ma purtroppo, non tutte le code sono accessibili a noi. La coda sopra presso l'ISP è completamente off-limits, mentre la coda a monte vive probabilmente all'interno del vostro modem via cavo o DSL dispositivo. Si può o non può essere in grado di configurarlo. Molto probabilmente no.
Allora, cosa succederà? Come non possiamo controllare una di queste code, devono essere eliminati, e si è trasferito al router Linux. Fortunatamente questo è possibile.
Limite velocità di upload po
Limitando la nostra velocità di upload leggermente inferiore al tasso veramente disponibile, niente code sono costruite nel nostro modem. La coda è ora spostato in Linux.
Limite di velocità di download
Questo è un po 'più complicato in quanto non possiamo influenzare molto la velocità con le navi internet dati degli Stati Uniti. Tuttavia Possiamo cadere i pacchetti che stanno arrivando troppo veloce, che fa sì che il protocollo TCP / IP per rallentare per solo il tasso che vogliamo. Perché noi non vogliamo far cadere il traffico inutilmente, configuriamo una dimensione 'scoppiare' permettiamo a velocità superiore.
Ora, una volta che abbiamo fatto questo, abbiamo eliminato la coda a valle tutto (tranne che per brevi raffiche), e acquisire la capacità di gestire la coda monte con tutta la potenza di Linux offre.
Lasciate che il traffico interattivo saltare la coda
Ciò che resta da fare è assicurarsi traffico interattivo salta alla parte anteriore della coda upstream. Per assicurarsi che arrivi non fanno male download, ci muoviamo anche pacchetti ACK verso la parte anteriore della coda. Questo è ciò che normalmente provoca l'enorme rallentamento osservata quando la generazione di traffico di massa in entrambe le direzioni. I ringraziamenti per il traffico a valle devono competere con il traffico a monte, e ottenere in ritardo nel processo.
Ci muoviamo anche altri piccoli pacchetti verso la parte anteriore della coda - questo aiuta i sistemi operativi che non impostano bit TOS, come tutto da Microsoft.
Consenti all'utente di specificare il traffico a bassa priorità (di nuovo in 1.1!)
A volte si può notare bassa priorità traffico IN USCITA rallentando il traffico importante. In tal caso, le seguenti opzioni possono essere d'aiuto:
NOPRIOHOSTSRC
Impostare su host o maschere di rete nella rete che dovrebbe avere la priorità bassa
NOPRIOHOSTDST
Impostare su host o maschere di rete su Internet che dovrebbe avere la priorità bassa
NOPRIOPORTSRC
Impostare su porte di origine che deve avere una bassa priorità. Se si dispone di un server web senza importanza sul traffico, impostare questo a 80
NOPRIOPORTDST
Impostare questo a porti di destinazione che dovrebbe avere una bassa priorità.
Vedere l'inizio della wshaper e wshaper.htb
Risultati
Se facciamo tutto questo otteniamo i seguenti misure con un eccellente collegamento ADSL dal xs4all nei Paesi Bassi:
La latenza di base:
andata e ritorno min / media / max = 14,4 / 17,1 / 21,7 ms
Senza traffico condizionatore, durante il download:
andata e ritorno min / media / max = 560,9 / 573,6 / 586,4 ms
Senza traffico condizionatore, durante il caricamento:
andata e ritorno min / media / max = 2041,4 / 2332,1 / 2427,6 ms
Con condizionatore, durante 220kbit / s in upload:
andata e ritorno min / media / max = 15,7 / 51,8 / 79,9 ms
Con condizionatore, durante 850kbit / s in download:
andata e ritorno min / media / max = 20.4 / 46.9 / 74.0 ms
Durante il caricamento, download di procedere al ~ 80% della velocità a disposizione. Upload a circa il 90%. Latenza salta poi a 850 ms, ancora cercare di capire perché.
Che cosa ci si può aspettare da questo script dipende molto dalla velocità effettiva uplink. Durante il caricamento a tutta velocità, ci sarà sempre un singolo pacchetto prima del vostro battitura. Questo è il limite inferiore per la latenza si può raggiungere - dividere il tuo MTU per la velocità di upstream da calcolare. Valori tipici saranno leggermente superiore a quello. Abbassare il MTU per gli effetti migliori!
Un tavolino:
Velocità Uplink | Previsto latenza dovuto caricare
--------------------------------------------------
32 | 234ms
64 | 117ms
128 | 58ms
256 | 29ms
Quindi, per calcolare la latenza efficace, prendere una misura di base (ping su un link senza carico), e cercare il numero nella tabella, e aggiungerlo. Questo è circa il meglio ci si può aspettare. Questo numero viene da un calcolo che presuppone che la vostra battitura a monte avrà al massimo la metà di un pacchetto completo di dimensioni davanti a sé.
Questo si riduce a:
   mtu * 0.5 * 10
   -------------- + Baseline_latency
       kbit
Il fattore 10 non è del tutto corretto, ma funziona bene nella pratica.
Il kernel
Se si esegue una distribuzione recente, tutto dovrebbe essere ok. Avete bisogno di 2.4 con opzioni QoS attivata.
Se si compila il proprio kernel, deve avere alcune opzioni attivate. In particolare, nel menu Opzioni di rete, QoS e / o Fiera delle code, girare almeno CBQ, PRIO, SFQ, Grado, Traffico vigilanza, supporto QoS, Rate Estimator, QoS classificatore, U32 classificatore, fwmark classificatore.
In pratica, io (e la maggior parte delle distribuzioni) solo accendere tutto.
Gli script
Lo script è disponibile in due versioni, una che funziona su kernel standard e viene implementata con CBQ. L'altro utilizza l'eccellente qdisc HTB che non è nel kernel predefinito. La versione CBQ è più collaudato rispetto HTB uno!
Vedere 'wshaper' e 'wshaper.htb'.
Sintonia
Questi script hanno bisogno di conoscere il tasso 'reale' della tua connessione ISP. Questo è difficile da stabilire in anticipo come diversi ISP utilizzano diversi tipi di punte appare. Le persone riportano successo con la seguente tecnica:
Stimare sia le monte ea valle a metà del tasso vostri specifica ISP. Ora, di verificare se lo script è in funzione - verificare l'interattività, mentre il caricamento e durante il download. Ciò dovrebbe consentire la latenza come sopra determinato. In caso contrario, verificare se lo script eseguito senza errori.
Ora aumentare lentamente i numeri a monte e a valle nello script fino a quando la latenza ritorna. In questo modo è possibile trovare i valori ottimali per la connessione. Se si è soddisfatti, si prega di segnalare a me così io posso fare un elenco di numeri che funzionano bene. Per favore fatemi sapere quale ISP utilizzato e il nome del tuo abbonamento, e le sue specifiche fama, così posso elencare qui e salvare gli altri il problema.
Installazione
Se si compone in, è possibile copiare lo script /etc/ppp/ip-up.d e sarà eseguito ad ogni connessione.
Se si desidera rimuovere il shaper da un'interfaccia, eseguire 'stop wshaper'. Per visualizzare le informazioni di stato, eseguire 'wshaper status'.
PROBLEMI NOTI
In caso di errori, aggiungere un -x per la prima linea, come segue:
#! / Bin / bash -x
E riprovare. Questo ti mostrerà quale linea dà un errore. Prima di contattare me, assicurarsi che si esegue una versione recente di iproute!
Le ultime versioni sono disponibili all'indirizzo il distributore di Linux, o se si preferisce la compilazione, qui:
 ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz

Altri software di sviluppo Bert Hubert

Commenti a The Wonder Shaper

I commenti non trovato
Aggiungi commento
Accendere le immagini!