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:*
- *Frame Reassembly Buffer:* O Ator de conexão agora mantém um buffer binário persistente.
- *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.
- *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.