Since March 10, 2003 - Version 2
hypothetic.org

MSN Messenger Protocol

Home Page

Forum
Chat

About

Resources

Research

Documentation
 General
 Notification
 Switchboard
 Protocols
 Reference

Validate XHTML
Validate CSS
Research - MSNP9
Printable Version

Overview

MSNP9 is a new protocol that was introduced with MSN Messenger 6. More information about it can be found in the following resources. We plan to address it fully eventually, but for now we can only offer some links.

MSNP9 offers new peer-to-peer features, including things like custom emoticons and display pictures. In my personal opinion, the changes are at least as significant as those in MSNP8, but are just adding new "luxury" features rather than changing fundamental parhs of the protocol.

Indirect connections

MSNP9 allows clients to transmit more information about their NAT or proxy settings. This information is gathered from the "ClientPort" and "ClientIP" fields in the initial profile. The initial profile hasn't changed since MSNP8, so clients which only support MSNP8 could use this information (for example, informing the user about the connection). In a session that has been NATed or proxied, the IP address and/or port will be those of the last NAT or proxy server before the MSN Messenger server. Connections sometimes pass through several NAT and proxy servers on their way to the server - if the client is using a proxy server, but the IP address is different to that of the proxy server, then the connection has been NATed or proxied again somewhere downstream. In an HTTP-proxied connection, ClientPort will always be 0. The official client compares its IP address and source port to that received from the server, and names the type of connection like this:

Same IP address Different IP address
Same port Direct-Connect IP-Restrict-NAT
Different port Port-Restrict-NAT Symmetric-NAT or
Unknown-NAT

If the client is somehow unable to determine its connection type, it will label the connection "Unknown-Connect".

Notes by Dave Woods

Dave Woods has a protocol development site, which includes a section on MSNP9. It's available at http://www.chat.solidhouse.com/.

Notes by ZoRoNaX

ZoRoNaX has a site about MSNP9 at http://wisoftware.host.sk/msn6/.

Forum Posts

Several people have posted useful information about MSNP9 on the Discussion Forum. Below is a list of some useful threads in chronological order of their first post.

Copyright ©2002-2003 to Mike Mintz.