Rate
This is your download speed in bytes / second.
If you know your advertised speed in kbIps (like a 56k is actually 56kbIps), then all you have to do is divide your speed by 8 and multiply it by 1024.
Like this:
56 / 8 = 7 kbYtes/sec (1 byte = 8 bits)
7 * 1024 = 7168 bYtes/sec (1 kbyte = 1024 bytes)
Your rate would be:
rate 7168
You should know you will never download @7168, because thats the maximum theoretical limit. Instead, you should be realistic and take 90% of the theoretical limit to get the download speed you would get on most servers.
90% of 7168 = 7168 * 0.9 = 6451
rate 6451
That's about right, and should work best if you have a 56k dialup modem.
cl_rate
This is your upload speed in bYtes / second. It's how fast you send the things you do to a server. But your upload speed is usually not as fast as your download speed, so you need to make different calculations for "cl_rate" than for "rate".
Let imagine you have DSL, with 128k upload speed.
128k is an advertised speed, so it is in kbIts/sec.
128 / 8 = 16 kbYtes/sec
16 * 1024 = 16384 bYtes/sec
Again, you wont upload at that speed, instead your max upload speed will be about 90% of the advertised speed.
16384 * 0.9 = 14746 bYtes/sec
So your cl_rate will be:
cl_rate 14746
cl_updaterate
This is the amount of times you receive updates from the server per second.
In a heavy firefight the largest packets can be up to 180 bytes. (A packet is a bit of information that you receive).
If we divide our rate by the largest packet size, we'll get our cl_updaterate.
6451 / 180 = 36
cl_updaterate 36
We dont need to take 90% of the updaterate, because we've already done that in the rate calculation.
cl_cmdrate
This is like cl_updaterate only that it's the amount of times you send updates to the server. The largest packet size that you (the client) send to the server is something like 30 bytes.
So we should divide cl_rate by the largest packet size we send through:
14746 / 30 = ~491
Now, you can't send 491 updates per second to the server . It's almost impossible for the server to handle all those packets. What Half-Life has done, is limit cl_cmdrate to 100
So if you calculate cl_cmdrate and its bigger than 100, change it to 100
cl_cmdrate 100
That's more than fast enough for most ppl.
=============================================
=============================================
That was the first part, I think all I said there has been said before, and perhaps better than I explained it.
But now comes the bit everyone forgot to mention!
The server you connect to has maximum and minimum rates. What the fu*k does that mean? It means that your specially calculated rates wont work properly and youll get choke and loss.
How should you fix this?
Well, currently you can only do this by looking up the max rates of the server, and recalculating rates after youve got the servers max rates.
Ill explain how:
1/ First connect to a server
2/ Open console with "~"
3/ Type: sv_maxrate
4/ Press enter
5/ You should see a message in console displaying sv_maxrate xxxx
Now that you've got the servers max rate, you know your own max rate aswell, the server limits your rate to his own max rate.
So now we have to adjust our own rates.
Lets say sv_maxrate was 10000
sv_maxrate 10000
Our rate should then also be 10000 (if your rate is less than sv_maxrate, you dont need to do any more calculations, you have the best rates for your connection). What we need to change is our cl_updaterate to avoid choke.
So we need to calculate cl_updaterate based on a rate of 10000
10000 / 180 = 56
cl_updaterate 56
That will be our new cl_updaterate.
After you've done that, you have calculated the best possible rates for the server you are on. All you have to do is type "cl_updaterate 56" in console.
If you still experience choke or loss, lower your cl_update and cl_cmdrate, not your rate/cl_rate.
0 comments:
Post a Comment