En redes de computadoras, el Protocolo de retransmisión de sesión de mensajes ( MSRP ) es un protocolo para transmitir una serie de mensajes instantáneos relacionados en el contexto de una sesión de comunicaciones. Una aplicación crea una instancia de la sesión con el Protocolo de descripción de sesión (SDP) sobre el Protocolo de inicio de sesión (SIP) u otros métodos de encuentro .
El protocolo MSRP se define en RFC 4975 . [1] Los mensajes MSRP también se pueden transmitir utilizando intermediarios pares, utilizando las extensiones de retransmisión definidas en RFC 4976 . [2]
MSRP se utiliza en el contexto RCS , especialmente para las funciones de mensajería instantánea , transferencia de archivos y uso compartido de fotos .
Diseño de protocolo
MSRP tiene una sintaxis similar a otros protocolos basados en texto IETF como SIP, HTTP y RTSP . Cada mensaje es una solicitud o una respuesta, utiliza URI , un mensaje contiene encabezados y un cuerpo que puede contener cualquier tipo de datos, incluida información binaria. A diferencia de SIP, MSRP es mucho más simple. Los primeros 2 encabezados deben ser To-Path y From-Path y el último debe ser Content-Type, esto reduce significativamente la complejidad de los analizadores. Los mensajes también deben terminar con 7 guiones ('-') caracteres, seguidos de un identificador de transacción que aparece en la primera línea, estos son seguidos por una bandera de continuación, que es un solo carácter y final de línea (CRLF). Esta última línea al final de los mensajes hace que sea bastante sencillo encontrar y detectar los límites del mensaje. El MSRP no está definido para protocolos sin conexión, como UDP, por lo que uno puede estar seguro de que una respuesta a una solicitud llegaría a la misma conexión. El MSRP también se basa en una capa de transporte confiable, es decir, garantiza la entrega y mantiene el orden de los mensajes, lo que simplifica aún más el diseño del protocolo.
Un URI de MSRP tiene un esquema (que es "msrp" o "msrps"), autoridad, como se define en RFC 3986, que contiene la IP / nombre de dominio y posiblemente el puerto, un identificador de sesión opcional, el transporte y parámetros opcionales adicionales. Por ejemplo:
msrp://atlanta.example.com:7654/jshA7weztas;tcp
msrp
es el esquemaatlanta.example.com:7654
es la autoridadjshA7weztas
es el identificador de sesióntcp
es el transporte
Uso en SIP
El MSRP se puede utilizar dentro de una sesión SIP :
- para enviar mensajería instantánea en modo uno a uno o uno a muchos
- hacer una transferencia de archivo adjunto
- compartir algunas fotos (por ejemplo, compartir imágenes ) en función del intercambio previo de capacidades entre los puntos finales del usuario
La sesión de MSRP se configura a través del modelo de oferta-respuesta [3] de SIP . El tipo de medio SDP m-line es mensaje y el protocolo es TCP / MSRP para MSRP sobre TCP y TCP / TLS / MSRP para MSRP sobre TLS seguro. Además, el URI de MSRP se especifica en un atributo de ruta .
Un ejemplo completo de SDP, como lo proporciona el RFC:
v = 0o = alice 2890844526 2890844527 EN IP4 alice.example.coms = -c = EN IP4 alice.example.comt = 0 0m = mensaje 7394 TCP / MSRP *a = aceptar-tipos: texto / planoa = ruta: msrp: //alice.example.com: 7394 / 2s93i9ek2a; tcp
La dirección y el puerto están contenidos en las líneas c y m, pero también en el atributo de ruta en una línea a. Generalmente, otros tipos de medios usan la línea c y la línea m para describir la dirección y el puerto, pero la sección 8.1 de MSRP RFC 4975 dice que el atributo de ruta es la fuente autorizada para MSRP.
Implementaciones
Se implementa una biblioteca de pares genérica y de código abierto en los siguientes lenguajes de programación:
Bibliotecas
- La biblioteca MSRP Peer de Java , que generó [4] los siguientes puertos:
- Versión de C # /. Net
- Java ME
- Python MSRPlib
Clientela
- Blink es un cliente SIP multiplataforma con soporte de protocolo MSRP.
Servidores
Ver también
Referencias
- ^ RFC 4975, Protocolo de retransmisión de sesión de mensajes (MSRP) , B. Campbell (Ed.), R. Mahy (Ed.), C. Jennings (Ed.), The Internet Society (septiembre de 2007)
- ^ RFC 4976, Extensiones de retransmisión para el protocolo de retransmisión de sesión de mensajes (MSRP) , C. Jennings (Ed.), R. Mahy (Ed.), AB Roach (Ed.), The Internet Society (septiembre de 2007)
- ^ RFC 3264, Un modelo de oferta / respuesta con el Protocolo de descripción de sesión (SDP) , IETF, The Internet Society (2002)
- ^ [1] Página web de la biblioteca de pares Java de MSRP