Resumo
- Cada direção de um fluxo QUIC é uma sequência ordenada de bytes; limites de STREAM não são preservados como limites de mensagens.
- FIN e RESET_STREAM comunicam uma Final Size imutável para reconciliar o crédito de controle de fluxo consumido.
- Final Size não prova que a aplicação leu, interpretou, confirmou ou concluiu uma operação.
Um painel pode estar correto sobre o transporte e errado sobre o negócio. Ao enxergar uma Final Size conhecida, ele pode marcar uma requisição como concluída, embora o valor apenas estabeleça o ponto final da sequência de bytes. A direção pode terminar normalmente com uma trama STREAM que contém FIN ou abruptamente com RESET_STREAM. Em ambos os casos há uma fronteira de contabilidade, mas não necessariamente uma confirmação do que a aplicação recebeu, leu ou fez.
O QUIC apresenta cada direção como uma sequência ordenada de bytes. As fronteiras das tramas STREAM não são preservadas na transmissão, na retransmissão ou na entrega à aplicação. O enquadramento de mensagens pertence, portanto, ao protocolo de aplicação. Uma fronteira de trama não é automaticamente o fim de uma requisição, registro ou transação.
Quando uma trama STREAM carrega FIN, Final Size é o deslocamento da trama somado ao comprimento dos dados. RESET_STREAM carrega explicitamente o campo Final Size. O valor é um maior que o maior deslocamento enviado, ou zero quando nenhum byte foi enviado. Ele representa o crédito de controle de fluxo consumido por aquela direção. O controle de fluxo da conexão soma as Final Size de todos os fluxos, inclusive os terminados. Trata-se de contabilidade de recurso, não de sucesso empresarial.
Depois de conhecida, Final Size não pode mudar. Dados na posição ou além dela, ou uma declaração posterior diferente, podem causar FINAL_SIZE_ERROR. A implementação pode precisar manter estado após o encerramento para detectar contradições. A imutabilidade protege a contabilidade, mas não transforma a contagem em recibo de entrega.
Os estados de recepção são independentes. Conhecer Final Size não equivale a receber todos os bytes anteriores. Receber tudo não equivale a entregar tudo à aplicação. Entregar não equivale a ler, interpretar, persistir, fazer rollback, compensar ou completar o negócio. RESET_STREAM pode interromper a entrega e permitir descartar bytes não lidos, mas não prova que nada foi entregue. Todos os dados podem já estar em um buffer, e a indicação de reset pode ser suprimida.
O reconhecimento de pacotes pertence a uma camada inferior. Processar uma trama STREAM exige colocar seus bytes à disposição da aplicação, não provar que ela os leu ou utilizou. Da mesma forma, Final Size não prova o sucesso da direção oposta nem da conexão inteira.
O registro de evidências deve separar ID e direção do fluxo; FIN ou RESET_STREAM; código de erro da aplicação quando houver reset; fonte e valor numérico de Final Size; maior deslocamento observado e cobertura contígua; entrada dos bytes no receptor; entrega ou leitura pela aplicação; enquadramento das mensagens; commit durável, compensação, rollback e resultado empresarial; e estado retido para detectar FINAL_SIZE_ERROR.
A separação também vale para cinco dimensões próximas. TR-046 trata da permissão para enviar, não do total final. TR-052 trata das fronteiras de mensagens DATAGRAM, enquanto o fluxo ordenado não preserva limites de STREAM. TR-053 trata do encerramento da conexão. TR-054 trata de STOP_SENDING e cancelamento. TR-045 limita o que ACK prova sobre processamento de pacotes. Nenhuma dessas evidências substitui as outras.
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance

