Games in Progress: 3 | Players logged in: 4 | Players Registered: 37413 | Games Played Total: 68652
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Can host boot someone and make it look like a disconnect??  (Read 1037 times)
Sgt York
Mule Forum Newbie
*
Posts: 6


View Profile
« on: February 24, 2010, 05:58 »

I was playing a game.. and there was no lag whatsoever.  It's round 3.  It becomes my turn.  I grab a mule, pack it with food.. i'm walking towards a plot and the game suddenly exists... and i'm back at the lobby with an error message that says...

"You were disconnected
An existing connection was forcibly closed by the remote host"

What's the deal???
Logged
Pescado
Prototype Tester
Mule Regular
***
Posts: 81


View Profile
« Reply #1 on: February 26, 2010, 15:36 »

Forcing any user to disconnect in a method undetectable to the game is pretty trivial: All you have to do is ban his IP in your firewall or router, and none of his packets will be able to reach you. The game cannot distinguish such an event from any other kind of network failure. In fact, distinguishing such a thing from a natural event is completely impossible by any method. Even deepscanning the user's computer for all the different firewall programs wouldn't work, because the firewalling device can be located on a computer external to the system and therefore could not be scanned by even the most intrusive methods available. The rankings server will therefore treat such an event as an abandonment.

To perform such a move selectively, however, would require a fairly technically-apt user, as the average bear would be unlikely to know how to do such a thing.
Logged
Intergalactic Mole
Prototype Tester
Mule Expert
*****
Posts: 331



View Profile
« Reply #2 on: February 27, 2010, 04:48 »

True on all counts except the part where you stated:

distinguishing such a thing from a natural event is completely impossible by any method

The error message he posted claims he was forcefully disconnected, and it came from the Planet MULE client.  It is possible for the Planet MULE client to know this if it can no longer communicate with the host of the game but can still communicate with the Planet MULE server.
Logged
Pescado
Prototype Tester
Mule Regular
***
Posts: 81


View Profile
« Reply #3 on: February 27, 2010, 06:28 »

I think that translates in telnet parlance as "connection closed by foreign host". However, this doesn't mean anything distinguishable. A connection can be closed by the other side (TCP-RST) if your connection timed out or was broken due to network disruptions or was otherwise lost from the connection table, without a full network break that results in all the packets simply disappearing into a black hole without response. This could be a naturally occurring event due to less patient TCP stack settings, or it could be an artificially triggered event by someone killing your connection from inside a firewall software: The game has absolutely no way to determine the truth here. Even if it is possible for both client and host to be reachable by planetmule's servers, it is a fairly common form of network disruption that A and B can talk to C, but not to each other, because some router has gone down. Such events are common and frequently naturally occurring, but it is also possible for such an event to be deliberately induced, and it is impossible for a program to determine which of these has occurred.
Logged
Intergalactic Mole
Prototype Tester
Mule Expert
*****
Posts: 331



View Profile
« Reply #4 on: February 28, 2010, 02:27 »

Your opinion and explanation are both duly noted.  I still disagree though.  It is very possible for a game client to know if it was forcefully disconnected from the host if there is a middle man.  In this case, the middle man is the Planet MULE server.
Logged
Pescado
Prototype Tester
Mule Regular
***
Posts: 81


View Profile
« Reply #5 on: February 28, 2010, 02:40 »

Nope. From a technical level, it is impossible to accurately distinguish, even in the presence of a middleman. All you can know is that routing was lost between client and server, and that the client and host's Internets are both still operating. There's no way to know exactly WHY the connection was lost, because it is extremely common to have "broken triangle" reachability conditions. If packets simply disappear into a black hole somewhere between two computers, there's no way a program can determine WHY this happens without special access to the routers involved, which is impossible. This isn't an opinion, this is a fact of network engineering.
Logged
Intergalactic Mole
Prototype Tester
Mule Expert
*****
Posts: 331



View Profile
« Reply #6 on: February 28, 2010, 02:53 »

The chances of a router going down in the middle of your game are slim.  I've been gaming online for 25 years and it's never happened.  Besides, if the person simply blocked incoming packets from the other players IP, that doesn't necessarily mean their game client cannot send more packets to the other player.  They just aren't letting that player respond.  In that case, the other players client can, and with a great deal of accuracy, assume that the other player has forcefully disconnected them.
« Last Edit: February 28, 2010, 02:56 by Intergalactic Mole » Logged
Pescado
Prototype Tester
Mule Regular
***
Posts: 81


View Profile
« Reply #7 on: February 28, 2010, 11:11 »

The chances of a router going down in the middle of your game are slim.
You're kidding, right? Happens all the time. Just look at my game abandonment rate. Each and every last game abandonment has been caused by someone getting disconnected from the server while still being on the Internet. We're usually yelling at them in IRC at the same time this happens.

Besides, if the person simply blocked incoming packets from the other players IP, that doesn't necessarily mean their game client cannot send more packets to the other player.
That would represent a very inept form of blocking, then. Normally, a firewall block is a total blackout: Nothing in, nothing out. Even if someone is inept enough to only block incoming, this selective failure is invisible to the application: An inbound-only block functions the same as a full block above the protocol level, because if you cannot transmit packets to the server, but the server cannot transmit packets to you, the server will never receive TCP-ACK from anything that you received, and therefore, will assume you did not receive it, retransmit it, continue to fail to receive ACK, and then decide the connection has dropped eventually. Such a block will still result in total communication failure within a single TCP transmission window. In any event, the application is not able to see any of this, as applications interact with the TCP/IP protocol at a level of abstraction that precludes peering into the inner workings of exactly what is going on with each individual packet. Even then, unidirectional packetloss is occasionally a naturally occurring phenomenon, if the routing is not symmetric (which is very common), and one leg of the route becomes obstructed by congestion or failure. Even with UDP, detecting it is very difficult and requires network programming skills that are above that which the programmers of PlanetMule possess!

They just aren't letting that player respond.  In that case, the other players client can, and with a great deal of accuracy, assume that the other player has forcefully disconnected them.
Nope. In fact, with such a cutout, even the server program is not aware that the operator has intentionally disconnected them. The server will see the client failing to respond to any of its signals and assume the client has lagged out, while the client sees the server failing to respond as well, and assumes the server has lagged out. Both computers therefore perceive the event as a network failure, and it is only human paranoia which allows us to understand that something deliberate MAY have just occurred, without any possible means of proving it short of access to system logs that prove guilt.

Trust me on this: This isn't a gaming thing. At this point, you're dealing in network engineering and hacking, and I know this field. It is like the game abandonment thing: PlanetMule's servers have absolutely no way of knowing whether a game was abandoned because the player got disconnected because of lag, the program crashed, or he really did ragequit. All it can do is record the game as abandoned, and it's up to us to try to decide what that really means in the context of the player's general record. The computer cannot accurately make this judgement, and when we do it, we're essentially guessing, as there's no real hard evidence.
Logged
Peter
Turborilla
Administrator
Mule Expert
*****
Posts: 379


Planet M.U.L.E. Team


View Profile WWW
« Reply #8 on: March 03, 2010, 13:50 »

Sgt York:
The host did probably not remove you intentionally. Most likely a network failure occured and you lost the connection to the host. But this still counts as an abandoned game in the statistics.
Logged

Pescado
Prototype Tester
Mule Regular
***
Posts: 81


View Profile
« Reply #9 on: March 04, 2010, 10:02 »

That is the most likely scenario, yes. That your connection dropped somewhere, and you got the equivalent message of a "connection closed by foreign host" message when you missed the drop packet and tried to recontact, only to get a TCP-RST, which appears to your computer as if the host as terminated the connection.

It IS possible for a host to intentionally terminate a connection by various means, but most people will lack the technical ability to selectively terminate a connection, and in any event, a round 3 boot lacks real motive.
Logged
Pages: [1]
  Print  
 
Jump to: