A huge rate does not mean that the data "is split in very small packets
where the payload is less than 10%".

In old HL2 engine the rate was used only for computing the time when the
next update can be sent to a client. The formula was something like:

        next_time = current_time + (bytes_send + 28) * (1 / rate)

I don't think they changed this. A huge rate means that there are no
bandwidth limits so the engine can send an update every tick/frame. A
smaller rate means that some updates may be delayed, and this is called
choke.

You probably forgot that:

1. The engine has 66 ticks, so cannot send more than 66 updates to a client.
2. Every tick the engine can send only one update to a client.

So a huge rate does not mean that the engine will send 9999 updates to a
client or something like this.

The rate is a MAXIMUM value, not a RECOMMENDED value. The engine won't try
to send to a client "rate" bytes, instead avoids sending more than "rate"
bytes.

If a client requests/receives fewer updates (20-30 for example) then it may
be possible that each update require more data. If the client
requests/receives 66 updates then maybe each update is a little bit smaller.
But the range is between 0 and 66, not between 0 and 999999999.

Using sv_maxrate 70000 is not enough for a 32 slots server. Request 66
updates from such server and you'll see choke in netgraph quite often.

As an observation, even 40.000 bytes are not enough sometimes for ONE SINGLE
update :)

And net_splitrate and net_splitpacket_maxrate have nothing to do with how
packets are created, their size etc...

-----Original Message-----
From: hlds_linux-boun...@list.valvesoftware.com
[mailto:hlds_linux-boun...@list.valvesoftware.com] On Behalf Of Mart-Jan
Reeuwijk
Sent: Monday, August 06, 2012 3:22 AM
To: Half-Life dedicated Linux server mailing list
Subject: Re: [hlds_linux] Understanding choke / tweaking for lag

I have:
sv_minrate 35000  // push the slackers up
sv_maxrate 70000  // nobody needs more then that
sv_minupdaterate 33 // 1/2 of server tick, makes them recieve every other
server update
sv_maxupdaterate 67 // to allow for 66.66666 server tick
sv_mincmdrate 33  // 1/2 of server tick, makes them send at every other
server tick
sv_maxcmdrate 67 // to allow for 66.66666 server tick


As 1260 is default max routable (net_maxroutable) by tf2, i'm a bit puzzled
on the net_splitpacket_maxrate and the net_splitrate proposed by you.

For if one has default splitpacket_maxrate 70000, on default rate 10k, and
the net_splitrate default is 1, its still:

70000/67= max 1044 bytes per update, easily within 1 packet.
tbh, not seeing a problem there..

And I'd advice against setting a no limit on the maxrate. loads of idiots
out there who have their rate set to 1024000 or more, which actually results
in packets been split in very small packets where the payload is less then
10% of the packets... Nobody needs more then ~70000 even on 32 player
servers, if wanting to be safe you could go for 100k. Altho I'd advice to
not set the sv_maxrate higher then 84000 (tickrate times max routable:
(66+(2/3)) *1260, the higher the client set it, the smaller the payload on
packets become) and to be on the safe side on 80k.

Next to that testing of what your average maxrouting actually is, and set
that in tf2, and recalculate, either set your max a bit lower, or set the
net_splitrate a bit up and the splitpacket_maxrate to a lower value, and
generate more splitted packets.... but one can already achieve that with
net_maxroutable... 

So far the conditions I see where that would activate is with low updaterate
and cmdrate on the client with a high rate data quantity coming in to
them... which can be negated by setting the min's for cmdrate and
updaterate. 

In other words, one would normally not need the net_split* commands if they
set the min and maxrates correctly, and the routing is not limiting the size
of the packets to something less. 

Might be a bug I'm not aware off, but that will no doubt be flagged here in
reply :)


>________________________________
> From: Russell Smith <ve...@tinylittlerobots.us>
>To: Half-Life dedicated Linux server mailing list
<hlds_linux@list.valvesoftware.com> 
>Sent: Sunday, 5 August 2012, 22:06
>Subject: Re: [hlds_linux] Understanding choke / tweaking for lag
> 
>I don't know what is recommended but I use:
>sv_minrate 50000
>sv_maxrate 0
>sv_minupdaterate 40
>sv_maxupdaterate 66
>sv_mincmdrate 40
>sv_maxcmdrate 66
>net_splitpacket_maxrate 100000
>net_splitrate 2
>
>On 8/5/2012 1:01 PM, Michael Johansen wrote:
>> Russel, what are the correct values for these? Or rather, the recommended
ones.
>
>
>_______________________________________________
>To unsubscribe, edit your list preferences, or view the list archives,
please visit:
>https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlds_linux
>
>
>
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
please visit:
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlds_linux


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

Reply via email to