This command is misunderstood and even CAL has it wrong.
If you want your players on your server to have a nice smooth choke free game please read on.
sv_maxrate = The maximum
rate a player can use. No player on the server can have a higher
rate than the sv_maxrate and most servers seem to restrict us to 30000 for some reason.
RATE – The common cause of choke and loss.
Rate the biggest problem with server administrators and players. This setting is probably the main thing every single netcode guide has got wrong. Why is this? Most of the netcode guides came from old CS 1.6 players. Who already knew what settings worked in old CS but didn’t realize they would ever need to set these settings higher. Even Cal has this setting wrong but won’t change it because I am not a GOD to the cal community. Rate is the amount of bytes per second you want the server to send you. Example you are suppose to get 100 updates per second from the server each update is around 400 bytes. That is 40000 bytes per second but you have your rate set to 30000 that means after you receive 75 updates you won’t receive 25 updates that second. So your rate setting can cause you not to receive updates which you will know because those updates will show up as choke.
Rate is merely a cap saying don’t send more than 30000 bytes/second (I used 30000 as an example). Tell me this if you were downloading mp3’s would you want to say don’t send me more than 30000 bytes/second which = 234kbits per second. I guess you would if you had dsl because it is about that fast. We spend so much money on fast download speeds yet in half life because someone said put this setting in. This is the optimal setting you should use and we believe it. I say don’t believe them or me follow what they say and see if it works. Tests settings they said don’t use and see what happens. Here is a breakdown of common internet speeds that I converted into bytes.
Read more here
http://www.jason35.com/Netcode.htm