Gleam.br Wiki

GBR: ADR-0012 Buffer de Remontagem para Fragmentação TCP (Noise Handshake) | Wiki

Documentação de engenharia e especificações técnicas da Gleam-BR.

GBR: ADR-0012 Buffer de Remontagem para Fragmentação TCP (Noise Handshake)

  • *Status:* Aceito
  • *Data:* 2026-05-01

*Contexto:*

Identificou-se que pacotes Noise de tamanho médio (ex: 1187 bytes contendo identidades Protobuf/Ed25519) sofriam fragmentação física no TCP. O decodificador original tentava processar buffers incompletos, resultando em erros de decriptação (decrypt error) que impediam o estabelecimento do túnel seguro.

*Decisão:*

  1. *Frame Reassembly Buffer:* O Ator de conexão agora mantém um buffer binário persistente.
  2. *Parsing Recursivo de Frames u16:* O sistema lê o prefixo de 2 bytes (comprimento) e aguarda até que o buffer contenha a carga útil completa antes de invocar o NIF de criptografia.
  3. *Tratamento de Coalescing:* Em redes de baixa latência, o parser utiliza recursão para extrair múltiplos frames Yamux que chegam aglutinados em um único evento de rede.

*Consequências:*

  • *Positivas:* Estabilidade absoluta do handshake Noise e da multiplexação Yamux independentemente da latência da rede ou do MTU.
  • *Negativas/Riscos:* Aumento marginal no consumo de memória RAM por conexão para manter os fragmentos residuais.