Emulazione dei ritardi della rete geografica
Questo è l'esempio più semplice, aggiunge solo una quantità fissa di ritardo a tutti i pacchetti che escono dall'Ethernet locale.
# tc qdisc add dev eth0 root netem delay 100ms
Ora un semplice test ping da ospitare sulla rete locale dovrebbe mostrare un aumento di 100 millisecondi. Il ritardo è limitato dalla risoluzione di clock del kernel (Hz). Sulla maggior parte dei sistemi 2.4, l'orologio di sistema funziona a 100 Hz, il che consente ritardi con incrementi di 10 ms. Su 2.6, il valore è un parametro di configurazione da 1000 a 100 Hz.
Gli esempi successivi cambiano semplicemente i parametri senza ricaricare il qdisc
Reti ad ampia area reale mostrano variabilità, quindi è possibile aggiungere variazioni casuali.
# tc qdisc change dev eth0 root netem delay 100ms 10ms
Ciò causa un ritardo aggiunto di 100 ± 10 ms. La variazione del ritardo di rete non è puramente casuale, quindi per emulare che esiste anche un valore di correlazione.
# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%
Questo fa sì che il ritardo aggiunto sia di 100 ± 10 ms con l'elemento casuale successivo che dipende dal 25% sull'ultimo. Questa non è una vera correlazione statistica, ma un'approssimazione.
Ritardare la distribuzione
In genere, il ritardo in una rete non è uniforme. È più comune usare qualcosa come una normale distribuzione per descrivere la variazione in ritardo. La disciplina netem può prendere una tabella per specificare una distribuzione non uniforme.
# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal
Le tabelle effettive (normale, pareto, paretonormale) sono generate come parte della compilazione iproute2 e inserite in / usr / lib / tc; quindi è possibile con un certo sforzo creare la propria distribuzione sulla base di dati sperimentali.
tc
è persino presente sugli attuali sistemi SLES e RHEL.