This simulator shows the client-server pattern with every step made visible. Several clients send read-only requests at the same moment; they cross the network, line up in a FIFO queue, are served one at a time, and return. You set the load, delay and service time, and optionally inject a failure.
• A 3D scene with client workstations, request and response transit, a FIFO waiting queue, a service worker and a response ledger. • Controls for concurrent clients (1 to 5), one-way network delay (1 to 5 ticks), server service duration (1 to 5 ticks) and failure injection (none, server, drop). • Readouts for successful responses, errors or timeouts, waiting requests, worker busy, modeled network time and mean successful latency. • Restart demonstration and Advance event buttons, and experiments for queueing cost, server error and a dropped first request.
With N simultaneous requests, one worker and no failures, request i completes at 2L + (i + 1)S, where L is the one-way delay and S the service duration. Mean response time is therefore 2L + S(N + 1)/2, which rises with every added client because the single worker serves them in turn — adding clients never reduces latency for one worker. In server-error mode responses return but the successful count stays zero, since an error is a response. In drop mode the first request is lost before reaching the queue and its timeout deadline is 2L + S + 2 ticks; the other requests continue.
A discrete tick model of already-established reliable connections in the normal case, with no DNS, TCP handshake, TLS, retries, bandwidth serialization or real network. Failure modes are explicit teaching injections, and in drop mode only request 0 is dropped. A timeout alone does not establish what a real server did, which is why the lab separates it from a returned error.
No. A returned error proves a response arrived; a timeout does not — the request may have been lost, delayed or processed. The lab counts both in errors or timeouts but shows them differently.
No. The queue usually adds waiting time. With one worker, mean response time grows by S/2 ticks for each extra client.
The lab uses 2L + S + 2 ticks for the first request in drop mode: the round trip, one service time and two ticks of margin.
Network delay adds 2L to every request's round trip, while service duration sets how long each request occupies the single worker and so how long later requests wait.