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.killouexit) 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_closedoriundo do soquete hospedeiro ouStreamClosedderivado 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
YamuxSessionencontrar-se instanciado sem registro mapeado em seu fluxo interno para oStream IDcorrespondente 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.