Как выполнить проверку петли в сети с использованием TTCP или IPERF?
ПК имеет два порта 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 ответа
Я просмотрел справку для 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
На стороне клиента:
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? Если вы знаете ответ на этот вопрос, пожалуйста, отправьте его.
IP работает, выбирая лучший маршрут от источника до места назначения. Обратная связь внутри хоста лучше, чем интерфейс Ethernet, выходящий из хоста, поэтому даже если вы думаете, что тестируете петлю Ethernet, которую вы подключили между двумя сетевыми адаптерами, вы обнаружите, что трафик, передаваемый между двумя IP-адресами вашей машины, не пройти через него, вместо этого он закорачивается через петлю.
Вам нужно будет запустить два разных экземпляра маршрутизации на устройстве и сделать так, чтобы каждому из них был известен только один из внешних интерфейсов, если вы хотите, чтобы трафик циркулировал снаружи. Если бы ваше устройство было маршрутизатором, вы бы использовали VRF (Virtual Routing Facility) для разделения экземпляров маршрутизации.
Поскольку ваша машина является хостом, лучше всего установить виртуальную машину и передать один из сетевых интерфейсов виртуальной машине, в то время как другой обрабатывается "голым железом".