08-01-2008, 01:26 AM
If you have to have more than 10 half-open connections for a game server, you should be seriously concerned unless you have at least 5 players logging in every second (before anyone gets cocky, thats 300 players a minute, which is more than a lot of game servers have for total active connections). All half-open ports are is a port that has started a 3-way TCP handshake but has not yet finished it. The reason you only really see anything about half open connections being related to p2p programs, namely torrents, is that once you get a list of peers, which can be in the thousands, the program is not really done until it tries to connect to each one and find out if they have a valid version of the file, if they have any parts you need, and if they have a decent speed. The thing limiting you is the rate of connections. Since people you are connecting to are mass uploading and downloading, the connection may take a while to finalize since they are trying to connect to others and others are trying to connect to them, too. It results in a big fat internet traffic jam.
Why doesn't this apply to game servers? Simply put, you have one client making a connection to one server (or sometimes a few others in rare cases) and thats it. The server is dishing out lots of data, receiving a bit, but not often will it even hit the peek (if it does, you now have bandwidth lag and a lot of complaining players) since game servers are designed to optimally, at peak times, tickle the bandwidth limit but never hit it.
Only time I can ever think of there being an exception without your whole server already running like crap is that if you have thousands of players trying to connect simultaneously, which may happen after a quick reboot. In this case, I believe those who try to connect while there max half-open connection limit is in play will either be queue'd or given a TCP rejection message (not positive which). By the time they try again (probably a second or two later) it will probably be fine.
Why doesn't this apply to game servers? Simply put, you have one client making a connection to one server (or sometimes a few others in rare cases) and thats it. The server is dishing out lots of data, receiving a bit, but not often will it even hit the peek (if it does, you now have bandwidth lag and a lot of complaining players) since game servers are designed to optimally, at peak times, tickle the bandwidth limit but never hit it.
Only time I can ever think of there being an exception without your whole server already running like crap is that if you have thousands of players trying to connect simultaneously, which may happen after a quick reboot. In this case, I believe those who try to connect while there max half-open connection limit is in play will either be queue'd or given a TCP rejection message (not positive which). By the time they try again (probably a second or two later) it will probably be fine.
