Hi,

the larger values I use for -l in UDP mode, the lower bandwidth
is reported by iperf, incorrectly I think. With tcpdump I found
that it really seems like iperf would calculate only with one IP
fragement instead of the whole UDP packet.

I hope someone can explain why this happens, but first let me
explain what I did.

I wondered why bandwidth decreases when using larger UDP frames:

iperf -u -c x.y.0.1 -f m -b30m -l 1400
[  3]  0.0-10.4 sec  4.01 MBytes  3.25 Mbits/sec  4.203 ms 23810/26811 (89%)
iperf -u -c x.y.0.1 -f m -b30m -l 8000
[  3]  0.0-10.3 sec  0.78 MBytes  0.63 Mbits/sec  9.625 ms 4129/ 4683 (88%)

Server is iperf-2.0.5, downloaded just a few minutes ago.

So with larger UDP packets, the reported bandwidth decreases from
3.25 Mbit/sec down to 0.63 MBit/sec.

With tcpdump on an intermediate router and wireshark I found in
IO Graphs for both the same data rate (~3Mbit).

- First case, 1400 bytes UDP packets:
  - iperf tells 4.01 MBytes 3.25 Mbits/sec 23810/26811 (1400bytes),
    that are 3001 packets
  - this is OK according to tcpdump/Wireshark port udp.port==60054:
    displayed 3003 (3001 plus server reply plus one I don't know)
  - Calculating myself:
    (26811-23810)*1400bytes/10sec*8bits = 3,361,120 bits/sec

- Second case, 8000 bytes UDP packets:
  - iperf tells 795 KBytes   630 Kbits/sec 4129/ 4683 (8000 bytes),
    that are 554 packets
  - this is OK according to tcpdump/Wireshark port udp.port==34339:
    displayed 556 packets
  - Calculating myself:
    (4683-4129)*8000/10sec*8bits        = 3,545,600 bits/sec
  - So rate seems to be fine, but iperf only shows 630 Kbits/sec!
    (please note that this calculation bases on the values shown
    by iperf!)
  - Could iperf use the wrong size, just size of a single fragment?
    Calculating with one IP fragment of assumed size of 1480 bytes:
    (4683-4129)*1480/10sec*8bits        =   655,936 bits/sec
  - this is close to the value calculated by iperf

When testing with 4000 bytes, I get values in between:
  - 1.56 MBytes  1.26 Mbits/sec  9.469 ms 8257/ 9370
  - resulting in the same situation (I calc ~3.5 Mbit, but when
    calculating with one fragment, I get ~1.3 Mbit, same as iperf)

So it seems that iperf UDP bandwidth calculation does not
calculate the correct UDP packet size, but only the size of one
IP fragment, could that be the case?

Since I cannot imagine that no one ever noticed and fixed this,
I think I could have some different issue? Seem I'm missing something?

What did I do wrong? Could someone please enlighten me?

Regards,
Steffen

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Iperf-users mailing list
Iperf-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iperf-users

Reply via email to