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

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

    FAQ: Test Rate Limits

    As a first approximation, M-Lab allows 40 tests per day. The enforced limits are more complex. Learn what this means and how to work within them.

    Internet Quality

Tests

  • 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 a client back to an M-Lab server — 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

    Client-Integration Registration Service (CIRS)

    What CIRS is, why M-Lab is introducing it, and how usage tiers, costs, and the pilot program work for integrators running tests above the standard rate limits.

    Node OperationsData Access

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

    FAQ: Accessing M-Lab Data Buckets

    How to access M-Lab's raw NDT7 data in Google Cloud Storage using 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

Running a Node