alexkirsz / dispatch-proxy

Combine internet connections, increase your download speed
MIT License
3.47k stars 245 forks source link

Smart Routing #82

Open bruno-robert opened 6 years ago

bruno-robert commented 6 years ago

Since I see there is a new collaborator I will post this idea here. I've been using a service called Speedify recently and it seems to balance the load between my two connections depending on the bandwidth of the connections.

Basically, my idea is instead of setting how many times you want dispatch-proxy to use a connection out of the total (by using: 10.0.0.0@7 10.0.0.1@3), dispatch-proxy will update those values at runtime depending on how fast each connection is (a faster connections proportional use would increase proportionally to its bandwidth / the total bandwidth, and slower connections proportional use would decrease). This would improve the quality of the overall connection since you would use "more" of the fast connection and "less" of the smaller connection.

Don't hesitate to ask if I wasn't clear at some point.

rlindsberg commented 6 years ago
        Hi and thank you for your input. It's definitely a great idea for the next release. In reality, not only the bandwidth is important, the cost of the connection and the reliability of it should also be considered. My plan is to write a test, like you mentioned, to measure bandwidth when user is idling as well as the ping difference between two connections/data loss rates so that the system can automatically balance the traffic.Lovely to hear that you have a similar idea!
bruno-robert commented 6 years ago

I'm really glad to hear you have already thought about it! I hadn't thought about the cost of the connection probably due to the fact my connections are both unlimited, but it's definitely a great idea. I'm looking forward to the next release!

rlindsberg commented 6 years ago

It sounds like you are as excited as I am! Would you like to make the feature possible together with me? Right now I'm rewriting the code to ES6 and we shall begin after that.

bruno-robert commented 6 years ago

sure, I would be down for that! I'll take a look at it in more depth this weekend. How do you want us to communicate? For now I'll send you an invite on linkedin ;)

rlindsberg commented 6 years ago

We can try Slack or just email. What do you think? For now, I'm going to write my last exam for this term. I'll be back in a few hours.

Unknown78 commented 4 years ago

Speedify uses channel bonding technology. This new feature will make the program better, but still uses load balancing technology at its core.

vaaino commented 4 years ago

Speedify uses channel bonding technology. This new feature will make the program better, but still uses load balancing technology at its core.

What does Speedify have to do with this? Is it a repackaging of this very program?

Unknown78 commented 4 years ago

Speedify uses channel bonding technology. This new feature will make the program better, but still uses load balancing technology at its core.

What does Speedify have to do with this? Is it a repackaging of this very program?

No, Speedify is a different proprietary software. It uses channel bonding technology instead of load balancing which dispatch-proxy use.

Channel bonding technology allows you to combine e.g. 1Mbps+1Mbps for 1 connection. On the other hand, load balancing will spread 1Mbps and the other 1Mbps for multiple connection.

Load balancing is only effective if the server support parallel connection and the software itself parallelize the connection. E.g. Free Download Manager and Google Drive.

Speedify monopoly the market, I really dislike it. There is no open source easy to use software which you can find using the channel bonding technology, especially in windows.

vaaino commented 4 years ago

@Unknown78

Oh, ok. Thanks for clarifying. I've also noticed that Speedify is quite a monopoly

Unknown78 commented 4 years ago

@Unknown78

Oh, ok. Thanks for clarifying. I've also noticed that Speedify is quite a monopoly

That's why I encourage the devs to build an open source version of it. At least combine it with dispatch-proxy, so that there may be some new flag to switch between the technology.