O que eu vejo no seu rastreamento de pacotes é o controle de congestionamento reagindo à perda de pacotes.
O cliente começa enviando 9 segmentos iniciais seguidos de início lento, onde envia mais dois segmentos cada vez que recebe um pacote ACK.
O algoritmo de início lento continua até que o primeiro ACK duplicado do servidor indique que um pacote foi perdido. Isso acontece em um ponto em que há 20820 bytes em vôo. Depois disso, o cliente aumentará a janela de congestionamento mais lentamente.
O segundo caso de congestionamento ocorre apenas meio segundo na transmissão. Depois disso, o número de bytes em vôo aumenta em torno de 15K e atinge 68012 bytes em trânsito no momento em que ocorre o terceiro caso de congestionamento, que é de 6 segundos na transmissão.
Há cerca de 54KB em vôo após o terceiro caso de congestionamento. Isso cresce até atingir 94384 bytes em vôo, e o quarto caso de congestionamento acontece, isto é, 10 segundos na transmissão.
Existem vários outros casos de congestionamento durante o resto do rastreamento. A transmissão pode ter sido capaz de aumentar a velocidade, se não tiver ocorrido na perda de pacotes com a mesma freqüência. Tendo experimentado a primeira perda de pacotes tão cedo como o fez, levaria muito tempo a atingir a velocidade máxima.
Então, o que você precisa descobrir é por que os pacotes são perdidos tão cedo durante a conexão TCP. Acontece que o pacote perdido neste ponto é um dos 9 pacotes enviados de volta ao início no início da conexão. Isso indica que o cliente está configurado com uma configuração initcwnd
muito alta. A julgar pela captura de um pacote que você forneceu, uma configuração razoável seria 4
.
A configuração initcwnd
é especificada separadamente para cada entrada da tabela de roteamento. Eles podem ser visualizados e alterados usando o comando ip route
.