Resumo
- STOP_SENDING mostra que o receptor não quer mais dados em uma direção, mas não prova que bytes anteriores foram ignorados.
- RESET_STREAM termina apenas a direção de envio do par; final size registra crédito de controle de fluxo consumido, não trabalho concluído ou revertido.
- Os fatos de transporte devem ficar separados da admissão da aplicação, da aceitação do cancelamento, dos efeitos duráveis, da compensação e do resultado final.
Um cliente pode atingir um tempo limite, deixar de querer a resposta e enviar STOP_SENDING com um código de erro da aplicação. Esse é um fato de transporte bem definido. Ele pede que o par pare de transmitir em uma direção de um fluxo QUIC. Não transforma um registro operacional em prova de que um pedido, serviço ou tarefa remota foi cancelado. O estado dos bytes e o estado do negócio pertencem a máquinas diferentes.
A RFC 9000 permite que uma aplicação que já não deseja os dados recebidos interrompa a leitura. Quando a parte receptora está em Recv ou Size Known, o transporte deveria enviar STOP_SENDING para estimular o fechamento da direção oposta. A ressalva é decisiva: o quadro não garante que os dados recebidos serão ignorados. STREAMs anteriores podem já ter chegado, sido entregues à aplicação ou processados. Bytes STREAM recebidos depois de STOP_SENDING continuam contando para o controle de fluxo do fluxo e da conexão, mesmo que o transporte os descarte.
A resposta do par é uma transição independente. Se a parte de envio estiver em Ready ou Send, o par deve enviar RESET_STREAM. Em Data Sent, pode esperar até que dados pendentes sejam confirmados ou declarados perdidos. Se forem declarados perdidos, deveria enviar RESET_STREAM em vez de retransmitir esses dados. O par deveria copiar o código de erro de STOP_SENDING, mas pode escolher outro. O emissor de STOP_SENDING também pode ignorar o código posterior de RESET_STREAM; por isso, os dois códigos precisam de campos separados.
Direção é o limite essencial. RESET_STREAM termina abruptamente somente a parte de envio. Em um fluxo bidirecional, a outra direção permanece independente. Para encerrar as duas, um endpoint pode enviar RESET_STREAM para sua própria direção de envio e STOP_SENDING para incentivar o fim da direção oposta. Nenhum desses sinais fecha a conexão ou prova que o par solicitação-resposta ou o fluxo de negócio terminou.
final size é uma evidência de controle de fluxo. Ele representa a quantidade de dados que consome crédito de controle de fluxo no nível da conexão. Depois de conhecido, não muda, seja o fluxo encerrado normalmente ou reiniciado. Não informa quanto trabalho foi concluído pela aplicação, se a operação foi admitida ou se um efeito durável foi desfeito. Depois de RESET_STREAM, o endpoint deixa de enviar e retransmitir quadros STREAM naquela direção; isso descreve o transporte, não restaura o estado da aplicação.
A confiabilidade também é limitada. QUIC não retransmite um pacote perdido como um todo; envia as informações necessárias novamente em quadros novos. RESET_STREAM é enviado até ser confirmado ou até que todos os dados do fluxo sejam confirmados. STOP_SENDING é enviado até a parte receptora alcançar Data Recvd ou Reset Recvd. Receber ou confirmar o sinal prova avanço na máquina de estados do QUIC, não prova que o par não consumiu bytes anteriores, que cancelou o trabalho, que reverteu efeitos ou que concluiu compensação.
O livro de evidências deve registrar identidade da conexão, stream ID, iniciador, tipo unidirecional ou bidirecional e direção afetada. Deve separar a decisão local de parar de ler, cada envio e retransmissão de STOP_SENDING, os códigos de aplicação, o RESET_STREAM recebido e seu código, final size, a contabilidade de fluxo e os bytes STREAM posteriores. Admissão ou consumo remoto, aceitação ou rejeição do cancelamento, efeitos duráveis, reversão, compensação e resultado final exigem evidência adicional da aplicação.
Isso também preserva a diferença em relação aos trabalhos próximos. TR-045 trata de ACK e processamento de pacotes; TR-046, da permissão de controle de fluxo; TR-052, das fronteiras de mensagem e da falta de garantia de entrega em DATAGRAM; TR-053, do encerramento da conexão em CONNECTION_CLOSE. STOP_SENDING é outra coisa: uma solicitação para parar uma direção específica enquanto a conexão pode continuar ativa.
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

