Émulation des retards du réseau étendu
Ceci est l'exemple le plus simple, il ajoute juste une quantité fixe de retard à tous les paquets sortant de l'Ethernet local.
# tc qdisc add dev eth0 root netem delay 100ms
Désormais, un simple test ping à héberger sur le réseau local devrait montrer une augmentation de 100 millisecondes. Le retard est limité par la résolution d'horloge du noyau (Hz). Sur la plupart des systèmes 2.4, l'horloge système fonctionne à 100 Hz, ce qui permet des retards par incréments de 10 ms. Sur 2.6, la valeur est un paramètre de configuration de 1000 à 100 Hz.
Les exemples ultérieurs modifient simplement les paramètres sans recharger le qdisc
Les réseaux étendus réels présentent une variabilité, il est donc possible d'ajouter une variation aléatoire.
# tc qdisc change dev eth0 root netem delay 100ms 10ms
Cela entraîne un retard supplémentaire de 100 ± 10 ms. La variation du retard du réseau n'est pas purement aléatoire, donc pour émuler qu'il existe également une valeur de corrélation.
# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%
Cela entraîne un délai supplémentaire de 100 ± 10 ms, l'élément aléatoire suivant dépendant de 25% du dernier. Ce n'est pas une vraie corrélation statistique, mais une approximation.
Distribution différée
En règle générale, le retard dans un réseau n'est pas uniforme. Il est plus courant d'utiliser quelque chose comme une distribution normale pour décrire la variation du retard. La discipline netem peut prendre un tableau pour spécifier une distribution non uniforme.
# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal
Les tables réelles (normal, pareto, paretonormal) sont générées dans le cadre de la compilation iproute2 et placées dans / usr / lib / tc; il est donc possible avec un certain effort de faire votre propre distribution sur la base de données expérimentales.
tc
existe même sur les systèmes SLES et RHEL actuels.