PCには2つのギガビットイーサネットポートがあります。これらは、2つの別個のネットワークアダプターとして機能します。 2つの間で簡単なループバックテストを実行しようとしています。 TTCPとIPERFを試しました。私が同じ物理PCを使用しているので、彼らは私に苦労しています。
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と言うのですか?ネットワークアダプタの1つだけを通過していますか?
10.1.1.1をサーバー(受信者)にし、10.1.1.2をクライアント(送信者)にします。これらは、各ネットワークアダプタに手動で割り当てられたIPアドレスです。 TTCPでこれらのアドレスを指定するにはどうすればよいですか?
-B
オプションがあるIPERFツールもあります。残念ながら、このオプションを使用してサーバーを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>
自分自身に接続しようとしているように見えますか?
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は、送信元から宛先への最適なルートを選択することで機能します。ホスト内のループバックは、ホストからのイーサネットインターフェイスよりも優れているため、2つのネットワークアダプター間で配線したイーサネットループをテストしていると思われる場合でも、マシンの2つのIPアドレス間で送信されるトラフィックはそうではないことがわかります。それを通過し、代わりにループバックを介して短絡します。
トラフィックを外部でループさせる場合は、デバイスで2つの異なるルーティングインスタンスを実行し、それぞれに外部インターフェイスの1つだけを認識させる必要があります。デバイスがルーターの場合は、VRF(仮想ルーティング機能)を使用してルーティングインスタンスを分離します。
お使いのマシンはホストであるため、最善の策は、VMをインストールし、ネットワークインターフェイスの1つを仮想マシンに渡し、もう1つは「ベアメタル」によって処理されることです。