Como executar um teste de loopback de rede usando TTCP ou IPERF?

4

O PC tem duas portas Gigabit Ethernet. Eles funcionam como dois adaptadores de rede separados. Eu estou tentando fazer um teste de loopback simples entre os dois. Eu tentei TTCP e IPERF. Eles estão me dando dificuldades porque estou usando o mesmo PC físico.

Usando o pcattcp ...

No final do receptor:

C:\PCATTCP-0114>pcattcp -r
PCAUSA Test TCP Utility V2.01.01.14 (IPv4/IPv6)
  IP Version  : IPv4
Started TCP Receive Test 0...
TCP Receive Test
  Local Host  : GIGA
**************
  Listening...: On TCPv4 0.0.0.0:5001

  Accept      : TCPv4 0.0.0.0:5001 <- 10.1.1.1:33904
  Buffer Size : 8192; Alignment: 16384/0
  Receive Mode: Sinking (discarding) Data
  Statistics  : TCPv4 0.0.0.0:5001 <- 10.1.1.1:33904
16777216 bytes in 0.076 real seconds = 215578.95 KB/sec +++
numCalls: 2052; msec/call: 0.038; calls/sec: 27000.000

C:\PCATTCP-0114>

No final do transmissor:

C:\PCATTCP-0114>PCATTCP.exe -t 10.1.1.1
PCAUSA Test TCP Utility V2.01.01.14 (IPv4/IPv6)
  IP Version  : IPv4
Started TCP Transmit Test 0...
TCP Transmit Test
  Transmit    : TCPv4 0.0.0.0 -> 10.1.1.1:5001
  Buffer Size : 8192; Alignment: 16384/0
  TCP_NODELAY : DISABLED (0)
  Connect     : Connected to 10.1.1.1:5001
  Send Mode   : Send Pattern; Number of Buffers: 2048
  Statistics  : TCPv4 0.0.0.0 -> 10.1.1.1:5001
16777216 bytes in 0.075 real seconds = 218453.33 KB/sec +++
numCalls: 2048; msec/call: 0.037; calls/sec: 27306.667

C:\PCATTCP-0114>

Está respondendo bem. Mas por que diz 0.0.0.0? Está passando por apenas um dos adaptadores de rede?

Eu quero 10.1.1.1 para ser o servidor (receptor) e 10.1.1.2 para ser o cliente (transmissor). Estes são os endereços IP atribuídos manualmente a cada adaptador de rede. Como especifico esses endereços no TTCP?

Existe também a ferramenta IPERF que possui a opção -B . Infelizmente, só consegui usar essa opção para vincular o servidor ao endereço 10.1.1.1. Não consegui vincular o cliente ao endereço 10.1.1.2. Eu posso estar fazendo errado. A opção -B pode ser usada tanto para o servidor quanto para o lado do cliente? Como é a sintaxe para o cliente?

Atualizar

Como você pode ver pela resposta que eu postei, descobri como fazer isso usando o IPERF. Eu olhei maneiras de usar o TTCP para fazer a mesma coisa e eu encontrei a opção -a , mas quando eu tentei usá-lo eu recebi um erro Winsock no lado do cliente.

No lado do servidor:

C:\PCATTCP-0114>pcattcp -r -a 10.1.1.1
PCAUSA Test TCP Utility V2.01.01.14 (IPv4/IPv6)
  IP Version  : IPv4
Started TCP Receive Test 0...
TCP Receive Test
  Local Host  : GIGA
**************
  Listening...: On TCPv4 10.1.1.1:5001

No lado do cliente:

C:\PCATTCP-0114>pcattcp -t 10.1.1.1 -a 10.1.1.2
PCAUSA Test TCP Utility V2.01.01.14 (IPv4/IPv6)
  IP Version  : IPv4
Started TCP Transmit Test 0...
TCP Transmit Test
  Transmit    : TCPv4 10.1.1.2 -> 10.1.1.2:5001
  Buffer Size : 8192; Alignment: 16384/0
  TCP_NODELAY : DISABLED (0)
*** Winsock Error: connect Failed; Error: 10061 (0x0000274D)

C:\PCATTCP-0114>

Parece que está tentando se conectar a si mesmo?

    
por Samir 01.11.2013 / 22:15

2 respostas

4

Analisei a ajuda do IPERF e acho que consegui agora.

No lado do servidor:

C:\>iperf -s -B 10.1.1.1
------------------------------------------------------------
Server listening on TCP port 5001
Binding to local address 10.1.1.1
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[160] local 10.1.1.1 port 5001 connected with 10.1.1.2 port 35202
[ ID] Interval       Transfer     Bandwidth
[160]  0.0-10.0 sec   420 MBytes   352 Mbits/sec

Noladodocliente:

C:\>iperf-c10.1.1.1-B10.1.1.2------------------------------------------------------------Clientconnectingto10.1.1.1,TCPport5001Bindingtolocaladdress10.1.1.2TCPwindowsize:8.00KByte(default)------------------------------------------------------------[132]local10.1.1.2port35202connectedwith10.1.1.1port5001[ID]IntervalTransferBandwidth[132]0.0-10.0sec420MBytes352Mbits/secC:\>

Deixe-me saber se você encontrar algum erro aqui.

Eu ainda gostaria de saber se isso é possível e como fazê-lo usando o TTCP? Se você souber a resposta para isso, por favor poste.

    
por 01.11.2013 / 22:25
1
O IP funciona escolhendo o melhor caminho da origem ao destino. O loopback dentro de um host é melhor que a interface Ethernet de um host, portanto, mesmo que você ache que está testando o loop Ethernet conectado entre seus dois adaptadores de rede, descobrirá que o tráfego enviado entre dois endereços IP de sua máquina não passar através dele, em vez disso, curto-circuito através de loopback.

Você precisaria executar duas instâncias de roteamento distintas em um dispositivo e apenas tornar uma das interfaces externas conhecidas para cada uma delas, se quiser que o tráfego faça um loop em torno do exterior. Se o seu dispositivo fosse um roteador, você usaria o VRF (Virtual Routing Facility) para separar as instâncias de roteamento.

Como sua máquina é um host, sua melhor opção é instalar uma VM e passar uma das interfaces de rede para a máquina virtual enquanto a outra é manipulada pelo "bare metal".

    
por 16.02.2017 / 13:08