The Extensible Messaging and Presence Protocol (XMPP; formerly Jabber) is an open standard of a communication protocol published by the Internet Engineering Task Force (IETF) as RFC 6120, 6121 and 6122. XMPP is based on the XML standard and enables the exchange of data. Among other things, it is used for instant messaging. XMPP extensions represent the XMPP Extension Protocols published by the XMPP Standards Foundation (XSF).
XMPP and its extensions support messaging, multi-user chat, online status viewing, file transfers, sending digital certificates and many other services. The network architecture is similar to the Simple Mail Transfer Protocol (SMTP). Any XMPP server connected to the Internet can exchange messages with other servers. This makes connections across provider borders possible. Messages are forwarded from the user to his own server, from there to another server and then to the recipient. Isolated networks, for example in company intranets, are also possible.
At least one XMPP server (similar to the Mail Transfer Agent) is required to operate an XMPP network. This can exist in an intranet as the sole communication interface or establish connections to other XMPP servers (the "XMPP Federation") via the Internet.
To identify and address users within the XMPP network, there is the so-called "Jabber Identifier" (JID). This has the form "email@example.com", resembles an e-mail address and also behaves similarly: here alice is the user name and example.com is the server on which the user is registered. The concept of "resources" makes it possible to log on to an XMPP server multiple times with one identity.
A big advantage of XMPP is that XMPP clients exist for almost every operating system and in every programming language. However, the solutions differ in the extent to which they support the protocol.
In contrast to other instant messaging protocols used on the Internet, the XMPP protocol is openly documented and actively developed further.