There's been lots of talk about how much better the Asus RT-N66 stock firmware performed over Tomato.
Being an irregular developer on the tomato project, and having recently acquired a RT-N66U, I wanted to identify the issue considering that:
- Tomato now uses the exact same broadcom drivers as Asus latest firmware
- The Tomato kernel is slightly more recent (note: the newer Asus 144 firmware has caught most of those changes up)
- Tomato is leaner, with far less junk running...
So, with the same hardware and drivers, how could tomato be slower?
So I wanted to quantify the difference in a particular use case: my typical usage.
Speed over a 5Ghz link between a macbook air (dual channel so 300Mbit/s max) located in another room than the RT-N66, about 12m away.
The test consisted of varying the transmit power, then transfer a 512MB file of random data using rsync over a ssh connection.
Peak transfer speed was looked at the hardware interface level
Average transfer speed is the average speed reported by rsync at the end of the transfer.
Repeat three times.
When I first started my test, the Asus was crushing tomato big time. It was significantly faster. But very irregular too.
Trying to investigate the differences between tomato and the Asus stock firmware, I noticed that Asus by default uses the hardware accelerated NAT driver (ctl kernel module, it's not just for NAT but that's what Asus calls it).
Tomato doesn't use this module.
This module is incompatible with netfilter and qos ; the second you enable QoS with the asus firmware, the ctl module is unloaded.
Here are the results:
Conclusion: Asus stock firmware is only faster when no QoS is in use...
also tomato provides more consistent throughput.
If you want to use QoS, you're better off using Tomato.
There's some other differences in regards to signal level, the Asus stock firmware provides a more linear power output... I need to sort this out on Tomato which shouldn't be too complicated
I also tested router transfer speed over gigabit ethernet.
The results were also very interesting.
Asus with ctl: 66.4MB/s (this is in line with SNB's own test)
Asus without ctl: 45MB/s
Asus with QoS on: 20MB/s
So once again, tomato is faster with QoS active.
Summary: don't use QoS and want best performance: use Asus firmware
Use QoS? use tomato