Como Funciona o Nexa: Arquitetura Técnica

O Nexa opera como um KVM virtual por software (Keyboard, Video, Mouse — sem transmissão de vídeo). Ele conecta computadores em rede local e transmite eventos de controle de periféricos em frações de milissegundo.

1. O Ciclo de Vida da Transição de Borda

Quando o usuário move o mouse até o limite direito ou esquerdo do monitor principal (Host), o SessionEngine do Nexa detecta o impacto na borda virtual:

  1. Supressão Local de Eventos: O hook do sistema operacional no Host suprime a movimentação do cursor local e trava sua renderização na borda para que ele não saia da área útil do monitor.
  2. Disparo do Pacote ScreenEnter: O Nexa calcula a coordenada relativa Y de entrada e normaliza esse valor em uma escala de 16 bits (0 a 65535).
  3. Transmissão Cifrada via TCP: O pacote é criptografado com ChaCha20-Poly1305 e enviado ao receptor.
  4. Injeção no Receptor (Guest): O computador de destino recebe o pacote e move o cursor para a borda oposta (ex: borda esquerda) na mesma altura proporcional.
💡
Coordenadas Normalizadas 2D: Se o Host possuir um monitor 4K (3840x2160) e o Guest uma tela Full HD (1920x1080), a conversão matemática garante que entrar a 50% da altura no 4K resultará em exatamente 50% da altura no Full HD, eliminando saltos bruscos de cursor.

2. Coalescência Adaptativa de Mouse (1000 Hz)

Mouses modernos de alta precisão operam com taxas de amostragem de 500 Hz ou 1000 Hz, disparando até 1.000 interrupções por segundo. Em redes locais Wi-Fi com múltiplos clientes, transmitir 1.000 pacotes individuais TCP causaria sobrecarga de overhead e jitter.

O crate nexa-core/src/coalescer.rs implementa um agregador temporal:

Lógica de Coalescência (Rust)
// Agrupa rajadas de deltas de movimento em janelas de 3 milissegundos
if let Some(elapsed) = last_event_time.elapsed() {
    if elapsed >= Duration::from_millis(3) {
        flush_consolidated_delta(accumulated_dx, accumulated_dy);
    }
}

Essa técnica reduz o consumo de banda e o processamento de pacotes em até 75%, preservando a suavidade e sem gerar latência humana perceptível.

3. Sincronização de Clipboard com Algoritmo Anti-Echo

Um dos problemas clássicos em softwares KVM legados é o "Clipboard Echo": quando o Computador A envia um texto para o Computador B, o sistema operacional de B dispara um evento informando que seu clipboard mudou, o que faria B reenviar o mesmo texto de volta para A, gerando um loop infinito que trava a rede.

O Nexa soluciona isso calculando um hash criptográfico SHA-256 de cada cópia:

  • Se o hash do clipboard local for idêntico ao último hash recebido pela rede, o envio é suprimido como eco.
  • Se o hash for idêntico ao último que já foi transmitido, o envio é suprimido como duplicata.
  • Possui limite de segurança de 10 MB contra estouro de memória e suporta formatação UTF-8 completa (acentos, kanjis, emojis e blocos de código).

4. Framing Binário de 16 Bytes com CRC32

Em vez de usar formatos pesados como JSON ou Protobuf sobre HTTP, o Nexa adota um cabeçalho binário ultra-compacto de 16 bytes:

Offset Tamanho Campo Função
0..4 4 bytes Magic Number Constante 0x4E455841 ("NEXA") para rejeição de tráfego aleatório.
4..5 1 byte Protocol Version Versão do protocolo binário (atual: 1).
5..6 1 byte Packet Type Identificador de mensagem (MouseMove, KeyPress, Clipboard, Ping, etc.).
6..8 2 bytes Sequence Number Contador sequencial para detecção de pacotes fora de ordem.
8..12 4 bytes Payload Length Tamanho exato em bytes dos dados que acompanham o cabeçalho.
12..16 4 bytes CRC32 Checksum Validador rápido de integridade física contra ruído de rede.

Continue Explorando o Nexa:

Descubra como os mecanismos de criptografia protegem cada sessão ou instale o Nexa na sua máquina:

Segurança & Criptografia ChaCha20 → Ir para o Guia de Instalação → Referência de Comandos da CLI →