UR is an open source protocol powering network infrastructure, maintained by its community.For URnetwork products (eg. VPN), go to ur.io

Research · Report

August–October 2026 Research Report

UR’s research has one aim: to give everyone the best encryption and the best speed, for everyday use, that makes your internet better. From August 24 to October 24, 2026, that work measured 39 changes and experiments in Connect, the SDK and the server packet path. This report puts each one on a timeline with what it measured, follows how far each kind of gain went, and explains how the research was done.

· Dates are those of the research records, which can differ from the merge dates. Updated .

At a glance

≈4.73×faster with adaptive windows in their model, 202.752 to 958.259–958.362 Mbps; 939–943 Mbps of useful payload on a 1-Gbps local test path
4.7–7.3×faster median Wikipedia load, from the Aug 24 baselines to the latest phone cell
6.7×controlled H1 bulk recovery, from about 6.1 to 41 Mbps
2.81×the largest packet-path gain, sending a provider’s packets as one group
−26.4%runtime memory in an exact physical replay, 29.59 to 21.77 MiB
8stalls and failures fixed

Each figure is its own workload. They cannot be added or multiplied into one app speedup, and the report claims none. Why there is no single number

The 39 entries, by date

AUGSEPOCTOCT 24
  • Gainmeasured and kept
  • Recoverya stall or failure fixed
  • Observationa phone or public measurement, not an A/B
  • Mixedhelped in one case, hurt in another
  • Rejectedmeasured and not adopted, or no change
  • Groundworkcorrectness, policy or measurement, no speed claim

Why it matters

The best encryption and the best speed, without the tradeoff

Encryption is not what gets traded away. The speed has to come from doing the work better: less work for every packet, less memory on the phone, and no stalls. Someone using the network should only notice that the internet works.

Each meter on this page follows one part of that, as it is felt in everyday use.

  • Page load

    Pages open without waiting

    The median Wikipedia load went from 2,552.3 or 3,967.8 ms on Aug 24 to 545.7 ms in the latest phone cell, a historical observation rather than an A/B.

  • Bulk speed

    Full speed for streams and downloads

    Adaptive windows took a local TCP path to gigabit-class delivery, 939–942 Mbps sustained, and the controlled H1 phone path recovered from about 6.1 Mbps to Fast.com runs of 38, 41 and 52 Mbps.

  • Packet path

    Encrypted traffic that costs less work

    The carriers that move encrypted traffic do less work per packet: grouped sends 2.81×, the Framer’s single-frame path 2.02×, H1+ 1.19–1.36×, each measured alone; adaptive windows (≈4.73× in their model) keep a fast path full.

  • Memory

    Light enough for a phone

    A phone gives the network a small memory budget, 32 MiB in the iOS profile and 64 MiB on Android. Fixes like the retained-byte accounting (−26.4%) keep the work inside it.

  • Recoveries

    No stalls to notice

    Eight stalls and failures were fixed, from dropped H1 handoffs in August to pages that paused 5 s or more in October.

It is not finished: the cold first page and the full phone qualification are still open. What is not yet shown

Timeline

39 changes and experiments

Each entry leads with its result in plain words and one figure. Open it for the exact measurements, what they mean for the test suites, and the evidence. Entries that were rejected or made no difference stay on the timeline, marked as such.

The meters replay the evidence as you read. Each one moves only when you reach the entry that recorded it, and none of them is ever combined with another.

As of Start0 of 39

Page loadlatest median

—ms

No measurement yet4.7–7.3× faster than Aug 24, low confidence

3005001K2K4KAug 24 baselines

Bulk speedcontrolled H1

—Mbps

No measurement yet

5102550100controlled H1 pathpublic and phone readings6.7×

Packet pathnever multiplied

—speed-ups

1×3×5×Grouped provider sends2.81×Ready-drain H1 writes+85.2%Adaptive windows (model)≈4.73×H1+ carrier1.19–1.36×Framer singleton path2.02×

Memorynever summed

—reductions

0%50%100%Retained-byte accounting−26.4%Shared provider UDP lifecycle−7.5%Stale TCP reader released−93.1%

Recoveriescount

—stalls fixed

    August

    Aug 24–27 · 9 entries

    • 5 gains
    • 2 recoveries
    • 1 mixed
    • 1 rejected
    1. Rebalance mobile memory and speed settings together

      3,967.8 → 745.0 msmedian Wikipedia load on the low-bar phone test

      Document first byte 1,575.2 → 248.1 ms · Cloudflare 1 MiB in 33.279 → 3.892 s

      Four settings changed at once, so this is one bundled result, not four separate gains.

      Moves
      Exact figures and what they mean
      In the report
      Low-bar mobile memory/performance rebalance
      Measured
      The accepted bundle moved Wikipedia median load 3,967.8→745.0 ms, document TTFB 1,575.2→248.1 ms, and Cloudflare 1-MiB completion 33.279→3.892 s (0.25→2.16 Mbps).
      What it means for the test suites
      A bundled device improvement: target 20→24 MiB, quality/speed window 3/1→4/1, GOGC 10→25 and warm set 256→512 KiB changed together. Peak 24.73 MiB passed that experiment's 28-MiB active / 24-MiB steady rule; it does not pass the later absolute 24-MiB rule.
      Evidence
      LOWBAR
    2. Check whether the server got slower

      −0.05%server time in a same-session, six-repetition A/B (geomean)

      PERFVAR −0.17% · server/proxy +0.05% · allocation counts unchanged

      No real change. An earlier apparent slowdown was drift on the test host, so no server tuning was needed.

      Exact figures and what they mean
      In the report
      Rebalance mobile memory after the tighter 20-MiB direction; isolate server cost
      Measured
      Exact same-session, six-repetition A/B: server/connect time geomean −0.05%, PERFVAR −0.17%, server/proxy +0.05%; allocation counts unchanged.
      What it means for the test suites
      Server neutrality, not a throughput win. The earlier cross-day apparent slowdown was host drift. No server-specific reclaim tuning was warranted.
      Evidence
      Server PERFVAR measurements
    3. Find the limiter with deeper sequence queues

      2,552.3 → 543.7 msmedian Wikipedia load on a public H1 route, depth 16 → 32

      1 MiB goodput 0.73 → 4.65 Mbps · depth 64 reached 457.6 ms

      A real limiter, found on unpaired public routes. Bigger queues and more memory alone did not help, and were rejected.

      Moves
      Exact figures and what they mean
      In the report
      Sequence-depth and allocation/admission experiments
      Measured
      Public H1 depth 16→32: Wikipedia load median 2,552.3→543.7 ms, 1-MiB goodput 0.73→4.65 Mbps, runtime peak 20.34 MiB in the depth-32 arm. Global depth 64 improved the page median to 457.6 ms, but larger receive-only/both-data queues did not reproduce the bulk gain.
      What it means for the test suites
      Useful limiter discovery, unpaired public-route diagnostics, not a universal 6.4× release gain. A 4,096-root gate removed pressure drops but did not improve speed; more memory alone was rejected.
      Evidence
      MEMSTEADY
    4. Send a provider’s packets as one group

      2.81×throughput draining 16 packets (25,579 → 9,105 ns per drain)

      19,440 → 4,024 B allocated per drain · 147 → 51 allocations · 16 → 8 wire Packs · ACK fast path 577.8 → 596.5 MB/s

      A local packet-path gain, measured inside one process. It is not Internet speed or phone memory.

      Moves
      Exact figures and what they mean
      In the report
      Whole-group provider sends and pure-TCP-ACK fast path
      Measured
      Grouping: 25,579→9,105 ns/drain, 19,440→4,024 B/drain, 147→51 allocations, 16→8 wire Packs. ACK fast path: 577.8→596.5 MB/s, approximately 5,351→2,560 B/op, 46→37 allocations.
      What it means for the test suites
      Retained local packet-path efficiency improvements. Same-process boundaries; not Internet throughput or mobile peak-memory measurements.
      Evidence
      MEMSTEADY
    5. Write ready H1 frames without waiting

      +85.2%ACK-sized local TLS throughput (167.03 → 309.30 MB/s)

      Full payload +12.9% · TCP writes per frame −25% and −75% · still two allocations per op

      It batches only what is already ready, so it adds no delay. Balanced server checks stayed neutral.

      Moves
      Exact figures and what they mean
      In the report
      Nonblocking ready-drain H1 writes, cap 8→32
      Measured
      Full-payload local TLS throughput 1,305.04→1,473.51 MB/s (+12.9%); ACK-sized 167.03→309.30 MB/s (+85.2%). TCP writes/frame decreased 25% / 75%, respectively; allocations stayed at two/op.
      What it means for the test suites
      Directly measured batching gain without a timer or larger socket storage. Balanced server PERFVAR/proxy checks were effectively neutral (−0.46% / +0.64% time geomean), rejecting the apparent previous-day ~20% regression.
      Evidence
      Server PERFVAR measurements
    6. Stop H1 handoffs from dropping under load

      38 / 41 / 52 MbpsFast.com on the exact-provider phone path, from about 6.1 Mbps

      Active peak 17.60 MiB · 762/762 Pack waits completed · zero carrier or Pack drops · Wikipedia median load 439.2 ms

      Strong evidence that the fixed-size H1 path can meet the 40 Mbps goal without spending more memory.

      Moves
      Exact figures and what they mean
      In the report
      Reliable H1 handoff/backpressure and logical-flow isolation
      Measured
      Exact-provider physical H1: Fast.com 38/41/52 Mbps, Wikipedia median TTFB/load 181.5/439.2 ms, active runtime peak 17.60 MiB; quiet p95 17.61 MiB over 345 seconds. 762/762 Pack waits completed, zero carrier/Pack drops. An impaired synthetic four-flow lane comparison measured 20.247→29.058 Mbps (+43.5%).
      What it means for the test suites
      Strong evidence that fixed-capacity H1 can meet the 40-Mbps objective without spending more memory. The lane comparison is a scenario signal; public current–baseline–current brackets were provider-variable and do not support one percentage speedup. Later receive-custody work refines overload handling; this is historical evidence, not permission to block all shared receive work.
      Evidence
      MEMSTEADY PERFVAR measurement ledger (private; summarized here)
    7. Count retained memory separately from data in flight

      29.59 → 21.77 MiBruntime in an exact physical replay (−26.4%)

      Packet roots 6.15 → 1.78 MiB · quiet p95 20.16 MiB · ACK bookkeeping about 44 → 20 ns per op, no allocations

      The budget now charges what is actually held. A variant that mixed the two caused timeouts and was rejected.

      Moves
      Exact figures and what they mean
      In the report
      Charge retained allocation separately from logical flight; reduce ACK bookkeeping churn
      Measured
      Exact retained-byte accounting physical replay: runtime 29.59→21.77 MiB, packet roots 6.15→1.78 MiB, ten 1-MiB transfers completed; quiet p95 20.16 MiB. RTT ring/min-deque ACK work changed approximately 44→20 ns/op, 64→0 B/op, 1→0 allocations.
      What it means for the test suites
      Memory/ownership and microkernel gains in their recorded workloads. Charging allocation capacity as if it were the logical delivery window had caused a separate timeout and was rejected.
      Evidence
      MEMSTEADY
    8. Recover from poisoned exits and choose healthier providers

      92.5 Mbpscombined median of public H1 observations (47/100/110, then 68/85/130)

      Wikipedia median load 478.3 ms afterwards · one runtime peak of 24.30 MiB failed that week’s 24 MiB gate

      Playback came back in the documented cases. These public speeds show what is reachable; they are not a controlled A/B.

      Moves
      Exact figures and what they mean
      In the report
      Poisoned-exit recovery, fresh-flow quality selection and provider-off budget use
      Measured
      Recovery and provider-selection changes restored playback in the documented cases. Public four-route-floor H1 observations were 47/100/110, then 68/85/130 Mbps (combined median 92.5 Mbps); subsequent Wikipedia median load 478.3 ms. One runtime peak was 24.30 MiB.
      What it means for the test suites
      Availability/selection improvements and proof of attainable speed, not a controlled source-level speed effect. That peak failed the then-current 24-MiB gate and must not be retroactively passed using today's 32-MiB limit.
      Evidence
      PERFVAR measurement ledger (private; summarized here)
    9. Share UDP readiness and idle handling on providers

      621 → 242goroutines on the provider host (−61%)

      Runtime 27.9 → 25.8 MiB · live heap 10.4 → 9.4 MiB · UDP round trips +10.4% · TCP echo +1.9%

      Fewer threads and less memory on the provider host. The physical provider was still above its 24 MiB limit then.

      Moves
      Exact figures and what they mean
      In the report
      Shared provider UDP readiness, direct writes and shared idle lifecycle
      Measured
      Five fresh runs/arm: TCP echo 53.1→54.1 MiB/s (+1.9%); UDP 13,960.4→15,414.3 round trips/s (+10.4%); runtime 27.9→25.8 MiB; live heap 10.4→9.4 MiB; goroutines 621→242 (−61%).
      What it means for the test suites
      Retained provider efficiency win. The synthetic 31-MiB host gate passed, but the physical provider remained above its historical 24-MiB limit.
      Evidence
      PERFVAR measurement ledger (private; summarized here)

    September

    Sep 4–30 · 19 entries

    • 7 gains
    • 3 recoveries
    • 1 observation
    • 3 mixed
    • 2 rejected
    • 3 groundwork
    1. Bound the TCP inbound handoff

      No speed claim

      A correctness and recovery milestone. The campaign set no new baseline, so no speed gain is inferred.

      Exact figures and what they mean
      In the report
      Bounded TCP inbound handoff
      Measured
      The static campaign and its correctness/failure accounting are recorded in the measurement ledger.
      What it means for the test suites
      A correctness/recovery milestone. Do not infer a universal speed gain from a campaign that did not promote a baseline.
      Evidence
      PERFVAR measurement ledger (private; summarized here)LOWBAR
    2. Remove the flight-gate collapse on mixed routes

      2.5 → 18.5 Mbpsstock vs merged in the mixed loss/100 TCP cell

      Stock failed 13/40 runs · at loss/300 stock missed all five deadlines while merged delivered 19.3 Mbps · relay timeout rewrites 19,966 → 201

      A collapse on mixed routes is gone. These are specific test cells, not an app-wide multiplier.

      Moves
      Exact figures and what they mean
      In the report
      Remove mixed-route flight-gate collapse
      Measured
      In the recorded mixed loss/100 TCP cell, stock 2.5→18.5 Mbps; loss/300 stock failed all five deadlines while merged delivered 19.3 Mbps. Stock failed 13/40 runs. Separately, deferred relay retransmission moved 13.1→15.7 Mbps, timeout rewrites 19,966→201, dead windows 6→0.
      What it means for the test suites
      Functional collapse/retransmission recovery. The relay A/B is distinct from the mixed-route cells; neither is a general app multiplier. Later A/A retired many small early percentage verdicts.
      Evidence
      PERFVAR measurement ledger (private; summarized here)LOWBAR
    3. Stop retransmission storms

      5/40 → 0/40runs with timeout storms, 20 runs per arm in two cells

      Maximum writes 3,902 → 36 · goodput medians 20.9 → 21.2 and 19.5 → 19.9 Mbps

      The gain is in the worst cases, not the typical run.

      Also rejected: A proposed reliable-lane rule caused wedges, 0/120 off vs 8/120 on (Fisher p = .0069), and stayed off.

      Moves
      Exact figures and what they mean
      In the report
      Bound retransmission amplification; reject harmful lane rules
      Measured
      Twenty runs/arm in two storm cells: timeout storms 5/40→0/40, maximum writes 3,902→36; goodput medians only 20.9→21.2 and 19.5→19.9 Mbps. A separate proposed reliable-lane rule produced mechanism wedges 0/120 off vs 8/120 on (Fisher p=.0069), and stayed off.
      What it means for the test suites
      Main gain is reduced tail amplification. A/A on identical source flagged 15/17 cells at five repetitions; earlier small verdicts were retired. Rejected lane-rule behavior must not be counted as an improvement.
      Evidence
      PERFVAR measurement ledger (private; summarized here)LOWBAR
    4. Match provider socket buffers to kernel autotuning

      4.63× / −20.8%paired throughput at an artificial 1 MiB floor, then at the realistic 32 MiB policy

      Linux upstream-only fixture · six pairs, then five pairs

      The same deletion helped one setup and hurt another, so the rule now depends on the kernel’s actual ceiling.

      Exact figures and what they mean
      In the report
      Match provider socket-buffer requests to kernel autotuning
      Measured
      In a Linux upstream-only fixture at an artificial 1-MiB provider floor, removing the send-buffer pin improved paired throughput 4.63× (six pairs). At the realistic 32-MiB policy, the same deletion instead lost 20.8% (five pairs).
      What it means for the test suites
      The retained rule became conditional on the actual kernel/autotuning ceiling, not unconditional deletion. No universal 4.6× app gain. A claimed receive-rate gain was retired by noisy A/A; restored receive-buffer growth remained mechanistically proven.
      Evidence
      PERFVAR measurement ledger (private; summarized here)LOWBAR THROUGHPUTFIX THROUGHPUT-REPORT
    5. Size delivery windows to what is actually delivered

      68.4 → 84.6 Mbpsin-process download, 12 interleaved pairs (ratio 1.233, 95% CI 1.064–1.306)

      A later transfer-only instrument: 2.92× and 2.42× at 16 KiB, 200 and 400 ms

      A real window-layer gain in its fixtures. It does not measure the whole chain, and no whole-chain forecast is claimed.

      Moves
      Exact figures and what they mean
      In the report
      Delivery-sized windows, independently checked
      Measured
      Twelve interleaved in-process download pairs: 68.4→84.6 Mbps, median paired ratio 1.233, 95% CI [1.064, 1.306]. A later transfer-only seven-pair instrument measured 2.92× / 2.42× at 16 KiB and 200/400 ms; absolute medians 71→190 / 34→88 Mbps.
      What it means for the test suites
      Real window-layer gains in distinct fixtures. The later instrument omits H3, gVisor, NAT, sockets and contracts; three drift-flagged pairs remain in its seven-ratio result. It does not measure derived whole-chain 425/830-Mbps forecasts. More retained flight and failover/hold-inversion risks were separately measured.
      Evidence
      PERFVAR measurement ledger (private; summarized here)LOWBAR THROUGHPUTFIX THROUGHPUT-REPORT
    6. Scale budgets with the target and share one accounting root

      No speed claim

      Lets larger profiles use spare headroom without losing track of old owners. Architecture, not a measured speed gain.

      Exact figures and what they mean
      In the report
      Scale policy with target; share one transfer/topology root
      Measured
      Proportional sizing was introduced Sep 14; Sep 17–19 changes enforce shared client/provider/NAT/retiring-generation accounting and atomic admission.
      What it means for the test suites
      Provider-OFF sharing and larger future profiles can use bounded headroom without losing charges for old owners. This is architectural/correctness evidence, not an independently measured speed gain.
      Evidence
      MEMSTEADY LOWBAR
    7. Reach gigabit-class throughput with adaptive windows

      939–942 Mbpsuseful TCP payload sustained after startup, on a local TCP path with 1-Gbps service

      Larger-buffer controls 942–943 Mbps · ACK-residence model 202.752 → 958.259–958.362 Mbps, ≈4.73× · RTT-change model 4.055 → 958.075 Mbps

      A major achieved milestone: windows sized to what is delivered keep a fast path full. It was measured on a host-local path, and window resizing stays on after October’s pacing change.

      Moves
      Exact figures and what they mean
      In the report
      Gigabit-target adaptive windows and ACK-residence recovery
      Measured
      ACK-residence model 202.752→958.259–958.362 Mbps; RTT-change model 4.055→958.075 Mbps at 1-Gbps service. Local TCP-path checks sustained 939–942 Mbps after startup; larger-buffer controls reached 942–943 Mbps.
      What it means for the test suites
      A major achieved gigabit-class milestone. The host socket/TUN, virtual model and capacity-control scopes remain distinct; the dedicated section above preserves the bounds and slow/censored cases. Window resizing remains enabled after October's pacing removal.
      Evidence
      THROUGHPUT-PR2-RESULTS THROUGHPUT-REPORT-PR2 MEMSTEADY
    8. Choose a compact delivery history for each service

      360 Bper service for the six-entry shape kept; the rejected 64-entry shape needed 3,608 B

      Publish, estimate and rebucket all without allocation · H1 smoke 91.526 vs 91.552 Mbps, neutral

      An exact bound on per-service state, with speed unchanged. It sets no new throughput baseline.

      Exact figures and what they mean
      In the report
      Compact shared-service delivery history
      Measured
      Final six-entry shape 360 B/service versus 3,608 B for the rejected 64-entry shape. Publish/estimate/rebucket screens 375.5/450.0/98.21 ns versus 387.0/600.6/573.9 ns, all zero-allocation. H1 smoke 91.526 vs 91.552 Mbps was neutral.
      What it means for the test suites
      Exact bounded-state reduction; CPU screens ran under changing host load. Broad acceptance remained open, so neither model/race passes nor the smoke test establish a new throughput baseline.
      Evidence
      THROUGHPUT-REPORT-PR2
    9. Count congestion-blocked P2P sends as service evidence

      383 → 468 of 468synthetic fixed-offer admissions at 50 µs write service

      At 1 ms service 422 → 468 of 468 · immediate ACKs alone reached only 317/468

      It fixed the signal instead of raising the congestion window. It is not a high-latency speed test on phones.

      Moves
      Exact figures and what they mean
      In the report
      P2P cwnd-blocked service evidence
      Measured
      Synthetic fixed-offer admissions improved 383/468→468/468 at 50-µs write service and 422/468→468/468 at 1-ms service. Immediate ACKs alone had reached only 317/468.
      What it means for the test suites
      Retained service-evidence correction, rather than an arbitrary cwnd increase. One later clean two-phone replay recorded client/provider peaks 19.16/17.69 MiB with zero pressure drops; that fixture did not impose high RTT and is not a high-RTT physical speed A/B.
      Evidence
      MEMSTEADY PERFVAR measurement ledger (private; summarized here)
    10. Reject lower Go memory soft limits

      280.20 → 180.67 Mbpslocal echo when the soft limit went from 32 to 24 MiB

      p95 RTT 6.426 → 12.629 ms · GC cycles 177 → 357 · for about 1.14 MiB less quiet runtime

      Using less memory made it much slower, so the change was rejected. Lower residency alone is not better performance.

      Exact figures and what they mean
      In the report
      Reject blanket lower Go soft limits and topology shrinking
      Measured
      Soft limit 32→24 MiB changed local echo 280.20→180.67 Mbps, p95 RTT 6.426→12.629 ms, GC cycles 177→357, for only about 1.14 MiB lower quiet runtime. Smaller client-window experiments had incomplete traffic arms.
      What it means for the test suites
      Rejected: lower residency alone was not better performance. The historical surrogate also had a later-discovered carrier-reliability limitation, so it is not a current app prediction. Failed traffic arms were not removed to improve survivor medians.
      Evidence
      MEMSTEADY PERFVAR measurement ledger (private; summarized here)
    11. A phone run passes a scoped 24 MiB check

      22.55 MiBsampled peak in a scoped physical H1 run

      Wikipedia median load 355.3 ms, first byte 127.7 ms · Fast.com median 40 Mbps

      A pass for this scope only: not every carrier or role, and not a continuous-peak guarantee.

      Moves
      Exact figures and what they mean
      In the report
      P2P fixed-offer recovery, packet allocation and mobile retention/logging work
      Measured
      A post-glog scoped physical H1 run observed peak 23,646,240 B (22.55 MiB), Wikipedia load/TTFB medians 355.3/127.7 ms, and Fast.com median 40 Mbps.
      What it means for the test suites
      A passing scoped sampled 24-MiB result, not all carriers/roles or a continuous-peak guarantee. Earlier quiet passes with burst breaches remained failures.
      Evidence
      MEMSTEADY PERFVAR measurement ledger (private; summarized here)
    12. Allocate less per packet and shrink mobile log buffers

      49.33 → 23.88 nsappending to an existing packet group, now with no allocations

      Raw receive 193.9 → 169.3 ns and 280 → 168 B · three log buffers 256 → 32 KiB each, 688,128 B less

      Less allocation and more headroom. A saturated log sink costs slightly more, and that trade-off is recorded.

      Moves
      Exact figures and what they mean
      In the report
      Packet allocation and mobile logging
      Measured
      Existing-group append 49.33→23.88 ns/op, 136→0 B/op, 2→0 allocations; raw receive 193.9→169.3 ns/op, 280→168 B/op. Three mobile log buffers 256→32 KiB each, exactly 688,128 B less capacity.
      What it means for the test suites
      Retained allocation/headroom improvements. Saturated log-sink cost increased 43.54→46.13 ns/line; the trade-off is recorded rather than described as a free CPU improvement.
      Evidence
      MEMSTEADY PERFVAR measurement ledger (private; summarized here)
    13. H1+: a leaner carrier inside H1

      +32.35% / +18.68% / +36.31%upload, download and duplex throughput in the paired local cohort

      CPU −24.35%, −16.78%, −22.56% · allocations per packet 3/2/2.5 → 1/1/1 · bytes per packet 82/34/57 → 6/5/5

      Strong local carrier evidence. Loopback rates are not Fast.com, full-tunnel or battery results, and WebSocket fallback stays.

      Moves
      Exact figures and what they mean
      In the report
      General Framer and H1+
      Measured
      Implemented H1+ carrier paired medians: upload 11,388.68→15,343.40 Mbps, download 13,875.60→16,265.00 Mbps, duplex 21,374.16→29,009.96 Mbps. Paired effects +32.35%, +18.68%, +36.31%; CPU reductions 24.35%, 16.78%, 22.56%. Allocations/packet 3/2/2.5→1/1/1; bytes/packet 82/34/57→6/5/5.
      What it means for the test suites
      Strong local carrier evidence, with confidence intervals in H1PLUS.md. Standard WebSocket fallback remains required. These multi-gigabit loopback rates are not PERFVAR full-TUN, hosted Fast.com or measured battery scores.
      Evidence
      H1PLUS
    14. Give single frames a faster path in the Framer

      +101.65%paired TLS upload throughput (2,378.50 → 4,795.79 Mbps)

      CPU 7,742.85 → 3,916.74 ns per packet · TLS writes 300,000 → 150,000

      Kept. Ready-batch controls were neutral.

      Also rejected: A reusable read-header candidate lost 1.82% on upload and was rejected.

      Moves
      Exact figures and what they mean
      In the report
      General Framer singleton storage path
      Measured
      Ten paired TLS upload arms: 2,378.50→4,795.79 Mbps, paired +101.65%; CPU 7,742.85→3,916.74 ns/packet; TLS writes 300,000→150,000.
      What it means for the test suites
      Retained singleton-path optimization. Ready-batch controls were neutral. A reusable read-header candidate regressed upload 1.82% and was rejected.
      Evidence
      H1PLUS
    15. Carry device RPC over FramerXL, then reuse descriptors

      142 → 107 µsmedian 64 KiB forward RPC (p95 304.40 → 242.83 µs)

      Paired throughput +32.31% · near 3 MiB +43.73% · 256 B RPC allocation 3,608 → 1,816 B

      Faster native RPC with both ends measured. Large frames still allocate; H1+ and RPC became default on Sep 23, with WebSocket fallback.

      Moves
      Exact figures and what they mean
      In the report
      Native device RPC over FramerXL, then descriptor reuse
      Measured
      Initial 64-KiB forward RPC p50 142→107 µs, p95 304.40→242.83 µs, paired throughput +32.31%; near-3-MiB forward throughput +43.73%. Descriptor reuse then reduced 256-B RPC allocation 3,608→1,816 B, 28→26 allocations, GC cycles 6→3, with +1.56% forward throughput over old XL.
      What it means for the test suites
      Both native mux endpoints/gob/TLS included; bounded per-mux storage repaired the small-RPC regression. Large-frame temporary allocation was not free, near-limit duplex retained a 4-MiB-budget negative case, and no material sampled-peak reduction was proven. H1+/RPC became default-on Sep 23 with WebSocket fallback.
      Evidence
      H1PLUS
    16. Try SIMD WebSocket masking

      +3.52%forced-mask socket throughput at 1,280 bytes (1,310.045 → 1,355.200 MB/s)

      Process CPU −2.67% · complete PERFVAR clean-LAN upload and download: no established gain

      Research only, not adopted: the socket gain did not hold end to end, and battery energy was not measured.

      Exact figures and what they mean
      In the report
      Portable SIMD WebSocket masking prototype
      Measured
      At 1,280 bytes, forced-mask socket throughput 1,310.045→1,355.200 MB/s (paired gain 3.52%), process CPU reduction 2.67%. Complete PERFVAR clean-LAN upload/download showed no established gain; multiplicity-adjusted socket tests were inconclusive.
      What it means for the test suites
      Research only, not adopted/promoted. No battery-energy measurement. The often-quoted 0.115% masking share belongs to one full-fixture CPU attribution, not every packet path.
      Evidence
      MEMSTEADY
    17. Dispatch short bursts directly and fix an overconfident estimate

      1,499.17 → 1,718.06 Mbpsvirtual-time SDK duplex median (+14.6%), with one phase 4.1% slower

      An estimator had inferred 52.4288 MB/s from a 12.5 MB/s source; it now keeps 12.5

      Deterministic sizing and recovery fixes in virtual time, not a CPU, energy or physical-speed gain. Later pacing work supersedes it.

      Exact figures and what they mean
      In the report
      Short-path dispatch and estimator provenance
      Measured
      Virtual-time five-phase SDK duplex median 1,499.17→1,718.06 Mbps (+14.6%), with one phase 4.1% slower. A recovered-prefix estimator falsely inferred 52.4288 MB/s from a 12.5-MB/s serialized source; the correction preserved 12.5 and admitted later independent 25-MB/s evidence.
      What it means for the test suites
      Deterministic sizing/recovery improvements and guarded virtual throughput, not host CPU/energy or physical-speed gains. Later pacing-off work supersedes extrapolating this scheduling result to today's default.
      Evidence
      MEMSTEADY
    18. Test shorter retransmission caps and UDP without ACKs

      ≈18.7% / ≈64.1%faster recovery after six and ten drops with a 2 s cap (240/240 streams correct)

      Cost rose with high RTT and one loss · UDP NoAck 213.627 → 213.345 Mbps on H1, 256.042 → 256.964 Mbps on P2P

      Faster after many drops, costlier on slow links, so there is no global 2 s default. UDP NoAck was kept as a policy at the same speed.

      Exact figures and what they mean
      In the report
      Retransmission caps, TCP-collapse custody and established UDP NoAck
      Measured
      Ten-pair 8s-vs-2s TUN confirmation: 240/240 streams correct; six-drop recovery ~18.7% faster, ten-drop ~64.1% faster. High-RTT/one-loss cost increased, so no global 2-second default was justified. Established UDP H1 clean upload medians 213.627→213.345 Mbps (ACK→NoAck); P2P 256.042→256.964 Mbps.
      What it means for the test suites
      Timer research was mixed; 3/3 and 5/5 pilots were not qualified default wins. UDP NoAck was retained as a policy choice with comparable measured performance, not a speedup. A logical-group bypass regressed H3 and was removed. TCP remains ACK-required.
      Evidence
      RTOPT
    19. Adopt larger memory profiles and stop early Android trims

      64 / 32 MiBAndroid and iOS admission budgets, up from 28 and 20 MiB

      Android reclaim threshold 24 → 48 MiB · forced trims 1,1 → 0,0 · resume pool creations 44/41 → 0/0

      A policy and maintenance change, not proof of higher speed. A larger cap is not a memory-efficiency gain.

      Exact figures and what they mean
      In the report
      Adopt larger profiles and avoid premature Android64 reclaim
      Measured
      Android admission/soft 28/40→64/64 MiB, iOS admission 20→32 MiB with soft32. Android reclaim threshold 24→48 MiB: two-run forced trims 1,1→0,0, quiet GC CPU 0.0601/0.0707→0.0242/0.0322 s, resume pool creations 44/41→0/0.
      What it means for the test suites
      Retained policy/maintenance improvement, not proof of higher speed. Two noisy host repetitions at full Android capacity had quality/speed means 354.90/358.84→342.40/340.69 Mbps; roots were unsaturated. Hardware clamping still applies. Neither host screens nor partial device cells qualify the profile matrix or native iOS footprint.
      Evidence
      MEMSTEADY LOWBAR

    October

    Oct 2–24 · 11 entries

    • 2 gains
    • 3 recoveries
    • 2 observations
    • 4 groundwork
    1. Repair NAT-stage custody so uploads finish

      6/6exact 32 MiB H1 upload streams, default and mobile, three fresh processes each

      About 0.377–0.381 s default · about 0.559–0.566 s mobile · the outer TCP PTO needed a separate gVisor fix

      A liveness repair with diagnostic timings, not a calibrated speed effect. Two causes, two fixes.

      Moves
      Exact figures and what they mean
      In the report
      TCP PTO/reverse-traffic and provider NAT-stage custody
      Measured
      A distinct NAT-stage repair completed default and mobile 32-MiB H1 uploads in three fresh processes per comparison: 6/6 exact streams, approximately 0.377–0.381 s default and 0.559–0.566 s mobile. The outer-TCP PTO issue required a separate managed gVisor fix.
      What it means for the test suites
      Deterministic correctness/liveness repair and diagnostic timings. These are not a calibrated PERFVAR speed effect; the two causes must not be merged into one explanation.
      Evidence
      RTOPT
    2. Repair how loaded H1 traffic is measured

      No speed claim

      The measurement improved, not the product’s score: replies settle by their own deadlines and every one counts.

      Exact figures and what they mean
      In the report
      H1 loaded-traffic diagnosis and measurement repair
      Measured
      The historical 0/64 loaded-probe failure motivated owner/trace work. Later runs had varying offer counts and calibration failures; some apparent p95/reliability improvements used different cohorts or excluded unresolved replies.
      What it means for the test suites
      No qualified overall H1 speed improvement can be assigned here. Better settlement, source/owner guards and full denominators improved the measurement system, not the product's score.
      Evidence
      PERFVAR measurement ledger (private; summarized here)
    3. Give each device owner its own low-memory policy

      No speed claim

      An explicit 32 MiB policy per owner, which is not a server memory cap. Policy correctness, with no speed claim.

      Exact figures and what they mean
      In the report
      Shared iOS/proxy low-memory policy
      Measured
      Explicit per-owner 32-MiB policy replaced numeric-only proxy targeting; Android remains 64 MiB. Owner-settings cloning prevents unrelated devices from sharing mutable budget assignments.
      What it means for the test suites
      Policy/ownership correctness. The per-device proxy target is not a 32-MiB server-process RSS cap, and this change has no established speed uplift.
      Evidence
      MEMSTEADY LOWBAR
    4. Correct H1 memory claims and make admission allocation-free

      128 B → 16 Bper canceled write on one route, 2 → 1 allocations

      Two routes 368 → 144 B · three routes 1,976 → 1,640 B · ready-path allocations unchanged

      Less allocation and honest memory admission. No end-to-end throughput increase is shown.

      Moves
      Exact figures and what they mean
      In the report
      Correct H1 retained-root claims and allocation-free successful admission
      Measured
      Measured retained H1/H1+ roots exceeded old claims. Corrected accounting retained channel sizes. Lazy byte-notification creation reduced one-route canceled-write cost 128 B/2 allocs→16 B/1 alloc, two-route 368 B/7→144 B/5, three-route 1,976 B/21→1,640 B/18. Ready-path allocations stayed unchanged.
      What it means for the test suites
      Retained allocation reduction plus honest memory admission; no demonstrated end-to-end throughput increase. Receive/ACK custody and refusal fixes protect unrelated flows but still require whole-path qualification.
      Evidence
      MEMSTEADY
    5. Release finished readers in gVisor TCP

      7.86 → 0.54 MiBwarm-heap spread in one matched race diagnostic (−93.1%)

      Closed endpoints had kept 128 KiB caller arrays · three normal and three race SDK confirmations passed

      A strong local retention fix. It is not a phone runtime or throughput result.

      Moves
      Exact figures and what they mean
      In the report
      Release exhausted caller readers in gVisor TCP
      Measured
      One matched race diagnostic: warm-heap spread 8,243,416 B (7.86 MiB)→567,664 B (0.54 MiB). Old endpoints retained 128-KiB caller arrays through io.LimitedReader.R; clear the reader while preserving TCP lifetimes. Three normal and three race SDK-load confirmations passed.
      What it means for the test suites
      Strong local retention fix, not a phone runtime or throughput result. Endpoint counts remained similar, supporting reference release rather than changed TCP-close behavior.
      Evidence
      MEMSTEADY
    6. Keep busy channels and native input from blocking each other

      No speed claim

      Correctness and regression coverage. It is not a measured fix for the pauses seen on real devices.

      Exact figures and what they mean
      In the report
      Preserve busy channels on local probe refusal; isolate native input admission
      Measured
      Deterministic tests reproduced a serialized native-read delay when a packet-send call waits; remote admission was made zero-wait while preserving reliable ownership. Earlier easy 100-page tests passed old and new code, so they did not explain the reported session.
      What it means for the test suites
      Correctness and regression coverage, not an independently measured real-device pause fix. Later flowing-body tests were required to expose deeper stalls.
      Evidence
      PERFVAR measurement ledger (private; summarized here)
    7. Turn off extra application pacing

      63.078 → 3.159 sslowest first byte: pacing on stopped after 49 pages, pacing off finished 100/100

      Slow navigations 10 → 0 · canonical default-off replay: 100 pages, none paused 5 s or more, max 2.717 s

      A major recovery without raising memory budgets. It was not a powered speed cohort, and pacing was not the only cause.

      Moves
      Exact figures and what they mean
      In the report
      Disable extra application pacing; retain delivery-window resizing
      Measured
      A pacing-on confirmation run completed 49 HTML, with 10 slow navigations, max first byte 63.078 s, before failure; pacing-off completed 100/100, zero slow, max 3.159 s. Canonical default-off replay: 100 pages, zero ≥5-s pauses, max 2.717 s; post-sync explicit-gate run max 3.094 s.
      What it means for the test suites
      A major synthetic functional recovery without raising memory budgets. Drain-only removal still failed. These were not a statistically powered same-source speed cohort; later SDK/cold-flow failures showed that pacing was not the only cause. Window-resizing correctness remains independently required.
      Evidence
      PERFVAR measurement ledger (private; summarized here)connect 4e99435f
    8. Back off provider discovery instead of retrying blindly

      No speed claim

      Control-plane load and availability work, separate from the packet pacing above. No measured speed gain.

      Exact figures and what they mean
      In the report
      Discovery retry pacing and bounded live demand
      Measured
      Unproductive expansion backs off instead of repeatedly minting identities; admitted/lost exits or network changes end the wait. Later fixes preserve pending demand and healthy-window selection.
      What it means for the test suites
      Control-plane load/availability work. Do not confuse discovery backoff with the packet-byte pacing disabled above. No qualified PERFVAR/Fast.com gain is recorded for discovery backoff.
      Evidence
      MEMSTEADY connect ae6988d6 connect de1f7829 connect 840c801f connect 4ac950b3
    9. Check single hosted phone-profile cells

      28.54 / 32 MiBpeak in a Wi-Fi iOS-profile cell, with a Fast median of 13 Mbps

      Android 64 MiB cell: peak 39.03 / 64 MiB, Fast 40/84/13 Mbps, median 40

      Single observations, not paired A/Bs. They do not show that a doubled budget made Android faster.

      Moves
      Exact figures and what they mean
      In the report
      Individual hosted mobile-profile cells
      Measured
      One Wi-Fi iOS-surrogate cell: peak 28.54/32 MiB, Fast median 13 Mbps. Separate Android64 cell: peak 39.03/64 MiB, Fast 40/84/13 Mbps, median 40.
      What it means for the test suites
      Individual memory/speed observations, not paired budget A/Bs and not complete profile qualification. They do not show that doubling the budget caused the faster Android result.
      Evidence
      PERFVAR measurement ledger (private; summarized here)
    10. Pick providers by service health and fix SYN custody

      5.675 → 3.566 sfirst byte of page 1 in one combined recovery replay

      All-page median 1.136 → 0.982 s · canonical v2 SDK100: median, p95 and max 0.858, 2.066 and 3.780 s, no page 5 s or more

      A meaningful recovery of this synthetic workload. The bundle was not an isolated A/B, and v1 and v2 results are not pooled.

      Moves
      Exact figures and what they mean
      In the report
      Service-aware affinity, healthy-window selection, cancellation and SYN-custody fixes
      Measured
      One combined recovery replay: page-1 first byte 5.675→3.566 s, all-page median 1.136→0.982 s, zero ≥5-s pages. Later canonical v2 SDK100: median/p95/max 0.858/2.066/3.780 s, 100 HTML/400 assets/99 overlaps, zero ≥5-s pages.
      What it means for the test suites
      Meaningful functional recovery of the named synthetic workload. The candidate bundle was not an isolated affinity A/B; v1/v2 workload changes prevent pooling results. Refused SYN offers must not start provider-silence clocks; that causal fix is not attribution of the observed physical DNS delay.
      Evidence
      PERFVAR measurement ledger (private; summarized here)connect 897b2321 connect e90d59eb connect 2779eec9 connect ac162a0f
    11. The latest phone cell

      545.7 msmedian Wikipedia load in a physical H1 iOS-profile cell (first byte 206.2 ms)

      Peak, quiet and teardown 29.301, 24.262 and 23.363 MiB, no 32 MiB breach · first page 33.044 s, including DNS 18.103 s · Fast 32 and 9.9 Mbps; the third attempt timed out

      It passed sampled memory but failed workload eligibility, and 111 of 112 other cells were not run. The median hides a cold pause.

      Moves
      Exact figures and what they mean
      In the report
      Latest retained physical H1 iOS-surrogate cell
      Measured
      Peak/quiet/teardown 29.301/24.262/23.363 MiB, zero observed 32-MiB breaches; Wikipedia median TTFB/load 206.2/545.7 ms. The first page took 33.044 s, including reported DNS 18.103 s. Fast valid displays 32, 9.9 Mbps; the third attempt timed out.
      What it means for the test suites
      This cell passed sampled memory but failed workload eligibility; 111/112 other cells were not run. Medians hide the cold pause. Neither Android64 nor complete iOS32 qualification follows.
      Evidence
      PERFVAR measurement ledger (private; summarized here)
    Methods

    How the research was done

    The program moved from exploratory tuning toward tests that tell competing causes apart. Each method has a short schematic animation, and the example beside it comes from the timeline.

    1. heap after the testlive datafree listsslackgoroutinesstale readerclosed endpoints still hold 128 KiB arraysreleased; the rest of the heap is unchanged
      Schematic. The Oct 19 fix released readers that closed endpoints kept alive: one matched diagnostic’s warm-heap spread fell from 7.86 to 0.54 MiB.
      01

      Find out what actually holds the memory

      Split memory and time by what actually owns them before changing anything, so a fix targets what is really there.

      Seen inAug 25–26: Count retained memory separately from data in flightOct 16–18: Correct H1 memory claims and make admission allocation-freeOct 19: Release finished readers in gVisor TCP

      In the report

      Profile and measure the actual owners. Go allocation/heap/goroutine investigations, packet-root accounting, queue high-water/drop counters, GC cycles/CPU and process measurements distinguished live payload, free-list retention, allocator slack, goroutine topology and stale references. Memory measurements kept heap, Go runtime, RSS and iOS kernel footprint separate. Source-level capacity arithmetic was checked against actual retained roots.

    2. DNSTCPadmitcarrierreplyfirst page, time by stageDNS 18.103 s33.044 s in all?not instrumented: unknown, not zero
      Schematic. In the latest phone cell the first page took 33.044 s, 18.103 s of it in DNS; how the rest divides is drawn for illustration.
      02

      Find where the time goes

      Trace a slow request stage by stage to find where the time goes. A stage with no instrumentation is unknown, not zero.

      Seen inAug 24: Find the limiter with deeper sequence queuesOct 7–10: Repair how loaded H1 traffic is measuredOct 24: The latest phone cell

      In the report

      Find the limiting boundary, not merely the slow request. Packet/ACK lineage, per-lane resend and cumulative/selective ACK counters, TCP/TLS/request timing, provider selection receipts and browser CDP/NavigationTiming located pauses before admission, during carrier/queue transit, at TCP establishment or in DNS. Missing instrumentation was classified as unknown, not proof of a zero or a stall.

    3. fixed clock036912old, run 1old, run 2old, run 3the fixheld queuesame failure, same tick, every runthe fix passes on that tick
      Schematic. A fixed clock (Go’s synctest), held queues and exact barriers pin each step, and the old code stays as the counterfactual.
      03

      Make failures repeat exactly

      Run the code on a fixed clock with held queues, so a failure lands on the same tick every run and the fix can be proven against the old code.

      Seen inOct 2–5: Repair NAT-stage custody so uploads finishOct 20–21: Keep busy channels and native input from blocking each otherSep 23: Dispatch short bursts directly and fix an overconfident estimate

      In the report

      Reproduce mechanisms deterministically. Fixed clocks (synctest), held queues/receipts, exact refused admissions, controlled ACK/body-release barriers, loss injection and old-code counterfactuals pinned the causal invariant. Tests covered cancellation, sequence wrap, SYN/FIN/RST generations, legacy peers, sibling flows, zero/shared budgets and returned ownership. Normal and race modes catch different failure classes.

    4. changepacingdrainwindow resizingkept on100-page browsing test100 of 100 pagesthe recordall onstopped at 49 pagesdrain off onlystill failedpacing off only100 of 100
      From the Oct 21 entry: with pacing on the run stopped after 49 pages, removing only the drain still failed, and with pacing off it finished 100 of 100. Window resizing stayed.
      04

      Change one thing at a time

      Change one factor at a time against the old behavior, and keep the treatments that failed in the record.

      Seen inOct 21: Turn off extra application pacingAug 24: Find the limiter with deeper sequence queuesSep 13: Match provider socket buffers to kernel autotuning

      In the report

      Use ablations and negative controls. Change only pacing, only drains, only window sizing, only allocation ownership or only a buffer rule. Keep failed candidates and compare against old behavior. Examples include the failed drain-only browsing treatment, the root-depth increase that removed drops without increasing speed, and the socket change that helped a synthetic floor but hurt a realistic profile.

    5. phone browserWikipedia, Fast.comnot reachedfull-TUN simulatorloss, RTT, MTUno gainsocket and carrierMB/s over TLS+3.52%microbenchmarkns per opfaster
      From the Sep 22 SIMD masking test: +3.52% at the socket, no established gain in the complete PERFVAR run, so it was not adopted.
      05

      Measure at every layer

      A gain in a microbenchmark is a question for the carrier, the simulator and the phone. Each layer gets its own measurement.

      Seen inAug 25: Send a provider’s packets as one groupSep 22: H1+: a leaner carrier inside H1Sep 13: Match provider socket buffers to kernel autotuningSep 16–17: Reach gigabit-class throughput with adaptive windows

      In the report

      Measure several layers. Microbenchmarks isolate cost/op and allocations; real localhost TCP/TLS and native RPC measure carrier work; full-TUN/provider simulators test composition under seeded bandwidth/RTT/jitter/loss/MTU/outage; Android browser runs exercise Wikipedia/Fast.com on Wi-Fi/cellular. None substitutes for the next layer. Linux kernel/socket conclusions require the corresponding Linux fixture.

    6. A/A noisethroughputAA′orderBCCBBCCBnewno verdictan effect
      Schematic. On identical code, an A/A check flagged 15 of 17 cells at five repetitions, so earlier small verdicts were retired.
      06

      Measure the noise first

      Interleave old and new runs in fresh processes, and run identical code against itself, so a small difference has to beat measured noise before it counts.

      Seen inAug 24: Check whether the server got slowerSep 12–13: Stop retransmission stormsSep 14: Size delivery windows to what is actually delivered

      In the report

      Balance comparisons and quantify noise. Same-binary switches, immutable source overlays, alternating/interleaved fresh-process blocks and baseline/candidate/candidate/baseline order reduce drift. A/A estimates establish detectable effects. Paired ratios, bootstrap intervals, exact tests and multiplicity correction are used where the cohort supports them; pilots and one-off passes remain explicitly weaker evidence.

    7. time per run, every attemptdeadlinesurvivor median: looks fasternot allowedmedian of every attempt
      Schematic. Failed and calibration-invalid rows stay in the record, deadlines are never silently extended, and bad providers are not dropped after the results are seen.
      07

      Keep every result, failures included

      Keep every attempt, failed and invalid runs included, check the bytes delivered, and never drop bad runs to improve a median.

      Seen inSep 19–21: A phone run passes a scoped 24 MiB checkSep 20: Reject lower Go memory soft limitsOct 7–10: Repair how loaded H1 traffic is measuredSep 16–17: Reach gigabit-class throughput with adaptive windows

      In the report

      Treat evidence validity as part of the test. Preserve useful-byte hashes, exact attempt counts, failed/calibration-invalid rows, source/toolchain identities and raw artifacts. Join background workers and process groups before final memory accounting. Do not force GC to create a steady-memory pass, silently extend deadlines, discard bad providers after seeing results, or compare only successful tail samples. CPU reductions are energy hypotheses until actual energy is measured.

    Milestone

    Gigabit-class throughput with adaptive windows

    Adaptive window resizing took the network’s local TCP path to gigabit-class delivery: 939–942 Mbps of useful payload, sustained after startup on a path with 1-Gbps service, and about 942–943 Mbps in larger-buffer controls. It replaced a fixed window with one sized to what is actually delivered, and repaired the feedback that keeps a fast path full.

    It is host-local evidence, not a claim that every phone or public provider delivers gigabit service. Window resizing is still on by default: turning off the extra pacing in October did not remove it.

    05001,0001-Gbps service626.2939–942 each second1 s5 s10 sMbps, useful payloadten-second mean 908.9
    The host TCP path, 100-ms eight-flow upload: 626.2 Mbps in the first measured second, then 939–942 Mbps for each of the next nine; the ten-second mean was 908.9 Mbps. The startup second stays in the record and is not the steady rate.
    939–942 Mbpssustained after startup: the host TCP path, 100 ms, eight flows
    ≈4.73×the ACK-residence correction: 202.752 → 958.259–958.362 model Mbps
    942–943 Mbpsfinal larger-buffer capacity controls, including a single-flow upload
    4.055 → 958.075model Mbps after an RTT increase at 1 Gbps, against a 958.095 reference

    What changed

    1. Replace the fixed window with an adaptive one

      Qualified delivered-byte/rate and feedback-residence evidence can grow the send window; the receiver advertises usable credit. Peer permission, explicit endpoint limits and shared memory admission remain hard bounds. A larger permitted window is not an eager allocation of that many bytes.

    2. Preserve older providers

      A peer without a receive-window advertisement keeps the historical opening-window behavior; missing compression metadata retains the legacy 10-ms assumption. Resizing cannot grant permission beyond the peer or shared budget.

    3. Account for ACK compression in sizing

      A fast path can still starve if the window covers propagation but not the delayed/compressed ACK interval. Sizing includes the relevant feedback residence while retransmission timing keeps its separate RTT semantics.

    4. Recover after path-quality changes

      Ordinary evidence grows the learned window; a bounded quality-change generation permits replacement using fresh service and RTT evidence. SDK, Android, Apple, Windows and Linux hooks propagate the quality event. Repeated noise does not repeatedly renew the generation.

    5. Keep window sizing separate from pacing

      Delivery-window resizing is still the shipping default (WindowSizingFromDelivery). The extra application byte-pacing layer was subsequently disabled to address browsing stalls. That later correction did not discard the window-resizing work or its receiver/memory guards.

    Recorded impact and evidence strength

    ExperimentBefore → afterWhat it establishes
    ACK-residence correction, 0.3-ms path and advertised 10-ms compression202.752→958.259–958.362 model Mbps, about 4.73×Three race-enabled mechanism checks on a 1-Gbps virtual FIFO. Both arms were explicitly held to the advertised compression interval after an earlier stimulus defect was corrected.
    RTT increase during traffic, eight flows, 10-ms compressionAt 1 Gbps: 4.055→958.075 model Mbps, versus 958.095 reference. At 100 Mbps: 7.148→95.805, matching reference.Recovery of a severe window/feedback collapse, with every flow progressing and zero measured relay drops. This is virtual-time evidence, not a physical-device speed result.
    Host TCP path, 100-ms eight-flow upload626.2 Mbps in the first measured second, then 939–942 Mbps for the next nine; ten-second mean 908.9 MbpsActual local socket/NAT/TUN-path gigabit-class steady delivery. Startup is retained and must not be described as the steady rate.
    Short-path SDK duplex phase study, September 23Aggregate median 1,499.17→1,718.06 model Mbps; later short-duplex check 1,826.60 model MbpsCapacity and feedback behavior of the SDK construction in a virtual-time instrument. Aggregate bidirectional throughput is not one-direction Internet throughput.
    Final deterministic window matrixMinimum candidate/reference 99.9% in the 36 RTT/flow/compression cells; 99.3% in 108 endpoint-mismatch cells; 98.8% in six live receiver-window changesThe benefit was exercised across window/RTT changes and asymmetric limits, not just one large clean window.

    The achievement and the remaining guards both matter. Some host comparisons were calibration-censored or slow; one default-buffer 100-ms single-flow upload deteriorated to 7.7 Mbps. Those failures remain in the original reports. The headline is that gigabit-class delivery was achieved and adaptive windows removed major limits—not that every rate, host, profile or later build had already passed. The 32-MiB iOS and 64-MiB Android memory qualifications remain separate, and a desktop/capacity-control window must not be assigned to a phone without its admission budget.

    In the report

    Achieving gigabit-class delivery was a major result of this research. The work replaced a fixed-window bottleneck with delivery-sized windows and repaired the feedback/ACK behavior needed to keep a fast path full. It deserves to stand alongside H1+, batching and memory retention as a headline improvement, rather than appear only as an intermediate 68→85-Mbps experiment.

    The result was more than an arithmetic prediction. The local TCP-path instrument—real loopback kernel origin, provider NAT, Transfer and gVisor application/TUN sockets—recorded sustained 939–942 Mbps after startup in its 100-ms, eight-flow upload check. Final larger-buffer capacity controls recorded approximately 942–943 Mbps, including the 100-ms single-flow upload. This is gigabit-class useful payload on the instrument's 1-Gbps path; protocol overhead and the payload accounting explain why these readings are below 1,000 Mbps. It is host-local TCP-path evidence, not a claim that every mobile device or public provider supplies gigabit Internet service.

    THROUGHPUT-PR2-RESULTS THROUGHPUT-REPORT-PR2 MEMSTEADY THROUGHPUTFIX THROUGHPUT-REPORT

    Start to end

    How far each kind of gain went

    The report’s own estimates, axis by axis, with the confidence each one deserves.

    Page load

    ≈4.7–7.3×

    faster median Wikipedia load (79–86% less time): from 2,552.3 or 3,967.8 ms on Aug 24 to 545.7 ms on Oct 24

    Confidence Low. A historical observation across two different starting workloads, not a confidence interval or a causal A/B. The latest cell still had a 33-second cold first page.

    In the report
    Start-to-end evidence
    Aug 24 explicit-H1 control 2,552.3 ms, or the low-bar bundled baseline 3,967.8 ms; latest Oct 24 physical cell median 545.7 ms.
    Estimate and confidence
    Approximately 4.7–7.3× faster median loading (79–86% less time) as a historical observation. This range reflects two different starting workloads, not a confidence interval or causal A/B. Providers, builds, profiles and memory limits differ; the latest cell still had a 33-second cold-page stall. Treat this as a low-confidence user-visible estimate, not a release guarantee.

    Bulk speed

    ≈6.7×

    recovery on the controlled H1 path: about 6.1 Mbps, then 38, 41 and 52 Mbps after the handoff fix

    Confidence Stronger mechanism evidence than public-route comparisons, but not the net gain of every change through October. Public speeds still vary.

    In the report
    Start-to-end evidence
    Aug 25 exact-provider drop-prone path about 6.1 Mbps, corrected handoffs 38/41/52 Mbps, median 41.
    Estimate and confidence
    Approximately 6.7× recovery in that historical experiment; stronger mechanism evidence than public-route comparisons. It is not the net gain from every change through October. Current public speed remains variable and failed/incomplete cells remain.

    Adaptive windows

    ≈4.73×

    faster in the adaptive-window model, 202.752 to 958.259–958.362 Mbps, and gigabit-class on a local TCP path: 939–942 Mbps sustained after startup, about 942–943 Mbps in larger-buffer controls

    Confidence Measured on a host-local TCP path (kernel sockets, provider NAT, Transfer, gVisor and TUN), not on a phone or a public provider. Some host comparisons were calibration-censored or slow, and they stay in the record.

    In the report

    The achievement and the remaining guards both matter. Some host comparisons were calibration-censored or slow; one default-buffer 100-ms single-flow upload deteriorated to 7.7 Mbps. Those failures remain in the original reports. The headline is that gigabit-class delivery was achieved and adaptive windows removed major limits—not that every rate, host, profile or later build had already passed. The 32-MiB iOS and 64-MiB Android memory qualifications remain separate, and a desktop/capacity-control window must not be assigned to a phone without its admission budget.

    Packet path

    2.81× · 2.02× · 1.19–1.36×

    grouped provider sends, the Framer singleton path and the H1+ carrier, each measured alone

    Confidence Bounded and reproducible. They overlap in the pipeline and must not be multiplied; their combined effect on page load, Fast.com or battery is not identifiable.

    In the report
    Start-to-end evidence
    Grouping 2.81× drain throughput; Framer singleton 2.02×; production H1+ 1.19–1.36× paired carrier throughput, depending on direction.
    Estimate and confidence
    These are bounded, reproducible component gains. They overlap in the pipeline and must not be multiplied. Without matching start/end whole-stack profiles, their combined contribution to page load, Fast.com or battery life is not identifiable.

    Memory

    −26.4% · −7.5% · −93.1%

    retained-byte accounting, the shared provider UDP lifecycle and the released TCP readers

    Confidence Different owners and workloads, so there is no common total. The larger 32 and 64 MiB budgets are not an efficiency gain.

    In the report
    Start-to-end evidence
    Historical retained-byte repair 29.59→21.77 MiB (−26.4%); shared UDP host runtime −7.5%; stale-reader warm-heap spread −93.1% in its matched diagnostic.
    Estimate and confidence
    Different owners and workloads, so no common “total memory saved.” Current 32/64-MiB limits deliberately permit more useful work than the old 24-MiB profile. A higher later runtime does not by itself negate an allocation fix, and a larger cap is not a memory-efficiency gain.

    Recoveries

    8

    stalls and failures fixed, from H1 handoff drops in August to pages over 5 s in the 100-page test in October

    Confidence Each is a functional recovery in its own named workload. None is a speed multiplier. (This card is proposed in D1; the report has no such row.)

    The whole app

    No single number

    No same-source start-to-end campaign spans the period. Several campaigns failed or stopped, and the measurement protocol changed.

    Confidence The research supports large local gains and recovered functionality, not a claim that the whole app is a fixed percentage faster or that every final gate passes.

    In the report
    Start-to-end evidence
    No same-source-compatible start/end complete campaign spans the whole period. Several campaigns failed or stopped; the measurement protocol evolved.
    Estimate and confidence
    No defensible aggregate percentage. The report supports large local gains and recovered functionality, not a claim that the entire app is a fixed percentage faster or that all final gates pass.

    “The research substantially reduced per-packet work and restored several stalled paths; representative page-load medians improved by roughly five to seven times across recorded device observations, but cold pauses, public-provider variance and incomplete final qualification prevent treating that as a universal net product gain.”

    The report’s own one-sentence summary
    Instruments

    What changed in the tests themselves

    The test coverage improved substantially, even where performance is still open.

    LOWBAR

    Constrained links are now judged by useful delivery, wasted resends and finite queues, not only clean-path speed.

    In the report

    constrained-rate, MTU, loss, mixed-route and fixed-offer cases now check useful delivery, retransmission/wire cost and finite queues, rather than only clean-path bulk speed.

    PERFVAR

    Every scheduled attempt stays in the record, and noise is measured before a small gain counts.

    In the report

    scenario identity and A/A noise matter; every scheduled attempt and failed/calibration-invalid arm remains in the record. Five repeats cannot automatically establish a small gain. Loaded-probe cohorts must settle through their own deadlines rather than be silently discarded when bulk completes.

    MEMSTEADY

    Memory is measured through startup, traffic, quiet, drain and teardown, and a later low sample never erases an earlier breach.

    In the report

    Go soft limits and logical credit are not observed runtime caps. Startup, traffic, quiet, drain and joined teardown all count. The current iOS surrogate is tested on allowlisted Android phones at 32 MiB, while normal Android is independently tested at 64 MiB. A later low sample cannot erase an earlier breach.

    Browsing

    Page tests grew from easy sequential pages to 100 real pages with assets, unfinished bodies and overlapping navigation.

    In the report

    tests evolved from sequential/easy pages to 100 pages of 50–300 KiB with real HTML/assets, unfinished bodies and overlapping navigation, then actual SDK/public-provider recovery and verified inner TLS/H2. Those fixture generations are distinct measurements, not interchangeable score rows.

    Open questions

    What is not yet shown

    No cumulative app-speed or battery improvement is claimed. These are the gaps the next qualification has to close.

    • The cold first page

      In the latest phone cell the first page took 33.044 s, 18.103 s of it in DNS. Medians hide that pause, and the cold-connection and device pause investigation is still open.

    • The phone-profile matrix

      The complete physical matrix, 32 MiB for the iOS profile and 64 MiB for Android, is not qualified. In the latest run, 111 of 112 cells were not run, and a single memory pass or a fast public exit does not qualify it.

    • The full campaign

      The complete correctness and PERF campaign has not been qualified. Source changes interrupted later qualification, and interrupted or source-invalid runs get no performance credit.

    • A native iPhone

      There is no native-iPhone evidence for the requested extension lifetime footprint under 50 MiB. Android and host tests cannot supply it.

    • Two open investigations

      The cold-destination and provider-admission comparison, and an independent encoding and pool-ownership investigation.

    • Battery

      Every CPU reduction here is an energy hypothesis until energy is measured. No battery improvement is claimed.

    The latest result, summarized

    After the October 24 entries, a warm 100-page synthetic run over HTTP/2 passed ten component roots and one full 100-page run, in normal and in race mode, with joined cleanup and no pause of 5 s or more. Normal median, p95 and max were 0.949, 1.905 and 2.749 s; the race-mode max was 3.364 s. It is a warm four-origin cell-edge test (5/1 Mbps, 120 ms base RTT, jitter and loss), not a public Wi-Fi comparison, a cold-provider test or a memory qualification.

    Glossary

    Terms used in this report

    A/A test
    Running identical code against itself. The spread of its results is the noise a real difference has to beat.
    ACK
    An acknowledgment: the receiver’s signal that data arrived, so the sender can move on instead of resending.
    ACK compression
    Acknowledgments that arrive bunched together after a delay, so the sender learns of delivered data later than the path’s travel time alone would suggest.
    Admission
    Accepting new traffic only when the memory budget has room for it.
    Carrier
    A connection that carries URnetwork traffic between a device and the network, such as H1, H3 or P2P.
    Connect
    URnetwork’s open source networking library, which carries traffic between clients and providers.
    Drain
    Taking every queued packet off a queue in one pass.
    Fast.com
    A public download speed test, run here in a phone’s browser.
    Framer
    The format that marks where each message starts and ends on a carrier. FramerXL is the variant for large device RPC frames.
    GC
    Garbage collection: Go reclaiming memory that is no longer used. GOGC and the soft limit set how often and how hard it works.
    Goroutine
    A lightweight Go thread. Each one holds memory, so fewer is cheaper.
    gVisor
    An open source user-space network stack. Connect runs TCP/IP in it on the device.
    H1
    The carrier family over TLS, WebSocket and TCP, which passes through ordinary web infrastructure.
    H1+
    An upgrade inside H1 that sends the Framer format straight over the TLS stream, with a plain WebSocket as the fallback.
    H3
    The carrier family over QUIC.
    iOS profile
    The 32 MiB memory budget that stands in for an iPhone network extension, tested on allowlisted Android phones.
    LOWBAR
    The test suite for constrained links: delivery and latency at low rates, small MTU, loss and mixed routes.
    Median
    The middle value of a set of measurements.
    MEMSTEADY
    The test suite for memory over time: runtime peaks, quiet behavior, teardown and which code owns the memory.
    MiB
    A mebibyte, 1,048,576 bytes.
    Model Mbps
    A rate measured in a virtual-time model of the path rather than on real sockets. It shows that a mechanism works, not what a device gets.
    NAT
    Network address translation: mapping between private and public addresses, here on the provider.
    P2P
    A direct carrier between two devices.
    p95
    The value that 95% of the measurements stay at or below.
    Pacing
    Spacing packets out over time instead of sending them as soon as they are ready.
    Pack
    A Connect message that carries one or more packets on the wire.
    PERFVAR
    The performance suite: throughput, latency, wire and retransmission cost, correctness and calibration, scenario by scenario.
    Provider
    A device that shares its connection with the network. Traffic leaves the network through it.
    PTO
    Probe timeout: the point where a TCP sender stops waiting and probes for lost data.
    Race mode
    A Go build with the race detector on. It runs slower and catches data races.
    RPC
    Remote procedure call. Device RPC is the SDK’s local channel between the app and its network service on the same device.
    RTT
    Round-trip time: how long a message takes to get there and back.
    SDK
    The URnetwork software kit that the apps build on. It runs Connect on the device.
    SYN
    The first packet of a new TCP connection.
    synctest
    Go’s test package that runs code on a fake clock, so the timing is identical on every run.
    TTFB
    Time to first byte: how long until the first byte of a response arrives.
    TUN
    A virtual network interface. Full-TUN tests send traffic through the whole tunnel.
    WebSocket masking
    The XOR scrambling a WebSocket client must apply to everything it sends.
    Window
    How much data may be in flight before the sender waits for an acknowledgment. cwnd is the congestion window.

    Source: Network performance research impact, 2026-08-24 to 2026-10-24 , in urnetwork/connect. Every figure is quoted from it unrounded; percentages and ratios appear only where the report states them. Updated .