Below is outdated. Please see: https://docs.zerotier.com/zerotier/multipath
Multipath link aggregation (e.g. bonding) allows the simultaneous use of multiple physical links to enable increased throughput, load balancing, redundancy, and fault tolerance. There are a variety of standard policies available that can be used right out of the box with no configuration. These policies are directly inspired by the policies offered by the Linux kernel but are now offered in user-space and hence available on all platforms that ZeroTier supports (including Windows!).
Standard policies
...
Policy name | Fault tolerance | Min. failover (sec.) | Default Failover (sec.) | Balancing | Aggregation efficiency | Redundancy | Sequence Reordering |
---|---|---|---|---|---|---|---|
| None |
|
| none |
| 1 | No |
| Brief interruption |
|
| none |
| 1 | Only during failover |
| Fully tolerant |
|
| none |
| N | Often |
| Self-healing |
|
| packet-based |
| 1 | Often |
| Self-healing |
|
| flow-based |
| 1 | Only during failover |
| Self-healing |
|
| adaptive flow-based |
| 1 | Only during failover and re-balance |
A policy can be used easily without specifying any additional parameters:
...
ZeroTier measures various properties of a link (such as latency, throughput, jitter, packet loss ratio, etc) in order to arrive at a quality estimate. This estimate is used by bonding policies to make allocation and failover decisions:
Policy name | Role |
---|---|
| Determines the order of the failover queue. And if |
| Does not use quality measurements. |
| May trigger removal of link from bond. |
| May trigger removal of link from bond. |
| Informs flow assignments and (re-)assignments. May trigger removal of link from bond. |
A link's eligibility for being included in a bond is dependent on more than perceived quality. If a path on a link begins to exhibit disruptive behavior such as extremely high packet loss, corruption, or periodic inability to process traffic it will be removed from the bond, its traffic will be appropriately reallocated and it will be punished. Punishments gradually fade and a link can be readmitted to the bond over time. However, punishments increase exponentially if applied more than once within a given window of time.
...