On Fri, 28 Jul 2000, Jeffrey Nowakowski wrote:

> Sending ping requests down TCP: Perhaps it would be better to
> ghostbust clients having TCP trouble, perhaps not.  At some point,
> people hosed TCP but not UDP will kill their client if they are stuck,
> which should be caught by ghostbuster code.  So for now I say make
> ghostbust code robust, and think about sending ping via TCP later on.

This would skew the rtt/stdev stats a lot too, as TCP can have
multi-second-pauses due to packet loss or whatever while the UDP keeps
going with barely a problem...

> Testing hosed link: I can't hose my routing tables, because I don't
> have two client machines to test from.  I need to be able to hose just
> a single client connection while running an observer client from the
> same machine.  I guess I could modify a client to not send ping
> requests back.

Since you run Linux, make a kernel with ipfwadm/ipchains/whatever your
kernel version supports. You can easily test breaking any combination of
the inbound/outbound UDP/TCP. Then you'll still need a way to run the obs
client... (Maybe over an ssh-forwarded X connection; this works fine over
dialup if you reduce the number of updates somewhat.)

> And while we're on the subject of pings, wouldn't it be useful to have
> a ping stat for the last minute?

Extremely. I'd also like to see a couple more values added, perhaps
something like jitter (which I consider to be variations in the
1/10th-second @ 10 ups spacing of the frames received; it won't affect
your reported lag, but it makes the game all jerky).

Also, it'd be nice to throw away all packets over a certain age (say 5
seconds or so) from the calculations. Consider this scenario below which
has always annoyed me about the lag calculations:

A player has 200ms lag over dialup. Every 5 minutes, he gets a 15 second
freeze while his modem retrains, after which the packets from those 15
seconds come through. His lag ends up being reported as something like
300ms avg 400ms stdev (you've all seen modem players with apparent lag
like that) with approx 0%/0% loss. Other than that, there are no
freezes/burps/etc.

Another player has 200ms lag over a LAN connection in some far-off
country. Every 5 minutes, he gets a 15 second freeze with no inbound
packets; these dropped packets are not resent. His lag ends up being
reported as 200ms avg 10ms stdev with 5%/0% loss.

Both players have equal lag in reality, but the top player has it reported
as being far worse...