robot de la enciclopedia para niños

Extensible Messaging and Presence Protocol para niños

Enciclopedia para niños
Datos para niños
Extensible Messaging and Presence Protocol
XMPP logo.svg
Familia Internet
Función Mensajería instantánea
Puertos

5222/TCP (Cliente a servidor)
5269/TCP (Servidor a servidor)

5223/TCP (SSL)
Ubicación en la pila de protocolos
Aplicación XMPP
Transporte TCP
Red IP
Estándares

RFC 6120 (Principal)
RFC 6121 (Mensajería instantánea y presencia)
RFC 6122 (Formato de direcciones)
RFC 3922 (CPIM)

RFC 3923 (Cifrado)

Extensible Messaging and Presence Protocol, más conocido como XMPP (Protocolo extensible de mensajería y comunicación de presencia) (anteriormente llamado Jabber), es un protocolo abierto y extensible basado en XML, originalmente ideado para mensajería instantánea.

Con el protocolo XMPP queda establecida una plataforma para el intercambio de datos XML que puede ser usada en aplicaciones de mensajería instantánea. Las características en cuanto a adaptabilidad y sencillez del XML son heredadas de este modo por el protocolo XMPP.

A diferencia de los protocolos propietarios de intercambio de mensajes como ICQ, Y! y Windows Live Messenger, se encuentra documentado y se insta a utilizarlo en cualquier proyecto. Existen servidores y clientes libres que pueden ser usados sin coste alguno.

Tras varios años de su existencia, ha sido adoptado por empresas como Facebook, WhatsApp Messenger y Nimbuzz, entre otras, para su servicio de chat.

Google lo adoptó para su servicio de mensajería Google Talk, y en 2013 anunció que lo abandonaría en favor de su protocolo propietario Hangouts.

Historia

Jeremie Miller comenzó el proyecto Jabber en 1998. Su primera liberación de software importante sucedió en mayo de 2000. El principal producto del proyecto era jabberd, un servidor XMPP.

Este protocolo XMPP inicial creó las bases para el XMPP, publicado como RFC 3920. A menudo, ha sido considerado competidor de SIMPLE, basado en el protocolo SIP, como protocolo estándar de mensajería instantánea y notificación de presencia.

En agosto de 2005, Google introdujo Google Talk, una combinación de VoIP y sistemas de gestión de identidades que usa XMPP para sus funciones de mensajería instantánea y como base para su protocolo de señalización de transferencias y su sistema de voz. El lanzamiento inicial no incluía comunicaciones de servidor a servidor, pero el 17 de enero de 2006, fueron añadidas. Desde este año existió cerca de una media docena de implementaciones de servidores XMPP, escritos en diferentes lenguajes de programación.

Jabber Software Foundation fue renombrado como XMPP Standards Foundation el 15 de enero de 2007.

Desventajas

Descentralización y direccionamiento

Archivo:JabberNetwork
Funcionamento de la red the XMPP con transportes a otros servicios y recursos XMPP.

La red XMPP está basada en servidores, pero descentralizada; por diseño, no hay ningún servidor central, como sucede con servicios como AOL Instant Messenger o MSN Messenger. Sobre este punto, surge cierta confusión, puesto que existe un servidor XMPP público en "Jabber.org", al que están suscritos un gran número de usuarios, pero no hay que olvidar que cualquiera puede poner en marcha su propio servidor. El puerto estándar utilizado para XMPP es el 5222.

Cada usuario en la red XMPP tiene un único identificador (Jabber ID, normalmente abreviado como JID). Para evitar la necesidad de un servidor central con una lista exhaustiva de identificadores, el Jabber ID está estructurado como una dirección de correo electrónico, con un nombre de usuario y una dirección DNS para el servidor en el que reside el usuario, separado por un signo @. Un identificador Jabber sería algo como nombredeusuario@dominio.com.

Como un usuario puede querer identificarse desde distintos lugares, el servidor permite al cliente especificar una cadena de referencia conocida como recurso, que identifica el cliente que está utilizando el usuario (por ejemplo: casa, trabajo, portátil, etc.). Esto será incluido en el JID añadiendo un carácter / seguido del nombre del recurso. Cada recurso debe tener especificada un valor numérico de prioridad. Por ejemplo el JID completo de la cuenta del trabajo del usuario sería: nombredeusuario@dominio.com/trabajo. Los mensajes de la forma nombredeusuario@dominio.com serán dirigidos al cliente con mayor prioridad, y los de la forma nombredeusuario@dominio.com/trabajo serán dirigidos al cliente del trabajo.

Los JID sin la parte del nombre de usuario también son válidos y se utilizan para enviar mensajes de sistema y control.

Proceso de entrega de mensajes

Supongamos que julieta@capulet.com desea chatear con romeo@montague.net. Julieta y Romeo tienen sus respectivas cuentas en los servidores capulet.com y montague.net. Cuando Julieta escribe y envía su mensaje, entra en acción la siguiente secuencia de eventos:

  1. El cliente de Julieta envía su mensaje al servidor capulet.com.
    • Si el servidor capulet.com no tiene acceso al servidor montague.net , el mensaje es desechado.
  2. El servidor capulet.com abre una conexión con el servidor montague.net.
  3. El servidor montague.net entrega el mensaje a Romeo.
    • Si el servidor capulet.com no tiene acceso al servidor montague.net, el mensaje es desechado.
    • Si Romeo no está conectado, el mensaje es guardado para su posterior entrega.

Conectando a otros protocolos

Archivo:Wie ein Jabber-Transport funktioniert
Alice envía un mensaje a través de la red XMPP a la pasarela de ICQ, posteriormente, el mensaje es dirigido a Bob mediante la red ICQ.

Otra característica muy útil del protocolo XMPP son las pasarelas, que permiten a los usuarios el acceso a redes con otros protocolos de mensajería instantánea como MSN Messenger, ICQ u otros tipos de mensajería como SMS o Correo electrónico. Este servicio no es proporcionado desde el cliente, sino desde el servidor mediante servicios de pasarela que proporcionan conectividad con alguna otra red. Cualquier usuario se puede registrar con alguna de estas pasarelas proporcionando sus datos de acceso a la nueva red como nombre de usuario y contraseña, y comunicarse con los usuarios de la nueva red. Esto significa que cualquier cliente XMPP puede ser usado para acceder cualquier red para la que haya una pasarela, sin necesidad de adaptar el cliente o de que tenga acceso directo a Internet.

XMPP y HTTP

Gran parte de los cortafuegos están configurados para permitir el paso del tráfico TCP dirigido al puerto usado por el protocolo HTTP, mientras que por lo general se bloquea el puerto utilizado por XMPP. Para solucionar este problema, XMPP utiliza HTTP para permitir el acceso a los usuarios que se encuentran tras cortafuegos. En las especificaciones originales, XMPP podía utilizar HTTP de dos formas:

  • Polling: Ya no está en uso, básicamente se trataba de utilizar las funciones 'GET' y 'POST' de HTTP para enviar los mensajes al servidor a intervalos de tiempo regulares.
  • Binding: Con este método, el cliente utiliza conexiones HTTP de vida más larga para recibir los mensajes tan pronto como son enviados. Este modelo es más eficiente que el de polling.

Existen algunos servidores públicos que escuchan en los puertos estándar HTTP y HTTPS, permitiendo la conexión mediante XMPP desde detrás de la mayoría de los cortafuegos.

Pasarela

Las pasarelas o transportes (del inglés transport) son un servicio ofrecido por diversos servidores que permiten la interoperabilidad de la red XMPP con otros protocolos de mensajería instantánea (como los empleados por Windows Live Messenger, Yahoo! Messenger, AOL Instant Messenger, ICQ, etcétera).Para ello es necesario registrarse a este servicio en el servidor XMPP que lo ofrezca. Esto no hace necesario disponer de una cuenta en este servidor, ya que muchos de ellos permiten la suscripción a cualquier JID.

Clientes

Algunos clientes que implementan el protocolo XMPP son:

  • Dino: Cliente de XMPP basado en GTK+, programado en Vala. Se centra en brindar una interfaz de usuario integrada con el sistema, moderna y limpia. Actualmente está disponible para sistemas GNU/Linux y soporta encriptación OMEMO y GPG. El programa es distribuido bajo los términos de la licencia GNU GPL.
  • iChat: Cliente de Mensajería instantánea incluido en el Sistema operativo OS X de Apple.
  • Freelab messenger  : Cliente de Mensajería instantánea para el Sistema operativo Android con comunicación cifrada
  • Psi: Un cliente con licencia GNU GPL que se puede utilizar bajo Windows, Linux, u OS X.
  • Gajim: Cliente multiplaforma disponible para Windows y GNU/Linux. Se encuentra programado en Python y para la interfaz utiliza PyGTK. Al igual que Psi es un cliente solo enfocado a Jabber.
  • Pidgin (software): Uno de los clientes más usados en GNU/Linux, soporta otros protocolos como el de MSN, Yahoo!, etc.
  • Telepathy: La infraestructura de Freedesktop.org para comunicación en tiempo real. Es la predeterminada para Ubuntu, Maemo y Meego.

Desarrollo

El grupo de trabajo IETF XMPP ha producido los siguientes documentos RFC:

RFC 3920, RFC 3921, RFC 3922, RFC 3923, RFC 4622, RFC 4854, RFC 4979

  • RFC 3920, Extensible Messaging and Presence Protocol (XMPP), core: Describe la mensajería Cliente-servidor mediante el uso de dos flujos XML. Los flujos XML consisten en <presence/>, <message/> y <iq/> (info/query). Una conexión es autentificada mediante SASL y cifrado mediante TLS.
  • RFC 3921, Extensible Messaging and Presence Protocol (XMPP), Instant Messaging and Presence: Describe la Mensajería instantánea, la aplicación más común del protocolo XMPP.
  • RFC 3922, Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM): Describe las especificaciones del protocolo XMPP.
  • RFC 3923, End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP): Describe el cifrado extremo a extremo de los mensajes XMPP usando S/MIME.

Las siguientes extensiones son de uso particularmente extendido:

  • Data Forms
  • Service Discovery
  • Multi-User Chat
  • XHTML-IM
  • File Transfer
  • Entity Capabilities

Actualmente el protocolo XMPP está siendo ampliado para el manejo VoIP. El protocolo de señalización que se utilizará es Jingle, que está diseñado para ser compatible con el servicio de Google Talk.

Véase también

Kids robot.svg En inglés: Extensible Messaging and Presence Protocol Facts for Kids

kids search engine
Extensible Messaging and Presence Protocol para Niños. Enciclopedia Kiddle.