1 个不稳定版本
0.5.0-alpha1 | 2024 年 2 月 4 日 |
---|
#4 in #ecn
54 每月下载量
在 3 个 crate 中使用(通过 kvarn-quinn)
69KB
1.5K SLoC
提供统一接口以发送和接收 UDP 数据包,并具有对 QUIC 有用的先进功能
此 crate 提供了大多数现代系统上可用的内核 UDP 栈功能,这些功能对于高效且符合规范的 QUIC 实现是必需的。截至本文写作时,这些功能在 std 或主要异步运行时中不可用,其特性和复杂性是添加它们的障碍。因此,有一个专门的 crate。
公开的功能包括
- 分段卸载用于大量发送和接收操作,减少 CPU 负载。
- 报告接收到的数据包的确切目标地址,并指定发送数据包的显式源地址,允许从多个可能性中选择地址发送响应。这在绑定到 IPv6 的通配符地址时很常见,因为 RFC 8981 临时地址。
- 显式拥塞通知,这是 QUIC 所必需的,以防止数据包丢失并在拥塞链路上降低延迟(如果网络路径支持)。
- 禁用 IP 层分段,这允许检测真正的物理 MTU 并减少 QUIC 数据包丢失的风险。
某些功能在某些环境中不可用。这可能是由于过时的操作系统或驱动程序。某些操作系统可能根本不实现所需的特性,或者可能尚未被 crate 支持。当支持不可用时,功能将优雅地降级。
依赖项
~0.6–9.5MB
~82K SLoC