Jordy Nguyen

San José, CA
Network engineering

Scroll

Tail latency on one residential link, idle versus saturated A survival curve on logarithmic axes. Idle, the link answers in 15.55 milliseconds at the median and stops at 34.44 milliseconds at the 99th percentile. Saturated by a 457.4 megabit download, the median moves only to 34.47 milliseconds, but the 99th percentile stretches to 1038.82 milliseconds. Measured 2026-09-01. 10ms 30ms 100ms 300ms 1000ms Idle Under a 457.4 Mbps download p99 34.44ms p99 1038.82ms 1004ms of tail that is not there at rest Tail latency on one residential link, idle versus saturated A survival curve on logarithmic axes. Idle, the link answers in 15.55 milliseconds at the median and stops at 34.44 milliseconds at the 99th percentile. Saturated by a 457.4 megabit download, the median moves only to 34.47 milliseconds, but the 99th percentile stretches to 1038.82 milliseconds. Measured 2026-09-01. 10ms 30ms 100ms 300ms 1000ms Idle Under a 457.4 Mbps download p99 34.44ms p99 1038.82ms 1004ms of tail that is not there at rest

1004ms of tail that is not there at rest

Survival curve, log axes · anchors are measured percentiles, strokes interpolate between them

tcp 1.1.1.1:443 · 507 probes · 2026-09-01

457 Mbps and still
a second behind.

I spent seven years in competitive FPS learning what lag feels like, then went and measured where it actually comes from. This is my own line.

Measured 2026-09-01 · tcp 1.1.1.1:443

The link was fine.
The lag was real.

  1. At rest

    The link answers in 15.55 ms at the median, and its slowest one probe in a hundred still lands under 34.44 ms.

  2. Under load

    Start a 457.4 Mbps download and the median barely moves — 34.47 ms. Every speed test on earth would call this link healthy.

  3. The tail

    The 99th percentile goes to 1038.82 ms. That is the packet your game is waiting on, and it arrives a full second late.

  4. Where

    Not on my equipment. My router holds at 1 ms under the same load. The queue is one hop out, in the carrier.

Median round trip per hop, idle against a 448.1 Mbps download
Hop Idle Loaded Relative
1 router (LAN) 1 ms 1 ms
3 ISP edge 11 ms 77 ms
9 ISP core 13 ms 109 ms
12 internet 14 ms 111 ms
Hop 2 (ISP access) never answered either run and is omitted rather than estimated. Under saturation the path also drops 11.8% of probes outright.

The router on my desk is not the problem — it holds at 1 ms while the hop past it goes from 11 to 77 ms. That is a buffer in the carrier absorbing my download and making everything else queue behind it. Bufferbloat, not bandwidth. More capacity would not fix it.

Work

What each project proves, and how it was checked

  1. netlab

    Seventeen network topologies, each deployed and asserted by CI on every push. If a lab stops working, main goes red.

    • containerlab
    • FRRouting
    • OSPF
    • BGP
    • RPKI
    • GitHub Actions

    2026

  2. Latency lab

    My connection adds a full second of latency the moment anyone starts a download — and the queue causing it is not on my equipment. Measured, localised, then left honest about what is still unmeasured.

    • Python
    • TCP handshake RTT
    • tshark
    • pcap

    2026

  3. JV4

    Configure a Razer Viper V4 Pro without Razer's software, and measure what the mouse actually delivers. Its polling rate is exactly as advertised at the median and half that at the tail.

    • Rust
    • Tauri 2
    • HID
    • Raw Input
    • Windows

    2026

  4. Cat2Jam

    A self-hosted identity and listening-data service I built and ran in production for a small private group. The control plane never touches bulk media.

    • Node.js
    • Hono
    • SQLite
    • Tauri 2
    • Tailscale / WireGuard

    2026

  5. BusTap

    Riders could not tell which identical bus was leaving next. A driver taps an RFID card and a live departures board answers, in real time.

    • Raspberry Pi 4
    • RFID/NFC
    • REST
    • WebSockets
    • Leaflet
    • OSRM

    2026

Writing

All writing