On this page
|
| SUMMARY | |
| Protocol |
: |
MSN Messenger Service |
| Layer |
: |
Application Layer |
|
| DESCRIPTION |
MSN Messenger is Microsoft's instant messaging client for Windows computers aimed toward the home user. MSN Messenger is often used to refer to the .NET Messenger Service (the protocols and server that allow the system to operate) rather than any particular client. The business oriented client for Windows, which also uses Microsoft's .NET Messenger Service is called Windows Messenger. It is possible for virtually any browser-equipped computer with an Internet connection and Windows XP to connect to the Messenger Service by using MSN Web Messenger, or one of the unofficial equivalents (which have advantages such as compatibility with browsers other than IE, but do not have an interface that mimics the familiar one of the MSN Messenger application). MSN Messenger 7.5 is the last version of MSN Messenger that will be released. This is because Microsoft is planning a replacement called Windows Live Messenger.
When MSN Messenger was first released it featured support for access to America Online's AIM Network. America Online continually tried to block Microsoft from having access to their service until eventually the feature was removed, and has not re-surfaced in any later versions of the software. Now the software only allows connections to the .NET Messenger Service, requiring a Microsoft Passport Network account to connect.
The major use of the software is for instant messaging, although other features which now come as standard include support for voice conversations, webcams (MSN Messenger 7.0 and later feature full screen audio video conversations), transferring files, and built-in multi-user online games such as Tic Tac Toe. In a similar vein to many of MSN Messenger's competitors, MSN Messenger allows messages to be enlivened with graphical emoticons, sometimes called smileys, Flash animations called winks, animated display pictures, styled text, and many more with third-party add-ons such as MSNLiveDisplay.
Macintosh users have a combined home and corporate client dubbed Microsoft Messenger for Mac 5.0 rather than MSN Messenger for home use and Windows Messenger for corporate use. The Macintosh version has far fewer features than its Windows counterpart; Version 5.0, though released several months after MSN Messenger 7.0, does not offer voice conversations, webcams, online games, and several other features already introduced and popular with Windows users. Mac users hoping for some of these features will instead have to settle for Mercury Messenger.
In August 2004, Microsoft introduced a browser-based version of the MSN Messenger client which can be used on any computer with a compatible browser and access to the Internet, without the need to install the Messenger software beforehand. This 'Web-messenger' is very limited, and can only be used to chat. It is also possible to use the Messenger Service on a mobile phone using Microsoft¡¯s MSN Mobile service.
There is a large community of third-party developers who have created add-ons to extend the capabilities of MSN Messenger.
Versions
| Version | Release date | Description | | 1 | July 22, 1999 | Claimed operability with AOL"s AIM network. It included only basic features, such as plain text messaging and a simplistic contact list. | | 2 | November 16, 1999 | Included a rotating advertising banner and the ability to slightly customize the appearance of the chat window. | | 3 | May 29rd, 2000 | Included file transfers, PC to PC and PC to phone audio capabilities with Net2Phone, one of the first VOIP providers. | | 4.6 | October 23, 2001 | MSN Messenger 4.6 was based on Windows Messenger 4.0 and ran only on Windows 9x, ME, NT and 2000. Windows Messenger was provided for Windows XP. | | 5 | October 24th, 2002 | Included UPnP based file transfers and minor changes to the user interface artwork. This was the first version that was allowed to run alongside Windows Messenger on Windows XP, also Windows Media Player interface plug-in. | | 6 | July 17th, 2003 | MSN Messenger 6 was a major overhaul of the whole platform, from a simple text-based communication, to a whole new system for expressing oneself with friends. This version emphasized the ability to customise the software, with personalised backgrounds, emoticons and display pictures and is much like what we see today in current versions. | | 6.1 | October 23rd, 2003 | This version focused on the conversation window, enabling users to hide the window frame and menu bar, and also the ability to change the theme colour of the window. The theme colour can be set differently for each user, also linking to their toasts (ie. contact signs in, contact says). The protocol version was also updated to MSNP version 10. | | 6.2 | April 22nd, 2004 | This was the last version of the MSN Messenger 6 series, most notable changes were contacts with mobile capabilities were more distinguishable (including a dedicated Mobile group), a connection trouble-shooter and the Launch Site feature was renamed to Fun & Games. | | 7.0 | April 7th, 2005 | Brought along the winks features, which was previously only available in Three Degrees. This version also advertises items to sell to you including animated display pictures, emoticons and backgrounds. The contact list window style was also updated to match instant message windows. | | 7.5 | August 23rd, 2005 | Introduced an updated Passport creditentials system. New features are the Dynamic Backgrounds feature, Voice Clips and the msnim protocol handler, allowing Web sites to provide links which automatically add a contact or start conversations. The Voice Clip feature lets you hold down F2 and record a message for a limited time and send it to the recipient. The window for conversations changed slightly with a Video button and a different position for the webcam icon (under the display picture). However this version only runs on Windows XP. | | QFE Patch | | With the release of version 7.5, MSN Messenger started using Windows Installer patches [2] for its auto-update feature. When a user selects yes to an update prompt upon sign in, the application will download a MSP file specific to updating that version to the latest and execute in the background. The largest patch thus far is 1.5MB, relatively smaller than downloading the entire MSI installation package, which can be up to 9.3MB. | | Web Messenger | | MSN Web Messenger is a browser-based messaging program that allows MSN users to instant-message people on their contact list, from computers that do not or cannot have the program installed (ie public computers). Web Messenger was launched in August 2004, and is convenient for people who are using the internet away from home, or own computers that are some way incompatible with the MSN program. On the contact list for MSN Messenger users, the status of somebody using Web messenger is displayed as a globe. | | Windows Live Messenger 8 | | "Windows Live Messenger" is the new name for "MSN Messenger", separating MSN"s "Content" division (MSN.com, MSN Money, etc) retaining the name "MSN", with their Service division (Hotmail, Messenger, etc), now known as "Windows Live"). |
Protocol
MSN Messenger uses the Mobile Status Notification Protocol (MSNP) over TCP (and optionally over HTTP to deal with proxies) to connect to the .NET Messenger Service - a service offered on port 1863 of messenger.hotmail.com. Its current version is 12 (MSNP12), used by MSN Messenger version 7.5 and other third-party clients. The protocol is not completely secret; Microsoft disclosed version 2 (MSNP2) to developers in 1999 in an Internet Draft, but never released versions 8, 9, 10, 11 or 12 to the public. .NET Messenger Service servers currently only accept protocol versions from 8 and on, so the syntax of new commands from versions 8, 9, 10, 11 and 12 is only known by using sniffers like Ethereal. MSNP13 will be the protocol used in Windows Live Messenger 8.
The syntax and semantics of the MSN Messenger Protocol
Assumes the communication protocol running between MSN Messenger Service 1.0 clients and servers. Among the core services that the MSN Messenger Servers provide to clients are:
- Authenticated user logon.
- Adding and deleting members of the user's contact list.
- Changing the user's on-line state.
- Receipt of asynchronous, real-time, on-line state change notifications from members of the user's contact list.
- Delivering lightweight, real-time messages to other users.
- Receipt of asynchronous, real-time messages from other users.
- Configuring the user's access permissions, to restrict the ability of other users to view the user's on-line state or send messages to the user.
MSN Messenger Server Component
MSN Messenger Service clients make connections to several different kinds of servers. They are separate components to facilitate running at scale - each component can be duplicated an arbitrary number of times, independently of each other, to enable large numbers of users.
- Dispatch Server (DS)
The Dispatch Server is the initial point of connection between client and server. Its primary functions are protocol version negotiation, determination of which Notification Server (NS) is associated with the client making a connection (via an algorithm of the server's choosing), and referring the client to the proper NS.
- Notification Server (NS)
The Notification Server is the primary server component. The client and the Notification Server authenticate, synchronize user properties, and exchange asynchronous event notifications. The client's connection to the Notification Server occurs after the referral from the Dispatch Server is completed, and persists without interruption during the user's MSN Messenger Service session.
Some of the events transmitted between a client and a Notification Server are: State changes (e.g. client is on-line, client is offline, client is idle), Switchboard Server invitation requests (see below), and application-specific notifications that are beyond the scope of this document. (E.g. new e-mail has arrived)
- Switchboard Server (SS)
The Switchboard Server is the component through which clients can establish lightweight communication sessions without requiring a direct network connection between clients. The common usage of the Switchboard Server is to provide instant messaging sessions. When a client wishes to communicate with another client, it sends a message to its Notification Server, which then refers the client to a Switchboard Server. Once the SS connection is established, the "destination" client receives a notification from its NS to connect to the same SS.
Command
| Command | From | To | Description | | ACK | Switchboard | Client | Sends a positive message delivery acknowledgement. | | ADD | Client Notifcation | Notification Client | Adds to the user"s FL, AL, and BL. Notifies the client of asynchronous additions to a user"s list. | | ANS | Client | Switchboard | Accepts a request for a switchboard server session. | | BLP | Client Notifcation | Notification Client | Changes the user"s message privacy setting, which determines how to treat messages from users not already in the BL or AL. | | BYE | Switchboard | Client | Notifies a client that a user is no longer in the session. | | CAL | Client | Switchboard | Initiates a switchboard server session. | | CHG | Client Notifcation | Notification Client | Sends a client state change to the server. Echos the success of the client"s state change request. | | FLN | Notification | Client | Notifies the client when users in the FL go off-line | | GTC | Client Notifcation | NotificationClient | Changes the user"s prompt setting, which determines how the client reacts to certain RL changes. | | INF | Client Client Dispatch Notification | Dispatch Notification Client Client | Requests set of support authentication protocol from the server. Provides the set of supported authentication protocols to the client. | | ILN | Notification | Client | Notifies the client of a the initial online state of a user in the FL, while either logging on or adding a user to the FL. | | IRO | Switchboard | Client | Provides the initial roster information for new users joining the session. | | JOI | Switchboard | Client | Notifies a client that a user is now in the session. | | LST | Client Notifcation | Notification Client | Retrieves the server"s version of the user"s FL, RL, AL, or BL. | | MSG | Client | Switchboard | Sends a message to the members of the current session. | | MSG | Notification Switchboard | Client Client | Delivers a message from another client or from a server-side component. | | NAK | Switchboard | Client | Sends a negative message delivery acknowledgement. | | NLN | Notification | Client | Notifies the client when users in the FL go on-line or when their on-line state changes. | | OUT | All | All | Ends a client-server Session. | | REM | Client Notifcation | Notification Client | Removes from the user"s FL, AL, and BL. Notifies the client of asynchronous removals from a user"s list. | | RNG | Notification | Client | Notifies the client of a request by another client to establish a session via a switchboard server. | | SYN | Client Notifcation | NotificationClient | Initiates client-server property synchronization. | | USR | All | All | Authenticates client with server, possibly in mulitiple passes. | | VER | Client Dispatch | Dispatch Client | Negotiates common protocol dialect between client and Server. | | XFR | Client Notifcation | Notification Client | Requests a Switchboard server for use in establishing a session. | | XFR | Dispatch Client | NotificationClient | Notification of login-NS to the client or notification to move to a different NS. |
Session based Instant Messaging
MSN Messenger Service utilizes a lightweight, session-based messaging scheme. In order for two clients to exchange instant messages, they must first establish a common session via a Switchboard Server. They can invite additional clients to join the established session.
- Referral to Switchboard
This process begins with a "calling" client requesting a referral from its Notification Server to a Switchboard Server:
C: XFR TrID SB
S: XFR TrID SB Address SP AuthChallengeInfo
- SB is the type of referral being requested or granted.
- Address is the DNS name or IP address of a Switchboard Server that has been assigned, and that the client should connect to.
- SP is the Security Package being used. In this version of the protocol it is "CKI" only.
- AuthChallengeInfo is a cookie that the client needs to present to the Switchboard server for authentication.
- Switchboard Connections and Authentication
After the XFR reply is received, the client makes a TCP/IP connection to the Switchboard server using port 1863. Note that a lack of version negotiation in the switchboard connection is a limitation of the current implementation.
The client first needs to authenticates with the Switchboard Server:
C: USR TrID UserHandle AuthResponseInfo
S: USR TrID OK UserHandle FriendlyName
- AuthResponseInfo is the cookie for CKI security package returned by the Notification Server in the XFR.
- UserHandle and FriendlyName are the Switchboard's echoes of the user handle and friendly name of the user.
- Inviting Users to a Switchboard Session
Any user in a Switchboard session can invite other users to join the session. The CAL command is sent to the Switchboard server for this purpose:
C: CAL TrID UserHandle
S: CAL TrID Status SessionID
The Messenger servers verify that the calling user has permissions to contact the called user, with consideration given to the called user's privacy settings and its online state. If instant messaging with this user is not allowed, the server responds to the calling user with an error. If it is allowed, the Switchboard server causes a RNG command to be sent to the called client, and returns a CAL echo to the calling client. The CAL echo has these parameters:
- Status is a predefined status code - in this implementation it must be "RINGING".
- SessionID is the ASCII representation of a decimal number that uniquely identifies this session on the Switchboard Server.
- Getting Invited to a Switchboard Session
The other side of the session establishment is the behavior of the called client. The called client receives a RNG from its Notification Server and is expected to connect to the Switchboard Server and respond with an ANS.
The client receives a RNG from the Notification Server as follows:
S: RNG SessionID SwitchboardServerAddress SP AuthChallengeInfo CallingUserHandle CallingUserFriendlyName
- SessionID is a numeric ASCII session ID.
- SwitchboardServerAddress is a DNS name or IP Address.
- SP is the security package in use. In this implementation only "CKI" is supported.
- AuthChallengeInfo is the cookie to be passed back to the switchboard to gain entrance to the session.
- CallingUserHandle is the user handle of the caller.
- CallingUserFriendlyName is the custom user name of the caller.
To join the session, the called client connects to the Switchboard Server and carries out the following exchange to join the session:
C: ANS TrID LocalUserHandle AuthResponseInfo SessionID
S: IRO TrID Participant# TotalParticipants UserHandle FriendlyName
S: ANS TrID OK
The IRO commands relay to the newly joined client roster information about the current session. Each IRO command message from the Switchboard contains one participant in the session.
The entire session roster will be sent to the new client joining the session before any JOI or BYE commands described below.
If no one is in the session when the user joins (an unexpected error condition), the server skips directly to "ANS TrID OK" command. All the responses from the server related to the issued ANS command will contain the same TrID as the original client ANS request.
- Session Participant Changes
When a new user joins a Switchboard session, the server sends the following command to all participating clients, including the client joining the session:
S: JOI CalleeUserHandle CalleeUserFriendlyName
- CalleeUserHandle is the user handle of the new participant.
- CalleeUserFriendlyName is the Custom User Name of the new participant.
If a client's connection with the Switchboard Server is dropped for any reason, the server sends the following command to the remaining clients in the session:
S: BYE CalleeUserHandle
CalleeUserHandle is the user handle of the participant that left the session.
- Leaving a Switchboard Session
When a client wishes to disconnect from the session, it sends the following command and waits for the Switchboard to close the connection:
- Instant Messages
Once a client-to-client session has been established via the Switchboard Server, sending an Instant Message to the participants of the session is done as follows:
C: MSG TrID [U | N | A] LengthrnMessage
S: NAK TrID
S: ACK TrID
U, N, and A correspond to the three delivery acknowledgement modes: Unacknowledged, Negative-Acknowledgement-Only, and Acknowledgement. Depending on the value of this parameter, either nothing, NAK, or ACK will be sent back by the Switchboard Server to the client.
For Unacknowledged mode, the Switchboard Server does not respond to the sending client with the success or failure of message delivery. For Negative-Acknowledgement-Only mode, the Switchboard Server responds to the send client only if the message could not be delivered to the recipient client.
Acknowledgement mode is not currently implemented. Length is the length of the Message parameter in bytes, whereas Message is the actual message as described below.
- Receiving an Instant Message
A client can receive a system-generated message from the Notification Server, or it can receive an instant message from another client via a Switchboard Server. The message is received in the following format:
S: MSG UserHandle FriendlyName LengthrnMessage
The UserHandle and FriendlyName are those of the sending user. Length is the length of the message in bytes.
|
Top of Page
|
| EXAMPLES |
|
|
Top of Page
|
| PROTOCOL RELATIONS |
■ Parent layer
■ Child layer
TCP/UDP
|  | MSN | |
Top of Page
|
| GLOSSARY |
|
Windows Live Messenger Windows Live Messenger is the next-generation MSN Messenger. It is part of Microsoft's new online service called Windows Live, and will include everything in MSN Messenger plus new ways to connect and share documents. Currently, the Windows Live Messenger 8 is released only to select beta testers.
AIM Network The AOL Instant Messenger (AIM) is an ad-supported instant messaging and presence computer program, published by AOL in October of 1997, which uses the OSCAR instant messaging protocol and the TOC protocol.
America Online America Online, or AOL for short, is a U.S.-based online service provider, Internet service provider, and media company. Based in Dulles, Virginia, a community in Loudoun County, Virginia, with regional headquarters installations in many cities around the world, it is by far the most successful proprietary online service, with more than 32 million subscribers at one point in the US, Canada, Germany, France, the United Kingdom, Latin America (declared bankrupt in 2004), and Japan. In early 2005, AOL Hong Kong stopped its service.
Authentication The process of identifying an individual, usually based on a username and password. In security systems, authentication is distinct from authorization , which is the process of giving individuals access to system objects based on their identity. Authentication merely ensures that the individual is who he or she claims to be, but says nothing about the access rights of the individual.
Ethereal Ethereal is a protocol analyzer, or "packet sniffer" software, used for network troubleshooting, analysis, software and protocol development, and education. It has all of the standard features of a protocol analyzer.
HTTP HTTP(HyperText Transfer Protocol) defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. For example, when you enter a URL in your browser, this actually sends an HTTP command to the Web server directing it to fetch and transmit the requested Web page.
The other main standard that controls how the World Wide Web works is HTML, which covers how Web pages are formatted and displayed.
HTTP is called a stateless protocol because each command is executed independently, without any knowledge of the commands that came before it. This is the main reason that it is difficult to implement Web sites that react intelligently to user input. This shortcoming of HTTP is being addressed in a number of new technologies, including ActiveX, Java, JavaScript and cookies.
IDs IDs (Internet Drafts) is a series of documents published by the IETF. They are drafts for RFCs. They have a validity of only six months, after which the IETF deletes them, although expired IDs can be found on a number of sites around the Internet.
ISP Internet service provider (ISP) is a business or organization that offers users access to the Internet and related services. Many but not all ISPs are telephone companies. They provide services such as Internet transit, domain name registration and hosting, dial-up access, leased line access and colocation.
Instant messaging Instant messaging is the act of instantly communicating between two or more people over a network such as the Internet.
MSNLiveDisplay MSNLiveDisplay is a user utility that automatically updates your MSN Messenger picture from your webcam based on a user defined interval. This program is open source and is under the GPL license.
MSNP MSNP (Mobile Status Notification Protocol) is the protocol employed by MSN Messenger and other clients like Trillian and Windows Messenger to communicate with the MSN Messenger switchboard servers.
Mercury Messenger Mercury Messenger (previously dMSN, but changed on request of Microsoft) is an instant messaging programme written in Java for Linux, Windows, Mac OS X and FreeBSD. It connects to the MSN Messenger and Jabber protocols.
Microsoft Microsoft founded in 1975 by Paul Allen and Bill Gates, Microsoft Corporation is one of the largest and most influential companies in the personal computer industry. In addition to developing the de facto standard operating systems -- DOS and Windows -- Microsoft has a strong presence in almost every area of computer software, from programming tools to end-user applications.
NET Passport NET Passport (Microsoft Passport Network) is a "unified-login" service provided by Microsoft that allows users to log in to many websites using one account.
Net2Phone Net2Phone is the pioneer of VOIP and was once a leader of the field.
Packet sniffer Packet sniffers (also known as network analyzers or Ethernet sniffers) are software programs (usually) or computer hardware which can intercept and log traffic passing over a computer network or part of a network.
Port Port is an interface on a computer to which you can connect a device. Personal computers have various types of ports. Internally, there are several ports for connecting disk drives, display screens, and keyboards. Externally, personal computers have ports for connecting modems, printers, mice, and other peripheral devices.
Almost all personal computers come with a serial RS-232C port or RS-422 port for connecting a modem or mouse and a parallel port for connecting a printer. On PCs, the parallel port is a Centronics interface that uses a 25-pin connector. SCSI (Small Computer System Interface) ports support higher transmission speeds than do conventional ports and enable you to attach up to seven devices to the same port.
Session The session of activity that a user with a unique IP address spends on a Web site during a specified period of time. The number of user sessions on a site is used in measuring the amount of traffic a Web site gets. The site administrator determines what the time frame of a user session will be (e.g., 30 minutes).
If the visitor comes back to the site within that time period, it is still considered one user session because any number of visits within that 30 minutes will only count as one session. If the visitor returns to the site after the allotted time period has expired, say an hour from the initial visit, then it is counted as a separate user session.
TCP TCP (Transmission Control Protocol) is one of the main protocols in TCP/IP networks. TCP is one of the main protocols in TCP/IP networks. Whereas the IP protocol deals only with packets, TCP enables two hosts to establish a connection and exchange streams of data. TCP guarantees delivery of data and also guarantees that packets will be delivered in the same order in which they were sent.
Threedegrees threedegrees or 3¡ã (frequently referred to as Three Degrees) was a communication and P2P application produced by Microsoft. It allows you to sign in using a Microsoft .NET Passport and integrates into MSN Messenger.
Tic-Tac-Toe Tic-tac-toe, also called noughts and crosses and many other names, is a paper and pencil game between two players, O and X, who alternate in marking the spaces in a 3¡Á3 board. A player wins by getting three of their own marks in a horizontal, vertical or diagonal row.
UPnP UPnP (Universal Plug and Play) is a set of computer network protocols promulgated by the UPnP Forum. The goals of UPnP are to allow devices to connect seamlessly and to simplify the implementation of networks in the home and corporate environments.
VOIP Voice over Internet Protocol, a category of hardware and software that enables people to use the Internet as the transmission medium for telephone calls by sending voice data in packets using IP rather than by traditional circuit transmissions of the PSTN. One advantage of VoIP is that the telephone calls over the Internet do not incur a surcharge beyond what the user is paying for Internet access, much in the same way that the user doesn't pay for sending individual e-mails over the Internet.
Web portal A web portal is a web site that provides a starting point or gateway to other resources on the Internet or an intranet. Intranet portals are also known as enterprise information portals (EIP). The building blocks of portals are portlets, which contain portions of content published using markup languages such as HTML and XML.
Webcam Webcam (web camera) is a real time camera whose images can be accessed using the World Wide Web, instant messaging, or a PC video calling application. Generally, a digital camera delivers images to a web server, either continuously or at regular intervals.
Windows Messenger Windows Messenger is an instant messaging client from Microsoft that can communicate both via SIMPLE and .NET Messenger Service. It is pre-installed in Windows XP, and versions 5 and higher are available for download for Windows 2000.
Winks Winks are animated files that appear in MSN Messenger 7 and threedegrees.
|
Top of Page
|
| REFERENCES |
|
|
Top of Page
|
| OTHER PROTOCOLS OF TCP/IP SUITE |
|
|
|
|
|