Motivo do início lento do TCP em conexões subsequentes

Motivo do início lento do TCP em conexões subsequentes

Pelo que entendi, o início lento do TCP é usado para compensar e evitar congestionamentos e perdas. Quando uma conexão é estabelecida com sucesso e usada por um tempo, a largura de banda da conexão TCP é a maior possível. Sempre que uma nova conexão é estabelecida, mesmo que sejam simultâneas, utiliza-se o slow start do TCP, iniciando a conexão com um tamanho de janela baixo, mesmo que ambas as pilhas TCP já conheçam o comportamento da camada física.

Por que as pilhas TCP sempre executam uma inicialização lenta, mesmo que pudessem ter se lembrado do tamanho da janela de conexões anteriores recentes com o mesmo parceiro? Eles não poderiam fazer com segurança uma inicialização mais rápida e degradar a conexão posteriormente se as condições do link mudassem?

Responder1

Não é seguro assumir que duas conexões TCP, mesmo entre os mesmos dois pontos finais, seguirão a mesma rota. Não é incomum, por exemplo, ter balanceamento de carga em múltiplas conexões que leve em conta as portas envolvidas.

Isto pode parecer uma escolha estranha, mas faz sentido porque o desempenho do TCP pode ser prejudicado se muitos pacotes forem recebidos fora de ordem e unir uma conexão a uma rota evita isso. Freqüentemente, o IP de origem, o IP de destino, o protocolo, a porta de origem (se aplicável) e a porta de destino (se aplicável) são hash e o hash é usado para selecionar o próximo salto.

informação relacionada