What is M-Lab?
Measurement Lab (M-Lab) is the largest open source Internet measurement effort in the world. (Open source refers to source code that is made available for free so that anyone can use or modify it to fit his or her own purposes.) M-Lab provides performance tests that help consumers develop an accurate picture of their Internet service by offering a state-of-the-art server platform that supports many measurement needs. The data are collected and then released to the public for use by policymakers, researchers, and others who are interested in Internet issues.
The graphic below illustrates the relationship between tests run by consumers and M-Lab’s data collection.
Where are M-Lab Servers hosted?
M-Lab hosts our servers, which we call “pods”, in Tier 1 data-centers, connected to the internet with links between 1-10 Gbps. In major metro areas, M-Lab strives to maintain multiple pods, each connected to as many distinct transit providers as possible. You can view where M-Lab servers are hosted on our platform status page.
Once an M-Lab pod is online we make no changes in our systems for the life of each pod. Whenever there is a substantial change to our sites, such as renumbering of IP addresses, we retire the pod, retain its naming and metadata in our systems, and treat the pod as brand new.
M-Lab’s Tests and Data
What measurement tests can I run?
Right now, people can use M-Lab tests to measure their broadband speed, analyze application performance, and run diagnostics. The most commonly run test is the Network Diagnostic Tool (NDT), which provides measurements like upload speed, download speed, and other data points that help to measure speed and quality issues on your connection. To read about all of the tests available on the platform, please visit our tests page.
Will these tests monitor my private Internet activity, like email messages or, browsing and search history?
Absolutely not. M-Lab tests are designed to protect your privacy by measuring only synthetic traffic (“fake” traffic generated by a test) between your device and an M-Lab server. M-Lab’s privacy and data collection policies prohibit the collection of personally identifiable information and private user traffic.
M-Lab collects and publishes all test data, which include the IP address assigned to your device by your Internet service provider (ISP). However, this does not include any information about you as an Internet user, where you browse, or any other personal details.
What data will be collected when I run a test?
Specific information on what type of data is collected by each M-Lab test and how it can be accessed is available on our tests page.
Who is collecting data? Where is it stored?
For most tests, M-Lab collects raw test data and stores them in Google Cloud Storage.
For some tests, such as the Broadband Internet Service Benchmark (BISmark), the test maintainers collect their test’s data and publish it on their own site.
Where can I explore M-Lab data?
You can explore visualizations of M-Lab’s NDT speed test data. All M-Lab data are searchable using BigQuery or can be downloaded in raw compressed file format. Please visit the tests page and click on the section on data for more information about how to access the data using BigQuery or other tools.
Why are my M-Lab results different from other speed tests?
Internet performance tests may provide different results for a lot of reasons. Three of the main reasons for different results among tests are listed below:
1. Differences in the location of testing servers
Every performance test has two parts:
- client: This is the software that runs on the user’s machine and shows the user their speed results.
- server: This is the computer on the Internet to which the client connects to complete the test.
A test generates data between the client and the server, and measures performance between these two points. The location of these two points is important in terms of understanding the results of a given test.
If the server is located within your Internet Service Provider’s (ISP’s) own network (also known as the “last mile”), this is referred to as an “on-net” measurement. This approach lets you know about how your Internet connection is performing intra-network within your ISP, but it does not necessarily reflect the full experience of using the Internet, which almost always involves using inter-network connections (connections between networks) to access content and services that are hosted somewhere outside of your ISP. Results from on-net testing are often higher than those achieved by using other methods, since the “distance” traveled is generally shorter, and the network is entirely controlled by one provider (your ISP).
“Off-net” measurements occur between your computer and a server located outside of your ISP’s network. This means that traffic crosses inter-network borders and often travels longer distances. Off-net testing frequently produces results that are lower than those produced from on-net testing.
M-Lab’s measurements are always conducted off-net. This way, M-Lab is able to measure performance from testers’ computers to locations where popular Internet content is often hosted. By having inter-network connections included in the test, test users get a real sense of the performance they could expect when using the Internet.
2. Differences in testing methods
Different Internet performance tests measure different things in different ways. M-Lab’s NDT test tries to transfer as much data as it can in ten seconds (both up and down), using a single connection to an M-Lab server. Other popular tests try to transfer as much data as possible at once across multiple connections to their server. Neither method is “right” or “wrong,” but using a single stream is more likely to help diagnose problems in the network than multiple streams would. Learn more about M-Lab’s NDT methodology.
3. Changing network conditions and distinct test paths
The Internet is always changing, and test results reflect that. A test conducted five minutes ago may show very different results from a test conducted twenty minutes ago. This can be caused by the test traffic being routed differently. For example, one test might travel over a path with broken router, while another may not. A test run today may be directed to a test server located farther away than a test run yesterday.
In short, running one test will give you a sense of network conditions at that moment, across the best network path available at that time, to the specific server coordinating the test. But because Internet routing and infrastructure change dynamically, testing regularly and looking at the data over time are much more reliable ways to gauge representative performance.
How do I report issues with M-Lab tests?
Most M-Lab tests should take less than sixty seconds to complete, so if your particular test is taking longer, there may be something wrong. First, do the following:
- Try running the test again. Perhaps an unusual network issue caused the problem.
- Try running the test from a different location. For example, if it failed at your home, does the test work at a coffee shop?
- If the test doesn’t start or never completes, is your connection behind a firewall? This may be the case at some workplaces where the network is actively managed.
If none of the above solves the issue you are experiencing, you can report a bug by emailing firstname.lastname@example.org.
When reporting a bug, please provide (if at all possible) the following specific information:
- Your operating system
- Your browser name and version
- The name of the test that is not working
- Any error messages you have received
M-Lab support will usually reply within two business days. You can also ask other M-Lab users about the issue you are reporting in the M-Lab-Discuss group.
What firewall ports does NDT require to be open?
If you are unable to run NDT at all, you may be using a computer that is firewalled, for example at your workplace. You or your network administrator will need to open ports 3001-3010 and 32768-65535 in the firewall for this test to function properly.
What is M-Lab’s mission?
M-Lab aims to advance Internet research by empowering consumers with useful information about their Internet performance. By providing free, open Internet measurement data, researchers, regulators, advocacy groups, and the general public can get a better sense of how the Internet is working for them, and how to maintain and improve it for the future.
Who are M-Lab’s supporting partners?
M-Lab is supported by academic institutions, private foundations, private companies, and public interest organizations. M-Lab’s partners have committed resources to M-Lab in the form of infrastructure, funding, data storage/analysis, staffing, and other assistance dedicated to furthering M-Lab’s mission. For a list of M-Lab’s partners, please see our list of supporters.
M-Lab was founded by New America’s Open Technology Institute (OTI), the PlanetLab Consortium, Google Open Source Research, and a large body of academic researchers. The founding researchers collectively make up the steering committee that leads development of M-Lab’s organizational policies and provides oversight of the platform. M-Lab is a community-based effort. We currently receive resources and financial assistance from our partners and welcome others who would like to support the platform’s growth.
What is the history of M-Lab?
In 2008, Vint Cerf, one of the “fathers of the Internet,” began a series of conversations with Internet researchers to learn more about challenges they faced while trying to study Internet performance. Researchers identified several problems, including a lack of widely deployed servers with ample connectivity to support Internet measurement experiments. They also reported an inability to share large data sets with one another easily.
There also was no public resource that could provide combined performance data to policymakers or to consumers interested in understanding their Internet performance over time. As a result of these conversations, M-Lab was founded to help address the core problems experienced by researchers and to promote large-scale open source measurement of the Internet.
How does M-Lab choose the tests it hosts?
The Internet measurement tests running on the M-Lab platform are built and maintained by researchers interested in understanding the Internet and how people experience it. Interested researchers can build their own open source tests and apply to host them with M-Lab. Applications for new tests are reviewed by our operations team and our Steering Committee, and if approved, they are then installed on M-Lab’s global Internet measurement infrastructure. By making researchers’ tests available in this way and promoting their use by consumers, M-Lab serves both consumers and researchers, as well as regulators and others, by providing data collected over a period of time that is openly available for analysis. For more information, please see our FAQ: Can I use M-Lab’s platform to host my own measurement experiment?
How can I contact M-Lab?
Supporting or Contributing to M-Lab
How can I get involved and support M-Lab?
For individuals, the best way to support M-Lab is to regularly use our tests. You gain the benefit of understanding more about your connection to the Internet, and the research community and the public benefits from the resulting public data.
People who have expert knowledge in web or application development, data analysis, or data presentation in a graphic format may also be interested in working with M-Lab’s tests, data, and analysis tools, all of which are open source and openly licensed. More information can be found in the links below, or you can contact us at email@example.com to learn more.
How can companies or other organizations get involved and support M-Lab?
By becoming an M-Lab supporting partner, companies, nonprofit organizations, academic institutions, and other organizations can help M-Lab in a number of key ways, including the following:
- By providing hardware to grow the M-Lab platform, and donating the cost of network connectivity and hosting.
- By contributing resources for data storage, aggregation, and publication.
- By providing data analysis or by presenting data in graphic form.
- By embedding an M-Lab client tool in an application or service, allowing M-Lab to reach more people and generate more data.
- By providing direct financial support.
How can researchers get involved?
M-Lab welcomes researchers who want to dig into the M-Lab data. Our team provides documentation and support for those interested. If you are interested in working with M-Lab data in your research, check out our data documentation to help get you started and contact us with any questions. We also suggest you join our M-Lab Discuss Group for news and announcements.
Can I use M-Lab to host my own measurement experiment?
M-Lab is open to applications from researchers who develop and maintain open source network measurement tests that conform to our goals and support our mission. However, the vast majority of proposed M-Lab tests are not accepted because of the high standard that M-Lab sets for the tests that we host. We require all tests to be actually initiated by an end-user; that is, we don’t allow automatic tests to be run between measurement points on the platform. And the test must be remotely managed from a systems perspective; a test installed on our servers must start up and begin waiting for people to start connecting to it to run their test. These active, client-initiated, off-net network measurement tests must examine the full network path between the consumer and the Internet.
The researchers who are managing the current tests on the M-Lab platform have secured sufficient funding to support the test’s continued development, deployment, and maintenance throughout its entire life cycle. Your decision to host a particular test on the M-Lab platform is a commitment to provide substantial resources over a period of years and to an ongoing relationship with the M-Lab operations team.
Applications for new tests are reviewed by M-Lab’s operations team and Steering Committee twice a year. The number of slots available is finite, so M-Lab will consider only serious inquiries from researchers who are working on mature tests that both align with the M-Lab mission and do not significantly overlap with the functionality of existing tests.
If you are interested in deploying a new tool or test on the M-Lab platform, please first read our document outlining M-Lab’s requirements and procedures for accepting new tools on the platform, and then contact the M-Lab Operations team for more information.
How can I add an M-Lab test to my website, app or other software?
M-Lab’s open source tests can be added to your website, mobile application, or other software. The Network Diagnostic Tool (NDT) from Internet 2, has been used by a number of third party websites and application developers, including internethealthtest.org, the city of Seattle’s broadband map, Bittorrent’s uTorrent client, and several others.
The M-Lab team regularly consults with and supports application and web developers interested in integrating our client tests. If you are interested in adding an M-Lab test to your website or application, please review our developer guide or contact us.