terça-feira, 10 de abril de 2012

Teste de largura de banda e QOS: Jperf (Iperf)

   O Jperf é um front-end gráfico em Java para o iperf. É uma ferramenta livre para testar a largura de banda em rede TCP/IP, sua funcionalidade principal, mas também é possível realizar outros tipos de testes como Jitter, perda de pacotes e configurações de QOS. O Jperf (e o Iperf) tem versões para windows e linux e pode ser obtido aqui : http://code.google.com/p/xjperf/ . Ele não é "instalável", só é necessário que a máquina tenha o JRE.
   A saída do teste é textual (pela aba output) e gráfica, a duração e amostragem são configuráveis.

 
   Ela funciona no esquema  "cliente/servidor": Abre-se uma instância do Jperf em uma ponta do link alvo do teste, configura-se a porta e é iniciado como servidor. Do outro lado do link, fica no modo cliente em que o IP do servidor e a porta (existe uma série de outras opções opcionais para customização do teste) devem ser passados como parâmetros. É possível realizar o teste tanto com TCP como UDP (O cliente e o servidor devem estar configurados para utilizar o mesmo protocolo).



   Considerações importantes:

  • O sentido do tráfego é do cliente para o servidor, é como se o lado servidor fosse realizar um download do cliente (o cliente que "empurra" os bits, o servidor só recebe e manda os acks). 
  • Infelizmente não é possível configurar a porta origem no cliente o que não torna a ferramenta "perfeita" para um teste de QOS, mas ainda assim "dá pro gasto". Existe uma outra ferramenta mais robusta (mais complicada e mais feia) que consegue realizar isto, é o MGEN,  desenvolvido pela Marinda dos E.U.A  http://cs.itd.nrl.navy.mil/work/mgen/
  • É possível abrir várias instâncias do Jperf para testes com vários fluxos em diferentes portas, tome cuidado com as portas para não bater com algum serviço que já esteja escutando na máquina.

   Um teste de QOS pode ser implementado da seguinte maneira:

  1. Na ponta que será "servidora" é aberto 3 instâncias do Jperf, cada uma utilizando uma porta distinta que estejam configuradas com prioridades diferentes nos roteadores.
  2. Na ponta cliente faça testes variados: ora utilize somente uma porta, depois ative outro fluxo da outra porta ou ainda mais de um fluxo na mesma porta (com a opção parallel streams). Será possível verificar se as políticas de QOS estão funcionando (lembre-se do sentido do tráfego).
   Segue um teste que realizei numa rede wireless N. Os nós (lado cliente e servidor) estavam "linkados" em 65Mbps, na prática não chega a 10Mbps (fica ocilando nos 9Mbps). O lado cliente estava configurado com dois fluxos (parallel strems), durante 600 segundos (Transmit) e a cada 5 segundos era exibida a throughput de cada fluxo e a soma (Report Interval)


      Para mais dicas sobre testes utilizando Jperf (e Iperf), visitem http://openmaniak.com/iperf.php



5 comentários:

Elison Pessôa disse...

Olá boa tarde, muito bom seu post, parabéns!

Estou uma dúvida enquanto a questão do teste QoS. Eu preciso de um roteador especifico, com alguma tecnologia especifica?
Caso precise pode citar algum para que eu possar ter ideia sobre qual comprar?

Altair Junior Ancelmo Soares disse...

Olá Elison. Não, para este teste funcionar basta que seja uma rede TCP/IP, independente do roteador.
Se você puder ser mais específico em o que você precisar testar, posso te ajudar.

Anônimo disse...

Boa noite, preciso muito da sua ajuda. Estou fazendo meu TCC sobre QoS, mas estou tendo dificuldade, pois os testes que eu realizei com politicas de QoS e sem QoS não mudaram praticamente nada. Voce pode me ajudar? como se defini em qual porta o QoS irá funcionar? como posso fazer este teste?

meu email é allan82p@hotmail.com

Aguardo seu retorno.
Att,
Allan

Douglas Ramos disse...

Quero ver se as configurações de QOS q defini no meu E900 estão funcionando de acordo, como é e o q devo fazer?

Douglas Ramos disse...

Quero ver se as configurações de QOS q defini no meu E900 estão funcionando de acordo, como é e o q devo fazer?