XMPP

Aus wiki.archlinux.de

Jabber ist eine Sammlung diverser XML-basierender Netzwerkprotokolle. XMPP der Kern dieser Protokollsammlung und ist ein von der IETF standardisiertes, auf XML basierendes Messaging- und Anwesenheits-Protokoll.

Anders als die meisten anderen Messaging-Dienste ist Jabber dezentral aufgebaut. Die nötige Server-Software sowie das Protokoll um einen Jabber-Server zu betreiben sind ebenfalls frei verfügbar. So steht jedem Anwender die Möglichkeit offen, selbst einen Jabber-Server aufzusetzen.

Jabber eignet sich daher nicht nur, um großen, öffentlichen Nutzergruppen eine Möglichkeit der Kommunikation zu bieten, sondern auch, um im kleinen Rahmen schnell und einfach, und ohne große Hürden (Jabber-Clients sind für alle gängigen Architekturen und Systeme verfügbar) eine Kommunikationsmöglichkeit bereitzustellen.

Schematische Darstellung eines Jabber-Netzwerkes

Identifikation

User, die auf einem Server vorhanden sind, erhalten von diesem eine Jabber-ID, kurz JID. Wenn ein Client die JID kennt, kann er mit diesem User-Account interagieren, und dem Nutzer, der hinter dem Account steht, zum Beispiel eine Nachricht zukommen lassen.

JIDs bestehen immer aus dem Usernamen und dem Servernamen. Der User „client1“, der auf dem Server „jabber.example.org“ angelegt wurde, hat demnach die JID „client1@jabber.example.org“.

Zusätzlich zur JID kann auch noch eine Ressource verwendet werden. Diese Ressource wird dazu benutzt, um den selben User mehrfach am Server anmelden zu können. Der Wert dieser Angabe ist frei wählbar, muss aber den Adressierungsregeln des Internet entsprechen.

Der Anwender hinter dem Usernamen „client1“ könnte sich also zum Beispiel ein mal mit der Ressource „Home“ von zu Hause aus anmelden, und ein mal mit der Ressource „Work“ von der Arbeit aus.

Die Ressource wird der JID durch einen Slash getrennt angehängt.

client1@jabber.example.org/Home
client1@jabber.example.org/Work

Nachrichten

Wenn – basierend auf der obigen schematischen Darstellung – „client1@jabber.example.org“ an „clientb@jabberserver.invalid“ eine nachricht schickt, sendet dieser die Nachricht zunächst an „jabber.example.org“, dieser Server kontaktiert dann „jabberserver.invalid“, und übermittelt diesem die Nachricht.

„jabberserver.invalid“ sendet nun eine Information über eine neue Nachricht an „clientb@jabberserver.invalid“. Das Jabber-Programm auf diesem Client empfängt die Meldung, holt die Nachricht vom Server, und zeigt diese an.

Wenn „clientb@jabberserver.invalid“ nun auf diese Nachricht antwortet, wird der Vorgang wiederholt, diesmal allerdings in anderer Richtung.

Chat

Jabber unterstützt Chats mit mehreren Benutzern gleichzeitig, dazu wird auf dem Server entweder permanent oder temporär ein Chatraum erstellt, den die Nutzer betreten können. Die Nachricht werden dann nicht einzeln als Nachrichten an die Clients verteilt, sondern erscheinen untereinander im Chatfenster.

Diese Chats unterstützten verschiedene Rollen. So kann in einem Chatraum ein Benutzer „Administrator“ sein, also Regeln für den Raum konfigurieren, User aus dem Raum entfernen, Zugriffskontrollen einstellen oder auch andere User „stummschalten“.

Transports

Transports sind Zusatzprogramme, mittels derer ein Jabber-Server fähig ist, auch als Server für andere Messaging-Dienste benutzt werden zu können. So kann zum Beispiel ein ICQ-Transport benutzt werden, um über einen Jabber-Server Nachrichten an User im ICQ-Netzwerk zu übermitteln.

Transports sind Server-Abhängig, nicht alle Server bieten automatisch auch Transports für alle Dienste an. Neben Messenger-Diensten können zum Beispiel auch SMS-, e-Mail- oder RSS-Dienste durch Transports angeboten werden.

Um einen Transport zu nutzen, meldet man sich mit seinem Jabber-Account am Jabber-Server an, und wählt über den Jabber-Client aus, welchen Transport man verwenden will. Im Falle des ICQ-Transports meldet man sich nun mit seinen ICQ-Daten am Transport an, und kann von diesem Zeitpunkt an, über den vom Jabber-Server bereitgestellten ICQ-Transport am ICQ-Netz teilnehmen.

Verschlüsselung

Verschiedene Verschlüsselungsmethoden im Vergleich

Jabber bietet mehrere Möglichkeiten der Verschlüsselung, die alle unterschiedlich sicher sind. Folgende Verschlüsselungsmethoden werden unterstützt.

  • Server-To-Server
  • Client-To-Server
  • Client-To-Server und Server-To-Server kombiniert
  • End-To-End

Komplett unverschlüsselter Austausch von Nachrichten ist unüblich. Das rechtsseitig dargestellte Diagramm zeigt die Verschlüsselungsmethoden nochmal grafisch auf.

Einen Überblick über die verschiedenen Verschlüsselungstechniken bietet der Wiki-Artikel Grundlagen der Verschlüsselung.

Verwendete Ports

Jabber verwendet folgende Ports:

  • Daten: 5222
  • SSL: 5223
  • TLS: 5224

Alternativ können auch die Ports 443 und 80 verwendet werden. Üblicher weise wird nur Port 5222 verwendet, und an diesem mittels STARTTLS die Authentifizierung vorgenommen.

Siehe auch

Weblinks