Files
pitiupi/docs/documentation/16_fundamentacao_redes.md
T
Gabriel Felipe Souza SantosandCursor f02acaf131 Consolida documentação e plugins de referência ao núcleo atual.
Alinha mpChat e screenCast a ConnectionManager/GuiManager, adiciona docs em docs/ e README de plugins; remove artefatos de build do índice.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 21:20:20 -03:00

1.8 KiB

Fundamentação — redes e código

Mapa entre conceitos de Redes de Computadores e o Pitiupi. Aprofundamento: references/README.md.

Camada de aplicação P2P

Conceito No Pitiupi
Aplicação distribuída sem servidor dedicado Cada peer executa o mesmo núcleo + plugins
Identidade do participante Nome no login + HeartbeatMessage (instância)
Broadcast lógico UDP multicast no grupo 224.0.0.3
Comunicação 1:1 UDP unicast ou TCP com conexão persistente

UDP

  • Sem conexão; mensagens delimitadas por datagrama.
  • Multicast economiza envios para todos os peers do grupo.
  • Limitações: perda, ordem, MTU — relevante para plugins com imagens (screenCast).

Doc: 05_udp_multicast.md.

TCP

  • Conexão orientada a fluxo; o núcleo adiciona framing (tamanho + payload).
  • Uma conexão por endereço de peer reutilizada para várias mensagens.
  • Fechamento quando peer some do heartbeat.

Doc: 06_tcp_conexoes.md.

Presença

Heartbeats periódicos em UDP; timeout ~15 s. Analogia com “keepalive” de presença, não com camada de transporte confiável.

Doc: 08_heartbeat_e_presenca.md.

Serialização

Objetos Java Serializable em byte[] — acoplamento de versão de classes entre peers (mesmo plugin instalado).

Doc: 07_mensagens_e_serializacao.md.

Extensibilidade

SPI e classloader por JAR — padrão de plug-in em aplicações Java.

Doc: 09_sistema_de_plugins.md.

Leitura complementar