Live data from Hacker News

Combine your Wi-Fi, Ethernet and 3G connections to increase your download speed

github.com

21–30 of 63 posts

Re: Combine your Wi-Fi, Ethernet and 3G connections to increase your download speed

#21
post #20

Can anyone explain how this works? From previous experience I always thought that this was not possible without some cooperation on the other end because the problem is you want to split the data being sent to you to different ips. If the other end sends all the data to the same ip, you cannot redirect/load balance to other ips before the data actually gets to you. What am I missing?

Probably each TCP connection only goes over one IP address, so the remote end doesn't get confused. All the data coming back on that connection will have to come in on the same path the connection started on.

If that were the case, the download would be no faster than using a single connection. I guess it would help if you download multiple things, but that is a different claim than what is claimed in the title.

Re: Combine your Wi-Fi, Ethernet and 3G connections to increase your download speed

#22
post #20

Earlier quoted context omitted.

Probably each TCP connection only goes over one IP address, so the remote end doesn't get confused. All the data coming back on that connection will have to come in on the same path the connection started on.

If that were the case, the download would be no faster than using a single connection. I guess it would help if you download multiple things, but that is a different claim than what is claimed in the title.

You can use multiple connections for a single download (e.g. HTTP range requests).

Re: Combine your Wi-Fi, Ethernet and 3G connections to increase your download speed

#23
post #22

Earlier quoted context omitted.

If that were the case, the download would be no faster than using a single connection. I guess it would help if you download multiple things, but that is a different claim than what is claimed in the title.

You can use multiple connections for a single download (e.g. HTTP range requests).

I was thinking the same thing. A quick glance at the code (I don't speak js) seems it's not doing this.

Re: Combine your Wi-Fi, Ethernet and 3G connections to increase your download speed

#24
post #14

Nice. Interesting that you're doing it at the userland level and balancing across IP address and not interfaces. I may find a use for this. (On a network rate limited by IP address, not per physical connection or per MAC address, and allows me to use multiple IPs. Go figure.) I haven't set this up myself, but I think the iptables method for doing this is `nexthop via`. Never found any great documentation, but this se…

If anyone is interested in my particularly strange use case, this seems to work:

    $ sudo ifconfig en0 alias 192.168.2.210 255.255.255.0
    $ sudo ifconfig en0 alias 192.168.2.211 255.255.255.0
    $ sudo ifconfig en0 alias 192.168.2.212 255.255.255.0
    $ dispatch start
    SOCKS5 server started on localhost:1080
    Dispatching to addresses 192.168.2.28@1, 192.168.2.210@1, 192.168.2.211@1, 192.168.2.213@1
Also the link I mentioned is different from what other people have mentioned in this thread. It's not interface bonding or TCP multipath. It is actually similar to dispatch-proxy, it balances TCP connections across interfaces as far as I can tell.

Re: Combine your Wi-Fi, Ethernet and 3G connections to increase your download speed

#25
post #22

Earlier quoted context omitted.

If that were the case, the download would be no faster than using a single connection. I guess it would help if you download multiple things, but that is a different claim than what is claimed in the title.

You can use multiple connections for a single download (e.g. HTTP range requests).

Yes, but that is at the application layer, not the transport layer (i.e. at TCP). Meaning, you need to be aware of what is actually being sent.

Re: Combine your Wi-Fi, Ethernet and 3G connections to increase your download speed

#26

Earlier quoted context omitted.

I'm pretty sure you can do this sort of load balancing on Linux without having to install any extra software, at the IP level, with the "ip rule" and "iptables" commands. EDIT: Yep: https://home.regit.org/netfilter-en/links-load-balancing/

TL;DR just buy a faster internet connection. It is possible to do per-packet load sharing in Linux as the link above suggests. Both links need to be able to source traffic using the same IP address, i.e. you can't mix comcast and dsl. The way to get around this is to have an upstream router that will source your traffic from the same IP address: client - routerD --upstream1---routerU -- the internets |-------upstream…

> just spend more money

Mmmhmm, that's the true hacker spirit right there...

Re: Combine your Wi-Fi, Ethernet and 3G connections to increase your download speed

#28

This is a neat idea. Does anyone know if it's possible to achieve a similar effect natively on Linux ? i.e. make the linux network stack load-balance all outgoing connections to all available interfaces ?

"Bonding" at the kernel level: The Linux bonding driver provides a method for aggregating multiple network interfaces into a single logical "bonded" interface. The behavior of the bonded interfaces depends on the mode. Generally speaking, modes provide either hot standby or load balancing services. Additionally, link integrity monitoring may be performed. https://www.kernel.org/doc/Documentation/networking/bonding...…

People who are downvoting dgquintas, can you explain why? Or explain why this doesn't work? It seems to fulfill the problem?

Re: Combine your Wi-Fi, Ethernet and 3G connections to increase your download speed

#29
post #22

Earlier quoted context omitted.

You can use multiple connections for a single download (e.g. HTTP range requests).

Yes, but that is at the application layer, not the transport layer (i.e. at TCP). Meaning, you need to be aware of what is actually being sent.

Well, if you just balance TCP connections across physical connections, you could then combine this with a multi-connection HTTP download client and get the effect without any one piece having knowledge of it all (aside from the human). But yes, it's not going to be useful in general for everything.
Post reply on HN