3

I have a wireless network setup like this:

Laptop \  |     Wifi Router A       |     Wifi Router B        |  Wifi Router C |
        \ |     /             \     |     /              \     |   /       \    |
         \|wlan0              wlan1----wlan0            wlan1-----wlan0   eth0--|
          |hostapd     managed mode | hostapd    managed mode  |  AP    Internet|

So basically a straight line of laptop -> router A -> router B -> router C -> internet.

Routers A and B have two 802.11a radios in them and are embedded linux boards with high-power radios (Ubiquiti 600mW). Router C is a Linksys E2500 and connects to the Internet via ethernet. There is no bridging being used, only simple IP routing.

All wifi connections have great signals (at least -60dBm) and very low noise (-99dBm).

For speed testing I am using iperf with a large window size (3MB) and 10 parallel connections, with varying transmit times of 100-240 seconds.

The laptop consistently gets results of 6-8mbps between it and router B (upload and download). I have tried many different setting changes on the wifi side and nothing seems to impact the performance, I even checked things like hardware receive/checksum offloading on the interfaces and those settings do not make a difference either.

However, if I test between the laptop and router A, I get around 30mbps. Testing between router A and router B is also well over 25mbps. But when the laptop must traverse more than one radio, the performance is very bad (6-8mbps). I tested my theory by replacing the link between router A and router B with an ethernet cable, and then the speed tests from the laptop to router B more than doubled, to 25-28mbps consistently.

Why is the performance so bad when packets are sent across more than one radio in a router?

Updated:

What I'm trying to achieve is the end-user client network performance (the laptop) that I gain when connecting the AP's with ethernet... without doing so.

I realize that wifi is half-duplex and the more radios there are in the chain, the worse performance will be.

Is it possible to use seprate radios for transmit and receive to solve the problem?

I have 4 mini-pci slots in each board.

Tom O'Connor
  • 27,578
bparker
  • 133

2 Answers2

3

Of course the performance will be degraded after so many traversals. Radio is a shared medium (half-duplex), collisions can happen and to avoid them Wi-Fi uses CSMA/CA. Your performance will at least be degraded more than in half. Every client adds to the latency

Alex
  • 517
0

I don't think it's feasible to separate one radio board to be Tx and one to be Rx, because that would result in a huge amount of traffic across the PCI backplane.

Similarly, I suspect that for whatever reason, a lot of the problems are caused by lots of traffic across said backplane already, resulting in what you percieve as latency.

If I were designing a similar system (I do wireless networks for a living [kinda]).. I'd separate the link radios, in other words, Inbound and Outbound pairs, per building into separate physical boxes, connected back-to-back by gigabit ethernet.

That would have the effect of allowing the network adapters, and network hardware to handle the inter-radio, intra-AP traffic, which I suspect may be the bottleneck. Without more information, it's hard to actually make a good diagnosis. It's also hard to ask for whichever information, because frankly, I don't know. That old adage of, you don't know what you're looking for, but will when you find it.

That said, I don't know whether these router boards expose statistics on backplane traffic volumes and so on.

Alex has a few salient points too, although I'm unconvinced about CSMA/CA (Shouldn't it be /CD?), but it's always a possibility. Wireless communication is by its very nature, lossy, and repeating a signal like this is not unlike photocopying a photocopy, or cloning a VHS tape (Remember those? ;).

To recap, I generally don't like the idea of having two radios on the same board, and would try separating them into different physical devices, interconnected by ethernet.

YMMV.

Tom O'Connor
  • 27,578