Prioritizing Bandwidth Usage Between USB Tethered LTE and DSL - Page 1
Forum section: electronics / projects

author: frostheave
author_rank: Contributor
timestamp: April 07, 2015, 07:01:35 pm
content: Hi all. I know this not really electronics related, but if it is relevant and permissible, I would like to ask a networking question. If not, please delete this post.I have just a little networking experience and would appreciate any help with the following problem. First, let me describe the setup. Below is a diagram of the hardware connections.What I would like to do is the following:1) Make the 1Mbps DSL connection to the desktop primary so that it is always used first.2) Have the USB Tethered connection provide additional bandwidth to the desktop as needed.For example. Say I want to watch a EEVblog video at 480p. My 1Mbps DSL connection is not quite fast enough to stream at 480p without buffering. I would like the USB tethered connection to provide the remaining bandwidth needed to prevent buffering.I would like to do this because I have unlimited bandwidth usage per month on my 1Mbps DSL but I am limited to 20GB usage per month on my cell contract.Does anyone know if this is possible to accomplish? Thanks for your help!

author: rob77
author_rank: Super Contributor
timestamp: April 07, 2015, 07:18:34 pm
content: no it's pure mission impossible... sorry. you can only switch between your 2 connections - disable ethernet and plug the USB tether on your PC, you will never ever be able to use the 2 connections simultaneously.

author: SeanB
author_rank: Super Contributor
timestamp: April 07, 2015, 08:14:06 pm
content: You can do it, but the problem with doing it with video is that the phone data is going to be delayed by quite a bit, compared to the DSL data ( it has to traverse at least another 5 layers of routing. First the phone, then the radio link to the cell site, then the site itself aggregating to the link to the central office of the cellco, then their NAT and finally to the internet), you are trying to pair bond and will run into issues with the latency.If you can get another phone line to your house, you can use the router to pair bond the 2 ADSL lines to appear as if they are 1 line with about 1.5M speed, though it would probably be cheaper to pay for the faster connection speeds if available, unless you are at the limit of ADSL at your location and 1M is the top speed on the line.

author: Monkeh
author_rank: Super Contributor
timestamp: April 07, 2015, 08:22:16 pm
content: Quote from: rob77 on April 07, 2015, 07:18:34 pmWhat utter bull.On the other hand, it is pretty difficult to balance traffic between them.

author: tonyarkles
author_rank: Regular Contributor
timestamp: April 07, 2015, 08:30:16 pm
content: Something like this might work, except for the lack of USB... You could plug the phone into something like a raspberry pi to use as a usb-wan gateway:http://www.newegg.ca/Product/Product.aspx?Item=N82E16833704101

author: frostheave
author_rank: Contributor
timestamp: April 07, 2015, 10:57:40 pm
content: Thanks for your replies guys. You have spurred me to into more research on load balancing, aggregation, binding, etc. Definitely new territory for me.tonyarkles, your post led me to do more searching and I found the following router.http://www.amazon.com/Peplink-Balance-20-Dual-WAN-Router/dp/B0042210U6/ref=sr_1_1?ie=UTF8&qid=1428446982&sr=8-1&keywords=balance+20I talked to a tech at Peplink and he says the Balance 20 will do what I need, although it's not cheap at $285.Does anyone have any experience with Peplink routers? I am tempted to give it a try.

author: NiHaoMike
author_rank: Super Contributor
timestamp: April 08, 2015, 02:23:44 am
content: That's overcomplicating things. What would probably make more sense is to download the video.

author: BradC
author_rank: Super Contributor
timestamp: April 08, 2015, 02:41:04 am
content: The problem you have is you want to split what is effectively a single network stream across multiple links. That only works if you have support for it at both ends of the link.There are two concepts here. Load balancing and link aggregation.Load balancing allows you to distribute multiple network streams across multiple links while link aggregation allows you to treat multiple network links as a single higher bandwidth link.The "load balancing" router you linked works by distributing network connections across the links, so you might have a http connection to youtube on the ADSL, and a http connection to eevblog.com on the mobile phone. Without specific aggregating hardware/software at the end of both connections you can't distribute a single connections packets across multiple links.Link aggregation works if you either have ISP support, or you have a VPS somewhere running a load balancer proxy, but you can't just plug in a box at home and aggregate bandwidth across multiple links.Load balancing is good for multiple users or lots of traffic. Link aggregation is good for a single high bandwidth stream (like youtube for example).Load balancing is easy. Link aggregation is actually quite difficult in practice as you must deal with variable latencies and the resulting packet ordering issues.

author: rob77
author_rank: Super Contributor
timestamp: April 08, 2015, 05:04:25 am
content: congrats guys !the question was to share the bandwidth for watching yt videos.a connection between 2 endpoints is identified by 4 numbers - source IP, source port, destination IP, destination port... and you guys are stating that it's possible to have a connection "split" between 2 source IPs ? congrats once again !btw.. i used to be a network guy - maintained an AS connected to 3 internet exchanges and running 5 upstream connections (and fine-tuning BGP to balance across them)... so i know how to balance large-scale but that's simply not possible with a single connection... a single connection is fixed, you simply can't have 2 source IP addresses for a single connectionyou might balance per target by maintaining a static routing table on the PC , but that's very inconvenient and out of scope for ordinary users.

author: Monkeh
author_rank: Super Contributor
timestamp: April 08, 2015, 06:34:01 pm
content: Quote from: rob77 on April 08, 2015, 05:04:25 amAnd your statement was "you will never ever be able to use the 2 connections simultaneously.".It seems you know better, but failed to express it.By the way, the way Youtube handles streaming, it is technically possible to utilise both connections in this case. That said, I have never actually attempted such a thing.

author: frostheave
author_rank: Contributor
timestamp: April 09, 2015, 04:25:46 am
content: Ok, it's starting to make sense to me now. Combining ethernet frames from two connections to one host, when there isn't any combining equipment at the far end, is VERY difficult.So how about this. Is there a way for me to bind a WIN7 application to a network interface? I know I can use the route command to bind an ip address to a specific interface. I would like to do basically the same thing, only, for example, bind the browser Chrome to my 4G LTE ip on my desktop. Is there a way?

author: BlueBill
author_rank: Regular Contributor
timestamp: April 09, 2015, 04:39:36 am
content: You might get speed gains just by updating that ancient WRT54G router. Try a recent ASUS RT series. Also contact your ISP and see what it costs to upgrade your bandwidth.

author: Monkeh
author_rank: Super Contributor
timestamp: April 09, 2015, 04:40:58 am
content: Quote from: BlueBill on April 09, 2015, 04:39:36 amOn a 1Mbit connection? Seriously?

author: rob77
author_rank: Super Contributor
timestamp: April 09, 2015, 07:16:08 am
content: Quote from: frostheave on April 09, 2015, 04:25:46 amin short : no there is no way (considering a windows)longer answer: technically it's possible but it's more than out of scope for ordinary usersfor linux system: (AFAIK Windows don't have any advanced routing capabilities - so not possible).1.create 2 routing tables (you can have upto 2^8 routing tables on linux) each of them with a different default GW (one for ADSL and second for LTE)2.create IP rules diverting packets to the different routing tables based on the source IP (the IPs of your ethernet and tether connection)3. convince your application to bind sockets to a specific IP when opening connections.

author: frostheave
author_rank: Contributor
timestamp: April 09, 2015, 04:08:08 pm
content: Quote from: BlueBill on April 09, 2015, 04:39:36 amYeah, it's an oldie but a goodie. It just keeps running!Unfortunately, 1Mbps is the max available rate from my ISP. It has been that way for the last 5 years and they have no plans to upgrade the CO, at least not in the near future.

author: Monkeh
author_rank: Super Contributor
timestamp: April 09, 2015, 04:21:05 pm
content: http://www.windowsnetworking.com/kbase/WindowsTips/Windows7/RegistryTips/Miscellaneous/LoadBalancingAmongMultipleNetworkAdapters.htmlSo, in theory, traffic will get split between them. Give it a go. This should work with Youtube thanks to DASH.In practice it may not work as well as desired.E: Well, sadly, although this works, and discrete connections are used, Windows appears to only ever use one route for an IP even for new connections. So close, and yet so far. It could still be of use to increase your general browsing happiness.

author: Rasz
author_rank: Super Contributor
timestamp: April 09, 2015, 05:05:22 pm
content: Quote from: Monkeh on April 07, 2015, 08:22:16 pmIts not utter bull. There is no way tojoin connections like op wants, no amount of magic home router boxes will help him. He would need to setup other end of the tunnel somewhere on the internet, and link his magic box with that other server first.HTTP doesnt, and WILL NOT (between 10 and NEVER years) support multihoming. We barely got http/2 after 15 years just now, and its shitty half assed hack.BradC explained whats upQuote from: NiHaoMike on April 08, 2015, 02:23:44 amthisyoutube-dl form command lineor youtubecenter plugin that gives you DOWNLOAD link right on the YT page.Quote from: rob77 on April 09, 2015, 07:16:08 amforcebindip, freewareQuote from: frostheave on April 09, 2015, 04:08:08 pm/dave voice USA USA USA!!!! /dave voice

author: Monkeh
author_rank: Super Contributor
timestamp: April 09, 2015, 05:08:03 pm
content: Quote from: Rasz on April 09, 2015, 05:05:22 pmYes, there are ways, and no, HTTP does not need to support multihoming.Take a look at your traffic while streaming a Youtube video sometime. They use DASH, it makes multiple independent requests for chunks of data. There is nothing to stop you making them via different connections and I've just forced it to happen on the fly by changing metric as I watch!If you want to sit there and pretend everything happening on the internet is a single point to point connection, that's fine, but I'm not wearing your blinkers.

author: frostheave
author_rank: Contributor
timestamp: April 09, 2015, 05:35:46 pm
content: Quote from: rob77 on April 09, 2015, 07:16:08 amBoy, it's just not that easy is it!Here is what I tried. I pinged youtube.com to get its' ip address.I then added a static route, using the route command, from that ip to my slower DSL adapter ip, as a test. For some reason this did not work. The youtube traffic was routed to the faster 4G LTE ip. I know just enough to be very dangerous so I probably did something wrong. Maybe the Netmask or Metric is incorrect?

author: frostheave
author_rank: Contributor
timestamp: April 09, 2015, 05:43:22 pm
content: Quote from: Monkeh on April 09, 2015, 04:21:05 pmThanks for the link. From that page it says:"This makes Windows distribute the networking and internet connections or sessions randomly among the multiple adapters."I guess that is not exactly what I am looking for but thanks for the effort! Now I need to do some research on what DASH is. I've never heard of that before.

author: frostheave
author_rank: Contributor
timestamp: April 09, 2015, 06:22:15 pm
content: Quote from: Rasz on April 09, 2015, 05:05:22 pmGood info. Thanks for the suggestion.Quote from: Rasz on April 09, 2015, 05:05:22 pmYes, I read quite a bit about "forcebindip". Looks interesting. I might give it a try.Quote from: Rasz on April 09, 2015, 05:05:22 pmRight on! Yea, here in Alaska some of us are pretty bandwidth poor. Actually, I am a fiber optic tech for Alaskas largest telecom company. If I lived 1/2 mile closer to town, I would have a 100Mbps cable modem with 500GB monthly bandwidth for free! Maybe it is time to move.

author: Rasz
author_rank: Super Contributor
timestamp: April 09, 2015, 06:58:37 pm
content: Quote from: frostheave on April 09, 2015, 06:22:15 pmwait, what? well that solves all your problems right therehttp://www.amazon.com/Ubiquiti-NBE-M5-300-NanoBeam-wireless-client/dp/B00JIN45FQ+ nanostation and you are set.

author: rob77
author_rank: Super Contributor
timestamp: April 09, 2015, 09:21:03 pm
content: Quote from: Rasz on April 09, 2015, 05:05:22 pmgood to knowbut binding to a specific IP is just half of the story - the 2 routing tables with different default gateways and passing packets based on source IP to those 2 tables is the second half of the story.