Connection issues
From Tapestries MUCK
Home router silent disconnects
Probably one of the most common of issues encountered with home routers and idle connections.
Many home routers behave as NATs, the concept of a NAT is generally allow a network of computers share one IP address on another network, in this case the Internet. For address transversal to work, the router needs to keep routing information in memory of which connections are going where. Here is where in lies the problem.
The router's memory is finite, and generally home routers have very little memory. Many routers do not have the ability to check if a connection is still active if it's absolutely silent (no data passing through either side, quite a common case when you're in a quiet area on a MUCK and not communicating) the router will assume after a certain amount of time that the connection died.
On many home routers which run on a embedded version of Linux, this time limit is usually 900 seconds, although it can vary depending on what model and make of router you have. Generally this leads to silent disconnections after a bit of time.
Fortunately there is a workaround. You can increase the rate of 'TCP keep-alive' messages in the operating system (the default is 7200 seconds -- two hours under Linux and Windows) to send messages periodically to the server to check if the connection is alive. The router will see this and assume the connection is still active and won't silently disconnect you.
Generally a value of 180 seconds is usually low enough to work around all the home routers I've encountered. --Ash-Fox
Under Linux, this can be set on the fly by entering in the console as root:
echo 180 > /proc/sys/net/ipv4/tcp_keepalive_time
However, if you wish to set this permanently, to be set on boot, you will need to change/add net.ipv4.tcp_keepalive_time= in /etc/sysctl.conf to say something like net.ipv4.tcp_keepalive_time=180.
Under Windows, for some obscure reason it has timing upto the mini-second:
Open regedit and browse to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters if there is a key called KeepAliveTime edit it. If it doesn't exist, create it as a new dword key.
Set the integer to 180000 (this 180 seconds in mini-seconds), then restart Windows for the new changes to take effect.