Utvidbar meldings- og tilstedeværelsesprotokoll

Utvidbar meldings- og tilstedeværelsesprotokoll
Familie Internett
Funksjon Direktemeldinger
havner

5222/TCP (klient til server)
5269/TCP (tjener til server)

5223/TCP (SSL)
Plassering i protokollstabelen
App XMPP
Transport TCP
Nett IP
standarder

RFC 6120 (hoved)
RFC 6121 (direktemeldinger og tilstedeværelse)
RFC 6122 (adresseformat)
RFC 3922 (CPIM)

RFC 3923 (kryptering)

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 ]

Historikk

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 ]

Fordeler

Desentralisering Arkitekturen til XMPP-nettverk ligner på e-post; Hvem som helst kan sette opp sin egen XMPP-server, uten noen sentral server. åpne standarder Internet Engineering Task Force har formalisert XMPP-protokollen som en teknologistandard for direktemeldinger, og spesifikasjonene har blitt publisert som RFC 3920 og RFC 3921 . Utviklingen av denne teknologien er ikke knyttet til noe spesifikt selskap og krever ikke betaling av royalties. Historie XMPP-teknologier har vært i bruk siden 1998. Det finnes flere implementeringer av XMPP-standardene for klienter, servere, komponenter og biblioteker, støttet av store selskaper som Sun Microsystems og Google . Sikkerhet XMPP-servere kan isoleres fra det offentlige XMPP-nettverket, og har sterke sikkerhetssystemer (som SASL og TLS ). For å støtte bruken av krypteringssystemer, gjør XMPP Standards Foundation XMPP Certification Authority tilgjengelig for serveradministratorer på xmpp.net ved å tilby gratis digitale sertifikater . Fleksibilitet Egendefinerte funksjoner kan gjøres på XMPP; for å opprettholde interoperabilitet, administreres de vanligste utvidelsene av XMPP Software Foundation.

Ulemper

Overbelastning av tilstedeværelsesdata Vanligvis er ca. 70 % av trafikken mellom servere tilstedeværelsesdata, [ 5 ] og ca. 60 % av dette er redundante overføringer. [ 6 ] Nye protokoller studeres for tiden for å lindre dette problemet. Skalerbarhet XMPP lider også av det samme redundansproblemet i chatterom og abonnementstjenester. Jobber for tiden med løsningen. ingen binære data XMPP er kodet som et enkelt langt XML-dokument, noe som gjør det umulig å levere umodifiserte binære data. Filoverføringer har imidlertid blitt omarbeidet ved å bruke andre protokoller som HTTP . Hvis det er uunngåelig, kan XMPP også overføre ved å base64 -kode alle data .

Desentralisering og adressering

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.

Meldingsleveringsprosess

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:

  1. Juliets klient sender meldingen hennes til capulet.com-serveren.
    • Hvis capulet.com-serveren ikke har tilgang til montague.net-serveren, blir meldingen forkastet.
  2. Capulet.com-serveren åpner en tilkobling til montague.net-serveren.
  3. Montague.net-serveren leverer meldingen til Romeo.
    • Hvis capulet.com-serveren ikke har tilgang til montague.net-serveren, blir meldingen forkastet.
    • Hvis Romeo er frakoblet, lagres meldingen for senere levering.

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.

XMPP og HTTP

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.

Catwalk

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.

Klienter

Noen klienter som implementerer XMPP-protokollen er:

Utvikling

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 .

Referanser

  1. Jabber Inc. - Om oss
  2. Ankomsten av Hangouts, eller farvel til den åpne protokollen XMPP i Google-chatter
  3. Burd, Gary. XMPP Federation . Hentet 30. november 2007 . 
  4. Jabber Software Foundation omdøpt til XMPP Standards Foundation Arkivert 2010-06-15Wayback Machine
  5. [Standards-JIG] Distribusjon av strofetyper
  6. [Standards-JIG] proto-JEP: Smart Presence Distribution
  7. Jeg er bak en brannmur, kan jeg bruke Jabber? | Jabber.org
  8. XEP-0025: Jabber HTTP Polling
  9. a b XEP-0124: Toveisstrømmer over Synchronous HTTP (BOSH)
  10. XEP-0004: Dataskjemaer
  11. XEP-0030: Tjenesteoppdagelse
  12. XEP-0045: Multi-User Chat
  13. XEP-0071: XHTML-IM
  14. XEP-0096: Filoverføring
  15. XEP-0115: Entity Capabilities

Eksterne lenker