Emulieren von Verzögerungen im Weitverkehrsnetz
Dies ist das einfachste Beispiel. Es fügt lediglich allen Paketen, die aus dem lokalen Ethernet gesendet werden, eine feste Verzögerung hinzu.
# tc qdisc add dev eth0 root netem delay 100ms
Ein einfacher Ping-Test zum Hosten im lokalen Netzwerk sollte nun einen Anstieg von 100 Millisekunden anzeigen. Die Verzögerung wird durch die Taktauflösung des Kernels (Hz) begrenzt. Auf den meisten 2.4-Systemen läuft der Systemtakt mit 100 Hz, was Verzögerungen in Schritten von 10 ms ermöglicht. Bei 2.6 ist der Wert ein Konfigurationsparameter von 1000 bis 100 Hz.
Spätere Beispiele ändern nur die Parameter, ohne die qdisc neu zu laden
Reale Weitverkehrsnetze weisen Variabilität auf, sodass zufällige Variationen hinzugefügt werden können.
# tc qdisc change dev eth0 root netem delay 100ms 10ms
Dies bewirkt, dass die zusätzliche Verzögerung 100 ± 10 ms beträgt. Die Variation der Netzwerkverzögerung ist nicht rein zufällig, um zu emulieren, dass es auch einen Korrelationswert gibt.
# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%
Dies bewirkt, dass die hinzugefügte Verzögerung 100 ± 10 ms beträgt, wobei das nächste zufällige Element 25% vom letzten abhängt. Dies ist keine echte statistische Korrelation, sondern eine Annäherung.
Verzögerungsverteilung
Typischerweise ist die Verzögerung in einem Netzwerk nicht einheitlich. Es ist üblicher, eine Art Normalverteilung zu verwenden, um die Variation der Verzögerung zu beschreiben. Die Netem-Disziplin kann anhand einer Tabelle eine ungleichmäßige Verteilung angeben.
# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal
Die tatsächlichen Tabellen (normal, pareto, paretonormal) werden im Rahmen der iproute2-Kompilierung generiert und in / usr / lib / tc abgelegt. So ist es mit einigem Aufwand möglich, eine eigene Verteilung basierend auf experimentellen Daten zu erstellen.
tc
ist sogar bei aktuellen SLES- und RHEL-Systemen vorhanden.