Question

I am using ubuntu and have a JMC250 PCI Express Gigabit Ethernet Controller.

I used iperf with TCP on localhost and it gave me a bandwidth of 24.2 Gbps. What is the meaning of this bandwidth? I did this test on localhost assuming it will come out to be somewhat close to the hardware limit, but it goes way over it.

iperf output:

------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 127.0.1.1 port 5001 connected with 127.0.0.1 port 41954
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  28.2 GBytes  24.2 Gbits/sec
Was it helpful?

Solution

Data addressed to localhost never leaves the TCP/IP stack on your machine. It's sent to the loopback adapter instead. The loopback adapter is a virtual adapter - any traffic sent its way is sent right back to the caller, inside the stack. Your NIC never sees it.

It's not clear how real the 24.2 Gbps value is - you can see crazy values when you test with small enough datasets. To the extent that it's real, it may reflect your machine's memory bandwidth.

If you want to test the performance of your physical network adapter, or the network it's connected to, you'll need to interact with a host on your network, on a route that adapter is set to handle. If you have only one active physical adapter, that means any other host on your network.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top