What causes choke?

Choke is caused due to your computer being unable to accept the amount of incoming data that the server is trying to send to you. Imagine a pot full of water set to high on a stove. Because the heat is too high, the water will boil over and spill everywhere. Choke is very much the same thing; Your connection is set to receive more than it can handle resulting in inconsistencies due to your network settings.

Causes of Choke (Inconsistency in settings)

Frame-rate (Fps_max)

Tic-rate (Cl_updaterate, cl_cmdrate)

Bandwidth transfer speed (Rate)

ISP data loss

Keep in mind that you cannot get more updates than whatever the server Tic-rate is set at.

If your settings are too high or too low (aren't at the optimal value), you will get choke.

Using net_graph3

Valve still makes use of a command created by id-software back in the days of Quake, good ol' "net_graph 3". This command is important because it shows you a very detailed readout of all network activity to and from the game-server you're playing on.

Un-optimized Net_graph 3 (on a 66 tic server)

Optimized Net_graph 3 (on a 100 tic server)

You'll notice in the above, "un-optimized" picture, that i have 13 choke, exactly the amount of data being lost due to a too low rate. You can use the right-hand values 57.4/s, 67.1/s to determine if you are communicating with the server optimally based on the server's tic-rate.

Tips to reduce choke

The key to optimizing your settings are to match them with the server's Tic-rate but add 1.

If you do not know of the Tic-rate of the server you are connected to you can type:

sv_maxupdaterate

So on a 100 Tic-server, your settings should be:

cl_updaterate 101

cl_cmdrate 101

fps_max 101 (i use 121)

rate 30000 (to determine max-rate for a given server, at the console type sv_maxrate)

Note: Do not allow your FPS to dip significantly below the server Tic-rate (fps_max 101 for 100 Tic server), or you will also receive choke.

Also, many servers will set your network settings automatically, quite often to less than optimal values! Make sure you check your network settings upon joining any server!

Things we cannot control

The more people connected to a server, the less resources the server will have to send data. Unfortunately this will vary depending on in-game activity. For example, If a server is running at 100 Tic-rate and has 32 players, it will need approximately 3,200 updates per second to maintain consistency with it's clients. Obviously today anything much higher than this is simply not feasible without producing lag.

The largest smooth-game you can really get at the moment are 20 man servers at 100 Tic-Rate that are FPS-Boosted to 2000 server side fps (which is the max server fps available). Anything higher than that just demands too much on today's hardware/bandwidth limitations and you will get choke.

Also, your Internet Service Provider may be causing Packet Loss (:"loss" above in net_graph 3). If that is the case it may be because of too many server hops. As i mentioned in another article, Gamerail offers a service to help resolve this problem if switching ISP's is not an option.