10 de dez de 2009

Testes de Performance de Rede usando TTCP

Projetar, construir e resolver problemas de redes é muitas vezes o tema das nossas aulas de internetworking, mas a análise de rede e performance interessa a todos os administradores de rede. Precisamos de ferramentas que nos permitam gerar tráfego de rede e analisar o desempenho de transferência de arquivos. Vamos falar sobre uma destas ferramentas presentes no IOS da Cisco.

A Cisco tem implementado uma cópia do TTCP no IOS 11.2 e posterior, atualmente como um comando não documentado. Uma vez que é irregular, você não vai encontrá-lo usando a função de ajuda interativa (?). Em vez disso, basta digitar o comando ttcp, em seguida, aperte ENTER. Se o modelo de roteador que você está usando suporta TTCP, ele irá responder com uma série de perguntas para os parâmetros TTCP. Porque TTCP pode criar enormes quantidades de tráfego de rede, é um comando privilegiado.

A versão do Cisco TTCP envia e recebe dados TCP (a versão do Unix também não suporta UDP.) Você tem controle sobre o número de pacotes enviados, o tamanho do pacote, o número da porta em que o transmissor e o receptor estão, e vários outros parâmetros.
E o destino não tem que ser um outro roteador. Para testar a taxa de transferência para um servidor remoto, inicie apenas um transmissor e especifique o descarte (porta TCP 9) no servidor remoto.

TTCP emite relatórios da quantidade de dados transferidos, o tempo de transferência, e o throughput aproximados. Ao comparar o rendimento real com a largura de banda teórica entre o transmissor e o receptor, você pode dizer se a rede está funcionando como esperado. Variações na taxa de transferência pode indicar uma quantidade significativa de tráfego de outros equipamentos de rede sobrecarregados, ou talvez os erros de comunicação que estão fazendo pacotes serem danificados ou descartados. Ao realizar testes em diferentes segmentos do caminho, você pode determinar quais links ou dispositivos deverão ser analisados com mais detalhes.
Usando TTCP

O TCP é um protocolo de orientado a conexão, por isso temos que ter um receptor antes de um transmissor pode se conectar. Assim, o primeiro passo é iniciar um receptor TTCP (ou use o descarte de porta em um sistema de destino.) Em seguida, o transmissor é iniciado. TTCP usa o tempo e a quantidade de dados transferidos, para calcular a taxa de transferência entre origem e destino.Agora que sabemos um pouco sobre TTCP, vamos dar uma olhada em como configurar e executar um teste de rede.
Neste exemplo, vamos testar a taxa de transferência de um link ponto-a-ponto de 56Kbps entre dois roteadores.Primeiramente, devemos iniciar o receptor. No roteador da Cisco, vamos introduzir os seguintes comandos. Os valores padrão estão entre parênteses, por isso apenas pressionando ENTER para aceitar os valores padrão. No início da sessão abaixo, estamos modificando o tamanho da janela do receptor TCP para imitar a utilizada por estações de trabalho Sun. A última linha da saída de inicialização mostra os parâmetros que o TTCP está usando e que está pronto para receber.
Seattle#ttcp
transmit or receive [receive]:
buflen [8192]:
bufalign [16384]:
bufoffset [0]:
port [5001]:
sinkmode [y]:
rcvwndsize [2144]: 4096
show tcp information at end [n]:
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001, rcvwndsize=4096 tcp

Então, nós iniciamos o transmissor:

Tokyo#ttcp
transmit or receive [receive]: trans
Target IP address: 137.112.32.66
buflen [8192]:
nbuf [2048]: 50
bufalign [16384]:
bufoffset [0]:
port [5001]:
sinkmode [y]:
buffering on writes [y]:
show tcp information at end [n]:
ttcp-t: buflen=8192, nbuf=50, align=16384/0, port=5001 tcp -> 137.112.32.66

Quando a conexão é feita, o receptor envia uma linha de status mostrando que aceitou a conexão. Após a conclusão da transferência, as estatísticas estão na saída do receptor, mostrando a quantidade de dados transferidos, o tempo de transferência, a taxa calculada, e o número de chamadas I/O para ler os dados:

ttcp-r: accept from 137.112.32.65 (mss 1460, sndwnd 2144, rcvwnd 4096)
ttcp-r: 409600 bytes in 61064 ms (61.064 real seconds) (~5 kB/sec) +++
ttcp-r: 301 I/O calls
ttcp-r: 0 sleeps (0 ms total) (0 ms average)
Seattle#

De forma similar, O transmissor envia uma linha de status quando ele se conecta ao receptor. Quando a transferência estiver completa, as estatísticas são mostradas no transmissor:

ttcp-t: connect (mss 1460, sndwnd 4096, rcvwnd 2144)
ttcp-t: 409600 bytes in 60504 ms (60.504 real seconds) (~5 kB/sec) +++
ttcp-t: 50 I/O calls
ttcp-t: 0 sleeps (0 ms total) (0 ms average)
Tokyo#

Análise de Throughput

TTCP calcula o rendimento aproximado em kilobytes por segundo. Neste caso, a nossa taxa de transferência é 5KBps, que significa 40Kbps (5KBps * 8 bits / Byte = 40Kbps.) Estamos usando um link ponto-a-ponto de 56Kbps. Este rendimento é razoável? Usando as estatísticas recebidas, vamos analisar o link. O tamanho do buffer TCP do transmissor é 8192 bytes.
Quando o TCP manipula o tamanho do pacote IP, este será dividido em cinco pacotes de 1500 bytes IP, além de um pacote de 693 bytes (para um total de 8192 bytes.) Para enviar todos os 50 buffers, o roteador terá que enviar 300 pacotes IP ( observe a chamada 301 de I/O nas estatísticas do receptor – o último pedido para transferência de dados.) Realizando uma análise de aproximação, a estimativa é que cada pacote terá um header de 40 bytes TCP/IP. Usamos o seguinte cálculo para determinar o rendimento aproximado:
50 buffers * 8192 bytes cada = 409.600 bytes
301 pacotes IP * 40 bytes de header = 12.040 bytes
Total de dados transmitidos = 421.640 bytes
421.640 bytes * 8 bits / byte = 3.373.120 bits
3.373.120 bits / 61,064 segundo = 55.239 bits / segundo
Isto está muito perto de 56Kbps, indicando que nosso link não está sobrecarregado. Se tivéssemos incluído o overhead HDLC, e medido com mais precisão o número de bytes de cabeçalhos TCP e IP, poderíamos determinar a sobrecarga do protocolo exata e, portanto, exatamente a taxa de dados teórica. Mas para a maioria das análises de rede, este cálculo é bom o suficiente. IMPORTANTE: O s testes não foram feitos num ambiente de produção, onde inúmeras variáveis poderiam influenciar nos resultados

Referência

http://www.netcordia.com/tnm/tnm31/ttcp.htm

3 comentários:

Thiago Correia disse...

Adilson,

Um cliente já fez o uso desta solução no switch 2960, para validar um link de 20 Mbps.

Abração,

Claudevan Gimenes de disse...

Vou fazer este teste na empresa.

Abs.

mschott disse...

Tópico antigo, porém ainda muito útil. Me ajudou aqui!!

;)

LinkWithin

Related Posts with Thumbnails