Remote working makes you face some "challenges" regarding networking setup. One of them can be reproduced as:
1- download a big file 2- upload a big file at the same time 3- while both are happening, connect to mumble and try to speak to your colleagues 4- at the same time, do a "ping www.google.com"
You should see the ping goes very high. 50ms is the expected/acceptable, but with this experiment you will get very high numbers (500 for example, or even worse).
At some point, your connection gets "stalled" and of course, you cannot really have a conversation in mumble.
All this is caused by something known as bufferbloat. You can mesure that on dslreports.com .
In short, bufferbloat means that the buffers from your router get full and you can't neither download or upload.
But there is some hope!
There is something called Smart Queue Management[1] that you can use with an openwrt router.
This hackweek project consists on configuring an openwrt router with SQM and test if the bufferbloat gets mitigated and so we can have a conversation with mumble at the same time we upload and download big files.
I will use this router:
http://www.gl-inet.com/mt300n/
Its price is 25€
[1] https://wiki.openwrt.org/doc/howto/sqm
Looking for hackers with the skills:
Nothing? Add some keywords!
This project is part of:
Hack Week 14
Activity
Comments
-
over 8 years ago by jordimassaguerpla | Reply
I've followed the instructions on https://wiki.openwrt.org/doc/howto/sqm and it goes SUPER good. I can upload, download, talk in mumble, all at the same time, and the ping is somewhere between 50-60 ms, which is very good!!
-
over 8 years ago by bmwiedemann | Reply
btw: I have built comparable bufferbloat avoidance before using tc (from iproute2) and iptables to do traffic-shaping with rules as simple as packets <100 byte always go first and packets > 1300 byte always go last. (relying on port-numbers is often not good, as port 22 and 80 can transport both bulk and interactive data)
-
over 8 years ago by jordimassaguerpla | Reply
Cool! :) Could you share your scripts? I was having trouble combining both, tc and iptables. With just tc I was able to "shape" the traffic so that one connection could not "eat" all the bandwidth... however multiple connections were able to do it... with iptables I was able to prioritize one traffic based on the port, however when everything goes in the vpn I was not able to distinguish ....
It would be great to see those scripts combining tc and iptables :)
-
over 8 years ago by bmwiedemann | Reply
The basic concept is that you define buckets with different prios, and which traffic goes into which bucket is decided by the firewall-mark number (10 to 60 in my case) that is set by iptables in the mangle table.
That way IAX/SIP should go into the fast (10) bucket, ACKs and interactive-ssh in the 20 and bulk traffic in the slow 50 and 60 that get sent out last.
Similar Projects
This project is one of its kind!