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
- LamportClock: Implementa o relógio lógico de Lamport
- ReliableMulticast: Classe principal que gerencia a comunicação entre processos
- Sistema de ACK: Mecanismo de confirmação para garantir entrega confiável
- 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
}