Quão valioso é o TCP Window Scaling?

5

Em um servidor † Debian Lenny ocupado, estou pensando em desabilitar o TCP Window Scaling . Por quê?

  • Gostaria de ativar syn cookies , o que desativa o TCP Window Scaling. Este servidor é localmente protegido por firewall e a proteção contra ataques de inundação por sincronização pode ser uma boa coisa, certo?
  • Os registros do kernel têm muitas mensagens " TCP: Treason uncloaked! " . strong> Não parece ser um ataque, tendo ocorrido regularmente há séculos, mas ainda me preocupa. Pelo que entendi, essa mensagem é resultado de um descompasso entre cliente e servidor sobre o tamanho da janela TCP e geralmente não é grande coisa.

Então eu me pergunto "A caixa realmente precisa do TCP Window Scaling?" Antes de tentar experimentar e comparar, parece prudente consultar os boffins do ServerFault.

Alguns detalhes relevantes:

  • muitos (10-30%) dos pedidos são para 5-50MB de arquivos
  • os arquivos grandes são enviados a uma taxa de bits regulada (~ 2Mbps)
  • os clientes estão na Internet e 90% dentro de 250 km

Qual é a importância do TCP Window Scaling?

  • A CPU está dramaticamente impactada? Se sim, quanto?
  • O desempenho da rede está degradado? A latência não me incomoda, mas a produtividade abaixo de um limite mínimo seria.
  • Algo mais que eu possa estar faltando?

† = 3Gbps de NICs com LACP + centenas de milhões de solicitações HTTP + dezenas de terabytes de tráfego por mês

    
por Stu Thompson 07.04.2011 / 08:01

3 respostas

4

"Does the box really need TCP Window Scaling?"

Bem, você realmente não disse o que a caixa faz , então é meio difícil dizer realmente. Mas, em geral, o TCP Window Scaling é crítico para um bom desempenho do usuário final em conexões WAN / Internet modernas . É menos necessário na LAN.

Is networking performance degraded? Latency does not bother me, but throughput would.

Depende das conexões de rede dos seus usuários. Mas se alguns dos seus usuários forem

  • fisicamente longe de você (ou seja, tem alta latência) e
  • possuem conexões de rede rápidas (ou seja, boa DSL, fibra etc.)

... sem o Window Scaling, esses usuários só poderão usar uma pequena fração da velocidade de conexão ao fazer o download de você. Aqui está um bom tutorial sobre tamanhos de janelas e produtos com intervalo de largura de banda - completo com bons desenhos animados.

" Habilitando transferências de dados de alto desempenho " é um documento clássico sobre o dimensionamento de janelas TCP. Ele corretamente menciona que se você estiver usando um kernel recente do Linux na série 2.6, então você normalmente não precisa ajustar as configurações de TCP, porque o Linux agora tem um auto-ajuste agressivo destes. Ele não menciona que o Windows 2008+ também ajusta bem as configurações de TCP, usando o Compound TCP .

Atualização:

the large files are sent at a regulated bit rate (~2Mbps) clients are on the Internet and 90% within 250km

Com essa informação atualizada, fica mais complicado. Como você está limitando a velocidade máxima, talvez as janelas TCP não sejam uma limitação no seu caso. Dê uma olhada no tipo de conexão que seus usuários finais estão usando e faça as contas. Você não precisa executar benchmarks, pode calcular o tamanho de janela necessário e compará-lo com o tamanho real da janela de transmissão padrão dos seus servidores.

    
por 07.04.2011 / 11:44
3

Em muitos casos, o TCP autothrottling significa que uma determinada transferência está limitada a:

BW = windowsize / RTT

desde que os antigos padrões TCP limitavam o tamanho máximo da janela a 64K, você poderia facilmente obter uma "Long Fat Network" (LFNs ou 'elephan') se essa figura fosse menor que a largura de banda física. Escala de janela para o resgate!

Para verificar se você precisa dele, fazer alguns pacotes de captura e analisar o RTT (não confie muito em tempos de ping, o WireShark tem uma ferramenta para fazer isso em uma amostra de tráfego real). A taxa de transferência média que um usuário veria se você desativá-lo seria 64KB/RTT (em bytes / s).

    
por 07.04.2011 / 13:56
2

Is networking performance degraded?

Sim - mas apenas para transferir arquivos maiores que RTTxBW. Mas quando você começa a arrastar arquivos grandes em uma rede longa e gasta, o desempenho se degrada muito rapidamente.

Então, se isso afeta você, vai depender do que você está servindo (você não disse).

    
por 07.04.2011 / 11:08