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