Resumo

  • A RFC 3742 reduz o crescimento da janela TCP quando cwnd passa de max_ssthresh, porque o slow start exponencial pode somar milhares de segmentos em um RTT.
  • A Errata 236, verificada, corrigiu a faixa por RTT: no exemplo, chegar a 83 mil pacotes leva pelo menos 836 RTT, e não exatamente esse total.

“Limitado” não significava “taxa fixa”. A RFC 3742 era uma proposta experimental opcional, publicada em 2004, para conexões com janelas de milhares de tamanhos máximos de segmento. Até max_ssthresh, mantinha o slow start convencional: um MSS a mais por ACK recebido. Acima dele, calculava K = int(cwnd / (0.5 * max_ssthresh)) e somava aproximadamente um K-ésimo de MSS a cada ACK. Esse parâmetro adicional não substituía ssthresh; ultrapassar ssthresh continuava encerrando o slow start.

A seção 2 descrevia o número com mais certeza do que a regra comportava. O texto original afirmava que, acima de max_ssthresh, o crescimento por RTT não ultrapassaria metade do limiar. Mas a regra aplicada a cada ACK, com K mudando em degraus, implicava uma faixa. A Errata 236, verificada pelo RFC Editor, corrigiu o invariante: o crescimento fica limitado a max_ssthresh MSS por RTT e é de pelo menos metade disso. Também trocou uma fórmula única de tempo por limites inferior e superior. Com limiar de 100 MSS e alvo de 83 mil pacotes, as 836 RTT frequentemente citadas passaram a ser “no mínimo” 836 RTT.

Essa é uma correção na descrição do mecanismo, não um novo algoritmo de controle de congestionamento. O texto da RFC publicada em 2004 permanece intacto; a errata é um registro separado, que precisa ser lido em conjunto com o original. A correção amplia a faixa de crescimento possível e de duração estimada, mas não transforma seus extremos em resultados universais medidos.

O limitador tratava de uma externalidade, além do comportamento do emissor. Um salto grande durante o slow start podia causar muitas perdas de uma vez, timeouts de retransmissão e a volta da janela a um valor pequeno. Os demais fluxos no gargalo também disputariam filas e tolerância a perdas. A RFC trouxe um exemplo com limiar de 100 MSS e relatou experimentos iniciais em um kernel Linux 2.4.16 Web100. É evidência histórica delimitada — não prova adoção atual generalizada, ganho para toda a Internet ou garantia sobre o tamanho de uma fila.

Documentos TCP posteriores adotaram outros sinais de controle. A RFC 9438 recomenda em geral HyStart++ para o slow start do CUBIC e lista Limited Slow-Start como alternativa experimental. A RFC 9406 usa o aumento do RTT como indício para sair do slow start e acrescenta uma fase conservadora que verifica se a saída ocorreu cedo demais. Esse sinal é diferente do incremento por ACK condicionado ao tamanho da janela na RFC 3742; os mecanismos não são intercambiáveis.

Para operadores de rede, a errata é um lembrete para perguntar o que um número em destaque realmente limita. Um aumento da janela por RTT não é um teto direto de taxa em bytes, uma medida de fila nem prova de justiça em um caminho compartilhado. Limiar, ACK, pacing, buffer, RTT e fluxos concorrentes determinam o resultado real. A correção torna a incerteza da própria RFC mais visível; não a elimina.

Fontes