The online racing simulator
Some thoughts in Disconnection-Problems
Hi there!

First of all: I'm in the lucky position of having very few disconnects, therefore I haven't read through all articles. As I'm not asking for concrete assistance, I haven't posted in that sub-forum. Furthermore, I don't have a concrete improvement suggestion (although I hope, that we can develop one here), I didn't post there.
It's just so annoying seeing others disconnect, if you're in a good race with them (especially in longer and / or league) races.

I think, we should divide disconnection-problems into three categories:
1) Client-side problems
2) Some kind of routing problems
3) Server-side problems


1) Client-side problems
There exist a lot of them. Starting with network-driver-problems, going on with background-tasks and ending with wlan-interferences. I think, nearly everything that could happen here, has been already said and can be found with the search-function.
If anyone likes to collect these problems and links to solutions, feel free to contact me and I will edit this post accordingly.

2) Some kind of routing problems
In my personal opinion, this part is a bit overseen. Everyone knows this situation when you're browsing the web, clicking on a link and waiting, waiting, waiting. Then you decide to hit the back-button of your browser and reclick that link and it loads immediatly.
I know only the very basics of tcp-connections, but it seems, that even they fail to reach their destination and I can only imagine that one node in your initial route failed. After re-clicking your link, another route might be chosen and everythings fine again.

3) Server-side problems
If the provider decides to do some weird updates or the servers capacity is maxed out, we see people disconnecting. It's pretty much the same as on client-side, although we can generally assume, that the server's connection is more stable than the client's one.

Very vague improvement idea:
This is the point where I'd like to start a nice discussion :-)

So we know, there are problems in part 2 and 3. What do we do in the computer-world, if we know, something could fail? We create backups...

Maybe, we could somehow connect 2 servers together, so that a client has two options to send packets to or receive from. We see this solution a lot in everyday usage: DNS-Servers, DB-Servers and so on...
Of course, it'd be way to expensive, if we always need two servers (especially public servers), but for "important" races, it'd be affordable to have a second server.

Where my knowledge and ideas end is a concrete solution of how such a backup-solution could work.
But in general, we can say that
a) the two servers must know each other and be somehow linked together
b) the client needs to know, there exists a backup-server and has to decide where to send position packets.

ATM, I can only think of having the client send its packet always to both servers what would be very stupid. I think, the poor 56K-Users definitly won't have a chance to race us then...
So there needs to be some kind of client-side lag detection, like
a) "Hey server1, I need some updates, where the other cars are!"
b) "waiting..."
c) "Hmm, no packets received. Server2, can you tell me, where they are?"
d) server2 answers

This type of fallback would pretty much eliminate all "mass-disconnect" problems, as both type 2 (different route to second server) and type 3 would be a bit safer...



So, just some vague ideas here. Maybe someone can leave some comments on those :-)

Regards
Red Runner
I think if everyone comes over to my house for a LAN party we would have no problems with disconnection

Otherwise I think we just have to wait a little longer for the internet to improve... most of the problems I suspect would come from client side issues and internet routing issues - I think the percentage of problems from the server side would be negligable.

Also the time and effort required to program and setup backup lfs servers is alot for minimal potential return. As the solution you pose will not eliminate lag, infact it probably would add to the problem. They have in my opinion gone the best path already and that is streamline the netcode as much as possible. It's a great testiment that a modem user can play LFS with little problems I played LFS on a 33k modem for several months with minimal problems - even when playing on servers outside of Australia.

The only way I could think of that would significantly boast performance is have a Master server in each region of the world. But this would limit your access to only local games and create issues for the developers with security and control - so not a good solution either
#3 - filur
Quote from Red Runner :Very vague improvement idea:

I think your backup server idea would become extremely complicated in practice, and would still completely fail on a server-server disconnection. The examples you listed (DNS, Db) work good as they basically do not rely on eachother at all, with no need for controlling what information has/might have already been sent to client(s), and no need for constant synchronization.

Quote from Glenn67 :The only way I could think of that would significantly boast performance is have a Master server in each region of the world.

The master server only serves a list of games, when you join a server the only connection is between you and that server, the master is no longer involved. A local master server would only result in a very slight speedup for refreshing the server list.
Quote from filur :The master server only serves a list of games, when you join a server the only connection is between you and that server, the master is no longer involved. A local master server would only result in a very slight speedup for refreshing the server list.

Wouldnt there be some communication for race stats also, fastest lap, pb's and final race position...

I was more thinking that regional master servers would limit users from that region connecting to servers of the same region. But I for one would hate that as no one in my region like the cars I like

I think the main problem is the great difference in local internet performance and the vast distances between players has the most impact I often race against Italian and French drivers while I am connecting from Australia. The ping I get here for the average Euro server is approx 400ms. From within Australia it ranges from 60 - 120ms and the rest of Asia from 120 - 340ms, were I hear within Europe it's not uncommon to get 20ms ping.
I also have dissconection problems and I live in New Zealand. My servers look much the same as glenns. Usually overseads pings EG US are about 220ms ping not 500. Durring the day I can't connect to any servers at all, and if I can get in I'm in for like 2min. Some nights there is an Aus server that goes up ahh "Pro-racing room" i think. I can usually play on that as long as I want. Some other aussy servers I have problems with 50% of the time . I think its some net code issue with LFS? As I can play on servers all over the world with games like CSS perfect. I have also tried 2 differant ISPs, contacted ISPs about port blocking (none), tried 2 differant routers. I don't really know what to try next

FGED GREDG RDFGDR GSFDG