Gleam.br Wiki

GBR: Requisitos Operacionais para o Túnel Multiplexado P2P (`gbr_tunnel`) | Wiki

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

GBR: Requisitos Operacionais para o Túnel Multiplexado P2P (gbr_tunnel)

*Requisitos Ubíquos (Ubiquitous Requirements)*

  • *UBQ-01:* O sistema de tunelamento P2P não deve interpretar ou reescrever o conteúdo das requisições TCP (à exceção da triagem de metadados da própria conexão P2P), devendo operar unicamente na modalidade TCP Pass-through (Proxy Cego).
  • *UBQ-02:* A interface de linha de comandos (CLI) que inicia os perfis Gateway (Servidor) e Agente (Cliente) deve invocar nativamente os comandos de encerramento (process.kill ou exit) na ocorrência de interrupção subjacente de qualquer socket, prevenindo conexões zumbis e fugas de recursos.

*Requisitos Orientados a Eventos (Event-Driven Requirements)*

  • *EVD-01:* Quando o Gateway receber um pacote com destino ao aplicativo enclausurado, o processo local de roteamento (server_stream_loop) deve invocar de forma imediata o repasse do pacote (yamux.Send(data)) para a conexão Yamux instanciada, evitando armazenamento persistente em memória (buffer-bloat).
  • *EVD-02:* Quando o atuador Piper intercetar um pacote de encerramento prematuro (tcp_closed oriundo do soquete hospedeiro ou StreamClosed derivado da malha Yamux), o sistema deve fechar a ponta sobrevivente do fluxo e emitir a sinalização final de destruição de ator, libertando imediatamente o respectivo PID da Máquina Virtual (BEAM).

*Requisitos Orientados a Estado (State-Driven Requirements)*

  • *STD-01:* Enquanto o YamuxSession encontrar-se instanciado sem registro mapeado em seu fluxo interno para o Stream ID correspondente aos pacotes de entrada, o roteador deverá enfileirar o pacote recém-chegado num Early Data Buffer, preservando o evento de entrega de rede até que a negociação criptográfica seja resolvida e o handler do Ator seja montado.

*Requisitos de Comportamento Indesejado (Unwanted Behavior Requirements)*

  • *UNW-01:* Se a comunicação TCP adjacente submeter pacotes massivos aglutinados por ação do Algoritmo de Nagle (TCP Coalescing), o decodificador interno não deve processar de forma excludente apenas a primeira seção decodificada; deve prosseguir através de um laço de recursividade na cauda de dados (rest:bits) processando exaustivamente todos os fluxos independentes.

*Requisitos de Funcionalidades Opcionais / Futuras (Optional Feature Requirements)*

  • *OPT-01:* Em casos onde o serviço tunelado solicite explicitamente, o módulo Gateway da nuvem deve ter capacidade de mapear domínios baseados em SNI (Server Name Indication), despachando o roteamento da solicitação ao Cliente P2P apropriado com base no domínio requisitado (ex: cliente_db.telemetry.fvideen.com), sem a requisição manual de alocação de portas TCP exclusivas no servidor para cada cliente.