You are here: Duckware » TxRate
TxRate - measure Wi-Fi transmit speed in real-time
Works on ANY device (laptop/PC/etc) supporting Java


Download/Extract: Download txrate.zip, open, and extract all files contained within this downloaded ZIP into a temporary folder on your computer.

Run: See 'Usage example' section below. Or type "java -jar txrate.jar" (from a command prompt in the temp folder) to run TxRate and obtain command line usage information. If your computer does not have Java installed, visit Java Downloads (java.com) and install Java.

Wi-Fi contention from another station
TxRate: Measure actual laptop/PC/etc Wi-Fi transmit speed in real-time.
Sometimes a subtle re-position of the router (and/or antennas) can have a big impact (positive or negative) on throughput.

So, use TxRate to quickly find the best position for your router and/or client device that maximizes Wi-Fi throughput.

Try moving the router slightly, rotating the router, re-position router antennas, etc.
Usage example: The provided "go.bat" file (for Windows) shows an example of how to use TxRate, which runs this command:
java -jar txrate.jar -live -ms:10000 192.168.1.1
This causes packets to be sent to the main router at 192.168.1.1 for 10 seconds, with a popup "live" graph displaying results in real-time.
TIP: Replace "192.168.1.1" in the go.bat file with the ip address of the access point your computer is connected to (often this is your main router).
Requirements: There must be a Java VM installed (see java.com for help) in order to run the Java JAR 'executable' file contained within the download ZIP.
To test if your computer has a Java VM installed, run the "java -version" command. If you see valid output, Java is installed (otherwise an 'unrecognized command' message means that Java is not installed).
How it works: TxRate uses a non-blocking UDP socket and transmits packets to a destination you specify (just use the IP address of your main router). It then measures how fast the Wi-Fi driver accepts packets from the TxRate program. The rate at which packets are successfully written to the Wi-Fi driver should match the rate at which packets are sent over Wi-Fi. In effect, TxRate saturates Wi-Fi and measures the resulting speed. Source code is provided in the download ZIP file.
Note that an advantage of this technique is that only the device being measured needs to run the TxRate software (and that NO other device needs to run any software).

It is interesting to note that during the test (on Wi-Fi using the 2.4 GHz band), a wireless mouse may be significantly impacted (be very jerky). This happens on some computers, but not others. More research is needed. It is likely a channel usage issue.
First Hop Only: Please take note that TxRate intentionally measures the transmit speed of only the first hop. So if there are other hops before your main router (like if using a mesh network or a Wi-Fi extender), those other hops are NOT measured. See also the SpeedTest program.

118.1 Mbps throughput from 144.4 PHY speed
Throughput vs PHY: We expect Wi-Fi throughput to be around 70% (± 10%) of the Wi-Fi PHY speed (source).
Seen right is an example of TxRate running when the Wi-Fi PHY speed was 144.4 Mbps, and TxRate measured an overall throughput of 118.1 Mbps. This represents 82% of the PHY speed, which is a great result (and up the upper end of what is expected for Wi-Fi).
A LOT of data can be transmitted: Please be aware that a LOT of data can be transmitted over Wi-Fi is a very short period of time -- because TxRate measures the Tx rate by saturating Wi-Fi. If Wi-Fi usage is not metered, this will have no impact. Just be aware of this issue in case your Wi-Fi usage is somehow 'metered'.


Wi-Fi interferrence from a Microwave Oven
Microwave Ovens: Microwave ovens operate at the SAME frequency as 2.4 GHz Wi-Fi. Some microwave ovens have a big impact on all/some Wi-Fi channels, while other microwave ovens have no, or very little impact on any Wi-Fi channels. It is sure interesting to use TxRate to 'see' the impact (or not) using a microwave oven has on Wi-Fi (use the '-live' command line option).

An example of the impact is seen right, where I turned on the microwave for a couple of seconds (see red highlight) in the middle of running a TxRate test.

An interesting bug found in Intel Proset Wi-Fi drivers: For unknown reasons, the Intel Proset Wi-Fi drivers will sometimes just discard all packets sent to the Wi-Fi driver for a very short period of time (a couple hundred milliseconds) -- in other words, packets written 'succeed', but are clearly instead just 'dropped on the floor'. This results in a huge throughput spike that is not real.
This bug was duplicated on multiple laptops and multiple (Windows) OS. The common thread was an Intel Proset Wi-Fi driver (AX201/AX210/etc).

This is almost certainly a "Wi-Fi is about to drop, but has not yet" timeout issue. On a computer with NO Wi-Fi connections set to "connect automatically", when the bug happens, I sometimes see Wi-Fi switch to another access point (of the same SSID name).

Also, why does blasting out packets at the maximum rate cause Intel Wi-Fi to drop the Wi-Fi connection? Seems like this may be triggering some other bug.
Not all routers are made equal: When I connect to a high end Wi-Fi 5 router ($250), I get a transmit rate hovering right around 580 Mbps. However, when I connect to a very low end Wi-Fi 5 router ($28), the transmit rate hovers right around 230 Mbps. In both cases, the routers are on the same channel, and are only feet away from the same test laptop. Router quality matters!

Donate: If you find this program helpful, please support it with a donation.
This document is Copyright © 2006-2024 Jerry Jongerius