Resumo

  • Uma trama DATAGRAM torna o pacote QUIC que a contém ack-eliciting; o ACK pode permitir que o emissor avise sua aplicação de que o datagrama foi transmitido e recebido.
  • A seção 5.2 da RFC 9221 restringe esse aviso ao processamento da trama pela camada de transporte do receptor, sem garantia de processamento bem-sucedido pela aplicação.

Toda confirmação é mais confiável quando não promete aquilo que não viu. O ACK de um pacote QUIC pode ter uma aparência de linha final: existe uma confirmação e existe uma notificação local para o emissor. Para DATAGRAM, porém, a norma fixa a linha em outra posição. O que foi confirmado é o trabalho do transporte no receptor, não a interpretação posterior do conteúdo.

Publicada em março de 2022, a RFC 9221 tem Tommy Pauly, E. Kinnear e David Schinazi entre seus autores. Ela introduz tramas DATAGRAM para dados de aplicação não confiáveis em QUIC. Essas tramas provocam ACK. Ao receber o reconhecimento de um pacote que contém uma delas, a implementação emissora pode comunicar a sua aplicação que o datagrama foi transmitido e recebido. Esse é um registro de transporte específico e útil.

O texto da seção 5.2 impede que ele seja expandido sem prova. O ACK indica que a camada de transporte receptora processou a trama; não garante que a aplicação receptora tenha processado os dados com êxito. Não diz que o conteúdo foi analisado, que uma regra semântica foi satisfeita, que um estado foi persistido nem que uma ação foi concluída.

A ausência de retransmissão após a detecção de perda torna a responsabilidade ainda mais nítida. Dados DATAGRAM não são retransmitidos nesse momento. Cabe ao protocolo de aplicação definir identificadores de multiplexação, o significado dos dados e qualquer confirmação de entrega ou processamento que deseje. Um recibo de aplicação é, portanto, outro objeto: tem seu próprio identificador, condição de sucesso, temporização e caminho de falha. A recuperação de perda e o controle de congestionamento de QUIC, contextualizados nas RFCs 9000 e 9002, não criam esse recibo.

O parâmetro recebido max_datagram_frame_size também não deve ser inflado. Um valor não nulo declara a disposição de um extremo para receber DATAGRAM até esse tamanho, naquela conexão e naquela direção. Não é evidência de envio, uso, compreensão ou conclusão de uma operação. A publicação da RFC e a autoria pública tampouco demonstram adoção em um endpoint, produto ou rede determinada.

O princípio de especificação inicial mínima de Heng Lu oferece uma boa disciplina de linguagem: conservar a afirmação determinística que o mecanismo realmente sustenta e deixar que decisões posteriores permaneçam locais. O transporte responde pelo que processou; a aplicação responde pelo que leu, aceitou e realizou.

Essa separação é prática. Um registro operacional pode guardar o ACK como fato de transporte e, quando a garantia de processamento for necessária, exigir uma confirmação aplicacional explícita. Não há perda de observabilidade; há uma cadeia de evidências que não troca a identidade de seus próprios recibos.

Fontes