Detecting Lag Cheating
Blitz3D Forums/Blitz3D Programming/Detecting Lag Cheating
| ||
Using UDP , is there any useful/effective ways to determine someone on the network creating their own lag .. most common I think would be the modem standyby trick, but im sure there are others. Im looking for methods both server and local to the player, I would think on the players machine I could just check the port somehow and if its closed they must have hit standby ? |
| ||
Implement a ping mechanism. (This may well be part of the protocol on top of UDP, so you don't necessarily need separate packages for the pings) You can then on a "trusted" end-point (your server?) measure ping (round-trip) speeds. Ping speeds can be gathered and averages calculated over "time windows". Time-window-average-ping-times can be logged, stored or actively monitored for anomalies. If a certain suspect players pingtime systematically raise to 1000+ milliseconds in special challenging situations (and other factors like increased dataflow don't explain this increase) the server might issue a warning to a human operator so that he/she can observe the effects and results of the lag. This is just rant but that is how I would start reasoning about a possible computer aided solution. (btw. ports are not "closed" in that sence in UDP since you don't have an connection. The perceived "connection" is just that the client "punched a hole" through the router by sending an UDP packet first to the server. And even if you have a real connection like in TCP, much network equipment tries to be redundant and "hides" a disconnected/offline state for several seconds while trying to reestablish the connection, so afaik looking for closed ports in this context is no good) |