Как выполнить проверку петли в сети с использованием TTCP или IPERF?

7515
Samir

ПК имеет два порта 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> 

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

4

2 ответа на вопрос

4
Samir

Я просмотрел справку для 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:\> 

c

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

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

1
Karl

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

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

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