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

Running a Node