13个版本

0.5.4 2024年7月22日
0.5.2 2024年6月7日
0.4.1 2023年8月20日
0.4.0 2023年5月11日
0.1.0 2021年11月14日

#736 in 网络编程

Download history 131797/week @ 2024-04-29 145176/week @ 2024-05-06 156564/week @ 2024-05-13 137920/week @ 2024-05-20 138384/week @ 2024-05-27 138013/week @ 2024-06-03 145274/week @ 2024-06-10 229696/week @ 2024-06-17 272413/week @ 2024-06-24 338136/week @ 2024-07-01 374983/week @ 2024-07-08 390197/week @ 2024-07-15 450331/week @ 2024-07-22 449680/week @ 2024-07-29 487972/week @ 2024-08-05 490046/week @ 2024-08-12

1,896,513 每月下载量
851 个crate中使用 (8 直接使用)

MIT/Apache

68KB
1.5K SLoC

通过提供高级特性以支持QUIC的统一接口来发送和接收UDP数据包

该crate公开了大多数现代系统上可用的内核UDP堆栈功能,这些功能对于高效且符合标准的QUIC实现是必需的。截至目前,这些功能在std或主要异步运行时中不可用,并且它们的特殊性和复杂性是添加它们的障碍。因此,需要一个专门的crate。

公开的特性包括

  • 分段卸载,用于批量发送和接收操作,减少CPU负载。
  • 报告接收到的数据包的确切目标地址,并为发送的数据包指定显式源地址,允许从多个可能性中选择时,从对端期望的地址发送响应。这在绑定到IPv6的通配符地址时很常见,这是由于RFC 8981中的临时地址。
  • 显式拥塞通知,这是QUIC在支持网络路径时防止数据包丢失并降低拥塞链路延迟所必需的。
  • 禁用IP层分片,这允许检测真实的物理MTU并降低QUIC数据包丢失的风险。

某些特性在某些环境中不可用。这可能是由于过时的操作系统或驱动程序。某些操作系统可能根本不实现所需的特性,或者可能还不被crate支持。当支持不可用时,功能将优雅地降级。

依赖关系

~0.6–9.5MB
~76K SLoC