Windows XP sp2 (And Vista) – Connection Limits

There is a lot of misinformation and confusion about how the 10-connection limit applies to XP sp2.  I can discuss the technical limitations, although not any EULA implications, nor hacks around this restriction.  The same restrictions apply to Vista’s TCP stack as well.

From a technical point of view, there are NO new restrictions on simultaneous users, or even TCP sessions. Rather, it’s the number of half-complete outbound TCP sessions which are allowed simultaneously. Windows XP sp2 will throttle you if you attempt to have more then 10 half-open sessions at once.

So what is a half-open session?  This is where a connection has been attempted, but not yet actively accepted or refused by the server.  This most commonly occurs when you connect to a server which isn’t online, or when the recipient is running a firewall configured to DROP or “stealth” ports, rather then simply refusing the connection.

So in terms of MDaemon running on a Windows XP sp2 or Vista machine as a service, inbound connections (other PCs accessing SMTP/POP3/IMAP sessions, or WorldClient/WebAdmin) aren’t counted or throttled at all, only outbound connections by MDaemon (SMTP-out, MultiPOP, DomainPOP, Dequeue, LDAP) will be affected, and then only if at least 10 sessions are in the process of connecting but not completing connections fast enough.

UDP traffic is not delayed at all, so neither DNS look ups nor minger are affected.

In a practical implementation, if you intend to use MDaemon on Windows XP, turn the number of SMTP threads down to 8 or below (lower if there are users or other applications/servers on the same machine) and you won’t be affected in most circumstances.

When it does occur, a new event, with ID 4226, appears in the system’s event log. Once throttling has started, outbound connections may still succeed, but you’ll see delays or potentially even connection timeouts.

For more details on how the implementation works, why it is effective against malware and other technical details, please see Microsoft’s write-up.

Exporting Worldclient contacts the hard way

In a previous post I covered the supported ways to access WorldClient contact data. Now we’ll dig under the hood a little and I’ll show you one method to convert a contact entry directly to a CSV file. The only tools needed are Windows Explorer and Excel 2007.

Open Windows Explorer on the server, browse to the user’s contacts folder:

e.g. C:\MDaemon\USERS\example.com\UserName\Contacts.IMAP

Copy the file AddrBook.mrk to a temporary area, where you can work on this file, then rename this file to AddrBook.xml. You can copy the file to another machine, from this point forward MDaemon isn’t needed.

Start Microsoft Excel 2007.

Select File – Open – browse to the temporary area and choose the AddrBook.xml file.

Leave the option “As an XML table” option selected and click OK, then click OK again.

Excel will now have a new file opened with the following columns: version, encoding, guid, modified, fullName, email

Delete the columns: version, encoding, guid & modified

Keep the columns: fullName & email

You can now copy and paste this data into a CSV format required by your email client address book for importing.

Please note: the above instructions work if using MS-Office Excel 2007, older versions of Excel may not have the required XML importer.