Client-Server Computing Simulator — Request Queueing, Latency & Timeouts

Interactive client-server simulator — send simultaneous requests over a network with one-way delay to a single-worker server, watch the FIFO queue, compare mean latency, and inject a server error or dropped request.

← Computer Science Labs
About this tool — how it works & FAQOpen ▾Close ▴

About the Client-Server Computing Simulator

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.

What the simulator shows

• 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.

Queueing arithmetic

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.

What the model is and is not

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.

Frequently asked questions

Is a timeout the same as a returned server 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.

Does adding clients reduce latency for a single worker?

No. The queue usually adds waiting time. With one worker, mean response time grows by S/2 ticks for each extra client.

How is the first request's timeout deadline set?

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.

What do the network delay and service duration do?

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.

Related tools & guides