How to test the throughput between 2 Network adapters on the same PC?

1

The motherboard of my desktop PC features two Ethernet ports. Each port has its own network controller from Realtek and they are both capable of Gigabit Ethernet. Now, I have this crazy idea to take a short Ethernet category 5e cable and connect it between the two ports, to create a loop. The idea is to test the throughput of both of these ports using the shortest possible cable length.

enter image description here

I have already connected the two ports. One of the connections is identified as Network 6, and I have chosen Home as network type to make it discoverable. The other one got stuck at "identifying". But it's seen as unidentified network now and I have manually changed the type from Public to Home. I was then prompted by Windows Media Player to share media files between these two. Under Network, one is seen as a network computer and the other one shows up as a portable media player. There are three devices with the same name.

a b

Update


I have set one connection to IP 10.1.1.1 and mask 255.255.255.0 and the other one to IP 10.1.1.2 and mask 255.255.255.0. I also added 10.1.1.1 as gateway on the second connection.

c d

After doing this, "Network 7" has now been identified.

e

Using pcattcp...

On the receiver end:

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:8127
  Buffer Size : 8192; Alignment: 16384/0
  Receive Mode: Sinking (discarding) Data
  Statistics  : TCPv4 0.0.0.0:5001 <- 10.1.1.1:8127
16777216 bytes in 0.089 real seconds = 184089.89 KB/sec +++
numCalls: 2061; msec/call: 0.044; calls/sec: 23157.303

C:\PCATTCP-0114>

On the transmitter end:

C:\PCATTCP-0114>pcattcp -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.091 real seconds = 180043.96 KB/sec +++
numCalls: 2048; msec/call: 0.045; calls/sec: 22505.495

C:\PCATTCP-0114>

Samir

Posted 2013-10-31T16:43:30.787

Reputation: 17 919

Question was closed 2013-11-01T16:40:17.103

What makes you think it's NOT possible? What exactly have you tried already? What were the results? Where are you getting stuck? "Does this make sense?" and "Is this possible?" are not good questions for SU. – Ƭᴇcʜιᴇ007 – 2013-10-31T16:50:59.897

What would the purpose of this be? What problem are you trying to solve other than simple curiosity? – Dave M – 2013-10-31T17:06:20.697

@techie007 I have already connected the two ports. One of them is identified as Network 6, and I have chosen Home as network type to make it discoverable. The other one is stuck at "identifying". – Samir – 2013-10-31T17:10:39.593

@DaveM The idea is to test the throughput, i.e. to see what kind of transfer speeds I can get. But there's no way to do that on the same computer? I would need a second computer? – Samir – 2013-10-31T17:12:14.663

Answers

3

I'll preface this by saying I've never actually tried this, but I can't see why it wouldn't work as such:

  • Hook up the wire (since they're Gb ports, you shouldn't need a crossover cable to get Link).

  • Configure the adapters to be on the same subnet (say 10.1.1.1 and 10.1.1.2, mask 255.255.255.0). Only one of them can/should have a gateway, and if you need to put one in, just pick one of those IPs (10.1.1.1 or .2).

Even if it's stuck on "identifying" you can should still be able to use the connection ('identifying' often requires DNS, which may act weird if not available, but won't prevent IP address-based connections).

You also don't need to make them 'discoverable' per-se. Just turn off the firewall and use IP addresses for targeting.

  • Test with ping: ping 10.1.1.1 to ensure connection.

  • Run a host-to-host TCP bandwidth tester. I like this one for Windows use.

Ƭᴇcʜιᴇ007

Posted 2013-10-31T16:43:30.787

Reputation: 103 763

Wouldn't I need two "hosts"? – Samir – 2013-10-31T17:42:31.133

@Sammy No, just use the ip addresses. – cmorse – 2013-10-31T17:43:39.830

Ok. Which one do you use? The TTCP (original), PCATTCP, WSTTCP, or NTttcp? Which one is the easiest to use? – Samir – 2013-10-31T17:46:48.213

The Windows one -- the one that page is for: PCATTCP. :) "The PCATTCP program is simply PCAUSA's port of TTCP to Windows Sockets". They're just offering links to the original Unix program it was based on. – Ƭᴇcʜιᴇ007 – 2013-10-31T17:50:18.727

When I do ping 10.1.1.1 or ping 10.1.1.2 in cmd I get a response in less than 1 ms. Are these being sent out from the "localhost"? When I do ping localhost I see "Pinging GIGA [::1] from ::1 with 32 bytes of data". What does this mean? Why is it not saying 127.0.0.1? – Samir – 2013-10-31T17:55:02.780

Check your hosts file, it probably has ::1 higher up than 127.0.0.1 for localhost, they mean the same thing. %systemroot%\system32\drivers\etc\hosts – Gregg Leventhal – 2013-10-31T17:57:52.407

@GreggLeventhal Thanks! In C:\Windows\System32\drivers\etc\hosts I see 127.0.0.1 first, and under it on a new line is ::1 but since they mean the same thing I don't care about it. It has something to do with my network configuration. It might also have something to do with ICS (internet connection sharing), although it has its own "hosts.ics" file (note that it's not a calendar file). – Samir – 2013-10-31T18:04:26.120

What would the command look like for a basic test between 10.1.1.1 and 10.1.1.2? Do I in fact need two instances of PCATTCP.EXE where one is running as a "receiver" and one as a "transmitter"? – Samir – 2013-10-31T18:08:00.513

I may have reversed that, the last one might take precedence, not the first one. – Gregg Leventhal – 2013-10-31T18:19:38.250

@Sammy Check out the documentation 'PCATTCP /?'), but yes, one needs to be the Receiver and one needs to be the Transmitter. – Ƭᴇcʜιᴇ007 – 2013-10-31T18:21:51.513

@GreggLeventhal We can continue this discussion here.

– Samir – 2013-10-31T18:54:11.457

How do you explain "Transmit : TCPv4 0.0.0.0 -> 10.1.1.1:5001"? Why does it say 0.0.0.0 and not 10.1.1.2? Is it not necessary to explicitly specify that the receiver is to use 10.1.1.1 and the sender is to use 10.1.1.2? It measured 1.4 Gb/s and that's pretty good for Gigabit Ethernet I'd say. But I'm not sure it takes the right path. – Samir – 2013-10-31T22:46:43.680

I have figured it out. But I'm running into a Winsock error for some reason when using PCATTCP. However, I don't have that problem when using IPERF (version 3). It gave me a 352 Mb/s reading. That seems more realistic. I would like to do the same test with PCATTPC to get a second opinion. So if you have the time, can you please have a look at the link above?

– Samir – 2013-11-01T22:27:48.477