User Tools

Site Tools


how_jabber_xmpp_works

This is an old revision of the document!


Jabber as an IM protocol

Jabber is an open system for Instant Messaging. It uses a protocol called XMPP. Jabber is a distributed system, which means that there isn't one single server or one centralized service where everybody has to have an account. There are multiple servers and providers, just like with email. You simply log on to your provider's server and start chatting with your friends. The servers will take care of exchanging the messages between the providers.

XMPP is based on http://en.wikipedia.org/wiki/XML, so a typical snippet of Jabber traffic looks like this:

 <message
     to='romeo@example.net'
     from='juliet@example.com/balcony'
     type='chat'
     xml:lang='en'>
   <body>Wherefore art thou, Romeo?</body>
 </message>

This example also shows something special to Jabber: you can provide “resources” (the “/balcony” part), enabling you to be logged in with several clients at the same time. Messages can be directed at either the “plain” Jabber ID, then the actual recipient is determined by something called “priority” (some numerical value specifying how much priority this log shall have) or some fallback method, otherwise the message is sent to the client where the recipient is logged in with the specified resource.

Another Jabber-only feature are “pubsub services”. These enable you to publish your mood or the title of the tune you're currently listening to. Not all servers/clients do support these features though.

There are already quite a lot of Jabber servers, but since Jabber is an open system, you can even setup your own server and become part of the network. For this purpose, you can use some of these open source server implementations:

You may also visit http://www.jabber.org/servers/ for a list of more server software.

This fact also makes Jabber the ideal choice for creating a company's internal IM solution.

The communication between clients and servers is protected with TLS (if supported by client/server). That means that the communication between users and their servers is secret and nobody can read it. If the servers support it, server-to-server traffic is enrcrypted, too.

It is also possible to use end-to-end encryption like GPG or OTR.

Servers can have additional services rather than just messaging and presence. Most servers have chatrooms (Jabber is not only one-to-one communiation), many also have gateways to open networks (like IRC) and to closed ones (MSN, Yahoo!, AIM).

Other uses of Jabber/XMPP

There are several other ways Jabber/XMPP can be used:

If you want to learn more about Jabber's technical details, you may want to read the Wikipedia entry on XMPP, "Technology Overview" or "Technology Detail" on jabber.org or even one of the specifications/RFCs linked at http://www.xmpp.org/.

how_jabber_xmpp_works.1211154519.txt.gz · Last modified: 2018/03/09 08:22 (external edit)