Medindo a saída TCP de um cliente Windows para o servidor Solaris:
WXP SP3 com iperf 1.7.0 - > retorna uma média em torno de 90Mbit
Mesmo cliente, mesmo servidor, mas iperf 2.0.5 para windows - > retorna uma média de 8,5 Mbit
Discrepâncias semelhantes foram observadas na conexão com outros servidores (W2008, W2003)
É difícil chegar a algumas conclusões quando versões diferentes da mesma ferramenta fornecem resultados muito diferentes.
Exemplo abaixo:
C:\temp>iperf -v (from iperf.fr)
iperf version 2.0.5 (08 Jul 2010) pthreads
C:\temp>iperf -c solaris10
Client connecting to solaris10, TCP port 5001
TCP window size: 64.0 KByte (default)
[ 3] local 10.172.181.159 port 2124 connected with 10.172.180.209 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.2 sec 10.6 MBytes 8.74 Mbits/sec
Execução abismal, mas agora testei do mesmo host (Windows XP SP3 32bit e 100Mbit) para o mesmo servidor (Solaris 10 / sparc 64bit e 1Gbit rodando iperf 2.0.5 com janela padrão de 48k) com o velho iperf
C:\temp>1iperf -v
iperf version 1.7.0 (13 Mar 2003) win32 threads
C:\temp>1iperf.exe -c solaris10 -w64k
Client connecting to solaris10, TCP port 5001
TCP window size: 64.0 KByte
[1208] local 10.172.181.159 port 2128 connected with 10.172.180.209 port 5001
[ ID] Interval Transfer Bandwidth
[1208] 0.0-10.0 sec 112 MBytes 94.0 Mbits/sec
Então um iperf com uma janela de 64k diz 8.75Mbit e o velho iperf com o mesmo tamanho de janela
diz 94.0Mbit. Estes resultados são constantes através de testes repetidos.
A partir do meu teste, o lançamento de iperf (antigo) com tamanho de janela "x" e iperf (novo) com tamanho de janela "x" em vez de produzir resultados iguais ou muito próximos produz resultados totalmente diferentes.
A única diferença que vejo é o antigo compilado como threads do win32 vs. pthreads, mas o paralelismo (-P 10) parece funcionar em ambos.
Alguém tem uma pista ou pode recomendar uma ferramenta que dê resultados que eu possa confiar ??
EDIT: Olhando para os rastreamentos do iperf (antigo), ele define o sinalizador de Escala da Janela TCP como 3 no pacote SYN, quando executo o iperf (novo), isso é definido como 0 no pacote inicial. Uma análise rápida do tamanho da janela através da troca mostra o iperf (antigo) indo e voltando, mas principalmente em 32k, enquanto o iperf (novo) permanece na maior parte em 64k. Talvez ajude alguém a ligar os pontos.