Windows Messenger disconnects



This topic has been around for years, but I have not seen a solution.
Messenger will "silently" disconnect on a regular basis - every hour on
average. By silently, I mean that the Messenger window at the client
indicates the online status, and displays other users as signed in -
everything looks normal. But actually it is disconnected, and you will
appear offline to others. When you try to change status or send a
message, then Messenger will clear the window and display the sign-on

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.


I have a theory, but I don't have enough information to prove it. I
know that messenger establishes a persistent TCP connection to a server
(baym-cs*** You can see this with the NETSTAT
command. Capturing the traffic going to and from this server shows
exchanges of packets are widely spaced with several minutes between
them when it is working. The contents of the packets seem to be short
packets with updates of the status of contacts like "CHG 153 IDL".

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question