it-swarm.com.de

Langsame Internetverbindung simulieren

Ich weiß, das ist eine seltsame Frage. Da ich normalerweise Anwendungen entwickle, basiert auf der "Annahme", dass alle Benutzer eine langsame Internetverbindung haben. Aber glaubt jemand, dass es eine Möglichkeit gibt, eine langsame Internetverbindung programmgesteuert zu simulieren, sodass ich "sehen" kann, wie sich eine Anwendung bei verschiedenen "Verbindungsgeschwindigkeiten" verhält?

Ich mache mir keine Sorgen darüber, welche Sprache verwendet wird. Und ich suche nicht nach Codebeispielen oder etwas anderem, sondern nur an der Logik dahinter.

167
anon271334

Wenn Sie Windows ausführen, ist fiddler ein großartiges Werkzeug. Es gibt eine Einstellung, um die Modemgeschwindigkeit zu simulieren, und für jemanden, der mehr Kontrolle will, verfügt ein Plugin über eine Latenz für jede Anforderung .

Ich ziehe es vor, ein Werkzeug wie dieses zu verwenden, um Latenzcode in meine Anwendung einzufügen, da es eine viel realistischere Simulation ist und ich nicht die eigentlichen Bits entwerfen oder codieren muss. Der beste Code ist Code, den ich nicht schreiben muss.

HINZUGEFÜGT: Dieser Artikel auf Pavel Donchevs Blog über Software-Technologien zeigt, wie Sie benutzerdefinierte simulierte Geschwindigkeiten erstellen: Beschränken Sie Ihre Internetverbindung mit Fiddler .

102
Philip Rieck

Beginnend mit Chrome 38 können Sie dies ohne Plugins tun. Klicken Sie einfach auf Inspect Element (oder F12 Hotkey), dann auf "Gerätemod umschalten" klickenenter image description here und du wirst so etwas sehen:

enter image description here

Neben vielen anderen Funktionen können Sie damit eine bestimmte Internetverbindung (3G, GPRS) simulieren.

S. für Personen, die versuchen, die Upload-Geschwindigkeit zu begrenzen. Leider ist es zur Zeit nicht möglich.

P.S.2 Jetzt müssen Sie nichts mehr umschalten. Die Drosselungsleiste ist direkt über die Netzwerkleiste verfügbar. enter image description here

Beachten Sie, dass Sie durch Klicken auf Keine Drosselung Ihre benutzerdefinierten Drosselungsoptionen erstellen können.

enter image description here

148
Salvador Dali
38
Stin

Ich habe http://www.netlimiter.com/ verwendet und es funktioniert sehr gut. Beschränken Sie nicht nur die Geschwindigkeit für einzelne Prozesse, sondern zeigen Sie auch die tatsächlichen Übertragungsraten an.

11
Piotr Müller

Auf Linux-Maschinen können Sie wondershaper verwenden. 

apt-get install wondershaper

$ Sudo wondershaper {interface} {down} {up}

die {down} und {up} sind die Bandbreite in kpbs

Wenn Sie zum Beispiel die Bandbreite der Schnittstelle eth1 auf 256kbps Uplink und 128kbps Downlink begrenzen möchten,

$ Sudo wondershaper eth1 256 128

Um das Limit zu löschen,

$ Sudo wondershaper clear eth1 
8

Es gibt TCP -Proxys wie iprelay und Sloppy, die Bandbreiten-Shaping durchführen, um langsame Verbindungen zu simulieren. Sie können auch Bandbreitenformung durchführen und Paketverluste mithilfe von IP-Filter-Tools wie ipfw und iptables simulieren.

6
hobbs

Um eine langsame Verbindung bei einigen * Nixen zu simulieren, können Sie auch ipfw verwenden. Weitere Informationen finden Sie in der Antwort von Ben Newman auf diese Quora question

4

Sie können versuchen, Dummynet , um Warteschlangen- und Bandbreitenbeschränkungen, Verzögerungen, Paketverluste und Multipath-Effekte zu simulieren

4
tszming

Verwenden Sie einen Web-Debugging-Proxy mit Drosselungsfunktionen wie Charles oder Fiddler .

Sie werden im Allgemeinen nützliche Webentwicklung finden. Der Hauptunterschied besteht darin, dass Charles Shareware ist, während Fiddler kostenlos ist.

3
Ben M

Verwenden Sie ein Tool wie TCPMon . Es kann eine langsame Verbindung vorgetäuscht werden.

Im Grunde fordern Sie es genau dasselbe an, und es leitet genau dieselbe Anfrage an den realen Server weiter und verzögert dann die Antwort nur mit der festgelegten Anzahl von Bytes.

2
pickypg

Mac OSX hat seit 10.10 eine App namens Murus Firewall , die als GUI für pf fungiert, dem Ersatz für ipfw.

Es funktioniert sehr gut für systemweite oder domänenspezifische Drosselung. Ich konnte damit einfach meine Downloadgeschwindigkeit zwischen 300 Kbit/s und 30 Mbit/s verschieben, um zu testen, wie sich ein Streaming-Videoplayer anpasst.

1
Ben Wheeler

Aktualisierung (9 Jahre nach der Aufforderung), da die gesuchte Antwort nicht erwähnt wurde:

Firefox hat auch Voreinstellungen zum Drosseln der Verbindungsgeschwindigkeit. Finden Sie sie auf der Registerkarte Network Monitor der Entwicklertools. Die Standardeinstellung ist "Keine Drosselung".

Am langsamsten ist GPRS ( Download-Geschwindigkeit: 50 Kbps, Upload-Geschwindigkeit: 20 Kbps, Minimale Latenz (ms): 500 ), von "gut" und "normal" 2G, 3G und 4G bis zu DSL und WiFi ( Download-Geschwindigkeit: 30 Mbit/s, Upload-Geschwindigkeit: 15 Mbit/s, Minimale Latenz (ms): 2 .

Mehr in den Dev Tools docs .

0
lazysoundsystem

Sie können NetEm (Network Emulation) als Proxy-Server verwenden, um viele Netzwerkmerkmale zu emulieren (Geschwindigkeit, Verzögerung, Paketverlust usw.). Es steuert das Netzwerk mit dem Paket iproute2 und ist im Kernel der meisten Linux-Distributionen aktiviert.

Sie wird von der Befehlszeilenanwendung tc (vom Paket iproute2) gesteuert. Es gibt jedoch auch einige Webinterface-GUIs für NetEm, beispielsweise PHPnetemGUI2 .

Der Vorteil ist, dass es, wie ich geschrieben habe, nicht nur unterschiedliche Netzwerkgeschwindigkeiten emulieren kann, sondern beispielsweise auch Paketverlust, Duplizierung und/oder Beschädigung, zufällige oder definierte Verzögerung usw., so dass Sie verschiedene schlecht funktionierende Netzwerke emulieren können.

Für Ihre Anwendung ist es absolut transparent. Sie können das Betriebssystem so konfigurieren, dass der NetEm-Proxyserver verwendet wird, sodass alle Verbindungen von diesem Computer aus über NetEm laufen. Oder Sie können nur Ihre Anwendung so konfigurieren, dass sie als Proxy verwendet wird.

Ich habe es verwendet, um die Leistung einer Android-App in verschiedenen emulierten Netzwerken mit schlechter Leistung zu testen.

0
Dawid Ferenczy

Es gibt auch ein anderes Werkzeug namens WIPFW - http://wipfw.sourceforge.net/

Es ist ein bisschen altmodisch, aber Sie können es verwenden, um eine langsamere Verbindung zu simulieren. Es ist Windows-basiert und das Tool ermöglicht es dem Administrator zu überwachen, wie viel Datenverkehr der Router von einem bestimmten Computer erhält oder wie viel WWW-Datenverkehr er weiterleitet.

0
Deano