Resumo

  • O RFC 6298 recomendou um RTO inicial de um segundo, em vez dos três segundos anteriores, porque mais de 97,5% dos RTTs observados eram inferiores a um segundo.
  • Se um temporizador inferior a três segundos expirar enquanto o TCP aguarda o reconhecimento de um SYN, o RTO deve voltar a três segundos antes do início dos dados.

Uma escolha antes da evidência

O TCP normalmente calcula o tempo de retransmissão a partir de RTTs observados. Na abertura da conexão ainda não há essa medição. Se o SYN ou sua resposta se perder, o emissor precisa escolher entre esperar demais e retransmitir porque a rota é apenas lenta.

O RFC 2988 usava três segundos. O RFC 6298 recomendou um, mas permite que a implementação use um valor maior e mais conservador. A recomendação é SHOULD, não MUST.

O que as medições mostraram

O Apêndice A apresentou uma decisão histórica baseada em observações. Uma análise ampla encontrou mais de 97,5% dos RTTs de conexão abaixo de um segundo e retransmissões de handshake em torno de 2%. Cerca de 2,5% das conexões observadas tinham RTT acima de um segundo.

Nas bases citadas, a retransmissão espúria estimada ficou abaixo de 0,1% na maioria, mas chegou a aproximadamente 1,1% em um trace sem fio de Dartmouth. Entre as conexões que retransmitiram um SYN, 43% a 87% poderiam obter pelo menos 10% de ganho, e 17% a 73%, pelo menos 50%, segundo a análise contrafactual. Eram medições de 2011, não afirmações sobre as redes atuais.

A trava que acompanha a aceleração

O estouro do temporizador continua exigindo o dobro do RTO. Se ocorrer durante a espera pelo SYN com RTO inferior a três segundos, o RTO deve ser reinicializado para três segundos quando os dados começarem. Em uma rota lenta, o custo fica limitado a um SYN extra e a uma janela inicial de congestionamento de um segmento, conforme o RFC 5681.

A regra não elimina a dificuldade de rotas com RTT acima de três segundos. Ela impede que uma suposição inicial não medida permaneça governando a fase de dados.

Fontes