Wie simuliere ich eine Umgebung mit geringer Bandbreite und hoher Latenz?

201

Ich muss eine Verbindung mit geringer Bandbreite und hoher Latenz zu einem Server simulieren, um die Bedingungen eines VPN an einem Remotestandort zu emulieren. Die Bandbreite und Latenz sollten optimierbar sein, damit ich die beste Kombination finden kann, um unser Softwarepaket auszuführen.

Nic
quelle
7
Gute Frage! Ich würde gerne einige Antworten zur ASP .NET-Webentwicklung hören.
Carl

Antworten:

79

Für macOS gibt es den Network Link Conditioner , der konfigurierbare Bandbreite, Latenz und Paketverlust simuliert. Es ist im Paket Zusätzliche Tools für Xcode enthalten. Bildschirmfoto

Jon Colverson
quelle
12
Der
Einstellungsbereich
scheint nicht mit Genymotion zu funktionieren. (Schwarzer Bildschirm)
Bruno
1
Download-Link für neuere XCode-Versionen: developer.apple.com/download/more/?q=Additional%20Tools
jstorm31
@ jstorm31 Danke. Ich habe die Antwort mit dem aktuellen Namen des Pakets und dem aktuellen Link aktualisiert.
Jon Colverson
37

Es gibt eine hervorragende Beschreibung für die Einrichtung eines FreeBSD-Computers, um genau dies zu tun - nehmen Sie Ihren alten Standard-Desktop, werfen Sie eine zusätzliche Netzwerkkarte ein und erstellen Sie ihn.

Der Artikel ist unter http://www.freebsd.org/doc/en/articles/filtering-bridges/article.html verfügbar .

In Schritt 5 der obigen Anweisungen aktivieren Sie eine Firewall. Um nur eine andere IP-Verbindung zu simulieren, können Sie (zum Beispiel) Folgendes tun:

Erstellen Sie eine Datei /etc/rc.firewall.56k, die Folgendes enthält:

ipfw add pipe 1 ip from any to any out
ipfw add pipe 2 ip from any to any in    
ipfw pipe 1 config bw 56Kbit/s   
ipfw pipe 2 config bw 56Kbit/s

Und ändern /etc/rc.conf... die Leitung ersetzen

firewall_type="open"

mit

firewall_type="/etc/rc.firewall.56k"

Starten Sie neu und Sie haben eine 56K-Brücke!

Wenn Sie zufällig von einem Macintosh aus arbeiten, ist in diesem Betriebssystem standardmäßig ipfw integriert. Ich habe das Gleiche getan, indem ich den Netzwerkverkehr über den Flughafen und über das Ethernet geleitet und so eingerichtet habe, dass alles, was über den Flughafen kommt, dieselben Eigenschaften aufweist wie alles, was ich zu emulieren versuche. Sie können die ipfw-Befehle direkt vom Terminal aus aufrufen und die gleichen Effekte erzielen.

heckj
quelle
27

In der Vergangenheit habe ich eine Bridge mit der Linux Netem-Funktion (Network Emulation) verwendet. Es ist hochgradig konfigurierbar und ermöglicht die Einführung von Verzögerungen (das erste Beispiel betrifft ein WAN), Paketverlust, Beschädigung usw.

BEARBEITEN: Es gibt auch die MasterShaper -Weboberfläche zur Steuerung der Einstellungen.

Ich stelle fest, dass Netem für meine Anwendungen sehr gut funktioniert hat, aber ich habe WANem auch mehrmals verwendet. Die bereitgestellten bootfähigen ISO- (und Virtual Appliance-Images) machten es sehr praktisch.

Kris Kumler
quelle
Perfekt für meine Bedürfnisse und sofort auf meinem Ubuntu 14.04 Server verfügbar!
RobM
21

Charles

Ich bin auf Charles, die Web-Debugging-Proxy-Anwendung, gestoßen und hatte großen Erfolg bei der Emulation der Netzwerklatenz. Es funktioniert unter Windows, Mac und Linux.

Charles auf dem Mac

Bandbreitendrossel / Bandbreitensimulator

Mit Charles können Sie die Bandbreite und Latenz Ihrer Internetverbindung anpassen. Auf diese Weise können Sie Modembedingungen mithilfe Ihrer Hochgeschwindigkeitsverbindung simulieren.

Die Bandbreite kann auf beliebige Bytes pro Sekunde gedrosselt werden. Dadurch kann jede Verbindungsgeschwindigkeit simuliert werden.

Die Latenz kann auch auf eine beliebige Anzahl von Millisekunden eingestellt werden. Die Latenzverzögerung simuliert die Latenzzeit bei langsameren Verbindungen, dh die Verzögerung zwischen der Anforderung und dem Empfang der Anforderung am anderen Ende.

DummyNet

Sie können auch VMware verwenden, um BSD oder Linux auszuführen und diesen Artikel (DummyNet) oder diesen zu testen .

Eugene Yokota
quelle
2
Charles ist ein HTTP-Proxy und daher nur zum Testen von HTTP-Anwendungen geeignet. Für jeden das Richtige, aber meiner Meinung nach ist es wahrscheinlich die schlechteste Software, die ich je benutzt habe. Ich habe es nur für kurze Zeit benutzt, während ich auf einem Mac arbeiten musste. Für Windows-Benutzer würde ich Fiddler empfehlen, wenn Sie einen HTTP-Debugging-Proxy benötigen. Leider habe ich für OSX nichts anderes als Charles gefunden.
Brad
6
Hallo Brad. Können Sie erwähnen, welche Probleme Sie hatten?
Ante
17

Ich fand dieses kleine nette Programm für Windows namens ungeschickt . Es ist eine Art Alpha-Status, aber es scheint gut für mich zu funktionieren, und es ist Open Source.

Bearbeiten: Andere haben bemerkt, dass Sie die Bandbreite nicht mit ungeschickt begrenzen können, und das ist wahr. Sie können nur die Latenz und einige andere netzwerkbezogene Fehler hinzufügen. Dadurch wird diese Antwort als gültige Antwort auf die Frage disqualifiziert. Da ich sie jedoch gut nutzen konnte, als ich ein schlechtes Netzwerk simulieren wollte, lasse ich sie hier, solange sie> 0 Stimmen oder ähnliches hat.

Markus
quelle
Wie steuern Sie die Bandbreite mit ungeschickt?
user3731622
3
Exzellentes Programm. Genau das, was ich brauchte. Ich empfehle es. Funktioniert wie ein Zauber und es ist super einfach.
Jh62
1
Wenn die meisten Leute "Bandbreite begrenzen" sagen, sind sie wahrscheinlich mehr als zufrieden damit, einfach massive Latenz- und Paketverluste hinzuzufügen, da diese die Bandbreite effektiv begrenzen. Auch dieses Programm ist erstaunlich einfach zu bedienen, übertrifft alles andere, was ich unter Windows versucht habe.
rollt
13

Versuchen Sie es mit WANem

WANem ist ein Wide Area Network Emulator, der eine echte Erfahrung eines Wide Area Network / Internets während der Anwendungsentwicklung / -prüfung über eine LAN-Umgebung bieten soll.

Epatel
quelle
1
Ich habe es versucht und kann es scheinbar nicht zum Laufen bringen. Es wird aus irgendeinem Grund keine IP-Adresse von unserem Netzwerk erhalten, während kein anderer Computer Probleme damit hat.
Michael Beck
7

Ich würde versuchen, Netem unter Linux zu verwenden. Damit können Sie zusätzliche Verzögerungen, Beschädigungen, Paketverluste und Duplikationen simulieren. Es funktioniert sogar auf dem Loopback-Gerät.

Josh
quelle
Hey, hast du einen äquivalenten Befehl für Windows als Netem?
Shashi Ranjan
6

Ein weiteres clientseitiges Programm (nur Windows) ist NetLimiter - http://www.netlimiter.com

Kaliatech
quelle
2
Netlimiter ist gut, aber ich denke, es hat nur eine geringe Bandbreite - es kann die Latenz nicht ändern?
Nathan
In den Beta-Plänen für Version 3 ist die Latenzsimulation als geplantes Feature aufgeführt. Es wurde vor kurzem veröffentlicht und ich habe es noch nicht verwendet, um zu sehen, ob diese Funktion es geschafft hat.
Kaliatech
Diese Funktion hat es nicht in die Beta-Version 9 geschafft. Ugh.
Cacba
4
Selbst in der aktuellen Beta (NetLimiter 4) können Sie die Latenz nicht ändern.
Einfluss
5

Ich verwende NetBalancer auf meinem Windows-Computer.

http://seriousbit.com/netbalancer/

Updates am 07.10.2017 : Die letzte kostenlose Version von NetBalancer ist 9.2.7. Das Programm hat ein fest codiertes Ablaufdatum. Bevor Sie den NetBalancer-Dienst starten, müssen Sie die Systemuhr vor dem 18.10.2016 zurückdrehen. Weitere Informationen finden Sie in diesem Artikel .

Tony
quelle
Danke dir!! NetBalancer ist das einzige auf dieser Seite aufgeführte Tool, mit dem ich arbeiten konnte und das die Latenz steuern kann.
Einfluss
4

Ich denke, ich tckönnte den Job auf einer UNIX-basierten Plattform machen.

tcwird verwendet, um die Verkehrssteuerung im Linux-Kernel http://lartc.org/manpages/tc.txt zu konfigurieren

Sawan
quelle
3

Um eine Verbindung mit geringer Bandbreite zum Testen von Websites mit Google Chrome zu simulieren, können Sie in den F12-Tools auf die Registerkarte "Netzwerk" gehen und eine zu simulierende Bandbreitenstufe auswählen oder eine zu simulierende benutzerdefinierte Bandbreite erstellen.

user1785960
quelle
1
Vielen Dank! Wenn Sie es nicht finden können, befindet es sich in der Chrome-Konsole auf der Registerkarte "Netzwerk" rechts neben der Schaltfläche "Cache deaktivieren". Der Standardwert ist "Keine Drosselung".
Alan Willms
1

Wenn Sie unter Linux arbeiten, finde ich das Traffic Control- Programm eine große Hilfe für diese Art von Dingen.

smo
quelle
1

Es gibt ein Produkt von http://www.shunra.com namens VE Desktop, mit dem unterschiedliche Netzwerkbedingungen simuliert werden können. Mit einer einfachen Benutzeroberfläche können Sie Latenzen, Bandbreite und Paketverlust optimieren. Die einzige Einschränkung ist, dass es nicht kostenlos ist. Hoffe das hilft.

Shreedhar Kotekar
quelle
1

Ich habe schon seit einiger Zeit nach einem benutzerfreundlichen Tool für diese Art von Tests gesucht. Ich bin neulich auf Folgendes gestoßen : Network Delay Simulator

Wenn Sie Windows ausführen, sollten Sie es überprüfen. Es war super einfach einzurichten und loszulegen und scheint wirklich gut zu funktionieren. Hier können Sie Bandbreite, Latenz und Paketverlust in jede Richtung definieren. Die andere wirklich schöne Sache ist, dass Sie "Flow Match Conditions" so definieren können, dass sie nur den Verkehr beeinflussen, den Sie möchten. Oh ja, und es ist kostenlos.

Kennzeichen
quelle
1

Ich glaube, ich habe gefunden, was ich brauche. Vielleicht können Sie Charles Proxy oder Slowy verwenden . ich hoffe es hilft.

Moh Hasbi Assidiqi
quelle
1

Schauen Sie sich den NE-ONE Network Emulator an, mit dem Sie Bandbreite, Latenz, Paketverlust, Paketumordnung, Paketduplizierung, Paketfragmentierung, Netzwerküberlastung und viele weitere Beeinträchtigungen konfigurieren können, um im Labor reale Netzwerkbedingungen zu erstellen . Für den Uplink und den Downlink können verschiedene Beeinträchtigungen konfiguriert werden, sodass Sie einen wirklich guten Uplink, aber ein wirklich schlechtes Downlink-Erlebnis haben. Dies ist ideal, um zu sehen, wie die App mit TCP-Warteschlangen umgeht, da die Bestätigungen nicht rechtzeitig zurückkommen und die Gesamtlatenz erhöht sich also!

Ein Übersichtsvideo finden Sie hier http://www.youtube.com/watch?v=DwtqlE7LcrQ speziell an Spieleentwickler richtet, aber es zeigt, worum es geht. NE-ONE wird mit einem Webbrowser konfiguriert, so dass es wirklich einfach ist, installiert und konfiguriert zu werden - Sie müssen kein Netzwerk-Guru sein :-)

Es gibt eine Hardwareversion - http://www.itrinegy.com/index.php/products/network-emulators/ne-one - oder Sie können eine Virtual Appliance (Software) -Version herunterladen, die unter VMware ESXi Server ausgeführt wird. Die virtuelle Appliance kann von VMware's Solution Exchange heruntergeladen werden - solutionexchange.vmware.com/store/products/ne-one-flex-network-emulator

Peter White
quelle
0

LANforge ICE ist ein Netzwerkemulator mit Schwerpunkt auf virtuellem Routing, Jitter, Korruption und Verzögerung. Projekte haben es verwendet, um Satellitenverbindungen, Kabel- und Modemverbindungen sowie eine Hochgeschwindigkeits-Wan-Emulation (10 Gbit) zu emulieren. Sie können eine Java-GUI verwenden, um Ihre virtuellen Netzwerke aufzubauen und sehr detaillierte Berichte über den Verkehrsfluss zu erstellen. Die LANforge-Produkte bieten auch Funktionen zur Verkehrserzeugung: Frame, Ethernet, Layer-3 und Stateful Traffic (NFS, http). Neuere Editionen für LANforge bieten auch ausgefeilte WiFi-Testfunktionen.

memnoch_proxy
quelle
0

Sie können dies versuchen: CovenantSQL / GNTE schreiben Sie YAML einfach so:

group:
  - 
    name: china
    nodes:
      - 
        ip: 10.250.1.2
        cmd: "cd /scripts && ./YourBin args"
      - 
        ip: 10.250.1.3
        cmd: "cd /scripts && ./YourBin args"
    delay: "100ms 10ms 30%"
    loss: "1% 10%"
  - 
    name: us
    nodes:
      - 
        ip: 10.250.2.2
        cmd: "cd /scripts && ./YourBin args"
      - 
        ip: 10.250.2.3
        cmd: "cd /scripts && ./YourBin args"
    delay: "1000ms 10ms 30%"
    loss: "1% 10%"

network:
  -
    groups:
      - china
      - us
    delay: "200ms 10ms 1%"
    corrupt: "0.2%"
    rate: "10mbit"

Lauf ./generate scripts/your.yaml

auxten
quelle