I've built an open source implementation of RFC2544 to test IPv4 network devices. One of the first devices I tested is a wireless router D-Link 2640B. In order to measure its performance I use a laptop with a 10/100 Mb Ethernet interface and an integrated wireless network adapter. The traffic flow is generated by the laptop, forwarded back by the router and received by the laptop (that can determine performance metrics):
D-Link 2640B Router
Wired Wireless
\ /
| |
`Laptop´
running
D-ITG
Now I run the test suite. The interesting thing I can't explain is: if the traffic flow, starting from the tester, goes through the Ethernet cable, then is forwarded by the router to the wireless link and received by the laptop, I get the following results:
Frame size: 64
Throughput: 1.47657 Mb/s
Number of frames lost in the last round: 3
Frame size: 128
Throughput: 3.32227 Mb/s
Frame size: 256
Throughput: 6.43361 Mb/s
Frame size: 512
Throughput: 11.5488 Mb/s
Frame size: 1024
Throughput: 21.5157 Mb/s
Number of frames lost in the last round: 631
Frame size: 1280
Throughput: 25.8398 Mb/s
Frame size: 1518
Throughput: 28.793 Mb/s
If the traffic flow is sent by the laptop through the wireless link, then forwarded by the router to the Ethernet link back to the laptop I get the following results:
Frame size: 64
Throughput: 54 Mb/s
Frame size: 128
Throughput: 54 Mb/s
Frame size: 256
Throughput: 54 Mb/s
Frame size: 512
Throughput: 54 Mb/s
Frame size: 1024
Throughput: 25.207 Mb/s
Frame size: 1280
Throughput: 26.9472 Mb/s
Frame size: 1518
Throughput: 42.1347 Mb/s
Is it normal? What's happening that makes the results so different?
If I test devices using only Ethernet links (both to transmit and to receive the traffic) I get expected results.
Thank you
Additional info: to send the test traffic I'm using a D-ITG traffic generator. The traffic is composed of UDP Echo Request packets sent to the router.
The algorithm used to determine the throughput is the one defined in the RFC 2544: you start sending traffic at a specific transmission rate, then through a binary search you raise or lower this rate until you find the maximum rate at which there's no packet loss.
The router is configured with WPA2, SNMP and RIP v1 enabled. There are no filters active, the beacon period is 100, the RTS Threshold is 2347, the Fragmentation Threshold is 2346, the DTIM Interval is 1.
The laptop operating system is Xubuntu 13.10 with no optimizations or tuning of any kind.