The network uses a Linksys BEFSR41 router, connected to a Time Warner
cable modem.
Other network protocols (such as a VPN) can run for days if needed, so
I don't think the cable modem or router is disconnecting resetting.
Other computers on the same router with different Messenger accounts
have the same problem.
This problem occurs with the Windows Messenger 4.7, and still occurs
after changing to Windows Messenger 5.1, all running on XP SP2.
>.
>
The common ground with the disconnect problem is that everybody is
using a router with NAT to connect to the Internet. As you might know,
NAT allows one public IP address to service multiple private IP
addresses. This is done by translating port numbers to keep the host
connections sorted out. The router maintains a table of active
connections so when an incoming packet comes in addressed to a
particular port, it can look up that port and forward it to the proper
host on the internal LAN. To keep the table from overflowing, there is
a timeout function. If no traffic uses a specific translation in the
table during some period, it is removed. If the translation table
entry is removed, any incoming (from the Internet) traffic after that
point is discarded, so the connection is effectively broken.
My theory is when there is a sufficient delay between any Messenger
status updates, the connection times out at the NAT router. There are
two factors that may make the situation worse. First, inexpensive
routers have limited RAM, and thus the table is small and might time
out "old" connections sooner than it would otherwise. Secondly,
Microsoft probably makes the protocol as "sparse" as possible to
minimize traffic to all the messenger clients. The traffic to and from
the millions of Messenger users would add up to significant bandwidth,
even for Microsoft.
Unfortunately I don't know of any technique to solve this problem, if
it is indeed the root cause of the disconnects. Maybe that is why this
topic has been brought up regularly for several years. Lots of people
say "yes I have that problem" but nobody ever discovers any solution.
Microsoft could potentially solve it by putting a "keep alive" function
into Messenger, so the client would check in with the server at a
regular interval. If the client initiates traffic, the NAT translation
will be re-established if it has timed out. But that would make for
more traffic at the MS servers, so they may not want to implement it.
------- Tim G -------- o953agd02 \at\ sneakemail /dot/ com