XMPP

Summary of XMPP

Last Updated: 2007-01-16

The Extensible Messaging and Presence Protocol (XMPP) is the IETF's formalization of the base XML streaming protocols for instant messaging and presence developed within the Jabber open-source community in 1999.

As specified in RFC 3920, the core "transport" layer for XMPP is an XML streaming protocol that makes it possible to exchange fragments of XML between any two network endpoints. Authentication and channel encryption happen at the XML streaming layer using the IETF-standard protocols for Simple Authentication and Security Layer (RFC 2222) and Transport Layer Security (RFC 2246). The normal architecture of XMPP is a pure client-server model, wherein clients connect to servers and (optionally) servers connect to each other for interdomain communications. XMPP addresses are fully internationalized, and are of the form <node@domain> for clients (similar to email).

A wide variety of applications can be built on top of the core XML streaming layer. The first such application is instant messaging (IM) and presence. The basic IM and presence extensions specified in RFC 3921 address the requirements of RFC 2779, as well as the contact list functionality expected IM and presence systems. RFC 3921 also makes it possible to separate the messaging and presence functionality if desired (although most deployments offer both).

The history of XMPP is that the protocols were initially developed within the Jabber open-source community. After several years of implementation and deployment experience, the base protocols were submitted to the Internet standards process by the Jabber Software Foundation (now XMPP Standards Foundation) in 2002. After appropriate formalization in the areas of security and internationalization, the base protocols were approved as IETF-appproved instant messaging and presence technologies in October 2004.

In addition to the base protocols specified in RFC 3920 and RFC 3921, there exist many XMPP extensions for functionality that was not required by RFC 2779. These extensions are generally specified in the XEP series published by the XMPP Standards Foundation.

The following list describes the main XMPP protocol specifications and XMPP extensions that are in wide use today:

The XEP series also defines XMPP extensions for a wide range of additional features, including XML-RPC and SOAP bindings, in-band registration, extended presence, geolocation, and reliable message delivery.