Teste de desempenho do algoritmo Congestion Control no FreeBSD

1

Estou trabalhando na implementação de uma proposta de modificação do TCP Algoritmo de controle de congestionamento que permitiria melhorá-lo (CC), adicionando uma estimativa de largura de banda dinâmica.

Eu consegui (com a ajuda de alguns membros inteligentes dessa comunidade) criar um módulo CC de trabalho, que pode ser carregado no Kernel. Agora eu gostaria de testá-lo e compará-lo com os algoritmos CC incorporados (NewReno, Vegas, Cubic, HTCP) em um ambiente de rede híbrida (dispositivos com / sem fio).

O que você recomendaria que eu usasse para testar e comparar o desempenho desses algoritmos de CC?

Eu ouvi falar sobre o NS-2, mas eu também gostaria de encontrar uma ferramenta que possa ser usada para os testes em um ambiente real para obter dados realistas.

Obrigado antecipadamente!

    
por KarlisL 21.04.2015 / 15:55

2 respostas

1

Como não houve resposta à minha pergunta neste fórum, escrevi para o grupo de correspondência freebsd-net com uma pergunta semelhante e recebi recomendações para usar duas ferramentas IMUNES link e link

do TEACUP

Eu tenho testado o IMUNES por alguns dias agora, mas eu ainda não testei o TEACUP, então vou fornecer uma breve descrição sobre ele.

IMUNES permite que você crie uma rede virtual, onde você pode configurar desde interfaces de nós a protocolos de roteamento em roteadores, bem como configurações de links como velocidade, taxa de erro de bit, atrasos e porcentagem de pacotes duplicados. Quando a experiência é iniciada, cada um dos nós virtualizados tem seu próprio sistema de arquivos, que é criado a partir dos arquivos em /var/imunes/vroot/ , o que permite alterar as configurações para todos os dispositivos de uma só vez.

Há algumas coisas que não são tão óbvias (pelo menos para mim) no começo:

  1. Não suportado no FreeBSD-10.1-RELEASE, mas funciona no FreeBSD-9.3-RELEASE
  2. Quando a experiência é iniciada, clique duas vezes em um nó para obter o acesso ao terminal de nós. Você pode abrir quantas janelas quiser;
  3. As configurações do sistema que não estão definidas globalmente precisam ser definidas individualmente em cada nó;
  4. Quando a experiência é finalizada, todos os arquivos e configurações criados / editados no nó virtual são destruídos , mas os arquivos podem ser acessados enquanto a experiência está em execução, em /var/imunes/[i*****] , onde a pasta de cada nó virtual é criado. Você pode, claro, usar o comando find para encontrar o arquivo que está procurando;
  5. Se você precisar adicionar um programa aos nós virtuais, use pkg_add_imunes [settings] [name] ;
  6. Embora você possa definir a BER em um link, isso não é o mesmo que a taxa de perda de pacotes. Para definir uma taxa de perda de pacotes, carregue o módulo dummynet Kernel com o comando kldload dummynet e use ipfw para definir as configurações de link entre os nós.

Eu atualizarei a lista, se houver algo mais a acrescentar a isso.

    
por 28.04.2015 / 12:56
0

@ KarlisL Caso você tenha perdido, o IMUNES adicionou recentemente o link ao suporte Linux. Ele usa o Docker para nós L3 (Quagga em roteadores) e Open vSwitch para nós L2, então basicamente você tem máquinas Linux "reais" conectadas com switches "reais". No entanto, existem alguns problemas com a configuração do BER, etc., por meio da GUI, portanto, você deve fazê-lo manualmente dentro da instância do nó.

    
por 08.09.2015 / 13:00