Bean Network Tester

Profiles, settings and exit codes

Three tables, none of them typed by hand. They are generated from the program's own registries when this page is built, so they cannot say something the program does not.

Ready profiles

Pick one of these and the form fills itself in. A dash means the profile leaves that setting alone. Speeds are in kilobytes per second - multiply by eight to compare with what a provider advertises.

ProfileLossLatencyJitterDownloadUpload
Perfect network-----
Good WiFi0.1 %15 ms5 ms--
5G network0.1 %18 ms8 ms20480 KB/s2560 KB/s
Home DSL (VDSL)0.5 %20 ms8 ms4096 KB/s512 KB/s
LTE / 4G0.3 %30 ms20 ms4096 KB/s1280 KB/s
Satellite (low orbit)0.5 %20 ms15 ms12288 KB/s1536 KB/s
Distant server (another continent)-60 ms5 ms12288 KB/s2048 KB/s
Weak WiFi2 %80 ms40 ms512 KB/s256 KB/s
Cafe (crowded WiFi)3 %120 ms90 ms256 KB/s96 KB/s
Congested home link (bufferbloat)-10 ms5 ms1024 KB/s128 KB/s
Train / metro (tunnels)2 %50 ms40 ms1024 KB/s256 KB/s
3G network1 %90 ms60 ms96 KB/s32 KB/s
Foreign roaming1.5 %200 ms80 ms256 KB/s64 KB/s
Satellite (geostationary)1 %340 ms100 ms3072 KB/s384 KB/s
In-flight Wi-Fi7 %375 ms150 ms64 KB/s24 KB/s
56k modem0.5 %100 ms30 ms5 KB/s4 KB/s
Terrible network10 %300 ms150 ms32 KB/s16 KB/s

Selecting a profile only fills the fields. Nothing changes on the network until you press START.

Every setting, and the flag that sets it

The window and the command line take the same settings. This is the whole list, with the unit and the range each one accepts.

FlagSettingUnitRange
--filterTraffic to modify--
--lan-modeLAN mode (local network only, no internet)--
--targetProcess--
--downDownloadKB/s0 - 1e+07
--upUploadKB/s0 - 1e+07
--bufferBufferms0 - 600000
--latencyLatencyms0 - 600000
--jitterJitterms0 - 600000
--spike-probSpike chance%0 - 100
--spike-msSpike sizems0 - 600000
--lossLoss%0 - 100
--corruptCorruption%0 - 100
--dupDuplication%0 - 100
--flap-periodPeriods0 - 86400
--flap-downDowntime percent%0 - 100
--dst-ipIP--
--dst-portPort-0 - 65535
--block-ipIP--
--block-portPort-0 - 65535
--syn-dropDropped TCP SYN%0 - 100
--max-sizeMax size (MTU)B (0=off)0 - 65535
--nat-timeoutNAT timeouts (0=off)0 - 86400
--rst-probTCP reset (RST)%0 - 100
--rst-cooldownHold resets0 - 3600
--rate-scheduleSchedule (dur:down:up,...)--
--durationRun times0 - 86400
--row-limitRow limitrows (0 = off)0 - 1e+06
--narrow-filterCapture only the targeted traffic--
--seedSeed--

Exit codes

The command line never ends with a traceback. Each way a run can finish has a number, so a pipeline can tell a failing application from a tool that could not start.

CodeWhat it means
0Finished as asked.
1Something failed while running.
2The command line was wrong.
3A setting or a value was invalid.
4A scenario file was rejected.
5A file could not be read or written.
6An assertion about the run did not hold.
7No administrator rights, so the driver cannot load.
130Interrupted, usually by Ctrl+C.
143Terminated from outside.

Related

Ready to break your own network on purpose?

Download for Windows