From: "Half-Life Dedicated Server" <[EMAIL PROTECTED]>

> Well I am getting choke on my client up into the 800 sometimes 900 range
and
> it becomes unbearable and very unplayable as I have to aim 4 to 8 steps
> infront of anyone to kill them.  I have 640Kilobit Down and 272Kilobit up
> for my ADSL connection.  I am not sure whats causing it either.  I have
the
> following system:
>

I thought the maximum for choke was 99? Isn't it a percentage?

There was a quote posted here a while back from Valve's Yahn Bernier
describing what choke is. My understanding, to paraphrase, is that choke
occurs when the server is unable to send you all of the updates that your
client requested, either due to your client's downstream bandwidth or the
server's upstream bandwidth being saturated (although possibly not the
actual bandwidth of your connection, but the effective bandwidth of the
route between you and the server when the various hops are accounted for;
e.g. you might have a 2Mbps connection and be playing on a server on 10Mbps
but be only able to get 100kbps to the server, due to a slow link/net
congestion/traffic shaping between you and the server).

An update is like a network "frame", a shot of the action, describing the
location of players, who's firing their weapons, etc. etc.

Each update is a particular size, and the size varies greatly depending on
the number of players in the server, the map and how much action is going on
where you are. One update in a 2 player server will be significantly smaller
than one update on a 20 player server.

How many updates you get depends on your 'rate' and 'cl_updaterate' settings
(conversely, how many updates you send back to the server, telling it what
you're doing, depends on your 'cl_rate' and 'cl_cmdrate' settings, although
you should never need to change 'cl_rate' unless you want to artificially
limit your upstream bandwidth).

'rate' sets the maximum transfer rate for data from the server to you in
bytes/sec. 'cl_updaterate' sets how many updates you will request from the
server, in updates/sec. A 'rate' of 5000 and a 'cl_updaterate' of 30 means
you are asking for 30 updates/sec to a maximum of 5 kB/sec.

Now, if you ask for 30 updates and 5 kB/s on a 2 player server, you'd
probably be fine. Each update could be up to (5000 / 30 = 166.67) bytes
large, which should be enough. On a 20 player server, each update would
probably be bigger than that. Now you have a problem. You've asked for 30
updates, but 30 updates are larger than 5 kB. The server can't send them
all, so you get choke: some updates have to be dropped. Let's say each
update is about 250 bytes. That means you can only fit (5000 / 250 = 20)
updates per second. This would give you on average (100 - 20 / 30 = 33%)
choke. You could resolve this by increasing your 'rate' (assuming you have
the actual bandwidth to cope with more data) or by decreasing your
'cl_updaterate'; although in the latter case, the only difference really
will be that you will no longer have choke--you still only get 20 updates
either way.

To answer the original question: you shouldn't get choke on a LAN. I don't
know why you'd be getting that. You should have 10 or 100Mbps to play with,
which even a 'rate' of 20000 won't make a dent in. Does it occur even when
the server is empty? Do Internet clients notice any problems as well when
you get this choke?

-Simon

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux

Reply via email to