Maneira de fazer a otimização básica de WAN entre dois servidores Linux que divide uma única conexão em múltiplas paralelas? [fechadas]

1

Existem utilitários no Linux que permitem que você trabalhe em torno das condições de WAN, o que faz com que você não consiga utilizar toda a sua largura de banda. Eles fazem isso executando várias solicitações em paralelo (por exemplo, lftp e seu comando pget).

Existe algum método / ferramenta básica de otimização de WAN disponível para Linux (especificamente o CentOS) que fará com que todo o tráfego entre dois servidores (possivelmente em apenas uma porta seja bom) seja dividido em várias conexões simultâneas em paralelo (transparentemente para aplicativos) claro), para que os programas / utilitários que não podem fazer conexões paralelas ainda consigam atingir o máximo de throughput. Eu sei que alguns utilitários podem ser paralelizados usando alguns truques com xargs, mas para aqueles que não suportam isso é relevante, e além disso é bom que seja transparente para manter as coisas simples.

Eu tentei pesquisar no Google e no serverfault, mas não tive muita sorte. Qualquer ajuda seria apreciada. Obrigado!

    
por sa289 08.02.2013 / 01:19

1 resposta

1

Se o uso de várias conexões em paralelo ajuda você a usar mais largura de banda do que uma única conexão, o motivo é a janela TCP. Se o produto de atraso de largura de banda entre as duas extremidades da transferência for grande, o tamanho ideal da janela TCP pode ser maior que o tamanho máximo que as pilhas TCP em uma ou ambas as extremidades estão dispostas a usar. Usar mais de uma conexão TCP permite multiplicar o tamanho efetivo da janela.

Segue-se que nenhuma quantidade de tunelling na camada 3 ou abaixo alcançará o mesmo efeito. Não importa que tipo de túnel você construa, o payload do túnel ainda é TCP, e se houver apenas um deles, ele irá maximizar sua janela.

Suas únicas opções são:

  • Aumente os tamanhos máximos da janela TCP do kernel nas duas extremidades da transferência.

  • Use mais de uma conexão TCP no seu aplicativo.

  • Construa um túnel na camada 4 ou acima. Isso poderia ser, por exemplo, um servidor proxy como um proxy HTTP ou de socks, ou um encaminhador de conexão TCP simples, onde você se conecta ao host local e encaminha a conexão para outro lugar. O software de encapsulamento poderia transportar a carga de tráfego balanceada sobre várias conexões TCP subjacentes (ou poderia fazer outra coisa completamente).

    Não tenho conhecimento de nenhum software que faça isso.

por 08.02.2013 / 03:04