Knowledge Base
Information about datasets, software and tools that help M-Lab community members get the most out of experimental data, tools and the global infrastructure we manage.
Getting Started
- Beginner
Welcome to M-Lab: Open Internet Measurement
An introduction to what M-Lab is, what it measures, and how its open data can help you understand internet performance.
MeasurementResearch - Beginner
Getting Started: Researchers
A curated starting path for academic researchers and data scientists using M-Lab data — covering data access, key datasets, measurement methodology, and common research patterns.
Getting StartedResearchData Access - Beginner
Getting Started: Internet Policymakers
A guide for policymakers, regulators, and government staff who want to use M-Lab data to understand broadband performance, inform policy decisions, and evaluate connectivity programs.
Getting StartedPolicyInternet Quality - Beginner
Getting Started: Internet Advocates
A guide for digital rights advocates, community broadband organizers, and civil society researchers using M-Lab data to document ISP behavior, support communities, and make evidence-based arguments.
Getting StartedAdvocacyInternet QualityNet Neutrality - Intermediate
Getting Started: ISP and IXP Staff
A guide for ISP engineers, network operators, and IXP staff who want to understand M-Lab data from their networks, host a measurement node, or use M-Lab for network diagnostics and performance benchmarking.
Getting StartedNode OperationsData AccessNetwork Operations
Understanding Measurement
- Beginner
Understanding Speed Test Results
Why different speed tests produce different results, and what those differences reveal about your internet connection.
Speed TestMeasurementNDT - Beginner
Beyond Speed: Understanding Internet Quality Metrics
Why download speed alone is an incomplete picture of internet performance, and how M-Lab measures latency, packet loss, and working internet quality.
Internet QualityMeasurement - Beginner
FAQ: Test Rate Limits
M-Lab enforces 40 tests per day per IP address. Learn what this means and how to work within the limit.
Internet Quality
Tests
- Beginner
NDT (Network Diagnostic Tool)
NDT is M-Lab's flagship speed test — it measures single-stream download and upload throughput, latency, and provides TCP-level diagnostics for every test.
TestsData AccessBigQuerySpeed Test - Intermediate
MSAK (Measurement Swiss-Army Knife)
MSAK is M-Lab's configurable multi-stream throughput and UDP latency measurement service — designed for researchers and developers who need more control than single-stream NDT provides.
TestsData AccessBigQueryThroughputLatency - Beginner
Neubot DASH Streaming Test
DASH emulates a video streaming player to measure how well a network connection supports adaptive video streaming, without relying on a real video platform.
TestsData AccessStreamingNetwork Neutrality - Intermediate
WeHe — Traffic Differentiation Detection
WeHe tests whether your ISP is treating traffic from specific apps (like YouTube or Spotify) differently from other traffic — detecting throttling or blocking on a per-application basis.
TestsData AccessBigQueryNet NeutralityThrottling - Advanced
Reverse Traceroute
Reverse Traceroute reconstructs the network path from an M-Lab server back to a client — the direction that standard traceroute cannot see — using a distributed system of vantage points and spoofed probes.
TestsData AccessBigQueryRoutingNetwork Topology - Intermediate
Integrating M-Lab Tests into Your Application
How to embed M-Lab's open source tests in a website, mobile app, or software product — and how integration partners can contribute infrastructure back to the M-Lab community.
TestsNDTNode Operations - Beginner
Troubleshooting M-Lab Tests
Steps to take when an M-Lab test takes too long, fails to start, or never completes.
TroubleshootingTests
Core Services
- Advanced
TCP INFO — M-Lab Core Service
TCP INFO collects detailed TCP socket statistics from the Linux kernel for every connection on the M-Lab platform, capturing congestion control state, RTT, loss, and dozens of other metrics at regular intervals.
Core ServicesData AccessBigQueryTCP - Advanced
Packet Headers (PCAP) — M-Lab Core Service
M-Lab's packet-headers service captures TCP packet headers for every connection on the M-Lab platform, stored as per-flow .pcap files indexed by UUID.
Core ServicesData AccessPCAPTCP - Intermediate
Traceroute — M-Lab Core Service
M-Lab's Traceroute core service automatically runs a network path measurement from every M-Lab server back to the client for every TCP connection, building a continuous record of Internet routing.
Core ServicesData AccessBigQueryRoutingNetwork Topology
Accessing Data
- Beginner
Getting Started with M-Lab Data in BigQuery
How to get free access to M-Lab's BigQuery datasets, run your first queries, understand the data structure, and work efficiently with large tables.
Data AccessBigQuery - Beginner
FAQ: Accessing M-Lab Data Buckets
How to access M-Lab's raw NDT7 data in Google Cloud Storage using gsutil or gcloud without permission errors.
Data Access - Intermediate
M-Lab Network Annotations: Geolocation, ASNs, and What They Mean
How M-Lab annotates measurements with geographic and network metadata, the accuracy and limitations of each annotation type, and how to use them correctly in analysis.
Data AccessInternet Quality - Beginner
M-Lab Monthly Stats: Pre-computed Parquet Summaries
What the Monthly Stats dataset is, how it's derived from NDT measurements, what the parquet files contain, and how to access them without BigQuery.
Data AccessResearch - Intermediate
Reading Percentiles in Monthly Stats
How to interpret percentile columns in M-Lab Monthly Stats data, including the counterintuitive polarity of latency and loss, and what p50 vs p95 tells you.
Data AccessInternet QualityResearch - Intermediate
Exploring Monthly Stats with Python
A practical guide to loading, filtering, and visualising M-Lab Monthly Stats parquet files in Python using pandas, without needing BigQuery or a Google Cloud account.
Data AccessResearch
Research & Analysis
- Intermediate
Analyzing M-Lab Data: A Researcher's Guide
Methods, tools, and best practices for using M-Lab's open datasets in academic research, policy analysis, and community broadband advocacy.
ResearchData Access - Intermediate
Analyzing TCP INFO Snapshots: Data Characteristics and Research Patterns
A practical guide to M-Lab's TCP INFO snapshot data in BigQuery — how snapshots are collected and thinned, why most rows are noise, how to filter to real tests, and how to use RTT variance data to study latency-sensitive applications like VoIP.
ResearchData Access
Running a Node
- Intermediate
Running Your Own M-Lab Node: The BYOS Program
An overview of M-Lab's Bring Your Own Server program — what it is, what's required, and how hosting a node contributes to global internet measurement.
Node Operations - Beginner
FAQ: IP Address Mismatch in BYOS Environment File
How to fix an M-Lab BYOS node that is unreachable due to a mismatch between the env file IP and the server's actual public IP.
Node Operations - Intermediate
FAQ: Docker Compose Troubleshooting - Register Node Issues
Steps to diagnose and fix a stopped or unresponsive register-node component in a Docker BYOS deployment.
Node Operations - Intermediate
FAQ: Docker BYOS Monitoring and Logging
Recommended Prometheus metrics endpoints and Docker logging configuration to prevent disk exhaustion on M-Lab BYOS nodes.
Node Operations - Beginner
FAQ: Checking Node Probability and Status
How to use the M-Lab Locate Service API to verify your node's probability setting and registration status.
Node Operations