ST-CS-10-339-75
March 2002

SECTION II

CLIENTS AND SERVERS  (S)

1.  Client-Server Communication  (U)

A client is the Half-life program used by a player to connect to a server. A Half-life server is the central program which many clients connect to, to play Counter-Strike.

Clients do not communicate with each other; they only communicate with the server. The server keeps track of what every client is doing and if what a client does affects another client or clients, the server tells those clients what they need to know.

The whole arrangement is like a star, with the server in the middle radiating out connections to the clients surrounding it.

There are two basic issues involved in client-server communication; bandwidth and latency.

In an ideal world, client-server communication would be instantanous; there would be no limit on the amount of data transferable and the transfer would be immediate. In effect, the client would always be in exactly the same state as the server.

In reality, there are limits on how much data can be transfered between the client and server every second (bandwidth) and it takes a certain amount of time for that data to be transfered (latency).

The data transfer limit occurs in two ways.

Firstly, the server has a setting which specifies the maximum amount of bandwidth it will use when communicating to a client. So even if a client connects over cable or xDSL, which have at least 64 kilobytes per second of bandwidth, the server will still only send at most 8 kilobytes per second (this is a typical value, but servers vary); a server induced bandwidth limitation.

This is done because servers have so many players connected they use up large amounts of bandwidth and this has to be paid for; by setting an upper limit the server is financially predictable.

Secondly, clients using low bandwidth connections (56k modems, usually) will actually have less bandwidth than the maximum amount specified by the server; these unfortunates have a connection-induced bandwidth limitation.

Latency depends primarily on the type of connection (56k modem, ISDN, xDSL, etc) from the client to the client's ISP. The greater the latency, the longer it takes data leaving the client to reach the server. The lower a client's latency is, the better.

Link Bandwidth Latency
56k modem Low High
ISDN Low Low
xDSL High Low
Satellite High High

Note that latency is entirely seperate from bandwidth. This is why, for example, single channel ISDN has the same latency as dual channel ISDN, and why satellite connections - although being rated for several megabits per second - are useless for real-time games because of a latency is the region of 2000ms.