Difference between revisions of "Lag Reduction"
(→What is TCPNoDelay?) |
|||
Line 7: | Line 7: | ||
If your connection to the server is smooth and stable at the time of troubleshooting, the information will not be of help. | If your connection to the server is smooth and stable at the time of troubleshooting, the information will not be of help. | ||
+ | |||
+ | The first suggested step is to trace your connection to the server to determine if it is the server host having network difficulties and causing the lag. If the lag is originating prior to reaching our server in Texas, USA, then you can proceed by setting up TCPNoDelay to try and improve your response time. It is no guarantee that it will improve your lag issues. Regardless of what you do, if you live thousands of miles away from Texas, USA, then your connection will take longer to reach our server than it would if you were closer. | ||
== Tracing Your Connection to Our Server == | == Tracing Your Connection to Our Server == |
Revision as of 17:10, 26 August 2020
Contents
Introduction
If you are experiencing constant lag to the server despite having a stable Internet connection, you can follow these steps to help us examine your connection to the server and attempt to fix the issue.
Note that all connection issues are unique, and that troubleshooting requires some time. By following these steps, you can be assured that your case will be taken care of as best as possible.
Follow the steps in this guide ONLY if you are currently lagging.
If your connection to the server is smooth and stable at the time of troubleshooting, the information will not be of help.
The first suggested step is to trace your connection to the server to determine if it is the server host having network difficulties and causing the lag. If the lag is originating prior to reaching our server in Texas, USA, then you can proceed by setting up TCPNoDelay to try and improve your response time. It is no guarantee that it will improve your lag issues. Regardless of what you do, if you live thousands of miles away from Texas, USA, then your connection will take longer to reach our server than it would if you were closer.
Tracing Your Connection to Our Server
You can check whether it is you or the server that is lagging by running an MTR report. Basically, it's a tool that sends packets from your computer to the server host. It will list all the hubs your connection needs to go through to reach our host, and also how long it takes on average to reach that hub. This will help you and the staff determine where your connection is lagging before reaching our host.
Step 1:
Download the following software: http://playdreamerro.com/download/WinMTR-v092.zip
Unzip it, and open WinMTR.exe
Step 2:
In the text-box labeled Host, insert the following numbers: 208.115.202.98
Step 3:
Press Start, and wait until the number of Sent packets reaches AT LEAST 100. This will ensure we get enough data to analyze your connection.
Step 4:
Press Stop, then press the Copy Text to Clipboard button or take a screenshot of the results.
Step 5:
In a notepad file, paste the results of the MTR test along with your IP.
Getting your IP: https://www.google.com/search?q=what+is+my+IP
If opting for the screenshot, simply press the "prt sc" key on your keyboard, paste the screenshot on Paint and save the image as PNG or JPEG.
Step 6:
Post your Notepad or screenshot of the MTR results on our forums using this link: http://www.playdreamerro.com/forums/index.php?/topic/39944-mtr-submissions/
Wait for someone who will diagnostic the issue. It may take up to 48 hours.
Conclusion:
Every connection will take a different set of hubs to reach our server, depending on your location. The farther you are from the server (Texas, USA),the more hubs your connection has to go through to reach our server. For the most part, if you notice that your connection is taking 150~200+ ms to reach the first few hubs, then it's more than likely your connection reaching a slow hub or one that may be having technical difficulties. If the connection is smooth and stable until it reaches the last couple of hubs, then that's usually when it's the server that is lagging.
What is TCPNoDelay?
Starting with Windows Vista, Microsoft has introduced a mechanism to stabilize your connection, and to reduce traffic on your connection.
This mechanism is called Nagles Algorithm. More detail on this can be read on https://support.microsoft.com/de-de/help/235624/fix-tcp-ip-nagle-algorithm-for-microsoft-message-queue-server-can-be-d
It makes sure, that for every packet you send, your computer waits for an answer. If there is no answer within time, the packet is repeated until it gets an "ok" from the server.
For most stuff like websites and sending emails this is good, because you get less random "error loading image" and such, but for playing games it bad:
Look at the example above, with Nagles algorithm you will have to wait for the answer, until you can send any other action to the server. So in Theory with 1000ms Ping, you could only use one potion per second, or use only one skill, or send one walk click. And even worse: you can only do one single action at all in that time - no skill using, potion drinking and walking in the same second!
Well you most likely don't have 1000ms ping, but even with 200ms you are already limited to 5 actions per second.
That is bad, it feels unresponsive, and you cannot react in time, because your actions get "stacked up" on your computer.
The algorithm itself can be turned off by a setting known as TCPNoDelay. Sadly there is no "easy" GUI for that, you actually have to use the windows registry editor to change this setting. Good thing is, you mostly can't do harm. If you feel too unsure about it, you may ask a friend to help you though.
Be aware this can increase loading errors for websites as told before, but if your connection in general is stable, you won't have any issues.
Set Up TCPNoDelay
First of all, you do all of this at your own risk! DreamerRO takes no responsibility if it has any bad side effects on your computer!
1. Click Start, click run and type in regedit If you are on Windows 10, just click Start and type regedit right away, then press enter.
2. You should get the windows registry editor window.
3. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces On Windows 10 you can simply copy & paste the path into the search bar on top.
4. Find the network device, that is your local network adapter. It will have an IP address like 192.168.?.?
5. Create two new entries: right click on the right side, click new > DWORD and create TCPNoDelay and TcpAckFrequency If one already exist, just do step 6 for it. Make sure you got the capitalization right, it really matters. tcpnodelay won't work!
6. Double click both new entries (or right click > change), and set the value to 1 (hexadecimal) Now they should both have the value REG_DWORD 0x000001
7. Restart your computer.
8. Done. Now Nagles algorithm should be disabled.
To revert this, simply delete both TCPNoDelay and TcpAckFrequency entries from the registry.