Como desativar completamente o controle de congestionamento do TCP?

0

No meu cluster, estou executando alguns experimentos que usam a largura de banda da rede de forma agressiva. (Está no Cent OS 7 Linux)

Logo após o início da experiência, as máquinas usam sua largura de banda máxima de rede. Após um curto período de tempo, a velocidade da rede cai significativamente (torna-se 20 ~ 25 vezes mais lenta).

Após um longo período de tempo, quando a maioria das máquinas termina, as poucas máquinas restantes ainda estão lutando com a velocidade lenta da rede.

Eu suspeito do controle de congestionamento do TCP, então estou pensando em desativá-lo.

Como posso desativar completamente o controle de congestionamento do TCP?

    
por syko 01.07.2017 / 15:39

1 resposta

1

Você não pode desativá-lo devido ao funcionamento do TCP.

O TCP é um protocolo que fornece entrega garantida e fornece um fluxo de dados. Isso significa que todos os dados precisam ser reconhecidos pelo destinatário. Até que isso seja feito, a pilha TCP precisa repetir a entrega de pacotes e, para isso, precisa armazenar em buffer todos os dados que ainda não foram reconhecidos. Além disso, se houver pacotes ausentes no meio do fluxo de dados, o destinatário precisará esperar que eles cheguem antes de poder encaminhar os dados a seguir para o aplicativo, já que a ordem dos dados no fluxo de dados precisa ser mantida.

Quando a rede é usada de forma agressiva, os pacotes são descartados, ou seja, os dados em si ou a confirmação. Isso implicitamente limita a conexão, uma vez que deve aguardar a devolução do pacote. Existem vários algoritmos e parâmetros para ajustar o comportamento exato da pilha TCP dependendo do ambiente (baixa versus alta largura de banda, baixa versus alta latência ...) mas por causa das garantias de entrega do TCP não há como desativar o congestionamento controle completamente.

    
por 01.07.2017 / 16:08

Tags