SpeedFusion Cloud: Bonding vs. Dynamic Weighted Bonding

Screen Shot 2020-08-05 at 12.24.17 PM

I’ve gone through other threads on SpeedFusion and SpeedFusion Cloud, and can’t find a clear description of the difference between these two algorithms. I have a mix of DSL and cellular, and the cellular links each have unique constraints (speed, caps, throttling, etc), and it’s not apparent which is better for my use, or even how each works.

There was a mention of “Weighted Bonding” algorithm in another thread, but I don’t see that as an option.

Also, a Feature Request:
Given that SpeedFusion Cloud, other than smoothing (and failover) applications, is largely for bonding multiple WAN links for simultaneous use and faster (aggregated) link speed, it would be extremely useful to have a basic Weighted Balance bonding option (similar to Outbound Policy), so that users could better balance the constraints of each link within the SpeedFusion Cloud bond without affecting non-SpeedFusion rules.

Here’s my attempt at explaining…

Bonding - 1 packet down each pipe in a round robin fashion, with programmable cutoffs where it stops using 1 of the links if it gets bad.

DWB - send measurement packets down each link and watch the response times. Based on response times alone, try to surmise the available bandwidth. The dynamically assign weights to each link and change them as latency changes.

The first fills both links equally, the second tries to give you better throughout by using the links it thinks is empty.

1 Like

Are all of theSpeedFusion Cloud Traffic Distribution Policy algorithms for bonding, in other words operate at the individual packet level of the VPN? I had assumed that the last three were not bonding algorithms and were more applicable in smoothing or failover situations.

It’s interesting to me that with the default Bonding that I’ve been using, I’ve been seeing wide variance of bandwidth used by each link in the bond. I wouldn’t expect this based on packet-by-packet round-robin.

but if these are all indeed packet-level bonding algorithms, then…

Lowest Latency would clearly preference certain links in the bond for most traffic in many cases, not yielding best throughput of the overall bond.

Weighted Round Robin would send more packets to the faster links in a bond, increasing throughput of the overall bond.

Overflow will try to saturate links in order based on user-defined bandwidth, implying that as saturated links free up (within seconds or fractions of a second) they will be preferenced again within the bond.

With this in mind then, my desire for a “Weighted Balance” option would be most closely met by either Overflow (put the links that hit caps last, and / or fudge the user-entered upload / download speeds), or by Weighted Round Robin with fudged user-entered upload / download speeds?

Is this a reasonably accurate summary?

Yes, accurate. SpeedFusion = packet level, Outbound Policy = Session level.

I have 2 cell connections that are very similar and my experience has been…

Bond - with tweaks to cutoffs, does an excellent job of filling both links equally.

DWB - great for throughput, but unpredictable. I sometimes see 1 link preferred 9x over the 2nd link.

Lowest Latency - for me, my links were so similar it just swapped back and forth every second between the 2 links… it was crazy. I think this is best when your links are of different types like broadband and cellular or if my cell connections had very different levels of latency.

Overflow - works based on defined bandwidth for the connection and since I can’t define bandwidth for cellular connections, I can’t really use this. It’s designed so if you specify WAN1 has 5Mbps, then as soon as that number is reached it puts the next packet onto the next link.

Overflow is the only one you can specify a bandwidth for, but only for wired connections, not built in cellular. You can try fudging the bandwidth on a wired and using it first, then rolling over to cellular.

1 Like

Thanks, that helps immensely. My cellular links vary widely in capabilities, but since they come in from other routers (e.g., BR1, not USB) I can define bandwidth for them.

What do you mean by “tweaks to cutoffs” @C_Metz? Is that Bandwidth Allowance monitor, or a Signal Threshold (dB) setting, or…? I’m not aware of any cutoffs for low latency or low bandwidth (which would be really useful in cases of throttling).

There are 2 main tweaks for the default bonding…Both are hIdden under question marks on the SpeedFusion profile.

Latency Difference Cutoff - mine is set for 65, which means when one link reaches more than 65ms of latency more than the first, it stops jamming packets down that link… this works great for me for filling the links equally. The number generally used in this field for cell is 100-150, but the default is 500ms because they don’t know what type of link you have. You should watch the latency characteristics of your links both at idle and under load to decide the right number for you.

Latency cutoff - this is a hard cutoff, saying if the link surpasses X ms of latency, stop using it. This setting is per link allowing you to create custom cutoff for each link when you have a ton of different types of connections.

4 Likes

Thank you for the detailed answers. I had seen those, but didn’t grok how I’d use them.

2 Likes