Emulação de atrasos na rede de área ampla
Este é o exemplo mais simples, apenas adiciona uma quantidade fixa de atraso a todos os pacotes que saem da Ethernet local.
# tc qdisc add dev eth0 root netem delay 100ms
Agora, um simples teste de ping para hospedar na rede local deve mostrar um aumento de 100 milissegundos. O atraso é limitado pela resolução do relógio do kernel (Hz). Na maioria dos sistemas 2.4, o relógio do sistema é executado em 100 Hz, o que permite atrasos em incrementos de 10 ms. Em 2.6, o valor é um parâmetro de configuração de 1000 a 100 Hz.
Exemplos posteriores apenas alteram os parâmetros sem recarregar o qdisc
Redes reais de área ampla mostram variabilidade, portanto é possível adicionar variação aleatória.
# tc qdisc change dev eth0 root netem delay 100ms 10ms
Isso faz com que o atraso adicionado seja de 100 ± 10 ms. A variação do atraso da rede não é puramente aleatória, portanto, para simular que também existe um valor de correlação.
# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%
Isso faz com que o atraso adicionado seja de 100 ± 10 ms, com o próximo elemento aleatório dependendo de 25% no último. Isso não é uma correlação estatística verdadeira, mas uma aproximação.
Atraso na distribuição
Normalmente, o atraso em uma rede não é uniforme. É mais comum usar algo como uma distribuição normal para descrever a variação no atraso. A disciplina netem pode usar uma tabela para especificar uma distribuição não uniforme.
# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal
As tabelas reais (normal, pareto, paretonormal) são geradas como parte da compilação iproute2 e colocadas em / usr / lib / tc; portanto, é possível com algum esforço fazer sua própria distribuição com base em dados experimentais.
tc
ainda existe nos sistemas atuais SLES e RHEL.