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


10

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

Após um certo período de tempo, o servidor TCP envia uma keepalive e determina que o cliente está ativo. O que o servidor TCP faz com esse primeiro datagrama? Será que espera o segundo datagrama chegar ou descarta o primeiro datagrama?

Respostas:


8

Após o tempo limite da remontagem do fragmento expirar, o fragmento é descartado; a outra extremidade 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.


O tempo limite da remontagem do fragmento é excedido em relação ao primeiro fragmento recebido ou o cronômetro é redefinido para cada novo fragmento que chega?
Randomblue

2
Eu acho que você teria que ler o código fonte para responder isso definitivamente.
Michael Hampton

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 indica que um firewall virtual IOS XR tem um tempo limite padrão de 10 segundos para fragmentos, com seu próprio timer configurável. Estou ligando isso para dizer que sistemas operacionais e dispositivos se comportarão de maneira diferente e se você estiver passando uma conexão por um dispositivo como este, por exemplo, isso pode interferir negativamente na sua conexão.

Seria melhor conectar duas máquinas da mesma configuração com um cruzamento e iniciar o teste a partir daí, se você quisesse testar os efeitos do atraso de fragmentação.


Obrigado. Você acha que o tempo limite do fragmento no artigo da Cisco é calculado com relação ao primeiro fragmento recebido ou ao último fragmento recebido?
Randomblue

O último fragmento recebido faz mais sentido que o primeiro, mas não sei, fica a critério da Cisco nesse exemplo.
jwbensley
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.