You are here: Duckware » Technology Blog » Router "WAN to LAN" throughput Test
Router "WAN to LAN" throughput Test
duckware.com/testwan2lan -- February 20, 2018 -- Version 2.1a (2019/07/17)

Router "WAN to LAN" throughput Test
TIP: The test programs below are great at testing Mbps speeds between any two computers. That can be WAN to LAN, LAN to wifi, etc.

TIP: The efficiency of TCP/IP over Ethernet, with a MTU of 1500, is 1460/1538, or (1500-20-20) / (1500+38)), which translates to a maximum possible (application level) speed of 949.28 Mbps for Gigabit Ethernet (50.72 Mbps overhead). Details from wikipedia
The problem: How do you reliably and very accurately test Router "WAN to LAN" throughput? Because even with a full Gigabit (1000 Mbps) Internet connection, a bad speedtest result might be the fault of the Internet connection, and not the router. How do you test ONLY the router?

The solution: Use your gigabit LAN as the WAN that the 'router to test' sees, and run a speedtest over this known full gigabit LAN!

Test Requirements: You will need two computers with gigabit wired Ethernet to run this test. First, attach all devices as seen in the diagram below:

Running Speed Test...
IN=http://192.168.1.2/huge.bin
OUT=http://192.168.1.2/huge.bin
IP=192.168.1.2
BPS=940,591,744
  0: 117,448,805 (939,590,440 bps)
  1: 117,572,777 (940,582,216 bps)
  2: 117,576,621 (940,612,968 bps)
  3: 117,571,626 (940,573,008 bps)
  4: 117,573,800 (940,590,400 bps)
  5: 117,572,657 (940,581,256 bps)
  ...
LAN to LAN test, port 80

Running Speed Test...
IN=http://192.168.1.2/huge.bin
OUT=http://192.168.1.2/huge.bin
IP=192.168.1.2
BPS=326,754,656
  0: 15,756,597 (126,052,776 bps)
  1: 36,133,285 (289,066,280 bps)
  2: 41,282,269 (330,258,152 bps)
  3: 41,238,824 (329,910,592 bps)
  4: 41,169,722 (329,357,776 bps)
  5: 41,211,178 (329,689,424 bps)
  6: 41,310,052 (330,480,416 bps)
  7: 41,154,980 (329,239,840 bps)
  8: 41,176,542 (329,412,336 bps)
  9: 41,194,539 (329,556,312 bps)
 10: 41,011,124 (328,088,992 bps)
 11: 40,844,220 (326,753,760 bps)
 12: 40,793,024 (326,344,192 bps)
 13: 40,763,889 (326,111,112 bps)
 14: 40,856,632 (326,853,056 bps)
 15: 41,094,183 (328,753,464 bps)
 16: 41,092,261 (328,738,088 bps)
 17: 41,273,242 (330,185,936 bps)
 18: 41,209,349 (329,674,792 bps)
 19: 41,227,831 (329,822,648 bps)
RWIN=1460000
RTT=1.27 ms
BDP=8,741,797,899 bps
Netgear R7800 WAN to LAN, port 80

Running Speed Test...
IN=http://192.168.1.2:81/huge.bin
OUT=http://192.168.1.2:81/huge.bin
IP=192.168.1.2
BPS=940,504,328
  0: 117,397,405 (939,179,240 bps)
  1: 117,572,084 (940,576,672 bps)
  2: 117,575,301 (940,602,408 bps)
  3: 117,573,382 (940,587,056 bps)
  4: 117,574,013 (940,592,104 bps)
  5: 117,574,222 (940,593,776 bps)
  ...
Netgear R7800 WAN to LAN, port 81


Configure Test Router as an "Access Point": Connect the WAN port of the 'router to test' to a Gigabit switch that is connected to the Internet (as per diagram above). Factory reset (how to factory reset Netgear routers) the 'router to test' and set the mode of operation to "Access Point" (AP) (how to configure AP mode for Netgear routers). In this "AP" mode, the WAN/LAN ports on the 'router to test' act as a gigabit switch on the LAN (there is NO routing and NO DHCP). So all devices are actually connecting to the WAN router to obtain ip addresses (not the 'router to test').

Setup your computers: Turn wifi off on both computers and verify that the only active connection is wired Gigabit ethernet, and install the test software:
  1. Download test-wan2lan.zip
  2. Extract/copy the ZIP contents (httpd.exe and dlspeed.exe) into a temp folder on two computers. The two EXE's in this ZIP require 32-bit Java.
UPDATE 2020/02/11:There is a new multi-platform SpeedTest program available. Run the program in server mode on one computer, and client mode on another computer, and both download and upload Mbps will be displayed.

Verify computer power: Run the 'LAN to LAN' test below, but instead of between PC's, run the test within each PC to itself (from a PC to the same PC). You should obtain a speed test result well over 1 Gbps. This is to confirm that your computers are powerful enough to run the true 'LAN to LAN' test below. On two of my PC's, I get a result around 5 Gbps (and on a third, 20 Gbps), a good result.
TIP: It can't hurt to reboot your computer before running this test. I once got 1.5 Gbps speeds and could not figure out why. Rebooted, and immediately got 5 Gbps speeds again.
LAN to LAN test: Next, verify that your Gigabit LAN and network cards are fully capable of Gigabit speeds. With the 'router to test' in AP mode:
  1. Run "httpd.exe ." on the first computer and take note of the ip address output by this program (to use in next step). This runs a mini HTTP web server (allowing access to any file in the temp folder; great for testing static web sites) with a built-in 10 GB "huge.bin" file. In this computer's firewall, you must allow httpd.exe to accept incoming connections (or suspend the firewall during test). You can also use "ipconfig/all" to find a computer's ip address.
  2. Run "dlspeed.exe -1460000 http://x.x.x.x/huge.bin" on the second computer where "x.x.x.x" is the ip address of the first computer. dlspeed.exe runs for around 20 seconds and then outputs all results at once.
You should obtain a speedtest result that is very close to the maximum Gigabit LAN speed of 949 Mbps (network overhead uses up 51 Mbps). For example, on my test system, I obtained a speedtest result of 941 Mbps (see test above right), a good result.
If you do not obtain the expected speed, review ethernet driver settings in the OS.
Finally, run the WAN to LAN test: Next, factory reset the 'router to test' (you want the router back in "Router" mode with default settings). The 'router to test' will see your LAN as the WAN. The second computer will now get a new IP address from the 'router to test'. Re-run the exact same "dlspeed.exe" test above (to the same IP address previously used). This tests Router 'WAN to LAN' throughput.
WARNING: After a factory reset, you will likely need to first connect to the router from the second computer and answer some basic questions before the router is properly configured and ready for use in the speedtest. Namely, the test router may detect an ip address conflict with the existing router (192.168.1.X) and change to a secondary ip address range (10.0.0.X).
Optional test variation: Just before running dlspeed.exe, unplug the Ethernet cable (orange cable line in diagram above) running from the switch to the WAN router. This will eliminate any possible influence (however unlikely) from that router or Internet during the speedtest on your LAN.
This test variation also make it incredibly clear that your existing Internet router plays NO 'routing' role in the speedtest. The only equipment involved in the speedtest is: (1) the gigabit switch, (2) two computers, and (3) the 'router to test' -- and nothing else.
Results: If you run this test, please forward your dlspeed.exe output results (along with router model number and firmware version) to us. See the last section below for contact info.
Router throughput
EraRouterFirmwareWAN to LANLAN to LAN
port 80port 81
100 Mbps class routers -- 94.9 Mbps max
2009Netgear WNR1000v3V1.0.2.68_60.0.9394 Mbps94 Mbps94 Mbps
1 Gbps class routers -- 949 Mbps max
2012Netgear JNR3210V1.1.0.30_1.0.2425 Mbps433 Mbps941 Mbps
2016Netgear R7800V1.0.2.44327 Mbps941 Mbps941 Mbps
2016Netgear R7800V1.0.2.62941 Mbps941 Mbps941 Mbps
Single vs Multiple socket speed tests: dlspeed.exe very intentionally uses only a single socket to download the huge.bin file -- because a single socket speedtest is the hardest test to pass! This is because a single socket speedtest immediately reveals problems such as packet loss, per socket throttling, RWIN bugs, router bugs, etc. The entire point is to verify great WAN to LAN performance, not mask core underlying performance bugs!
WARNING: Virtually all Internet speedtest sites that you find on the web intentionally use multiple sockets. Why? Because these sites want to work around bugs, as their goal is to display your maximum speed possible (not inform you that there is some unknown bug causing problems).

And if you want to speedtest multiple sockets, just start multiple dlspeed.exe downloads at the same time (all on the second PC) and take note if overall combined speed increases (Windows Task Manager, Networking tab can be useful). If overall speed does significantly increase, there is a bug somewhere.
UPDATE 2018/03/06: Port issues: Some routers will behave differently depending upon which TCP/IP port is used for the speedtest. In particular, WAN to LAN on Netgear routers appears to be greatly negatively affected by using port 80. You can test for this issue by altering the command line of the test programs above (which use port 80 by default) to specify a different port number:
Run "httpd.exe -port:81 ." on the first computer.

Run "dlspeed.exe -1460000 http://x.x.x.x:81/huge.bin" on the second computer.
UPDATE 2018/03/06: A huge "TELL" that something is not right with the Netgear router is that during the download speedtest above, the "CPU Load" on the R7800 router's "http://x.x.x.x/debug.htm" web page is very high.
I wonder if this is a bug regarding Netgear's 'Parental Controls' implementation?
UPDATE 2019/07/17: Retesting the Netgear R7800 with the latest V1.0.2.62 firmware (today) shows a fast 941 Mbps speed. So whatever bug Netgear had appears to have been fixed.

A final note: This "WAN to LAN" test was specifically designed to test BOTH 'LAN to LAN' and 'WAN to LAN' without changing any ethernet cables. The 'router to test' is never eliminated from the test. Rather, only the software configuration inside the 'router to test' is changed (between "Access Point" and "Router" mode). This takes advantage of how routers implement 'access point' mode (converts WAN port into another LAN port). Because no cables are changed, if 'LAN to LAN' is fast, but 'WAN to LAN' is slow, there is only the reconfiguration mode of the 'router to test' to blame (not cables, etc).


Contact us
Use this contact form to contact the author of this paper, Jerry Jongerius.
Some images and text are copyrighted by their respective owners and are reproduced
in this paper under Title 17 Section 107 (Fair Use) of the copyright code.
The rest of this document is Copyright © 2020-2024 Jerry Jongerius