Network tools that simulate slow network connection [closed]
Asked Answered
C

16

262

I would like to visually evaluate web pages response time for several Internet connections types (DSL, Cable, T1, dial-up etc.) while my browser and web server are on the same LAN or even on the same machine. Are there any simple network tools or browser plug-ins that slow down network bandwidth to simulate different real-world connection scenarios.

I appreciate any input on that.

Creepie answered 7/7, 2009 at 20:44 Comment(4)
Just a note, you might cross-post this on serverfault.com.Doctrine
OSX Mountain Lion users can use Network Link Conditioner - #11700305.Urtication
github.com/shopify/toxiproxyPronty
Related: https://mcmap.net/q/103085/-simulating-slow-internet-connection-closedPostimpressionism
B
23

try Traffic Shaper XP you can easily limit speed of IE or other browser with this App and its also freeware

Bushing answered 7/7, 2009 at 20:48 Comment(7)
kaspersky reports the download from that site as containing a trojan downloader program.Jasso
Symantec Enpdpoint Protection didn't find any problems with the file.Grasso
Doesn't seem to work on Windows 7.Frosty
joemiller.me/2010/08/31/…Indian
I could not get that to work. Does it support traffic to localhost or 127.0.0.1 address?Varmint
@Anderson, Probably not. As far as I recall, Windows doesn't have a internal network stack for local connections like *nix usually does.Wadleigh
I use Clumsy (jagt.github.io/clumsy/index.html) myself.Southey
N
284

On Linux, see netem: the kernel already contains support for traffic shaping, and can simulate high latency, low bandwidth, packet losses, and all sort of other adverse conditions, even on a loopback device (so you don't need a real, physical network to test across).

Nagel answered 7/7, 2009 at 20:51 Comment(8)
+1 to this. Awesome. With a single command I can make "localhost" behave like a public internet service on coffee shop wifi: sudo tc qdisc add dev lo root netem delay 500msBaccarat
Sweet! The docs are here: linuxfoundation.org/collaborate/workgroups/networking/netemTichonn
Super cool. Just want to add how to remove the emulation again. To add: sudo tc qdisc add dev lo root netem delay 100ms To remove: sudo tc qdisc del dev lo root netem delay 100msLachus
#11833005Bole
You can completely reset all tc rules for loopback with the single command sudo tc qdisc del dev lo root - change lo to eth0 if you're using a wired connection etcFerbam
Recent versions of netem support limiting the bandwidth too using the rate option: tc qdisc add dev lo root handle 1:0 netem delay 10ms rate 1mbit limit 1000. Note that for some devices, such as the loopback device, you also need to set it to have a non-zero queue length for the rate option to work: ifconfig lo txqueuelen 1000. See serverfault.com/a/394949/76090Pend
Also for Linux is the command-line tool wondershaper: sudo apt install wondershaper; sudo wondershaper eth0 128 64 will throttle the eth0 interface to 128 kilobits down, 64 up.Hyaline
The link in this answer is dead. Does anyone know where the documentation moved to?Elfland
M
81

I am resurrecting this thread because I had the same need recently. Amazingly, I discovered that Fiddler can be used to do that by customizing the rules and adding this line oSession["response-trickle-delay"] = "150"; in the section OnBeforeResponse.

Fiddler is really amazing.

Mineral answered 25/7, 2010 at 17:17 Comment(4)
In recent versions of Fiddler, you only need to enable Simulate Modem Speeds under Rules -> Performance.Frosty
+1 Fiddler is an exceptional tool, perhaps overkill for just this but definitely worth having around. You can easily get Fiddler to only fiddle with one program by using the process filter, no setting up of proxies in your program needed!Adrea
I was already a lover of Fiddler but now I just can't live without it. I didn't know that the tool I need lives with me every day :)Siddon
Note that this is a windows-only solution, unless you are willing to fiddle with hacks and workarounds.Lumisterol
B
23

try Traffic Shaper XP you can easily limit speed of IE or other browser with this App and its also freeware

Bushing answered 7/7, 2009 at 20:48 Comment(7)
kaspersky reports the download from that site as containing a trojan downloader program.Jasso
Symantec Enpdpoint Protection didn't find any problems with the file.Grasso
Doesn't seem to work on Windows 7.Frosty
joemiller.me/2010/08/31/…Indian
I could not get that to work. Does it support traffic to localhost or 127.0.0.1 address?Varmint
@Anderson, Probably not. As far as I recall, Windows doesn't have a internal network stack for local connections like *nix usually does.Wadleigh
I use Clumsy (jagt.github.io/clumsy/index.html) myself.Southey
L
21

Try Microsoft's NEWT, it worked perfect for me. It supplies customized latency, packet drop techniques and more :)

http://blog.mrpol.nl/2010/01/14/network-emulator-toolkit/

Update 1:

Here is a good video tutorial for NEWT - Network Emulator For Windows Toolkit Tutorial (Credits to Jimmery)

Liturgics answered 2/9, 2012 at 14:11 Comment(10)
Does this work like fiddler (ie. is it invisible to the client and server apps?)Rounded
Yes, I think it's working in the driver level.Liturgics
I tried it, but I couldn't figure it out - is there a help file anywhere?Rounded
It's pretty straight forward, but you'll have to know some basic network concepts before using this tool.Liturgics
I know basic networking concepts - but couldn't get it to do anything.Rounded
Use the trace button (looks like a yellow foot) to see if your filters are relevant to any network packets. Try simple stuff, like dropping every packet for port 80 (HTTP).Liturgics
Same here; I'm a developer, I've written TCP level C++ code before -- have configured QoS (and many other things) in detail for routers -- I have a network intensive app running (downloading/uploading 2 - 4 Mb/s right now) -- Tried the tracing, and also "Action->Toggle Tracing", but nothing happens. Also don't see any relevant way to setup bandwidth throttling... so that's annoying.Hassanhassell
Ive not got the network knowledge of you guys, but I got NEWT to work after watching this youtube vid: youtube.com/watch?v=s5o_GnYOloA - I hope this helpsFornication
Didn't work on windows8.1Tracery
@RanP, Make sure you press 'F5' to start the throttling action. You have to start it explicitly.Nauseate
A
18

My work uses this tool, and it seems quite good: http://www.dallaway.com/sloppy/

Best of luck.

Ancestry answered 7/7, 2009 at 20:46 Comment(4)
+1 Java-based, so it works great on OSX (haven't tried it on Windows or Linux yet) - easy to install & run, works transparently, and doesn't leave a mess afterwards!Dabber
yep, excellent tool, web based jnlp (no install needed, just launch it) it creates a proxy on localhost, port is configurable, speed can be changed dynamically +32 ;)Feudalism
I've used sloppy before and I love it, but sadly it does not support https: groups.google.com/forum/#!topic/sloppy-discuss/tOyCx7igfkwMaxey
doesn't simulate the packet loss of crappy networks though.Cerracchio
M
14

I've successfully used TMnetSim (bottom of the page, under “Other Tools” - the link says something like “ZIP: TMnetSim Network Simulator version 2.4 32-bit (600KB)”

It's not just for websites - you can slow connections to any TCP port. I was using it to simulate a slow SQL Server (port 1433).

Moneybags answered 7/7, 2009 at 20:47 Comment(6)
What OS were you using? I couldn't get it to work at all under 32-bit Windows 7...Kyne
@GuyBehindtheGuy: did you ever have any luck? I have the same need and OS...Sharanshard
I ended up using DummyNet. There's a Windows version here: info.iet.unipi.it/~luigi/dummynetKyne
+1 This one did exactly what I needed with the minimal amount of fuzz. Thanks for the tip!Communion
Current version is working on 64-bit Windows 8.1 just fine.Beer
Can TMnetSim be used to simulate a slow SQL Server connection when the server is running on the local machine? If so, what are the settings?Stepmother
C
6

DummyNet

Try this FreeBSD based VMWare image. It also has an excellent how-to, purely free and stands up in 20 minutes.

Update: DummyNet also supports Linux, OSX and Windows by now

Ceiling answered 6/8, 2010 at 9:6 Comment(2)
Thanks for the tip on this. Turns out there's now a native Windows version available, which I used successfully.Kyne
I went this way. But configuration took me ~4 hours. I should have known to replace "192.168.0." to "192.168.196." (the subnet) through all the rc.conf and rc.firewall.Barbette
P
6

I love Charles.

The free version works fine for me.

Throttling, rerwiting, breakpoints are all awesome features.

Polenta answered 12/6, 2013 at 11:2 Comment(6)
Yeah, it works fine for 30 days... :-/Hassanhassell
For me it works fine also after the 30 days, you just have to wait a little longer and it reboots after 30 minutes. But you can always get the license.Polenta
Version 3.7? The website seems to imply that after 30 days you have to purchase it to continue using it.Hassanhassell
Your assumption is wrong. In the first 30 days you can use it without delays. After that there are small delays and it reboots after 30 minutes.Polenta
From their Website: After 30 days if you decide to continue using Charles you must purchase a licenseCousteau
for others benefit: Charles 3 and 4 gave me very unstable results when throttling. Pretty much every throttle setting didn't work as expected except for utilization %.Hawley
H
6

For Linux or OSX, you can use ipfw.

From Quora (http://www.quora.com/What-is-the-best-tool-to-simulate-a-slow-internet-connection-on-a-Mac)

Essentially using a firewall to throttle all network data:

Define a rule that uses a pipe to reroute all traffic from any source address to any destination address, execute the following command (as root, or using sudo):

$ ipfw add pipe 1 all from any to any

To configure this rule to limit bandwidth to 300Kbit/s and impose 200ms of latency each way:

$ ipfw pipe 1 config bw 300Kbit/s delay 200ms

To remove all rules and recover your original network connection:

$ ipfw flush

Hamman answered 24/1, 2014 at 20:33 Comment(0)
A
4

If you use Apache, you can use mod_bandwith.

See here for configuration parameters.

Accad answered 7/2, 2012 at 21:1 Comment(0)
L
4

Mac OS X has now an integrated tool able to simulate slow and bad networks : http://9to5mac.com/2011/08/10/new-in-os-x-lion-network-link-conditioner-utility-lets-you-simulate-internet-and-bandwidth-conditions/

Lied answered 29/4, 2014 at 14:17 Comment(0)
D
2

If you'd like a hardware solution, Netgear has a series of cheap ($50 or so) switches that do bandwidth limiting. Netgear Prosafe GS105E and similar switches are worth investigating.

Diploblastic answered 7/9, 2011 at 15:3 Comment(0)
B
2

You can also try WANem which is an open source Wide Area Network emulator. You can download the image (ISO, Knoppix live CD) or VMWare virtual appliances.

Boabdil answered 22/8, 2013 at 10:38 Comment(0)
C
2

A simple mac GUI program is

https://www.macupdate.com/app/mac/28072/entonnoir/ which can limit the speed

Calicle answered 1/3, 2014 at 16:37 Comment(0)
S
1

You can use dummynet ofcourse, There is extension of dummynet called KauNet. which can provide even more precise control of network conditions. It can drop/delay/re-order specific packets (that way you can perform more in-depth analysis of dropping key packets like TCP handshake to see how your web pages digest it). It also works in time domain. Usually most the emulators are tuned to work in data domain. In time domain you can specify from what time to what time you can alter the network conditions.

Skirret answered 31/8, 2013 at 4:16 Comment(0)
B
0

In case you need to simulate network connection quality when developing for Windows Phone, you might give a try to a Visual Studio built-in tool called Simulation Dashboard (more details here http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206952(v=vs.105).aspx):

You can use the Simulation Dashboard in Visual Studio to test your app for these connection problems, and to help prevent users from encountering scenarios like the following:

  • High-resolution music or videos stutter or freeze while streaming, or take a long time to download over a low-bandwidth connection.
  • Calls to a web service fail with a timeout.
  • The app crashes when no network is available.
  • Data transfer does not resume when the network connection is lost and then restored.
  • The user’s battery is drained by a streaming app that uses the network inefficiently.
  • Mapping the user’s route is interrupted in a navigation app.

...

In Visual Studio, on the Tools menu, open Simulation Dashboard. Find the network simulation section of the dashboard and check the Enable Network Simulation check box.

Beggarly answered 10/11, 2013 at 5:5 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.