Help for people that can't login when server is very full

Give your feedback on Kaillera, make suggestions for new features or improvements to existing features

Moderators: toqer, gothic_hobbit, civilian, okaygo

Help for people that can't login when server is very full

Postby Moosehead » Wed Jun 08, 2005 1:15 pm

Quick Fix:
Download and run TCP Optimizer: http://www.speedguide.net/downloads.php

Long version:

A problem exists in the original server and both TRAC's decompiled server and EmuLinker. When the server is full, that is many people logged in, and many games started, some people have trouble logging in. You seem to get half logged in, but can't chat or see any chatting or start a game, etc. It also occurs more often if the server owner has multiple long MOTD messages.

I suspect this is caused because the Kaillera protocol sends the current state of the server, including all user names, and all games, in one big message. It also groups messages in packets of 3, so MOTD lines could be included in the packet also and add to the overall length.

All put togeather in a single UDP packet, the length of can exceed your network MTU setting and get truncated. When this happens, the Kaillera client doesn't realize it's logged in correctly, and weird stuff happens.

I suggest you try increasing the network MTU setting on your computer. If that doesn't work, it may be caused your router truncating your packets. If there is no way to increase the MTU in your router, try playing directly connected to the DSL or cable modem. If that works, get a new router.

There's a very nice easy to use free program called TCP Optimizer that will tweak all your registry settings including MTU here:

http://www.speedguide.net/downloads.php

You want your MTU to be at least 1500.

If this works, please post back here and LET US KNOW. I can't really test this problem myself because it never occurs to me so knowing it works for people that have the problem will be a big help to others.
Last edited by Moosehead on Wed Jun 08, 2005 9:45 pm, edited 1 time in total.
Check out the EmuLinker kaillera server rebuild project: http://www.emulinker.org
Moosehead
Senior Member
 
Posts: 32
Joined: Mon Jun 14, 2004 2:39 pm
Location: Philly

Postby Kuroi » Wed Jun 08, 2005 9:06 pm

Ok so first of all thanks for your advice, I started testing with modified MTU size (tried 1500, 1492) and the various patches present on the same page as TCPOptimizer , but didn't come to any result concerning connection to gametronik running UOKS 0.918.

And unfortunately I can't test anymore (well I can play now so it might be better for me :) ) cause they switched back to the original KS 0.86 and now I can connect normally (so the problem is present in every versions of kaillera server but is probably amplified in the UOKS), and there is no more european UOKS running.

In any case I thank you all for your answers and if they get one UOKS running again I will inform you on the testing.

Bye.
Kuroi
Junior Member
 
Posts: 1
Joined: Tue Jun 07, 2005 5:54 pm

Postby Night » Wed Jun 08, 2005 11:02 pm

Hi,

After switched back to OKS, Gametronik is now running Emulinker, and works perfectly for me.

I also tested with TCPOptimizer before the change and like Kuroi it hadn't solved the problem.

Thank you anyway for your help, and please don't stop developing Emulinker.
I think it will replace Kaillera in the short run.

Regards.

Ps: I think TRAC and you should be associated, to put your joint ideas on the same project :) . That would be a great dev. team
Night
Junior Member
 
Posts: 2
Joined: Tue Jun 07, 2005 9:19 pm

Postby TRAC_ » Thu Jun 09, 2005 4:16 am

I have found a minor issue in the UOKS server (flaw from decompile, likely) which could cause it to take slightly longer to assemble the server status 'message' for a user that is logging in than it should; however, the form and contents of the packet is the same, and I doubt that the time difference is significant. Still, it will be fixed in the upcoming 0.919 release.

[Note - A 'message' is the portion of the Kaillera packets that contain individual data/command blocks. It appears both I and Moosehead use this nomenclature, hopefully this will minimize related confusion.]

The connection process itself should be the same as that of the official server (though with a little more tolerance to lost pings); however, the extra 'messages' sent by the server to inform the client of user limits in games (which the client SHOULD be able to derive from the initial server status message, but doesn't) likely cause problems in login if the packets containing that message are lost.

This can also happen on non-UOKS servers, but perhaps is less likely due to less of an initial packet flood on connect. I do not know if a busy server or one with lots of MotD lines (as both would equate to the same conditions) is more prone to it.

The MotD is sent AFTER all initial ping/pong messages have been negotiated and user login has been accepted, so it can't interfere with that.

As far as the theory about the server status message being excessively large, this probably is a valid concern. I would estimate that on average, each user adds around 24 bytes to the status packet, and each game around 88. For 20 users and 8 games, this is around 1.1k; 40 users and 16 games, this is 2.3k. One could easily blame this on inefficiencies in the Kaillera protocol, but blame doesn't solve the problem.

One could reduce the size of the server status message, however basic attempts to do so would worsen the problem of the packet flood.


Overall, for best results while we have no new client software, ALL Kaillera servers, regardless of server software, should limit themselves to an absolute max of 40 users, with 20-32 being more reasonable.
TRAC_
Junior Member
 
Posts: 3
Joined: Thu Apr 21, 2005 11:39 am

Postby TRAC_ » Tue Jun 21, 2005 1:58 am

Another thing that I've noticed, is that the modified client DLLs with the recent server list limit raised to 127 servers can take a very long time to attempt a connection when that list has become large, which makes me suspect that the code the client uses to update the recents list in the kaillera.ini file is quite slow. This appears to increase the difficulty of establishing connections.

Opening the c:\windows\kaillera.ini in notepad and changing the nbrecents value to a smaller number can alleviate the problem for some time. An equivalent DLL to the one on the Dark Addictz website with the recent server list limited to 48 entries can be gotten from http://www.emuunlim.com/sneese/kailleraclient.zip.
TRAC_
Junior Member
 
Posts: 3
Joined: Thu Apr 21, 2005 11:39 am


Return to Kaillera Suggestions and Feedback

Who is online

Users browsing this forum: No registered users and 3 guests

cron