Page 1 of 9

[FAQ] LinkSys Fixes (Another Solution for 10 Minute Disconnects)

Posted: Thu Sep 23, 2004 12:45 am
by vguerin
[This thread helped so many folks I wanted to cross post it form old forums before it is gone.]

Posted by trodofor on 05 Apr 2004 23:23.
Another Solution for 10 Minute Disconnects

Ok, I am one of the unfortunate people who have experienced the 10-minute disconnect problem, and I have come up with another temporary fix. Before you start saying why this won’t work (because it has to do with port forwarding) try it, or read the post. First, for those who just want to ‘get in to the game’, I’ll list what I did to make it work on my machine and network. Then I’ll try to explain why this works and why it is happening (to the best of my knowledge) so that it may help Nevrax and whoever else come up with a fix (if they do not have one already waiting to be patched). I have a Linksys BEFW11S4 version one. It would first be a good idea to make sure that you have the latest firmware for your router. If you own a non-Linksys router and have problems with disconnects, this technique may still work in principle, but the steps are going to be different.

How to do it:
1. Go to http://192.168.1.1 in your web browser
2. User name is usually blank, but the password is whatever you set it to be (I believe it is admin by default)
3. Click on the ‘Advanced’ tab
4. Click on the ‘Forwarding’ tab
5. At the bottom, there is a button for ‘Port Triggering’. Click that to open the port triggering form.
6. On that form, enter whatever you want for ‘Application’ (I used Ryzom).
7. On that same line, for ‘Trigger Port Range’ enter 47851 for start and 47860 for end
8. Again, same line, under the ‘Incoming Port Range’ enter 1000 and 3000 in those boxes
9. Click ‘Apply’, and then close your web browser.

NOTES:
If you have been running your computer a while, or have played Ryzom or other games/network programs since you have turned on your computer, you might need to restart your computer before you play Ryzom. Also, if it worked earlier, then suddenly disconnects you, restart your computer before starting Ryzom again.

For those of you who just want to try to get into the game, you can stop after this paragraph. If you set your router up according to this and you still have problems, make sure that you restart your computer, then open Ryzom before anything else. If this still doesn’t work, you might benefit from reading below so you can learn how to adjust this so that it may work. Happy playing, and please post here if it works or doesn’t work and what kind of router you’re using.

WHY IT WORKS
I don’t claim to be an expert at this, but I do have some experience in networking, so I’m just explaining my observations and why this in theory should work. If I say anything wrong or misleading, please correct me. I just want to share what I have learned from testing and reading the boards so that everyone can play as soon as possible. I also hope to help Nevrax determine the problem if they have not already come up with a solution.

Some background
First of all, port forwarding is generally used for providing servers to the public from your local network, which is why at first you may deny that it could work. But most servers and applications use TCP, which is different than UDP that Ryzom/NeL uses. In TCP, the client requires a connection to be established before sending data. This is more reliable, but slower. UDP, on the other hand, does not establish a connection – it just starts sending data. This is part of the reason that port triggering can work, and why the client doesn’t instantly notice that it has been disconnected

The problem
Earlier firmware versions of Linksys routers suffered from some sort of premature timeout for UDP communications. That is, when there has not been any data received in a certain period of time, the router forgets who on your local network was using that outgoing port. Then, if the server sends data to your client, the router does not know what to do with it, so it just ignores it. Therefore, the client will never hear from the server, resulting in ‘FS Lost’ or similar errors.
Newer versions of the Linksys routers have somewhat fixed this problem, because it does not occur in most other games with a firmware upgrade. I have the newest version of the firmware for my router, but since it is an older series of router (version 1) they seemed to have quit updating it. This problem may not exist for newer Linksys router users, but for those of us who don’t want to spend $60-$150 USD, have to deal with an alternative.

The Solution
Every time you use a network program, the computer must first choose a local port, or socket, to send data from. When making a connection (or just sending data as in UDP) the router will keep track of what local computer the data came from and what socket was used on the local computer. Since the router quits receiving data after a while from the server (because the server does not always have data to send), it will assume that the server is done talking and will forget the association to the local network computer and port. If we set up port triggering, we can get around this downfall. This occurs because the router will see that we made a connection on port 47851 and to forward all incoming data from that to local ports 1000-3000 (whichever is used this session). Again, since it is UDP and connectionless, we don’t have to worry about a connection being closed, and there is no way for the router to know that we are still expecting data. The problem right now is that, since Windows chooses the next available socket to send data on for almost every program, if you have been running several network programs since you have last restarted your computer, Ryzom will likely be assigned one that is above 3000 and therefore the router will not forward data to it. You can solve this by a) increasing the upper bound port above 3000 (not recommended for security reasons) or b) restart your computer before running Ryzom. This is also why turning on DMZ for your computer could be a solution (as someone has already mentioned in another post) but port triggering is a little safer since it doesn’t always allow connections to those ports. Also, it seems to be standard for Windows to start sockets in the 1000 range, but it might be closer to 1024. If anyone knows exactly, please let me know, because a smaller hole we open, the less likely we will have any security issues.

I’m not exactly sure why this disconnect error occurs only in Ryzom and why updating the firmware fixed it for other games. I can think of about two reasons. First of all, those other games that are not in beta tend to have more people running around, causing data to be sent, so the router will keep the forwarding association on its own. Another reason could be that they have a ‘keep alive message’ that is sent when there is no other data to be sent, or sent frequently anyway. I’m not an extremely experienced programmer, so I can’t say for sure whether this would solve the problem or not. But I hope that this port-triggering trick will help the people who cannot stay connected. Sorry for the long post, with unnecessary details, but again, I just want to help the community get connected, and help find a solution if there is a better way. If you try it, post your results to we can keep track of whether it works for others or not.

DoubleTap
Click here to join Melinoe
Ultimate Harvesting Guide
Melinoe - Atys Harvesters
http://ryzom.twazz.net/

Re: Another Solution for 10 Minute Disconnects

Posted: Thu Sep 23, 2004 12:49 am
by tendeep
Thx, I will check this out!

Re: Another Solution for 10 Minute Disconnects

Posted: Thu Sep 23, 2004 6:49 am
by tendeep
Worked Wonders, no server drops yet, thank you kindly!

Re: Another Solution for 10 Minute Disconnects

Posted: Thu Sep 23, 2004 6:47 pm
by nunyas
hmmm... since this seems to be a recurring problem for alot of new people... could an admin sticky this one?

Re: Another Solution for 10 Minute Disconnects

Posted: Thu Sep 23, 2004 11:30 pm
by tiven232
So what should I do if I did all that letter for letter and I'm still getting booted? I have a Linksys wireless 8-port router, but I'm plugged directly into it, keep getting booted. I even updated the firmware.

Re: Another Solution for 10 Minute Disconnects

Posted: Fri Sep 24, 2004 12:43 am
by nunyas
as a last resort... set your gaming PC as the "DMZ Host" .... i say last resort because it's very likely after you do so your Gaming PC will be the only one able to play Ryzom....

Re: Another Solution for 10 Minute Disconnects

Posted: Fri Sep 24, 2004 1:35 am
by tiven232
That's not an issue, I'm sharing this router with people who think the internet is e-mail and cnn.com. Thanks for the suggestion I'll give it a try.

Re: Another Solution for 10 Minute Disconnects

Posted: Fri Sep 24, 2004 1:44 am
by Virgil
nunyas wrote:as a last resort... set your gaming PC as the "DMZ Host" .... i say last resort because it's very likely after you do so your Gaming PC will be the only one able to play Ryzom....
Just to stress this point, please do not use the DMZ to fix connection problems except as a last resort. If you do decide to use the DMZ, please make sure you are keeping your copy of Windows up to date (www.windowsupdate.com) and that you are running some type of software firewall on your PC first. Try both upgrading your router firmware and setting up the port forwarding before even considering the DMZ - it will take more time, but will definitely be more secure.

Nevrax is aware of the problem with some of the Linksys router models, and they have one we sent them that they're using to try to fix the issue. It is a high priority fix, but we don't have an estimate on how long it'll take.

Re: Another Solution for 10 Minute Disconnects

Posted: Fri Sep 24, 2004 3:56 am
by tiven232
well, it worked...I'm not getting booted anymore, I just don't know as if I trust my firewall enough. Just that now I can't log into a new char or anything, I can only get on chars that I had gotten on before I made myself a DMZ host.

Re: Another Solution for 10 Minute Disconnects

Posted: Fri Sep 24, 2004 2:30 pm
by blaze109
Thanks Vguerin!!!! The solution worked for me!!!