v145 · Privacy · Networking · demo

Connection Queue Simulator

Simulate a burst of parallel HTTP/1.1 requests against a fixed or randomized TCP connection pool. Watch requests queue when the pool fills, and compare with HTTP/2 mode where all requests multiplex over one connection with no queuing — the real reason to upgrade.

Chrome 145: the per-origin TCP pool limit is now randomized each session (was a fixed 6). This closes a fingerprinting vector. For performance, HTTP/2 and HTTP/3 eliminate this limit entirely — multiplexing all requests over a single connection.

Set pool limit and request count · pick HTTP/1.1 or HTTP/2 mode · click Run · watch requests flow through the pool

Connection pool
Active connections (pool)
Queued (waiting for pool slot)
Done
Total requests
Completed
Max concurrent
Total time
Event log
Run a simulation
// TCP socket pool — Chrome 145 change summary:
//
// HTTP/1.1: per-origin pool limit was fixed at 6 (predictable, fingerprintable)
// Chrome 145: pool limit is randomized per session (e.g. 5–8)
//
// Impact: connection-counting fingerprint probe no longer identifies Chrome reliably
//
// For developers: use HTTP/2 or HTTP/3 instead of optimising for pool limits
// HTTP/2 multiplexes all requests over ONE connection — no queuing, no pool limit

// Detecting actual concurrency from JS (illustrative — not a reliable limit probe):
const entries = performance.getEntriesByType('resource');
const origins = new Map();
entries.forEach(e => {
  const o = new URL(e.name).origin;
  const arr = origins.get(o) ?? [];
  // connectStart of 0 and no new TCP conn means connection reuse
  arr.push({ start: e.startTime, connectStart: e.connectStart });
  origins.set(o, arr);
});

see also