- Blind mode tutorial
lichess.org
Donate

What is lag switching?

@mrjbones said in #21:

Lichess doesn't detect a "disconnection" ... there is no disconnection... there is just a longer time before it gets a response to its pings.

packets are lost and re-transmitted. that's detectable.

@mrjbones said in #21: > Lichess doesn't detect a "disconnection" ... there is no disconnection... there is just a longer time before it gets a response to its pings. packets are lost and re-transmitted. that's detectable.

@mrjbones said in #10:

A separate app manipulating your system clock is not at all how it was done. That would be f'n difficult. You'd also need the chess client to communicate with that app telling it when to change your clock and by how much. And then your system clock would be all messed up for everything else that used it.

Why should it be difficult for an application to manipulate the system clock?
And this application need not communicate with the chess client, it could e.g. read the colour of a certain area on the screen to know, when it has to slow down or accelarate the clock. And a "messed up" system clock can be easily repaired after the game has been finished.

Having a separate application has the additional advantage that modern browsers on modern operating systems will never tell the server about it.

In the ICS/FICS days, timeseal was a separate program run on your PC (we didn't have smart phones then.) This was necessary because everyone used different third party clients to connect to chess servers. The exploit was a hack on the timeseal binary. Once it was hacked, cheaters only needed to install a hacked version rather than the real timeseal. There were at least a couple of those available. They all worked essentially the same way, by adding a randomized offset to the time in the timestamp calculation. Thus the encryption that timeseal used didn't matter because it was the altered values that were encrypted and sent to the server.

So, because in the old days there were other ways to cheat timeseal proves that manipulatng the system clock cannot work?

@mrjbones said in #10: > A separate app manipulating your system clock is not at all how it was done. That would be f'n difficult. You'd also need the chess client to communicate with that app telling it when to change your clock and by how much. And then your system clock would be all messed up for everything else that used it. Why should it be difficult for an application to manipulate the system clock? And this application need not communicate with the chess client, it could e.g. read the colour of a certain area on the screen to know, when it has to slow down or accelarate the clock. And a "messed up" system clock can be easily repaired after the game has been finished. Having a separate application has the additional advantage that modern browsers on modern operating systems will never tell the server about it. > In the ICS/FICS days, timeseal was a separate program run on your PC (we didn't have smart phones then.) This was necessary because everyone used different third party clients to connect to chess servers. The exploit was a hack on the timeseal binary. Once it was hacked, cheaters only needed to install a hacked version rather than the real timeseal. There were at least a couple of those available. They all worked essentially the same way, by adding a randomized offset to the time in the timestamp calculation. Thus the encryption that timeseal used didn't matter because it was the altered values that were encrypted and sent to the server. So, because in the old days there were other ways to cheat timeseal proves that manipulatng the system clock cannot work?

The desire to know more about lag switching in foolish.
It will only increase the desire to see it in action.
Use increment time and the lag switch becomes useless knowledge.

If you dislike increment time, then you like the timely intervention of the flag.
Even if it's part of the rules, something about that flag feels like kleptomania.
I feel the remorse after, when I know I should have resigned.

Chess was never about abusing the flag. It was just there to force the player to play faster.
To put it bluntly: Lead by example, don't go stealing time by using a lag switch, it's outright fraud.

Chess Overtime is the solution, better known for it's increment time.

The desire to know more about lag switching in foolish. It will only increase the desire to see it in action. Use increment time and the lag switch becomes useless knowledge. If you dislike increment time, then you like the timely intervention of the flag. Even if it's part of the rules, something about that flag feels like kleptomania. I feel the remorse after, when I know I should have resigned. Chess was never about abusing the flag. It was just there to force the player to play faster. To put it bluntly: Lead by example, don't go stealing time by using a lag switch, it's outright fraud. Chess Overtime is the solution, better known for it's increment time.

@h2b2 said in #31:

packets are lost and re-transmitted. that's detectable.

Packet loss is normal, especially with wifi and cellular. It's a frequent cause of lag. So you couldn't deduce anything from it.

@h2b2 said in #31: > packets are lost and re-transmitted. that's detectable. Packet loss is normal, especially with wifi and cellular. It's a frequent cause of lag. So you couldn't deduce anything from it.

@sheckley666 said in #32:

Why should it be difficult for an application to manipulate the system clock?

It's disallowed on iOS and Android (though you can get around it on Android by rooting your phone.

On other platforms (well on mobile too), the timeseal implementation would just have to use a monotonic clock which is immune from changes to the system time. All modern systems provide this. In javascript, the performance.now() function is used for this.

Do you get it yet?

So, because in the old days there were other ways to cheat timeseal proves that manipulatng the system clock cannot work?

No, it proves you didn't know what you were talking about when you suggested that's the way it was done by claiming, "This app has been written decades ago."

I don't know if you are a professional dev or not -- I doubt it -- but maybe you're just a noob or not very good. Maybe you aren't a developer at all... but it is very clear that you don't have the knowledge you think you do on this subject. Maybe you should spend more time learning and less time trying to argue with an actual experienced SE/EE that's been in the trenches for nearly 30 years.

@sheckley666 said in #32: > Why should it be difficult for an application to manipulate the system clock? It's disallowed on iOS and Android (though you can get around it on Android by rooting your phone. On other platforms (well on mobile too), the timeseal implementation would just have to use a monotonic clock which is immune from changes to the system time. All modern systems provide this. In javascript, the performance.now() function is used for this. Do you get it yet? > So, because in the old days there were other ways to cheat timeseal proves that manipulatng the system clock cannot work? No, it proves you didn't know what you were talking about when you suggested that's the way it was done by claiming, "This app has been written decades ago." I don't know if you are a professional dev or not -- I doubt it -- but maybe you're just a noob or not very good. Maybe you aren't a developer at all... but it is very clear that you don't have the knowledge you think you do on this subject. Maybe you should spend more time learning and less time trying to argue with an actual experienced SE/EE that's been in the trenches for nearly 30 years.

@RickRenegade said in #29:

@mrjbones Sorry I am noob with these things. Oh ok you can do it both. Oh well at least it should be easy to stop it when they do it through extension. Is there any other way to detect it? I think this might become a big thing and ruin online Bullet chess.

There is no reliable way to detect lag switching. And there are definitely already cheaters that use it.

That's one very good reason why lichess's lag compensation is inherently worthless and should be replaced with a timeseal-like strategy. (I.e. client side code that reports player "think time", the time between receiving a move and making one.)

@RickRenegade said in #29: > @mrjbones Sorry I am noob with these things. Oh ok you can do it both. Oh well at least it should be easy to stop it when they do it through extension. Is there any other way to detect it? I think this might become a big thing and ruin online Bullet chess. There is no reliable way to detect lag switching. And there are definitely already cheaters that use it. That's one very good reason why lichess's lag compensation is inherently worthless and should be replaced with a timeseal-like strategy. (I.e. client side code that reports player "think time", the time between receiving a move and making one.)

@mrjbones said in #34:

Packet loss is normal,

then everyone is getting the benefit of lag compensation and there's nothing to fix or discuss.

It's a frequent cause of lag.

so something that's not normal?

it's either normal that everyone benefits from equally, or it's different.

So you couldn't deduce anything from it

if it's out of the ordinary, it's detectable.

@mrjbones said in #34: > Packet loss is normal, then everyone is getting the benefit of lag compensation and there's nothing to fix or discuss. > It's a frequent cause of lag. so something that's not normal? it's either normal that everyone benefits from equally, or it's different. > So you couldn't deduce anything from it if it's out of the ordinary, it's detectable.

It's a hassle, but will having a stat called average packet loss work?

Then, people like penguin can filter them out much like filtering out lower rated folks. In this case, filter out high packet loss individuals.

And then if someone has low average packet loss, but suddenly becomes abnormally high when playing hyperbullet, then that could be an indicator of lag switching.

?

It's a hassle, but will having a stat called average packet loss work? Then, people like penguin can filter them out much like filtering out lower rated folks. In this case, filter out high packet loss individuals. And then if someone has low average packet loss, but suddenly becomes abnormally high when playing hyperbullet, then that could be an indicator of lag switching. ?

lichess could keep track of how many times it has given lag compensation.

if someone in a 10 second game was given lag compensation 30 times, whereas the average for all players in a 10 second game is less than 1, that deserves some investigation.

it already gives an indication of network quality. I'm not sure exactly what's it's showing, I think rtt aka lag.
I think 4 bars is low ping time, 1 bar is high ping time. It could also indicate the number of lag compensations given.

lichess could keep track of how many times it has given lag compensation. if someone in a 10 second game was given lag compensation 30 times, whereas the average for all players in a 10 second game is less than 1, that deserves some investigation. it already gives an indication of network quality. I'm not sure exactly what's it's showing, I think rtt aka lag. I think 4 bars is low ping time, 1 bar is high ping time. It could also indicate the number of lag compensations given.

@h2b2 said in #37:

then everyone is getting the benefit of lag compensation and there's nothing to fix or discuss.

Eh... doesn't follow. The issue isn't whether everyone gets a benefit from lag compensation... it's whether lichess's lag compensation strategy is equitable and whether or not it can be subverted. The answer to the latter is, yes it can be easily subverted with lag switching. Whether or not it is equitable (in the absence of cheating) is up for debate. I don't believe it is, but lichess doesn't record and share the data that would tell us.

so something that's not normal?

Eh... no. Lag is normal and so is packet loss. Packet loss is one cause of lag.

it's either normal that everyone benefits from equally, or it's different.

I don't really get what you are trying to say here. Keep in mind that "lag "isn't really a technical term... it's what we call it when we experience a delay when performing some activity over a network. We all experience it from time to time; some people experience it a lot, because they live in areas with poor quality networks. In this context, a strategy for making online chess as equitable as possible for players is certainly a good idea. That doesn't imply that everyone would "benefit equally" from it. If one player lives in the same area as the server and has a high quality connection and another lives in some remote area and has satellite internet, the latter player is going to have higher latency and therefore benefit more from such a strategy than the former. That's not a problem though; it's actually the point.

If, however, the strategy is not properly designed or implemented it runs the risk of giving one player more or less benefit than they should get or being exploited by cheaters. That's what we are talking about here. Lichess's strategy is a poor one.

if it's out of the ordinary, it's detectable.

Oh? How so? What does "ordinary" even mean here? What's ordinary for me probably isn't what's ordinary for you. And what's ordinary for me on Mondays may be different than what's ordinary for me on Tuesdays. What's ordinary for me in the afternoon may be different than what's ordinary for me during the evening. What's ordinary for you when you play on your phone probably isn't what's ordinary for you when you play on your desktop. Etc.

@h2b2 said in #37: > then everyone is getting the benefit of lag compensation and there's nothing to fix or discuss. Eh... doesn't follow. The issue isn't whether everyone gets a benefit from lag compensation... it's whether lichess's lag compensation strategy is equitable and whether or not it can be subverted. The answer to the latter is, yes it can be easily subverted with lag switching. Whether or not it is equitable (in the absence of cheating) is up for debate. I don't believe it is, but lichess doesn't record and share the data that would tell us. > so something that's not normal? Eh... no. Lag is normal and so is packet loss. Packet loss is one cause of lag. > it's either normal that everyone benefits from equally, or it's different. I don't really get what you are trying to say here. Keep in mind that "lag "isn't really a technical term... it's what we call it when we experience a delay when performing some activity over a network. We all experience it from time to time; some people experience it a lot, because they live in areas with poor quality networks. In this context, a strategy for making online chess as equitable as possible for players is certainly a good idea. That doesn't imply that everyone would "benefit equally" from it. If one player lives in the same area as the server and has a high quality connection and another lives in some remote area and has satellite internet, the latter player is going to have higher latency and therefore benefit more from such a strategy than the former. That's not a problem though; it's actually the point. If, however, the strategy is not properly designed or implemented it runs the risk of giving one player more or less benefit than they should get or being exploited by cheaters. That's what we are talking about here. Lichess's strategy is a poor one. > if it's out of the ordinary, it's detectable. Oh? How so? What does "ordinary" even mean here? What's ordinary for me probably isn't what's ordinary for you. And what's ordinary for me on Mondays may be different than what's ordinary for me on Tuesdays. What's ordinary for me in the afternoon may be different than what's ordinary for me during the evening. What's ordinary for you when you play on your phone probably isn't what's ordinary for you when you play on your desktop. Etc.

This topic has been archived and can no longer be replied to.