Speed Test

There are two supported ways to run an NDT test: via this web page (see below) or via a Unix command-line tool (see link to the NDT source code below).

Large Internet Service Providers (ISPs) have degraded the performance of their customer’s traffic as a tactic to convince content and application providers to pay added “tolls” to deliver content that Internet users have already requested and paid for. The battleground — where this degradation takes place — is at ISP interconnection points. These are the places where traffic requested by ISP customers crosses between the ISP’s network and another network on which content and application providers host their services.

This test measures whether interconnection points are experiencing problems. It runs speed measurements from your (the test user’s) ISP, across multiple interconnection points, thus detecting degraded performance.

This test uses Measurement Lab (M-Lab) infrastructure and code. M-Lab is a research and industry coalition dedicated to open Internet measurement and public data. Running this test contributes valuable data to the public domain. These data are critical for protecting your rights. The more data contributed, the better consumer advocates will be able to argue for strong Net Neutrality protections, and set strong standards for FCC enforcement to keep the Internet open and ISPs serving their customers.

NDT (Network Diagnostic Tool)

NDT (Network Diagnostic Tool) provides a sophisticated speed and diagnostic test suitable for both the novice and the network researcher. NDT reports upload and download speeds and attempts to determine what problems limit speeds. It also provides detailed diagnostic reporting on what it finds. While the diagnostic messages are most useful for expert users, they can also help novice users by allowing them to provide detailed trouble reports to their network administrator.

The Computing and Instrumentation Solutions (CIS) Division has developed a Network Diagnostic Tool (NDT) to help diagnose network performance and configuration problems. This tool can determine the speed (Dial-up to OC-192) and duplex (full or half) settings of your slowest link on the end-to-end path between a desktop client computer and a server running the NDT. It can determine if your performance is being limited by network congestion (e.g., competing traffic over the shared portions of the end-to-end path). It can also determine if the throughput is limited by the client's network configuration parameters. Finally, the tool looks for, and reports, two serious error conditions, duplex mismatch and faulty hardware.

Source code is available at https://github.com/MilanKANtony/ndt

NPAD (Network Path & Application Diagnostics)

NPAD diagnoses a range of common performance issues affecting the last network mile and end-users’ systems.NPAD (Network Path and Application Diagnosis) is designed to diagnose network performance problems in your end-system (the machine your browser is running on) or the network between it and your nearest NPAD server. For each diagnosed problem, the server prescribes corrective actions with instructions suitable for non-experts.

Brief instructions
  • The test results are most accurate over a short network path. If this NPAD server (located at (unknown near BKK)) is not near you, look for a closer server from the list of Current NPAD Diagnostic Servers.
  • Have an end-to-end application performance goal (target round-trip time and target data rate) in mind. Enter the parameters on the form below and click Start Test. Messages will appear in the log window as the test runs, followed by a diagnostic report.
  • In the diagnostic report, failed tests (in red) indicate problems that will prevent the application from meeting the end-to-end performance goal. For each message, a question-mark link ([?]) leads to additional detailed information about the results.
  • Every test is fully logged (including your IP address) and test results are public. We use the logs and results to further refine the software.


Neubot (the network neutrality bot) is a free software Internet bot, developed and maintained by the Nexa Center for Internet & Society, that gathers network performance data useful to investigate network neutrality. Once installed, it runs in the background and periodically performs active transmission tests with M-Lab servers. Three tests are currently implemented: “speedtest,” which emulates HTTP; “bittorrent”, which emulates BitTorrent; and “raw,” which performs a raw TCP test.

**Download and run Neubot (Linux, MacOSX, and Windows**)


BISmark is an OpenWRT-based platform that measures Internet service provider (ISP) performance and traffic inside home networks. BISmark takes the place of your home router, performing all of your router’s normal functions in addition to periodic network performance measurements. BISmark users gain access to a personalized dashboard showing performance over time and comparing performance across ISPs and regions.

The Broadband Internet Service Benchmark or BISmark is a research project and a colaboration effort between Georgia Tech, Princeton Universityand M-Lab, created to develop an open platform for home broadband internet research. BISmark research is centered but not limited to home network performance measurement (benchmarking). Volunteers can use BISmark to measure the performance of their ISP, visualize and monitor traffic patterns using their devices inside their home network

Source code is available at https://github.com/projectbismark/.


SideStream collects statistics about the TCP connections used by the measurement tools running on the M-Lab platform. SideStream runs as a “side” addition to other tools, taking advantage of TCP connections generated by incoming tests to M-Lab.

Source code is available athttps://github.com/npad/sidestream.


MobiPerf is an open source application for measuring network performance on mobile platforms. You can measure your network’s throughput and latency, as well as other useful network measurements. MobiPerf also performs measurements at regular intervals in the background.

Source code is available at https://github.com/Mobiperf/MobiPerf.