Por quanto tempo os fragmentos TCP fragmentados são mantidos no servidor TCP?

10

Suponha que um dado fragmento TCP seja fragmentado em dois datagramas IP e que o primeiro datagrama chegue ao servidor TCP, mas o segundo datagrama nunca chegue.

Após um determinado período de tempo, o servidor TCP envia um keep-alive e determina que o cliente está ativo. O que o servidor TCP faz com esse primeiro datagrama? Espera o segundo datagrama chegar ou descarta o primeiro datagrama?

    
por Randomblue 29.10.2012 / 10:44

2 respostas

8

Após o tempo limite de remontagem do fragmento expirar, o fragmento é eliminado; o outro lado precisaria retransmitir.

Esse tempo limite geralmente é configurável. No Linux, são 30 segundos por padrão e controlados via /proc/sys/net/ipv4/ipfrag_time .

    
por 29.10.2012 / 15:01
2

Não há resposta definitiva para essa pergunta;

Se você vir este artigo sobre retransmissão adaptativa, verá que o TCP usa o RTT como um fator no cálculo de atrasos apropriados.

Este é um artigo mais detalhado. Essencialmente, não há um valor de tempo limite especial apenas para fragmentação.

Este artigo da Cisco entretanto indica que um firewall virtual IOS XR tem um tempo limite padrão de 10 segundos para fragmentos, com seu próprio temporizador configurável. Estou ligando isso para dizer que os sistemas operacionais e os dispositivos se comportarão de maneira diferente e, se você estiver transmitindo uma conexão através de um dispositivo como esse, por exemplo, isso poderá interferir negativamente na sua conexão.

Seria melhor conectar duas máquinas da mesma configuração com um crossover e começar a testar a partir daí se você quisesse testar os efeitos do atraso da fragmentação.

    
por 29.10.2012 / 12:26

Tags