Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


Do anyone knows if there exists any self-hosted Speedify alternative?
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

Do anyone knows if there exists any self-hosted Speedify alternative?

jvnadrjvnadr Member
edited September 2017 in General

Internet bonding is a tricky thing... Especially when is intended to be used in home or, even more, in an external location with the usage of a laptop...
A solution (and rather cheap enough) is speedify. Free for 1 GB per month and less than 10$ for unlimited (and 5 concurrent users). The project is (at the... description level) simple: combine two or more internet connections (3G - 4G - wifi - LAN) to a big pipe for download AND upload.
It is working as a vpn service that splits the data to ip-packet level and send them to a central server using the multiple internet connections. Then, the central server combines the packets and send them to the final destination, as whole. The goal is combining internet speed to a bigger one and balancing the hickups from the different connection to a more stable one.
This is something that, commercially, is used in the television industry with different solution: a hardware called LiveU (it's an Israeli company that invented this machine in 2008, now there are some competitors). This hardware takes multiple internet connections (4g dongles, wifi, lan), encoding video and streams it to a central server to the TV master control. But it is expensive as hardware (the main unit costs ~12.000 euros, with some cheaper models) and there is a need for subscription and the cost of buying the receiver (server + software).

My question

Is there any self-hosted solution with something like a VPN function, that can be installed to a dedi or vps and function as packet recombining, with an app to the pc or laptop that splits ip packets using different internet connections to transmit them to the server?

Comments

  • Falco33Falco33 Member
    edited September 2017

    Is this something you're looking for?https://www.simonmott.co.uk/2012/03/vpn-bonding/

    It's old though, but it might still work.

  • Not really. In theory, it does what I ask for, but it is very complicated to impossible to use it externally, you have to setup a machine inside your home or office. Also, it does not work with windows (on client's end).
    What I am seeking of, is a solution that can be portable (e.g. a laptop with 3G - LTE connections, we all know that there is no any dedicated ip to them, so, there is a need for a lot of configuration there), can be setup in a windows pc and it is easy to maintain. Ideally, a solution with a server setup and an application on the client's pc.

    Speedify is a perfect solution. The only caveat is that you have to use their servers and there are times that combining internet thru their nodes is slower than using a single connection without bonding...
    They have a custom self-hosting solution (having your own server for bonding) but the price will be custom and really expensive...

  • https://github.com/Morhaus/dispatch-proxy might achieve something similar and doesn't require a central server/VPN. It basically sets up a proxy server and then load-balances/dispatches traffic between the various interfaces.

  • jvnadrjvnadr Member
    edited September 2017

    imyuno said: might achieve something similar and doesn't require a central server/VPN. It basically sets up a proxy server and then load-balances/dispatches traffic between the various interfaces.

    No. This can be used to balance internet connections. It does not combine them to a bigger pipe, aka, if you want to stream a video with a combined speed, this cannot be done because each application will use one connection. The solution has to be done in the ip-packet level...
    Anyway, thanks for the contribution!

  • @jvnadr said:

    imyuno said: might achieve something similar and doesn't require a central server/VPN. It basically sets up a proxy server and then load-balances/dispatches traffic between the various interfaces.

    No. This can be used to balance internet connections. It does not combine them to a bigger pipe, aka, if you want to stream a video with a combined speed, this cannot be done because each application will use one connection. The solution has to be done in the ip-packet level...
    Anyway, thanks for the contribution!

    It should by knowing when a pipe has too much packet queue and dispatching to the other pipe, resulting in a bigger pipe for the application using the proxy. For example a multiple threaded download manager will start the downloading the file at multiple places maxing out both pipes and combine it all together.

    The author describes his use case to achieve a bigger pipe from his 3 different connections:

    For example, my residence provides me with a cabled and wireless internet access. Both are capped at 1,200kB/s download/upload speed, but they can simultaneously run at full speed. My mobile internet access also provides me with 400kB/s download/upload speed.

    Combine all of these with dispatch and a threaded download manager and you get a 2,800kB/s download and upload speed limit, which is considerably better :)

    I can't comment on how it performs, it surely has its limitations and might not be ideal. Issues might also arise when authentications looks at the IP address, as packets might come from either interface. That's where a central server/VPN model would work better. You could in theory run openvpn through the socks proxy of dispatch but I'm not sure if openvpn will play along well with the same user sending packets from 2 different IPs.

    I don't really have a use case to test this right now, please update the thread if you come to a solution :)

  • Well not kind of self hosted or hosted at all but
    i am using a 50$ mikrotik router to combine 2x wan , 1 wifi and 1 android 4g lte connection , its not hosted like thing , but it work very well and i get a good speed for multi thread downloads , its even work with single thread but then balancing/Combining is not much optimized.

  • imyuno said: I can't comment on how it performs, it surely has its limitations and might not be ideal. Issues might also arise when authentications looks at the IP address, as packets might come from either interface. That's where a central server/VPN model would work better. You could in theory run openvpn through the socks proxy of dispatch but I'm not sure if openvpn will play along well with the same user sending packets from 2 different IPs.

    The case scenario would be live video streaming. This type of traffic could not be working on this case, it needs to be handled as a single ip when receiving because of the authentication of the rtmp or rtp server...

    hammad said: mikrotik router to combine

    This works for downloads, not for combining single file uploads like video streaming, unfortunately.

    But thanks all for the suggestions.

  • entrailzentrailz Member, Host Rep

    @jvnadr said:

    imyuno said: I can't comment on how it performs, it surely has its limitations and might not be ideal. Issues might also arise when authentications looks at the IP address, as packets might come from either interface. That's where a central server/VPN model would work better. You could in theory run openvpn through the socks proxy of dispatch but I'm not sure if openvpn will play along well with the same user sending packets from 2 different IPs.

    The case scenario would be live video streaming. This type of traffic could not be working on this case, it needs to be handled as a single ip when receiving because of the authentication of the rtmp or rtp server...

    hammad said: mikrotik router to combine

    This works for downloads, not for combining single file uploads like video streaming, unfortunately.

    But thanks all for the suggestions.

    Have you had much luck with Speedify? Looking into it now and it seems almost too good to be true.

  • entrailz said: Have you had much luck with Speedify? Looking into it now and it seems almost too good to be true.

    Yes, it is good. But it is not always stable. I had balanced and increased speed using two lines most of the time I used it, but there was times that the single speed was better than the combined...

  • I know of a German company that does this in hardware, which means you get either just their box or the box and a hosted other side service.

    Works with LTE modules as well as others but is always hardware, not software. Used to backup uplink TV transmissions and such via LTE. https://www.viprinet.com/en

    As you see on Speedify you can do this fully in software, but you will not get this hosted and especially not free - They have issues already on their scale.

    This is very, VERY tricky networking especially if the lines differ a lot in either latency or speed (or both, if you combine ADSL with 4G) and if the lines are both fast but vary extremely on backbone routing (eg. China) or network quality (eg. India).

    Basically just like anycast and DDoS protection this is hard to maintain from any side you view at it, which makes it expensive to set up and expensive to operate - you need to have route monitoring to use multiple endpoints for eg. CU/CT bonding in China, you need to have monitoring on each link then to monitor QoS, then you need to have another link on each path to another endpoint of yours as failover especially in Asia, then you finally get to run TCP/UDP over this once you figured out a system to use the best return path (which is the latency/speed crisis described above and can change immensely in seconds) and best send path (which needs to be constantly tested to be the best)... and this is just to get up, once this all runs you need to monitor it again to get QoS data and so on....

    All of this makes it not feasible for yourself to build and expensive to do so for customers, and it ends as specialised expensive service like Speedify which might or might not work for normal users, and high-end hardware bonding for datacenter/enterprise use, but nothing in the middle.

  • jvnadrjvnadr Member
    edited September 2017

    William said: Used to backup uplink TV transmissions and such via LTE. https://www.viprinet.com/en

    I didn't know this router. As I saw, they do the same job as liveu, TVU and aviwest, but their hardware costs more and the competition is having already even a hardware video encoder.

    William said: As you see on Speedify you can do this fully in software, but you will not get this hosted and especially not free - They have issues already on their scale.

    They do offer a self-hosted solution (install in own server the software for be used with the application) but I don't know the price. I will ask them, though

    William said: CU/CT bonding in China, you need to have monitoring on each link then to monitor QoS, then you need to have another link on each path to another endpoint of yours as failover especially in Asia

    Not China, not Asia, just Southern Europe.

    William said: All of this makes it not feasible for yourself to build and expensive to do so for customers

    I am interested not for customers but for my own needs. ATM, I use speedify or single LTE and, occasionally, I rent a LiveU.
    Anyway, thanks for the infos.

  • I did bonding like this for awhile:

    I had two 150 megabit cable modem connections at the time and was able to get 300 megabit to the internet. Worked well enough but ended up shutting it down due to lower reliability.

    https://simonmott.co.uk/2012/03/vpn-bonding/ was what I used as a basis.

  • jvnadr said: Not China, not Asia, just Southern Europe.

    China is just the easiest example as everyone knows CT and CU routes differ a lot.

    The EU example would be UPC on one link and DTAG on the other for "horrible anyway" and UPC/DTAG + RDS/Romtelecom/Hrvtski telecom etc. as the "ok" side, and any mobile + FTTH/Coax connection for the 4G example/latency issues.

  • alerinaldialerinaldi Member
    edited July 2019

    Hello,
    me and a friend maintain an open source solution called engarde that does exactly what Speedify's "Redundant Mode" does. So, it replicates all of the packets on all the connections. No performance improvements, but stability ones. It uses WireGuard for the VPN part.
    If you find it useful and easier to configure than other existing solutions, we could consider adding the "classical" bonding method, it's not a complicated thing to do. So test it and reach us out :wink:

    Thanked by 3jvnadr johnr24 pike
  • http://www.openmptcprouter.com/ - OpenWRT with the multipath-TCP patches already in (Not tried it yet however, plan to at somepoint)

    Thanked by 1jvnadr
  • jvnadrjvnadr Member

    Wow! A necroing that is actually really useful and contributing! Kudos to both of @alerinaldi and @dragon2611

    alerinaldi said: me and a friend maintain an open source solution called engarde that does exactly what Speedify's "Redundant Mode" does

    Seem really nice solution for a lot of scenarios. As I am in broadcast industry, with today's 4g (soon 5g) and VDSL technologies, the goal nowadays is not always combining internet to get a bigger pipe, but have an absolute reliable connection that is almost impossible to go down. For example, if we go live for a story on the field, a simple mediocre 4G connection will give us enough bandwidth using h265 to achieve a more than good video for the news cast. The issue is when the 4g signal get lost for a second or two, or some packets gone lost, or the connection collapse. If you have a couple of more connections that are used simultaneously, then, the result will be OK.

    dragon2611 said: OpenWRT with the multipath-TCP patches already in

    Seem a good solution. I guess it involves using a laptop or something like a RPi that acts like the middleman where the several modems are connected to. This seem the exact solution a LiveU or a Terradek hardware does, on the part of internet bonding. I will also will definitely play with it at some point.

    Thanks guys!

  • alerinaldialerinaldi Member
    edited July 2019

    Seem really nice solution for a lot of scenarios. As I am in broadcast industry, with today's 4g (soon 5g) and VDSL technologies, the goal nowadays is not always combining internet to get a bigger pipe, but have an absolute reliable connection that is almost impossible to go down. For example, if we go live for a story on the field, a simple mediocre 4G connection will give us enough bandwidth using h265 to achieve a more than good video for the news cast. The issue is when the 4g signal get lost for a second or two, or some packets gone lost, or the connection collapse. If you have a couple of more connections that are used simultaneously, then, the result will be OK.

    Thanks @jvnadr , that's exactly the use case we developed engarde for, since I work in a radio station and we often go live (audio and, sometimes, video for socials) from localities with unreliable 4G. Using multiple modems, even just mobile phones with USB tethering and different carriers SIMs, really makes the difference.
    Please let me know if you give it a try, it's a young project and we're eager to get feedback :)

    Thanked by 1jvnadr
  • jvnadrjvnadr Member
    edited July 2019

    alerinaldi said: Please let me know if you give it a try, it's a young project and we're eager to get feedback

    Absolutely. I do not know when will I test this, but this will be soon enough! Tempo is a little down this period due to summer and high temperatures (I live in Greece).
    BTW, for audio applications, you do not really need much bandwidth. With todays codes (using ogg or opus or even AAC+) you don't need more than 96 or 128Kbps for a really good quality of stereo sound, when going live.
    Video is another story... For a live ENG coverage (a reportage or going live from the field of a story), using h265 a 1.2Mbps will be rather fine for a resolution of 1280x720 or even 1600x900, need more for full HD (>1.5Mbps). This will consume tons of bandwidth if you will use constantly all of the internet connections (for me, 3 connections are the reccomended minimum), but again, usually those coverages won't last more than 3-5 minutes on air, so, a total of 20-30 minutes of transmition with tests and waiting for being live.
    For a 30 minutes transmit, you will need ~350MB of bandwidth for each of the connection, so, this is more than acceptable in terms of cost.
    Overall, this seem a good solution. When tested, I will let you now with my feedback!

    Thanked by 1alerinaldi
  • BTW, for audio applications, you do not really need much bandwidth. With todays codes (using ogg or opus or even AAC+) you don't need more than 96 or 128Kbps for a really good quality of stereo sound, when going live.

    Yeah, we happen to go live on 64kbps on difficult situations. But if you need low latency, stability is a must more than bandwidth is, as you correctly said :blush:

  • @alerinaldi said:
    Hello,
    me and a friend maintain an open source solution called engarde that does exactly what Speedify's "Redundant Mode" does. So, it replicates all of the packets on all the connections. No performance improvements, but stability ones. It uses WireGuard for the VPN part.
    If you find it useful and easier to configure than other existing solutions, we could consider adding the "classical" bonding method, it's not a complicated thing to do. So test it and reach us out :wink:

    Could you add this functionality, I would love to be able to test
    Best
    J

Sign In or Register to comment.