Resumo

  • Ao descobrir tarde que um estado anterior precisa mudar, o Presto injeta na entrada um pseudosegmento sem payload para a lógica comum executar a correção.
  • O artefato é autoritativo para o transporte, não para a aplicação. Proveniência, mutação, DMA, aviso ao host, resultado do socket e efeito final precisam de recibos próprios.

Uma escrita reversa representada como evento novo

Uma CPU pode revisitar memória durante uma rotina TCP. Um pipeline RMT move o vetor do pacote por estágios fixos e só acessa estado local. No reassembly, o fechamento de um gap exige avançar next-seq e devolver espaço em avail, mas só fica conhecido ao ler ooo-head num estágio posterior.

O paper do Presto resolve a dependência com mirroring. O estágio posterior envia um pseudosegmento à cabeça do pipeline. Ele não leva dados da aplicação; codifica o intervalo recém-contíguo. Tratado como segmento in-order comum, faz a lógica avançar sequência, reduzir janela e apagar o intervalo OOO. A máquina não voltou: recebeu outro evento que produz o efeito necessário.

Isso dá autoridade operacional estreita ao pseudosegmento. Ele muda TCP state, mas não retransmite os bytes do usuário e não prova leitura, persistência ou decisão da aplicação.

A validação vem depois da especulação

No controle básico de janela, o Presto avança next-seq de modo otimista e só depois atualiza avail e faz a checagem definitiva. Se o emissor ultrapassa a janela, o segmento é descartado e o control plane restaura o estado. Enquanto isso, avail negativo rejeita tráfego seguinte e uma janela zero pausa o emissor. O payload só é aceito após validação final.

O pseudosegmento também é best-effort. Se cair sob congestionamento, o intervalo permanece e um trigger posterior injeta outro. A consistência é eventual. Tráfego in-order intermediário pode tornar parte dele obsoleta; o trimming normal remove a sobreposição e evita dupla contagem. Emitir não é concluir.

Da memória até o efeito de negócio

O Presto pode fazer DMA de payload recebido para a memória do host, inclusive fora de ordem. Um bloco separado notifica a libPresto sobre o maior offset contíguo disponível. Ao fechar um gap, esse aviso pode sair antes do merge posterior pelo pseudosegmento.

DMA prova escrita em buffer; notificação prova exposição pela biblioteca; o socket tem seu retorno; a aplicação precisa confirmar o que consumiu e efetivou. Um ACK TCP também permanece evidência de transporte, não de armazenamento ou execução superior.

O protótipo foi apresentado na ACM SIGCOMM 2026, DOI 10.1145/3789240.3829111. O repositório e o texto dos autores na APNIC permitem reprodução e escrutínio; não provam adoção em produção, compatibilidade universal ou replicação independente.

Um registro defensável separa identidade do segmento real, hipótese, validação, trigger, proveniência e época do pseudosegmento, mutação, retransmissão/reassembly, DMA, notificação, socket, application receipt e rollback.

Fontes