[ENet-discuss] A unified rate-based throttle for reliable and unreliable packets

Lee Salzman lsalzman at telerama.com
Sun Apr 4 17:26:33 PDT 2004

The probability would be calculated on every call to
enet_host_service/enet_host_flush. But otherwise, some VERY good points
here. Maybe the simplest way would be to weight this probability so that
the AVERAGE probability of dropping a packet is ultimately this
probability, however, the probability raises above this with increasing
age, and drops below this with decreasing age. An assumption could be
made that queue position reflects this age, so that unreliable packets 
closer to the front of the queue (the oldest ones) have a much higher
chance of being dropped.


On Mon, Apr 05, 2004 at 01:26:32AM +0200, Marcin Zaj?czkowski wrote:
> Dnia 2004-04-01 01:42, U?ytkownik Lee Salzman napisa?:
> (...)
> >For unreliable packets, minimal latency of sending is much more
> >important than whether the packets get there, since ENet assumes that a
> >high sending rate. So as to accomplish this, ALL backlogged unreliable
> >packets are sent out subject to packet dropping. To compute the
> >probability that a packet should be dropped, we consider the TOTAL
> >amount of backlogged data (both reliable and unreliable) in excess of
> >the data budget. The probability of dropping a byte in a packet is then:
> >  dropProbability = max(backloggedData - dataBudget, 0)
> >                      / backloggedData
> Concept looks good, but I have one question.
> When do You plan to add actual data to send? Before probability count or 
> after?
> I think that backlogged reliable, actual reliable and actual unreliable 
> packets should be summed before calc of drop probability, because they 
> have higher priority than old unreliable. And only if some free space in 
> "budget" remains then probability of drop old UNrealiable packets should 
> be calced (if not all should be dropped).
> Marcin

More information about the ENet-discuss mailing list