Diferentes algoritmos de controle de congestionamento no FreeBSD

1

Existe uma maneira de executar um algoritmo de controle de congestionamento TCP (no padrão) diferente no FreeBSD? Eu estou tentando modificar um algoritmo de controle de congestionamento TCP existente com algumas idéias publicadas em trabalhos de pesquisa para tentar obter um melhor desempenho em redes sem fio.

    
por KarlisL 14.04.2015 / 19:22

2 respostas

4

Você pode ver quais algoritmos de controle de congestionamento TCP estão disponíveis observando o net.inet.tcp.cc.available sysctl. Por padrão, apenas o newreno está disponível, então é o que é usado. Existem vários algoritmos diferentes disponíveis, procure por módulos chamados cc_something in /boot/kernel .

Você pode carregá-los via kldload, como kldload cc_vegas . Depois disso, o novo algoritmo será exibido em net.inet.tcp.cc.available . Você pode selecioná-lo por meio do net.inet.tcp.cc.algorithm sysctl.

Aqui está um exemplo completo:

% sysctl -a | grep net.inet.tcp.cc
net.inet.tcp.cc.available: newreno
net.inet.tcp.cc.algorithm: newreno
% sudo kldload cc_vegas
% sysctl -a | grep net.inet.tcp.cc
net.inet.tcp.cc.vegas.beta: 3
net.inet.tcp.cc.vegas.alpha: 1
net.inet.tcp.cc.available: newreno, vegas
net.inet.tcp.cc.algorithm: newreno
% sudo sysctl net.inet.tcp.cc.algorithm=vegas
net.inet.tcp.cc.algorithm: newreno -> vegas
% sudo sysctl net.inet.tcp.cc.algorithm=newreno
net.inet.tcp.cc.algorithm: vegas -> newreno
% 
    
por 16.04.2015 / 03:03
1

No que diz respeito à pesquisa, há alguns projetos gerenciados no Centro de Arquiteturas Avançadas da Internet (CAIA) da Universidade de Swinburne. Eles têm se concentrado, pelo menos em parte, em algoritmos baseados em atraso no FreeBSD [newtcp]. Juntamente com o suporte da fundação FreeBSD, o trabalho do projeto newtcp foi integrado com o FreeBSD 9.0 e versões posteriores.

Em aplicações UNIX mais amplas, pessoalmente tenho visto algum sucesso com o controle de congestionamento TCP da Westwood +, no Linux. Westwood pode ser particularmente útil em aplicações sem fio [Casetti2002]. Eu também encontrei um bom artigo sobre um TCP-FIT [Wang2011]

Pessoalmente, sou relativamente novo na plataforma do FreeBSD. Eu estimaria que para qualquer aplicação imediata na rede sem fio, o trabalho da CAIA no controle de congestionamento TCP baseado em atraso pode ter algum interesse particular.

Tentando estender a resposta de Steve Wills, além de haver a atual disponibilidade de algoritmos de controle de congestionamento TCP em qualquer instalação única de um kernel do FreeBSD, o Manual do FreeBSD inclui instruções sobre a reconstrução do kernel do FreeBSD. [Manual Ch 9.]

Conjecturalmente, com um ambiente de construção usando Pourdriere para automação de compilação de pacotes e serviços PXE / Netboot de redes LAN (BootP, DHCP, etc), pode ser possível construir um ambiente de benchmarking relativamente confortável para aplicações do TCP disponível. algoritmos de controle de congestionamento, em diferentes plataformas e em diferentes configurações de rede. Além disso, conjecturalmente, talvez possa haver algum trabalho existente no sentido de simular o ruído do canal de rádio e outras interferências de canal sem fio, como para estimar o desempenho do sistema em configurações do mundo real. Pessoalmente, tenho medo de que a Universidade que estou frequentando on-line não tenha um laboratório bem equipado para esse tipo de pesquisa, mas tenho certeza de que isso deve ser possível em algum ponto da academia.

Aqui está a breve bibliografia:

Esses artigos podem estar disponíveis diretamente de seus respectivos editores e podem estar disponíveis em edições pré-impressas das respectivas instituições de concessão.

    
por 11.06.2015 / 16:30

Tags