Skip to content

Projeto Reliable Multicast com Relógio de Lamport

Para visualizar o código fonte do projeto visite: projeto multicast.

Visão Geral

Este projeto implementa um sistema de comunicação distribuída que combina: - Reliable Multicast: Garantia de entrega confiável de mensagens para todos os processos - Relógio de Lamport: Ordenação lógica de eventos em sistemas distribuídos assíncronos

Arquitetura do Sistema

Componentes Principais

  1. LamportClock: Implementa o relógio lógico de Lamport
  2. ReliableMulticast: Classe principal que gerencia a comunicação entre processos
  3. Sistema de ACK: Mecanismo de confirmação para garantir entrega confiável
  4. Buffer de Mensagens: Controle de duplicatas e reordenação

Protocolo de Comunicação

1. Envio de Mensagem

Processo A                           Processos B, C, D
    |                                        |
    |-- Increment Lamport Clock              |
    |-- Create Message with Timestamp        |
    |-- Send to All Peers ------------------>|
    |-- Deliver Locally                      |-- Receive Message
    |-- Wait for ACKs                        |-- Update Lamport Clock
    |                                        |-- Send ACK
    |<-- Receive ACKs -----------------------|-- Deliver Message
    |-- Mark as Confirmed                    |

2. Estrutura das Mensagens

Mensagem Multicast:

{
    "type": "MULTICAST",
    "id": "P1_1",
    "sender": "P1",
    "content": "Hello World",
    "lamport_time": 5,
    "timestamp": "2025-06-28T10:30:45.123"
}

Mensagem de ACK:

{
    "type": "ACK",
    "msg_id": "P1_1",
    "sender": "P2",
    "lamport_time": 6
}