Una multidifusión confiable es cualquier protocolo de red informática que proporciona una secuencia confiable de paquetes a múltiples destinatarios simultáneamente, lo que lo hace adecuado para aplicaciones como la transferencia de archivos entre múltiples receptores .
La multidifusión es un método de direccionamiento de red para la entrega de información a un grupo de destinos simultáneamente utilizando la estrategia más eficiente para entregar los mensajes a través de cada enlace de la red solo una vez, creando copias solo cuando los enlaces a los múltiples destinos se dividen (normalmente, los conmutadores de red y enrutadores ). Sin embargo, al igual que el Protocolo de datagramas de usuario , la multidifusión no garantiza la entrega de un flujo de mensajes. Los mensajes pueden perderse, entregarse varias veces o entregarse fuera de orden. Un protocolo de multidifusión confiable agrega la capacidad de que los receptores detecten mensajes perdidos o desordenados y tomen medidas correctivas (similares en principio a TCP ), lo que da como resultado un flujo de mensajes en orden y sin interrupciones.
El significado exacto de confiabilidad depende de la instancia de protocolo específica. Una definición mínima de multidifusión confiable es la entrega final de todos los datos a todos los miembros del grupo, sin imponer ningún orden de entrega en particular . [1] Sin embargo, no todos los protocolos de multidifusión confiables garantizan este nivel de confiabilidad; muchos de ellos intercambian eficiencia por confiabilidad, de diferentes maneras. Por ejemplo, mientras que TCP responsabiliza al remitente de la confiabilidad de la transmisión, los protocolos de multidifusión basados en NAK transfieren la responsabilidad a los receptores: el remitente nunca sabe con certeza si todos los receptores han recibido todos los datos. [2] RFC-2887 explora el espacio de diseño para la transferencia masiva de datos, con una breve discusión sobre los diversos temas y algunas sugerencias sobre los posibles diferentes significados de confiable .
La entrega confiable de datos grupales (RGDD) es una forma de multidifusión en la que un objeto debe moverse desde una única fuente a un conjunto fijo de receptores conocidos antes de que comience la transmisión. [3] [4] Una variedad de aplicaciones pueden necesitar dicha entrega: el sistema de archivos distribuido Hadoop (HDFS) replica cualquier fragmento de datos dos veces adicionales en servidores específicos, es posible que se requiera la replicación de VM en múltiples servidores para escalar horizontalmente las aplicaciones y la replicación de datos. a varios servidores puede ser necesario para el equilibrio de carga al permitir que varios servidores proporcionen los mismos datos desde sus copias en caché locales. Esta entrega es frecuente en los centros de datos debido a la gran cantidad de servidores que se comunican mientras ejecutan aplicaciones altamente distribuidas.
RGDD también puede ocurrir entre centros de datos y, a veces, se lo denomina transferencias punto a multipunto (P2MP) entre centros de datos. [5] Estas transferencias entregan enormes volúmenes de datos desde un centro de datos a múltiples centros de datos para diversas aplicaciones: los motores de búsqueda distribuyen actualizaciones de índices de búsqueda periódicamente (por ejemplo, cada 24 horas), las aplicaciones de redes sociales envían contenido nuevo a muchas ubicaciones de caché en todo el mundo (por ejemplo, YouTube y Facebook), y los servicios de respaldo realizan varias copias dispersas geográficamente para aumentar la tolerancia a fallas. Para maximizar la utilización del ancho de banda y reducir los tiempos de finalización de las transferencias masivas, se han propuesto una variedad de técnicas para la selección de árboles de reenvío de multidifusión. [5] [6]
Los sistemas modernos como Spread Toolkit , Quicksilver y Corosync pueden alcanzar velocidades de datos de 10.000 multidifusiones por segundo o más, y pueden escalar a grandes redes con una gran cantidad de grupos o procesos.
La mayoría de las plataformas informáticas distribuidas admiten uno o más de estos modelos. Por ejemplo, todas las plataformas CORBA orientadas a objetos ampliamente admitidas admiten transacciones y algunos productos CORBA admiten la replicación transaccional en el modelo de serialización de una copia. El "estándar CORBA Fault Tolerant Objects" se basa en el modelo de sincronía virtual. La sincronía virtual también se utilizó en el desarrollo de la arquitectura de tolerancia a fallas de la Bolsa de Nueva York, el sistema de control de tráfico aéreo francés, el sistema AEGIS de la Marina de los EE. UU., la arquitectura de replicación de procesos comerciales de IBM para WebSphere y la arquitectura Windows Clustering de Microsoft para servidores empresariales Windows Longhorn . [7]
La sincronía virtual fue apoyada por primera vez por la Universidad de Cornell y se llamó "Isis Toolkit". [8] La versión más actual de Cornell, Vsync , se lanzó en 2013 con el nombre de Isis2 (el nombre se cambió de Isis2 a Vsync en 2015 a raíz de un ataque terrorista en París por parte de una organización extremista llamada ISIS), con actualizaciones y revisiones periódicas. desde ese tiempo. La versión estable más actual es la V2.2.2020; fue estrenado el 14 de noviembre de 2015; la versión V2.2.2048 está actualmente disponible en forma Beta. [9] Vsync apunta a los centros de datos masivos que admiten la computación en la nube .
Otros sistemas similares incluyen el sistema Horus [10] el sistema Transis, el sistema Totem, un sistema IBM llamado Phoenix, un sistema distribuido de administración de claves de seguridad llamado Rampart, el "sistema Ensemble", [11] el sistema Quicksilver , "El proyecto OpenAIS ", [12] su derivado Corosync Cluster Engine y varios productos (incluidos los de IBM y Microsoft mencionados anteriormente).