#tcp-connection #connection #link-aggregator #resilient #multipath #redundant #multi-link

aggligator

将多个链接(TCP或类似)聚合为一个连接,具有它们的总带宽,并提供对单个链接故障的容错性

21个版本 (7个重大更新)

0.8.3 2023年11月3日
0.8.1 2023年2月13日
0.2.0 2022年12月14日

#1325 in 异步

Download history 8/week @ 2024-04-15 6/week @ 2024-04-22 10/week @ 2024-05-06 1/week @ 2024-05-20 1/week @ 2024-05-27 8/week @ 2024-06-03 13/week @ 2024-06-10 16/week @ 2024-06-17 18/week @ 2024-06-24 59/week @ 2024-07-01 59/week @ 2024-07-08 13/week @ 2024-07-15 109/week @ 2024-07-29

每月184次下载
aggligator-util中使用

Apache-2.0

245KB
4.5K SLoC

聚合器 — 您友好的链接聚合器

crates.io page docs.rs page Apache 2.0 license

聚合器将多个链接聚合为一个连接。

聚合器将两个端点之间的多个网络链接(例如TCP连接)合并为一个连接,该连接具有所有链接的总带宽。此外,它提供对单个链接故障的容错性,并允许动态添加和删除链接。

它具有与多路径TCPSCTP相同的作用,但通过现有的、广泛采用的协议(如TCP、HTTPS、TLS、USB和WebSockets)工作,并且完全在用户空间实现,无需操作系统支持。

聚合器是用100%安全的Rust编写的,并基于Tokio异步运行时。

crate功能

以下可选crate功能可用:

  • dump — 允许将分析数据保存到磁盘,主要用于调试连接性能问题;还启用了某些数据类型的Serde支持。

aggligator-util crate中提供了用于处理基于TCP的链接、使用TLS进行加密和身份验证的有用函数、可视化链接监控器以及一个完全解决的问题示例。

演示

两台机器通过以太网和Wi-Fi连接。

机器A,被称为 dino,作为速度测试服务器,有两个接口:enp8s0(千兆以太网,IP地址以::b01结尾)和wlp6s0(Wi-Fi,IP地址以::83e结尾)。两个IP地址都已注册到DNS服务器。

机器B,作为速度测试客户端,有四个接口:enp0s25(千兆以太网),enxf8eXXXXdd(通过USB的千兆以太网),enxf8eXXXXc5(通过USB的千兆以太网)和wlp3s0(Wi-Fi)。

在机器B上运行来自aggligator-util包的agg-speed工具显示以下内容。

Interactive monitor

Aggligator在机器之间创建了8个连接,每个连接对应机器A和机器B接口的一对。双向连接速度约为100 MB/s,这是全双工千兆以太网链路所预期的。

拔掉以太网电缆或禁用Wi-Fi会导致流量在剩余链路上重新分配,但不会影响连接。如果再次插入以太网电缆或重新启用Wi-Fi,连接将自动重新建立。

最低支持的Rust版本

最低支持的Rust版本(MSRV)是1.65。

许可

Aggligator在Apache 2.0许可下授权。

贡献

除非你明确表示,否则你提交的任何有意包含在Aggligator中的贡献,将按照Apache 2.0许可,不附加任何额外条款或条件。

依赖项

~5.5–8MB
~145K SLoC