Simulation einer Netzwerkverbindung mit niedriger Bandbreite und hoher Latenz unter Linux

18412
Justin L.

Ich möchte auf meinem Linux-Rechner eine Netzwerkverbindung mit hoher Latenz und geringer Bandbreite simulieren.

Die Begrenzung der Bandbreite wurde bereits zuvor besprochen, z. B. hier, aber ich kann keine Beiträge finden, die die Bandbreite und die Latenz begrenzen.

Ich kann entweder eine hohe Latenz oder eine geringe Bandbreite verwenden tc. Ich konnte diese jedoch nicht zu einer einzigen Verbindung zusammenfassen. Insbesondere das Beispiel Ratensteuer Skript hier nicht für mich arbeiten:

# tc qdisc add dev lo root handle 1:0 netem delay 100ms  # tc qdisc add dev lo parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000 RTNETLINK answers: Operation not supported 

Wie kann ich eine Verbindung mit geringer Bandbreite und hoher Latenz erstellen tcoder ein anderes, leicht verfügbares Tool verwenden?

19
Haben Sie versucht, Ansätze aus Ihren Links zu kombinieren, z. tc für Latenz und Bandbreite für die Bandbreite nutzen? (Es ist hässlicher als nur tc zu verwenden, kann aber trotzdem funktionieren;) Andy vor 14 Jahren 1
Das ist eine gute Idee (und in der Tat wird Trickle sogar Latenz hinzufügen), aber leider lädt Firefox nicht unter Trickle, und das muss ich testen. Justin L. vor 14 Jahren 0

2 Antworten auf die Frage

15
Justin L.

Aha! It works if we reverse the order of the commands.

tc qdisc add dev lo root handle 1: htb default 12 tc class add dev lo parent 1:1 classid 1:12 htb rate 20kbps ceil 20kbps tc qdisc add dev lo parent 1:12 netem delay 1000ms 

https://lists.linux-foundation.org/pipermail/netem/2010-May/001388.html

Wenn Sie wissen möchten, warum, scheint es, dass netem qdisc kein übergeordnetes Element sein kann. Daher müssen Sie die Hierarchie neu anordnen, um sie als Blattknoten zu verwenden. Andy vor 14 Jahren 0
Beachten Sie, dass das Bandbreitenlimit nur in eine Richtung (ausgehend) gilt. Sie müssen zusätzliche Arbeit leisten, um dies in beide Richtungen zu ermöglichen (offensichtlich mit ifb). http://www.linuxfoundation.org/collaborate/workgroups/networking/netem#Emulating_wide_area_network_delays Roger Binns vor 11 Jahren 3
Kam durch dieses Problem, als ich versuchte, zu grok tc. Aus dem, was ich gelesen habe, entsteht in der ersten Zeile 1: 0, aber die zweite Zeile bezieht sich auf 1: 1? (Wahrscheinlich ist mein Verständnis falsch - aber ich habe viele Seiten durchgesehen und versucht zu verstehen, wie Klassen / Qtdiscs nummeriert werden.) symcbean vor 11 Jahren 0
1
Matthew Lock

It's not free, but the Charles Web Debugging Proxy can simulate low bandwidth high latency connections

http://www.charlesproxy.com/documentation/proxying/throttling/

Interessanterweise mache ich das eigentlich für das Web-Debugging. Aber es muss doch einen Weg geben, ohne dafür Geld auszugeben. :) Justin L. vor 14 Jahren 0
Leider scheint Charles nicht mit dem lokalen Verkehr zu arbeiten. Es stirbt, wenn ich versuche, über den Proxy auf 192.168.1.1 zuzugreifen. Justin L. vor 14 Jahren 0
Oder nutzen Sie einfach WANEm, kostenlos: http://wanem.sourceforge.net/ Nathan Kidd vor 13 Jahren 2