Exemples
Emulation des délais du réseau étendu
C'est l'exemple le plus simple, il ajoute simplement une quantité fixe de retard à tous les paquets sortant de l'Ethernet local.
# tc qdisc add dev eth0 root netem delay 100ms
Maintenant, un simple test ping vers un hôte sur le réseau local devrait montrer une augmentation de 100 millisecondes. Le délai est limité par la résolution de l'horloge du noyau (Hz). Sur la plupart des systèmes 2.4, l'horloge système fonctionne à 100 Hz, ce qui permet des délais 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 permettent de modifier 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
Le délai supplémentaire est donc de 100 ± 10 ms. La variation du délai du réseau n'est pas purement aléatoire, donc pour émuler cela, il y a aussi une valeur de corrélation.
# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%
Le délai supplémentaire est donc de 100 ± 10 ms, l'élément aléatoire suivant dépendant à 25 % du précédent. Ce n'est pas une vraie corrélation statistique, mais une approximation.
Distribution des retards
En général, 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 délai. 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 d'iproute2 et placées dans /usr/lib/tc ; il est donc possible, moyennant quelques efforts, de créer votre propre distribution basée sur des données expérimentales.
Perte de paquets
La perte aléatoire de paquets est spécifiée dans la commande 'tc' en pourcentage. La plus petite valeur non nulle possible est :
2 -32 \= 0.0000000232%
# tc qdisc change dev eth0 root netem loss 0.1%
Cela entraîne l'abandon aléatoire de 1/10e de pourcentage (c'est-à-dire 1 sur 1000) de paquets.
Une corrélation facultative peut également être ajoutée. Cela rend le générateur de nombres aléatoires moins aléatoire et peut être utilisé pour émuler des pertes de paquets en rafale.
# tc qdisc change dev eth0 root netem loss 0.3% 25%
Ainsi, 0,3% des paquets seront perdus, et chaque probabilité successive dépend d'un quart de la dernière.
Probabilité n \= 0,25 × Prob n-1 + 0,75 × aléatoire
0 votes
Voir aussi/dupe : Outils réseau qui simulent une connexion réseau lente
1 votes
Pour OS X, voir : superuser.com/questions/173882/