[FAQ] LinkSys Fixes (Another Solution for 10 Minute Disconnects)
Posted: Thu Sep 23, 2004 12:45 am
[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/
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/