Auto-deny joining players by maximum ping

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

Post Reply
MCorgano
Burner Inserter
Burner Inserter
Posts: 8
Joined: Fri Mar 04, 2016 12:20 am
Contact:

Auto-deny joining players by maximum ping

Post by MCorgano »

The request is simple. The server can set a PING LIMIT in their settings, and BEFORE a client starts downloading / connecting, it ping's the server. if the client's ping is higher than the PING LIMIT the server will send a packet telling it PING TOO HIGH, and close the connection.

This lets servers automatically refuse players who would lag the game for everyone.
Last edited by MCorgano on Tue Mar 08, 2016 7:42 am, edited 1 time in total.

Bisa
Filter Inserter
Filter Inserter
Posts: 450
Joined: Fri Jul 17, 2015 3:22 pm
Contact:

Re: [Feature Request] auto-deny players by ping

Post by Bisa »

addind to this, you would also need to ensure the round trips to all other peers have sane pings... but how do you do this without first connecting? =/

still, detecting "bad" ping on that first connection would hopefully weed out some of them.
Hosting a factorio server? Take a look at this || init script ||.

Hexicube
Fast Inserter
Fast Inserter
Posts: 204
Joined: Wed Feb 24, 2016 9:50 pm
Contact:

Re: [Feature Request] auto-deny players by ping

Post by Hexicube »

It's important to actually do more than 1 packet's worth of testing, preferably at least 50. It's easy for a single packet to mysteriously take half a second to get to where it wants to go, and it wouldn't be representative.

MCorgano
Burner Inserter
Burner Inserter
Posts: 8
Joined: Fri Mar 04, 2016 12:20 am
Contact:

Re: [Feature Request] auto-deny players by ping

Post by MCorgano »

How about this

client sends server a "I want to connect packet"
Server pings client 10 times, 100ms apart, to test
IF BAD: send client a "you're ping is bad" packet
IF GOOD: continue
Server sends client list of other clients to ping
Client pings other clients 10 times, 100ms apart, to test
OTHER CLIENTS report the ping information to the server
IF BAD: server sends client "your ping is bad" and closes
If GOOD: server pauses game and sends client map


This would prevent the new client from lying that it has a good ping to the other clients, but would be more complex
upshot is if this succeeds then the new client is almost guaranteed not to slow down the server


I also ran into another issue: A slow client can freeze the server for a LONG time. RIGHT NOW, i could DDOS a server by connecting to it with a VERY slow connection intentionally, so the server stops for a long time to send me the map, therefore halting the server.

MCorgano
Burner Inserter
Burner Inserter
Posts: 8
Joined: Fri Mar 04, 2016 12:20 am
Contact:

Auto-deny joining players that take too long to download map

Post by MCorgano »

Merged with the other suggestion, I'd rather have discussing Auto-deny features as a whole and not in separate threads, as they are very similar and overlap in parts.
-- daniel34


Title says all really. Problem is the ENTIRE SERVER stops when a player is joining. This means if a player comes on with 15k DIALUP you need to wait ten minutes before we can tell them their connection is too slow to play on this server. The request is to add a configurable timeout to drop the joining player.

This is damn easy to abuse. Throttle your connection to be really slow, and connect to a server you don't like. Bam - instant DOS attack, built into the game.

Fixing it could be as simple as waiting for mapsize * somenumber seconds, and if the player joining still doesn't have the map downloaded then drop them (Or give us the option to auto-bad so they won't keep trying to join). Each server could choose their "somenumber" to be more or less lenient.

MCorgano
Burner Inserter
Burner Inserter
Posts: 8
Joined: Fri Mar 04, 2016 12:20 am
Contact:

Re: Auto-deny joining players by maximum ping

Post by MCorgano »

Welp. I didn't know if they were similar enough to be included together or not. They deal with two different but related things - high latency and slow download.

Had the server I play locked out for 25 mins because someone with a crappy connection tried to join, disconnected, and tried to join AGAIN.

Bisa
Filter Inserter
Filter Inserter
Posts: 450
Joined: Fri Jul 17, 2015 3:22 pm
Contact:

Re: Auto-deny joining players by maximum ping

Post by Bisa »

the topics are similar enough even tho they handled two separate use cases they still boil down to one thing: Ensuring playability and keeping the badies out

some form of solution/tool is highly sought after to battle slow dsl and far away clients in a public setting (I for one tried to block ips by country but would rather be more open and simply weed out the occasional bad apple)
Hosting a factorio server? Take a look at this || init script ||.

User avatar
bobingabout
Smart Inserter
Smart Inserter
Posts: 7352
Joined: Fri May 09, 2014 1:01 pm
Contact:

Re: Auto-deny joining players by maximum ping

Post by bobingabout »

I'm probably against the idea for one simple reason. The person I would most likely want to play a game of factorio with lives on the complete opposite side of the planet (UK and Australia). We play games together quite often, and we expect and allow for latency based lag. It is insanely annoying when a game tells us we can't play with each other because our ping is too high. we get like 350ms ping on a good day.

Last time we tried to play multiplayer was back in it's early days, we gave up when we were getting basically 1 tick every 3 seconds. They've added a lot of latency hiding stuff since then, so we'll see what it's like next time.
Creator of Bob's mods. Expanding your gameplay since version 0.9.8.
I also have a Patreon.

daniel34
Global Moderator
Global Moderator
Posts: 2761
Joined: Thu Dec 25, 2014 7:30 am
Contact:

Re: Auto-deny joining players by maximum ping

Post by daniel34 »

As bobingabout said, if something like this were implemented it should not be enabled by default.

I might use it on my servers to keep people with high latency / slow speed out, but if I wanted to play a multiplayer game with a friend I wouldn't want to be disconnected from the game just because Factorio thinks the connection is too slow/unreliable.
quick links: log file | graphical issues | wiki

Bisa
Filter Inserter
Filter Inserter
Posts: 450
Joined: Fri Jul 17, 2015 3:22 pm
Contact:

Re: Auto-deny joining players by maximum ping

Post by Bisa »

a configurable threshold and or disable/enabling of this feature would be required, I agree with the two previous speakers...
Hosting a factorio server? Take a look at this || init script ||.

Post Reply

Return to “Ideas and Suggestions”