Skip to main content

NMPL - No More Packet Loss

Continuous per-hop packet loss detective, automated ISP evidence generator, and network quality dashboard.

Summary

NMPL (No More Packet Loss) is a production-grade network diagnostic and analytics engine. It transforms raw ICMP/UDP traceroute probe data into structured, ISP-ready evidence bundles by identifying exact bottleneck hops, isolating rate-limiting artifacts from true loss, and enriching hops with ASN/RDAP owner data.

Whether run as a zero-dependency CLI daemon or deployed as a self-hosted FastAPI + HTMX web application, NMPL continuously monitors network paths and archives trace history into a high-concurrency SQLite (WAL mode) database.


Core Features & Architecture

  • Multi-Mode Engine (cli, cli-once, api): Execute instantaneous single-shot CLI diagnostics, run continuous background daemons, or serve a real-time web dashboard.
  • Non-Blocking ASN & BGP Enrichment: Enriches intermediate IP hops with BGP network ownership data using async background queries to Team Cymru and RDAP registries.
  • Smart Bottleneck & Rate-Limit Engine: Differentiates between true path loss (propagating down the chain) and router control-plane ICMP rate-limiting (single-hop spikes with 0% final destination loss).
  • SQLite WAL Persistence: Single-file database architecture using Write-Ahead Logging for non-blocking concurrent writes across CLI daemons and FastAPI web requests.
  • ISP Support Evidence Bundles: Generates JSON diagnostics, CSV timeline exports, and print-ready HTML evidence reports containing explicit timestamped proof for support tickets.

Real-World Validation Case

  • Test Path: Malmö, Sweden (Telenor ISP) $\rightarrow$ Google Public DNS (8.8.8.8)
  • Path Metrics: 12 total hops | 9.9ms average latency | 0.0% final destination loss
  • Bottleneck Localization: Hop #4 (81.228.84.95) exhibited a 70.0% local response drop. NMPL classified Hop #4 as control-plane rate-limiting rather than a true path outage because Hop #12 (8.8.8.8) validated clean at 0.0% loss.

Tech Stack & Specs

  • Backend Framework: Python 3.11+, FastAPI, Uvicorn
  • Frontend Interface: HTMX, Alpine.js, Tailwind CSS (Zero heavy JavaScript build steps)
  • Storage Layer: SQLite (WAL mode) with automated database migration
  • Probe Engine: Low-level mtr (ICMP / UDP / TCP) integration
  • Deployment: Standalone Python CLI executable, Docker, Docker Compose