Utvidbar meldings- og tilstedeværelsesprotokoll | ||||||||
---|---|---|---|---|---|---|---|---|
Familie | Internett | |||||||
Funksjon | Direktemeldinger | |||||||
havner |
5222/TCP (klient til server) | |||||||
Plassering i protokollstabelen | ||||||||
| ||||||||
standarder | ||||||||
RFC 6120 (hoved) | ||||||||
Extensible Messaging and Presence Protocol , bedre kjent som XMPP ( Extensible Messaging and Presence Protocol ) (tidligere kalt Jabber [ 1 ] ), er en åpen og utvidbar XML -basert protokoll , opprinnelig utviklet for direktemeldinger .
Med XMPP-protokollen etableres en plattform for utveksling av XML-data som kan brukes i direktemeldingsapplikasjoner. Egenskapene når det gjelder tilpasningsevne og enkelhet til XML er dermed arvet av XMPP-protokollen.
I motsetning til proprietære meldingsutvekslingsprotokoller som ICQ , Y! og Windows Live Messenger , den er dokumentert og du oppfordres til å bruke den i ethvert prosjekt. Det er gratis servere og klienter som kan brukes gratis.
Etter flere år med sin eksistens, har den blitt adoptert av selskaper som Facebook , WhatsApp Messenger og Nimbuzz , blant andre, for deres chat-tjeneste.
Google adopterte den for sin Google Talk -meldingstjeneste , og kunngjorde i 2013 at den forlot den til fordel for sin proprietære Hangouts -protokoll . [ 2 ]
Jeremie Miller startet Jabber-prosjektet i 1998. Hans første store programvareutgivelse skjedde i mai 2000. Hovedproduktet til prosjektet var jabberd , en XMPP-server.
Denne første XMPP- protokollen skapte grunnlaget for XMPP, publisert som RFC 3920 . Det har ofte blitt ansett som en konkurrent til SIMPLE , basert på SIP -protokollen , som standard protokoll for direktemeldinger og tilstedeværelsesvarsling.
I august 2005 introduserte Google Google Talk , en kombinasjon av VoIP og identitetsadministrasjonssystemer som bruker XMPP for sine direktemeldingsfunksjoner og som grunnlag for sin overføringssignaleringsprotokoll og talesystem. Den første utgivelsen inkluderte ikke server-til-server-kommunikasjon, men 17. januar 2006 ble de lagt til. [ 3 ] Siden dette året har det vært omtrent et halvt dusin implementeringer av XMPP-servere, skrevet på forskjellige programmeringsspråk.
Jabber Software Foundation ble omdøpt til XMPP Standards Foundation 15. januar 2007. [ 4 ]
XMPP-nettverket er serverbasert, men desentralisert; etter design er det ingen sentral server, slik tilfellet er med tjenester som AOL Instant Messenger eller MSN Messenger . På dette punktet er det noe forvirring, siden det er en offentlig XMPP-server på "Jabber.org", som et stort antall brukere abonnerer på, men ikke glem at hvem som helst kan starte sin egen server. Standardporten som brukes for XMPP er 5222. [ 7 ]
Hver bruker på XMPP-nettverket har en unik identifikator ( Jabber ID , vanligvis forkortet som JID ). For å unngå behovet for en sentral server med en uttømmende liste over identifikatorer, er Jabber-IDen strukturert som en e-postadresse, med et brukernavn og en DNS -adresse for serveren som brukeren bor på, atskilt med et og-tegn @. En Jabber-identifikator vil være noe sånt som [email protected] .
Siden en bruker kanskje vil identifisere seg fra forskjellige steder, lar serveren klienten spesifisere en referansestreng kjent som en ressurs, som identifiserer klienten som brukeren bruker (for eksempel: hjemme, jobb, bærbar PC, etc.). Dette vil bli inkludert i JID ved å legge til et / -tegn etterfulgt av ressursnavnet. Hver ressurs må ha en prioritert numerisk verdi spesifisert. For eksempel vil den fullstendige JID-en til brukerens jobbkonto være: [email protected]/arbeid . Meldinger på formen [email protected] vil bli adressert til kunden med høyeste prioritet, og meldinger på formen [email protected]/arbeid vil bli adressert til arbeidskunden.
JID-er uten brukernavndelen er også gyldige og brukes til å sende system- og kontrollmeldinger.
Anta at [email protected] ønsker å chatte med [email protected] . Julieta og Romeo har sine respektive kontoer på serverne capulet.com og montague.net. Når Juliet skriver og sender meldingen sin, starter følgende hendelsesforløp:
En annen svært nyttig funksjon i XMPP-protokollen er gatewayene , som lar brukere få tilgang til nettverk med andre direktemeldingsprotokoller som MSN Messenger , ICQ eller andre typer meldinger som SMS eller e- post . Denne tjenesten leveres ikke fra klienten, men fra serveren gjennom gatewaytjenester som gir tilkobling til et annet nettverk. Enhver bruker kan registrere seg med hvilken som helst av disse gatewayene som gir tilgangsdata til det nye nettverket som brukernavn og passord, og kommunisere med brukerne av det nye nettverket. Dette betyr at enhver XMPP-klient kan brukes til å få tilgang til et hvilket som helst nettverk som det er en gateway for, uten behov for å tilpasse klienten eller ha direkte tilgang til Internett.
De fleste brannmurer er konfigurert til å tillate TCP - trafikk rettet til porten som brukes av HTTP-protokollen, å passere gjennom, mens porten som brukes av XMPP vanligvis er blokkert. For å løse dette problemet bruker XMPP HTTP for å gi tilgang til brukere bak brannmurer. I de originale spesifikasjonene kunne XMPP bruke HTTP på to måter:
Det er noen offentlige servere som www.jabber80.com som lytter på standard HTTP- og HTTPS-porter, slik at du kan koble til via XMPP bak de fleste brannmurer.
Gatewayene eller transportene ( fra engelsk transport ) er en tjeneste som tilbys av ulike servere som tillater interoperabilitet av XMPP-nettverket med andre direktemeldingsprotokoller (som de som brukes av Windows Live Messenger , Yahoo! Messenger , AOL Instant Messenger , ICQ , etc. ).For å gjøre dette, er det nødvendig å registrere seg for denne tjenesten på XMPP-serveren som tilbyr den. Dette gjør det ikke nødvendig å ha en konto på denne serveren, siden mange av dem tillater abonnement på en hvilken som helst JID.
Noen klienter som implementerer XMPP-protokollen er:
IETF XMPP-arbeidsgruppen har produsert følgende RFC -er :
RFC 3920 , RFC 3921 , RFC 3922 , RFC 3923 , RFC 4622 , RFC 4854 , RFC 4979
Følgende utvidelser er i spesielt utbredt bruk:
For tiden utvides XMPP-protokollen til å håndtere VoIP . Signaleringsprotokollen som skal brukes er Jingle , som er designet for å være kompatibel med Google Talk -tjenesten .