4

ПК имеет два порта Gigabit Ethernet. Они функционируют как два отдельных сетевых адаптера. Я пытаюсь сделать простой петлевой тест между ними. Я пробовал TTCP и IPERF. Мне тяжело, потому что я использую тот же физический компьютер.

Используя pcattcp ...

На стороне получателя:

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>

На стороне передатчика:

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>

Это отвечает хорошо. Но почему он говорит 0.0.0.0? Это проходит только через один из сетевых адаптеров?

Я хочу, чтобы 10.1.1.1 был сервером (получателем), а 10.1.1.2 - клиентом (передатчиком). Это IP-адреса, назначенные вручную каждому сетевому адаптеру. Как мне указать эти адреса в TTCP?

Существует также инструмент IPERF, который имеет опцию -B . К сожалению, я смог использовать эту опцию только для привязки сервера к адресу 10.1.1.1. Мне не удалось привязать клиента к адресу 10.1.1.2. Я мог бы сделать это неправильно. Может ли опция -B использоваться как для сервера, так и для стороны клиента? Как выглядит синтаксис для клиента?

Обновить


Как вы можете видеть из ответа, который я разместил, я выяснил, как это сделать с помощью IPERF. Я рассмотрел способы использования TTCP для того же, и нашел параметр -a , но когда я попытался его использовать, я получил ошибку Winsock на стороне клиента.

На стороне сервера:

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

На стороне клиента:

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>

Похоже, он пытается подключиться к себе?

2 ответа2

4

Я просмотрел справку для IPERF и думаю, что получил ее сейчас.

На стороне сервера:

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

s

На стороне клиента:

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

C:\>

с

Дайте мне знать, если вы видите здесь какие-либо ошибки.

Я все еще хотел бы знать, возможно ли это, и как сделать это, используя TTCP? Если вы знаете ответ на этот вопрос, пожалуйста, опубликуйте его.

1

IP работает, выбирая лучший маршрут от источника до места назначения. Обратная связь внутри хоста лучше, чем у интерфейса Ethernet от хоста, поэтому даже если вы думаете, что тестируете петлю Ethernet, которую вы подключили между двумя сетевыми адаптерами, вы обнаружите, что трафик, передаваемый между двумя IP-адресами вашей машины, не пройти через него, вместо этого он закорачивается через петлю.

Вам нужно будет запустить два разных экземпляра маршрутизации на устройстве и сделать так, чтобы каждый из внешних интерфейсов был известен только одному, если вы хотите, чтобы трафик циркулировал снаружи. Если бы ваше устройство было маршрутизатором, вы бы использовали VRF (Virtual Routing Facility) для разделения экземпляров маршрутизации.

Поскольку ваша машина является хостом, лучше всего установить виртуальную машину и передать один из сетевых интерфейсов виртуальной машине, в то время как другой обрабатывается "голым железом".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .