2

I'm using iperf to estimate network performance between Windows and Linux.

For TCP iperf shows 312 Mbits/sec from a Linux server to a Windows client, but it shows only 160 Mbits/sec from a Windows server to a Linux client.

For UDP iperf shows 147 Mbits/sec and 82% loss from a Linux server to a Windows client, but it shows 92 Mbits/sec and 0% loss from a Windows server to a Linux client.

I can't uderstand why iperf result is different when I change the direction from "Linux->Windows" to "Windows->Linux".

Could anyone please explain me why it happens and what is it related to? Thanks.

I have 1Gb network and: 1) Windows XP SP3, iperf 2.0.4 win32 threads; 2) Ubuntu 11.04 Server, iperf 2.0.5 pthreads

Rom098
  • 198
  • 1
  • 3
  • 8

2 Answers2

0

Sounds like either a speed or duplex mismatch. Check the duplex settings on both adapters. I would ensure they are set to auto-negotiate.

Per Greg Ferro "Gigabit Ethernet must have auto-negotation ENABLED to allow negotiation of master / slave PHY relationshitwhp for clocking at the physical layer. Without negotiation the line clock will not establish correctly and physical layers problems can result."

Fergus
  • 1,313
  • 9
  • 19
  • Thanks for the answer. My network adapter status is "connected, speed - 1Gbps" in Windows, but 'Speed&Duplex' property on 'Advanced' tab doesn't have 1000Mpbs value, just 10 and 100 Mbps (half/full). I have no idea what does it mean? Bad network driver or..? – Rom098 Sep 28 '11 at 13:41
  • Are you using a gigabit switch between the clients? – Fergus Sep 28 '11 at 17:01
  • I've asked my sysadmin for network configuration status. He is sure that we have 100Mbit switches in our network. But we've just found that routes are different for W->L and L->W. He doesn't know why, and he's trying to investigate it now. So it looks like we have network configutation issues, not Windows or Linux problems. Anyway, thank you again. – Rom098 Sep 29 '11 at 09:13
0

Windows and Linux use a different TCP Window Size. Normally the TCP Window would be adjusted dynamically. But this can result in different results in iperf. I prefer to use the -P 5 option to run 5 parallel threads. This will also show the sum of all threads. Usually I see the full interface bandwidth with this option.

abuzze
  • 156
  • 1
  • 5