Multidifucion
Multidifucion
Multidifucion
Antes del envío de la información, deben establecerse una serie de parámetros. Para
poder recibirla, es necesario establecer lo que se denomina "grupo multicast". Este
grupo multicast tiene asociada una dirección de Internet, de esta forma el emisor
del mensaje multicast lo envía a uno o varios grupos y, posteriormente, el mensaje
llega a los procesos que están suscritos a dicho grupo, pudiendo estar un proceso
suscrito a varios a la vez. La versión actual del protocolo de Internet (Internet
Protocol o IP), conocida como IPv4, reserva las direcciones de tipo D para la
multidifusión. Las direcciones IP tienen 32 bits, y las de tipo D son aquellas en
las cuales los 4 bits más significativos son '1110' (224.0.0.0 a 239.255.255.255).
Índice
1 Multidifusión en Internet
2 Cómo funciona
3 Fiabilidad
3.1 Multidifusión básica
3.2 Multidifusión fiable
3.2.1 Funcionamiento de la multidifusión fiable
4 Multidifusión Ordenada
4.1 Implementación de la ordenación FIFO
4.2 Implementación de la ordenación causal
4.3 Implementación de la ordenación total
5 En qué escenario resulta útil
6 Bibliografía
Multidifusión en Internet
Encaminamiento
Cast.svg
Única difusión
(unicast)
Unicast.svg
Alguna difusión
(anycast)
Anycast.svg
Amplia difusión
(broadcast)
Broadcast.svg
Múltiple difusión
(multicast)
Multicast.svg
Geodifusión
(geocast)
Geocast.svg
vde
Algunos ejemplos de multidifusión en internet son:
Fiabilidad
Bormann1 define el concepto de fiabilidad desde el punto de vista del emisor y del
receptor del mensaje. Desde el punto de vista del segundo, se considera que el
protocolo es fiable si este puede determinar cuándo está fallando. Por otro lado,
desde el punto de vista del emisor, se considera que es fiable si se asegura (con
suficiente probabilidad) que todos los mensajes llegan dentro de un tiempo límite a
todos los receptores no fallidos. Es decir, el término de fiabilidad está
ampliamente relacionado con los mecanismos de recuperación y detección de errores.
Multidifusión básica
En la multidifusión básica consideramos que la comunicación es fiable uno a uno. En
este tipo de multidifusión planteamos un protocolo en el que se usa un método de
recuperación de errores del tipo sender-initiated, es decir, aquel en el cual es el
emisor el responsable de la recuperación del error, consistiendo en que cada
receptor envía un acuse de recibo (ACK) al emisor cuando les llega un mensaje del
mismo.
En este tipo de multidifusión el mensaje se entrega al menos una vez, por lo que
pueden producirse problemas de duplicación. Además, decimos que es fiable uno a uno
ya que no cumple con el concepto de acuerdo o atomicidad: si un proceso recibe un
mensaje entonces todo el grupo lo recibe; o todos o ninguno.
En este método también se puede producir una implosión, pero de NACK. Para
evitarlo, si un determinado número de receptores no recibe el mensaje actual pero
recibe el siguiente, entonces estos comienzan un tiempo de espera aleatorio y el
NACK se mandará al emisor solamente una vez por el receptor cuyo tiempo aleatorio
termine antes. De este modo se consigue minimizar los NACK duplicados. Este tipo de
mecanismos son conocidos como RINA (Receiver-Initiated with NACK Avoidance).4
En la multidifusión fiable, un proceso emisor entrega un mensaje como mucho una vez
y sí que se cumple el concepto de acuerdo.
Envío multicast.
Consideraciones previas:
Recepción multicast.
Si {\displaystyle S}S = {\displaystyle R_{g}^{p}}{\displaystyle R_{g}^{p}} + 1: el
proceso q F-entrega el mensaje y aumenta {\displaystyle R_{g}^{p}}{\displaystyle
R_{g}^{p}} (número de mensajes recibidos de p).
Si {\displaystyle S}S {\displaystyle \leq }\leq {\displaystyle R_{g}^{p}}
{\displaystyle R_{g}^{p}}: el mensaje es un duplicado (ya se había recibido con
anterioridad) y por lo tanto es descartado.
Si {\displaystyle S}S {\displaystyle >}> {\displaystyle R_{g}^{p}}{\displaystyle
R_{g}^{p}} + 1 ó {\displaystyle R}R {\displaystyle >}> {\displaystyle R_{g}^{p}}
{\displaystyle R_{g}^{p}}: el proceso q manda un acuse de recibo negativo (NACK) a
p indicando que ha perdido uno o más mensajes.
Como se ve en la imagen de la derecha, el mensaje actual es entregado por q y por r
aunque queden mensajes anteriores por llegar, es decir, los mensajes llegan en
distinto orden para los diferentes procesos. Este aspecto se soluciona utilizando
otro tipo de multidifusión conocida como multidifusión ordenada.
En el caso de que sea el proceso emisor el que ha perdido mensajes, será notificado
por el proceso correspondiente con un NACK.
Multidifusión Ordenada
El algoritmo de multidifusión fiable sobre IP-multicast no garantiza que los
mensajes lleguen siempre en el mismo orden y esto puede ser un problema para las
aplicaciones que requieren un orden.
Tipos de ordenación
Pj espera hasta que haya entregado todo mensaje enviado por parte de pj
Pi espera a que cualquier mensaje que pj hubiese entregado hasta el instante de
tiempo en el que envió el mensaje.
Implementación de la ordenación total
La manera básica de implementar la ordenación total es asignar identificadores
totalmente ordenados a los mensajes que se multidifunden de tal forma que todo
proceso realice la misma ordenación basada en esos identificadores.
Secuenciador
El proceso elegido como secuenciador es el encargado de ordenar los mensajes.
Agq: mayor número de secuencia acordado para el grupo g n Pgq: mayor número de
secuencia propuesto para el grupo g
Cada proceso q responde a p con una propuesta Pgq =máx(Agq, Pgq )+1
Bibliografía
AUTORES, VARIOS (2015). «15. Coordination and Agreement». ''Distributed Systems,
Concepts and Design'' (en inglés) (5ª edición). Pearson pp. 646-660 ISBN 978-1-
4479-3017-4.
Sistemas Distribuidos - Coordinación y Acuerdo
Alberto Lafuente, Mikel Larrea. UPV- EHU Comunicación a grupos
Rodrigo Santamaría. Apuntes Sistemas Distribuidos Universidad de Salamanca. Tema 5
- Coordinación y acuerdo
Bormann, C.; Ott, J.; Gehrcke, H.; Seifert, N. (1994). «MTP-2: Towards Achieving
the S.E.R.O. Properties for Multicast Transport». Proceedings of ICCCN.
Floyd, S.; Jacobson, V.; Liu, C. -G.; McCanne, S.; Zhang, L. (December 1997). «A
reliable multicast framework for light-weight sessions and application level
framing». IEEE/ACM Transactions on Networking 5 (6): 784-803.
doi:10.1109/90.650139.
Brandt, Joseph J. (26 May 1998). «Reliable multicast protocols and their
application on the Green Bank Telescope». Proc. SPIE 3351, Telescope Control
Systems III.
Kostin, A.; Ilushechkina, L. (June 2010). Modeling and Simulation of Distributed
Systems.
Coulouris, George F. (2012). Distributed systems : concepts and design. Addison-
Wesley / Pearson Education Ltd. ISBN 978-1-4479-3017-4. OCLC 899731054. Consultado
el 27 de junio de 2020.