Resumo

  • RFC 9937 transforma PRR em regra Standards Track para ajustar, durante a recuperação rápida, quantos bytes um emissor deve transmitir em resposta a um ACK.
  • A conta de SndCnt usa estimativas de ponta e o ssthresh escolhido pelo controle de congestão. Ela não prova que a capacidade comum voltou, que o receptor consumiu os dados ou que o cliente deixou de sofrer.

Um painel pode mostrar perda, ACKs que voltam e uma janela que se aproxima da meta. O erro começa quando essa sequência recebe o nome de “recuperação da rede”. RFC 9937, publicado em dezembro de 2025 para substituir RFC 6937, descreve algo mais modesto e mais útil: Proportional Rate Reduction regula o envio de TCP, ou de outro transporte, durante a recuperação rápida para aproximar o flight size real de ssthresh.

Quem define ssthresh é o algoritmo de controle de congestão. PRR recebe essa meta. O emissor estima DeliveredData, inflight e RecoverFS; combina essas variáveis com SafeACK e seus contadores; então calcula SndCnt, a quantidade que poderá enviar. Acima da meta, a redução é proporcional. Abaixo dela, prevalece uma regra conservadora, com uma abertura limitada quando o ACK demonstra bom progresso. Ao final, cwnd recebe ssthresh; o próprio RFC recomenda pacing porque isso pode gerar uma rajada.

Nada disso é uma deficiência. É o escopo correto de um algoritmo de ponta. SACK melhora a precisão sem ser exigido. Detectores de perda diferentes podem fornecer os dados de que PRR precisa. Sem SACK, há uma proteção contra ACKs duplicados que poderiam inflar artificialmente a estimativa de entrega. A cautela revela a fronteira: PRR organiza a reação do emissor ao que ele observa; não enxerga todas as filas, todos os fluxos, a política de outro domínio ou a aplicação remota.

O RFC também informa que a implantação incremental altera somente a implementação de transporte no emissor e não pede mudanças em receptores ou redes. Reno e CUBIC podem usar PRR, mas a equidade continua pertencendo ao algoritmo de congestão. Não existe, nessa troca, uma transferência de autoridade para prometer um recurso coletivo.

O registro útil é um recibo de recuperação: controlador e versão, alvo ssthresh, ACK/SACK e sinais de perda, estimativas, SndCnt, retransmissão, pacing, limites de janela e aplicação, seguidos por uma observação independente do resultado. A primazia do código em execução de Heng Lu protege justamente essa ordem: valorizar o cálculo verificável sem deixá-lo fingir ser um fato que só a rota e o serviço poderiam demonstrar.

Fontes