Repository navigation
Benchmark Results
以下对比的是 rust-raknet 的具体实现,与 TCP、官方 C KCP 核心和 quic-go 对比。普通发送和批量接口分别测试默认构建与显式启用 send-policy 的配置。这些数据不代表 RakNet 协议本身的通用性能。
测试日期:2026 年 10 月 12 日。 Intel Core i7-9700F(8 核)、Linux x86_64,内核 7.0.11-76070011-generic;Rust 1.98.1、Tokio 1.53.2、Go 1.27.2,优化构建。所有进程都运行在任务专属副本、独立缓存及私有回环网络命名空间中。回环 MTU 为 1500 B,GSO/GRO 限制为单包,netem 队列上限 100000 包,进程使用 nice 10。未修改主机网络设置。
| 实现/接口 | GitHub 地址 | 测试版本/配置 |
|---|---|---|
| TCP | TCP 回显驱动、Tokio | 驱动 0.1.0;Tokio 1.53.2;上述 Linux TCP 栈 |
rust-raknet (send) |
b23r0/rust-raknet | 1.4.0;源码提交 1199ac7;默认构建 |
| rust-raknet(批量接口) | b23r0/rust-raknet | 同一默认库构建;显式调用批量接口 |
rust-raknet (send + send-policy) |
b23r0/rust-raknet | 同一源码;启用 Cargo feature,客户端与服务端均调用 set_send_options(SendOptions::default())
|
rust-raknet(批量接口 + send-policy) |
b23r0/rust-raknet | 同一策略构建与配置;显式调用批量接口 |
| C KCP | skywind3000/kcp | 上游 C 核心原样;提交 b1a7a2101dcbb96017681a500d6b82bbe5a88766
|
| quic-go | quic-go/quic-go | v0.63.0;Go 1.27.2 |
-
普通发送:两端使用
send/recv,不调用批量接口。 -
批量接口:单连接客户端使用
send_batch,并发客户端使用send_bytes_batch,回显服务端使用recv_bytes_batch/send_bytes_batch。每次最多提交 16 条已准备好的消息,不等待凑批。 -
默认构建:不编译
send-policy。策略列启用该 feature,客户端和服务端均调用set_send_options(SendOptions::default())。
四列 rust-raknet 均使用 ReliableOrdered 和 64 帧可靠在途窗口。策略列另外使用 64 MiB 编码在途字节上限、256 KiB 可靠队列软预算、64 KiB 不可靠队列预留及 256 KiB 单次 flush 预算。UDP 批量接收与空闲维护关闭;消息合并和 UDP 系统调用批量发送是不同机制。
一个 UDP 数据报最多合并八条非分片消息,且受 MTU 限制。两条 800 B 消息无法合包,4096 B 消息需要分片。收到匹配的 NACK 或发生可靠重传超时后,连接后续合包关闭,包括预热阶段的反馈。调用批量接口不等于每轮都实际合包。
TCP 使用 TCP_NODELAY、四字节小端记录长度、完整记录写入及复用缓冲区。C KCP 使用消息模式、单连接收发窗口 64/64、并发窗口 64/128、nodelay(1, 10, 2, 1),即时写入和 ACK,不启用 FEC 或加密。quic-go 每连接使用一条双向可靠有序流,保留 TLS 加密、拥塞控制与流控;这些实现的功能不完全相同。
吞吐按每方向已验证的有效消息数据计数,越高越好;RTT 越低越好。1 MiB = 1048576 B。吞吐和持续负载延迟各重复 3 轮,稀疏延迟重复 5 轮,七列运行顺序轮换,每次启动新服务端并建立新连接。随机丢包作用于两个方向的数据和 ACK。
表中数值取各轮中位数,括号为最小–最大范围,每项均带单位。C = 客户端,S = 服务端。 范围及峰值 RSS 直接列在对应实测表中。延迟分位数先按每轮计算,再取各轮对应分位数的中位数。
RSS 使用 Linux wait4 记录整进程峰值,覆盖启动、建连、预热、负载和退出,包含运行时、分配器、应用缓冲及延迟样本,不含内核 socket 缓冲。因此它不是完整网络内存或每连接内存;C/S 峰值也不一定同时发生。
应用层最多保持 64 条待回显消息。每轮先做 100 次预热和 300 次顺序 RTT 采样,再开始吞吐计时。Rust/Go 使用 4 个 worker,C KCP 每进程一个事件循环。该组吞吐不绑定 CPU,不代表相同 CPU 使用效率。
| 网络场景 | 消息大小/突发数量 | TCP 吞吐量(范围) 峰值 RSS:C / S |
rust-raknet (send)吞吐量(范围) 峰值 RSS:C / S |
rust-raknet(批量接口) 吞吐量(范围) 峰值 RSS:C / S |
rust-raknet (send + send-policy)吞吐量(范围) 峰值 RSS:C / S |
rust-raknet(批量接口 + send-policy)吞吐量(范围) 峰值 RSS:C / S |
C KCP 吞吐量(范围) 峰值 RSS:C / S |
quic-go 吞吐量(范围) 峰值 RSS:C / S |
|---|---|---|---|---|---|---|---|---|
| 无注入丢包 | 800 B / 200,000 条消息 | 155.70 MiB/s (153.20–158.29 MiB/s) C: 3.47 MiB (3.20–3.63 MiB) S: 3.40 MiB (3.32–3.42 MiB) |
186.77 MiB/s (185.18–187.22 MiB/s) C: 3.70 MiB (3.62–3.88 MiB) S: 3.73 MiB (3.72–4.06 MiB) |
188.15 MiB/s (183.18–192.66 MiB/s) C: 3.86 MiB (3.71–3.92 MiB) S: 3.93 MiB (3.82–4.03 MiB) |
183.84 MiB/s (179.94–184.51 MiB/s) C: 3.85 MiB (3.82–4.00 MiB) S: 3.85 MiB (3.81–3.88 MiB) |
189.79 MiB/s (188.38–189.79 MiB/s) C: 3.96 MiB (3.80–4.00 MiB) S: 3.82 MiB (3.77–3.84 MiB) |
151.63 MiB/s (146.52–153.23 MiB/s) C: 1.75 MiB (1.75–1.88 MiB) S: 1.88 MiB (1.75–1.88 MiB) |
115.12 MiB/s (111.58–116.03 MiB/s) C: 13.97 MiB (13.93–14.16 MiB) S: 13.96 MiB (13.72–14.06 MiB) |
| 1% 丢包 | 800 B / 50,000 条消息 | 17.81 MiB/s (11.76–25.83 MiB/s) C: 3.70 MiB (3.61–3.74 MiB) S: 3.49 MiB (3.45–3.51 MiB) |
167.31 MiB/s (153.82–168.05 MiB/s) C: 3.89 MiB (3.58–4.10 MiB) S: 3.90 MiB (3.79–3.93 MiB) |
158.95 MiB/s (125.90–164.43 MiB/s) C: 3.80 MiB (3.71–4.02 MiB) S: 3.68 MiB (3.61–3.73 MiB) |
155.70 MiB/s (150.78–158.95 MiB/s) C: 3.82 MiB (3.78–3.87 MiB) S: 3.88 MiB (3.66–4.06 MiB) |
167.31 MiB/s (159.61–174.19 MiB/s) C: 3.70 MiB (3.69–4.09 MiB) S: 3.96 MiB (3.90–4.00 MiB) |
131.80 MiB/s (126.00–142.75 MiB/s) C: 1.75 MiB (1.75–1.75 MiB) S: 1.88 MiB (1.75–1.88 MiB) |
44.67 MiB/s (39.12–75.04 MiB/s) C: 13.70 MiB (13.20–13.95 MiB) S: 13.51 MiB (13.38–13.58 MiB) |
| 5% 丢包 | 800 B / 50,000 条消息 | 1.03 MiB/s (1.01–1.20 MiB/s) C: 3.57 MiB (3.54–3.63 MiB) S: 3.48 MiB (3.36–3.50 MiB) |
146.72 MiB/s (146.16–156.98 MiB/s) C: 3.68 MiB (3.59–3.79 MiB) S: 4.01 MiB (3.73–4.03 MiB) |
106.85 MiB/s (49.10–141.29 MiB/s) C: 3.92 MiB (3.66–3.92 MiB) S: 3.76 MiB (3.73–3.86 MiB) |
155.70 MiB/s (110.25–160.28 MiB/s) C: 3.98 MiB (3.92–3.98 MiB) S: 3.78 MiB (3.64–3.96 MiB) |
145.05 MiB/s (143.41–151.38 MiB/s) C: 3.76 MiB (3.71–3.96 MiB) S: 3.88 MiB (3.76–4.08 MiB) |
102.06 MiB/s (95.89–107.54 MiB/s) C: 1.88 MiB (1.75–1.88 MiB) S: 1.75 MiB (1.75–1.75 MiB) |
8.07 MiB/s (8.00–8.96 MiB/s) C: 13.92 MiB (13.90–14.17 MiB) S: 13.99 MiB (13.45–14.01 MiB) |
| 无注入丢包 | 64 B / 300,000 条消息 | 14.36 MiB/s (14.25–14.54 MiB/s) C: 3.63 MiB (3.52–3.66 MiB) S: 3.40 MiB (3.29–3.48 MiB) |
15.94 MiB/s (15.76–15.95 MiB/s) C: 3.68 MiB (3.63–3.74 MiB) S: 3.73 MiB (3.61–3.74 MiB) |
47.07 MiB/s (20.95–50.03 MiB/s) C: 3.66 MiB (3.66–3.79 MiB) S: 3.79 MiB (3.55–3.85 MiB) |
15.10 MiB/s (15.01–15.73 MiB/s) C: 3.73 MiB (3.71–3.75 MiB) S: 3.75 MiB (3.69–3.93 MiB) |
27.96 MiB/s (17.73–49.49 MiB/s) C: 3.82 MiB (3.71–3.89 MiB) S: 3.79 MiB (3.60–3.80 MiB) |
12.13 MiB/s (11.66–12.28 MiB/s) C: 1.75 MiB (1.75–1.75 MiB) S: 1.88 MiB (1.75–1.88 MiB) |
29.02 MiB/s (18.59–30.44 MiB/s) C: 13.76 MiB (13.70–13.77 MiB) S: 13.33 MiB (13.13–13.38 MiB) |
| 1% 丢包 | 64 B / 100,000 条消息 | 2.62 MiB/s (2.26–2.62 MiB/s) C: 3.50 MiB (3.42–3.52 MiB) S: 3.28 MiB (3.16–3.41 MiB) |
14.60 MiB/s (14.06–15.65 MiB/s) C: 3.80 MiB (3.68–3.83 MiB) S: 3.64 MiB (3.62–3.71 MiB) |
15.30 MiB/s (14.40–15.85 MiB/s) C: 3.67 MiB (3.67–3.67 MiB) S: 3.76 MiB (3.69–3.78 MiB) |
14.85 MiB/s (14.64–15.11 MiB/s) C: 3.71 MiB (3.70–3.79 MiB) S: 3.82 MiB (3.62–3.91 MiB) |
14.96 MiB/s (10.63–15.03 MiB/s) C: 3.82 MiB (3.71–3.90 MiB) S: 3.78 MiB (3.73–3.82 MiB) |
11.39 MiB/s (11.16–11.55 MiB/s) C: 1.88 MiB (1.75–1.88 MiB) S: 1.75 MiB (1.75–1.75 MiB) |
24.55 MiB/s (10.66–24.69 MiB/s) C: 13.07 MiB (12.07–13.07 MiB) S: 11.82 MiB (11.63–11.88 MiB) |
| 5% 丢包 | 64 B / 100,000 条消息 | 0.13 MiB/s (0.12–0.14 MiB/s) C: 3.48 MiB (3.46–3.78 MiB) S: 3.48 MiB (3.32–3.48 MiB) |
13.56 MiB/s (12.88–14.00 MiB/s) C: 3.66 MiB (3.60–3.71 MiB) S: 3.74 MiB (3.59–3.77 MiB) |
13.38 MiB/s (13.13–14.00 MiB/s) C: 3.66 MiB (3.48–3.69 MiB) S: 3.78 MiB (3.73–3.91 MiB) |
13.62 MiB/s (10.78–13.72 MiB/s) C: 3.73 MiB (3.54–3.87 MiB) S: 3.68 MiB (3.66–3.70 MiB) |
13.53 MiB/s (12.01–13.56 MiB/s) C: 3.65 MiB (3.62–3.72 MiB) S: 3.80 MiB (3.65–3.85 MiB) |
9.85 MiB/s (9.84–10.02 MiB/s) C: 1.88 MiB (1.75–1.88 MiB) S: 1.75 MiB (1.75–1.88 MiB) |
4.91 MiB/s (4.26–5.26 MiB/s) C: 12.63 MiB (12.45–12.70 MiB) S: 12.13 MiB (12.07–12.25 MiB) |
| 无注入丢包 | 4,096 B / 50,000 条消息 | 350.65 MiB/s (350.02–352.55 MiB/s) C: 3.60 MiB (3.56–3.67 MiB) S: 3.50 MiB (3.48–3.53 MiB) |
282.24 MiB/s (279.02–285.54 MiB/s) C: 4.81 MiB (4.37–4.89 MiB) S: 4.94 MiB (4.93–5.02 MiB) |
283.88 MiB/s (105.98–286.38 MiB/s) C: 4.66 MiB (4.66–4.95 MiB) S: 5.03 MiB (4.81–5.21 MiB) |
282.24 MiB/s (281.03–287.22 MiB/s) C: 4.90 MiB (4.84–4.94 MiB) S: 5.07 MiB (4.92–5.14 MiB) |
286.38 MiB/s (164.40–290.21 MiB/s) C: 5.03 MiB (4.88–5.04 MiB) S: 5.08 MiB (4.87–5.12 MiB) |
239.75 MiB/s (223.99–249.66 MiB/s) C: 1.86 MiB (1.86–1.88 MiB) S: 1.75 MiB (1.75–1.88 MiB) |
212.51 MiB/s (210.72–215.61 MiB/s) C: 14.21 MiB (13.78–14.42 MiB) S: 13.75 MiB (13.67–13.98 MiB) |
| 10 ms RTT + 1% 丢包 | 800 B / 3,000 条消息 | 1.27 MiB/s (1.06–1.35 MiB/s) C: 3.69 MiB (3.66–3.77 MiB) S: 3.52 MiB (3.38–3.55 MiB) |
3.21 MiB/s (3.15–3.28 MiB/s) C: 3.78 MiB (3.61–3.81 MiB) S: 3.77 MiB (3.71–3.91 MiB) |
2.89 MiB/s (2.78–2.90 MiB/s) C: 3.78 MiB (3.75–3.94 MiB) S: 3.66 MiB (3.58–3.70 MiB) |
3.04 MiB/s (2.76–3.25 MiB/s) C: 3.82 MiB (3.76–3.87 MiB) S: 3.81 MiB (3.81–3.93 MiB) |
2.95 MiB/s (2.90–3.18 MiB/s) C: 3.82 MiB (3.69–3.82 MiB) S: 3.67 MiB (3.49–3.69 MiB) |
2.96 MiB/s (2.89–3.15 MiB/s) C: 1.75 MiB (1.75–1.75 MiB) S: 1.75 MiB (1.75–1.75 MiB) |
1.78 MiB/s (1.66–1.97 MiB/s) C: 11.70 MiB (11.32–11.70 MiB) S: 11.38 MiB (11.13–11.88 MiB) |
单连接 rust-raknet 使用 1428 B 标称 MTU(含 28 B IPv4/UDP 开销),C KCP 与 quic-go 使用 1400 B UDP 数据报预算。4096 B 消息在 rust-raknet 与 KCP 中触发分片。
800 B 消息,无注入丢包;每轮 1000 次预热、10000 个顺序回显样本,共 5 轮。客户端和服务端绑定不同 CPU,Rust/Go 每进程 4 个 worker,C KCP 一个事件循环。该组逐条发送并等待回显,批量接口每次只传入一条消息,不合包。
| 实现/接口 | RTT 中位数(范围) | 95% RTT(范围) | 99% RTT(范围) | 峰值 RSS:C / S(范围) |
|---|---|---|---|---|
| TCP | 13.00 µs (12.60–13.30 µs) | 26.80 µs (18.40–29.70 µs) | 66.10 µs (33.20–150.10 µs) | C: 3.91 MiB (3.87–3.93 MiB) S: 3.56 MiB (3.49–3.67 MiB) |
rust-raknet (send) |
17.90 µs (17.30–18.10 µs) | 33.70 µs (30.20–35.70 µs) | 73.10 µs (46.30–264.40 µs) | C: 4.24 MiB (4.12–4.31 MiB) S: 4.02 MiB (3.98–4.29 MiB) |
| rust-raknet(批量接口) | 18.60 µs (17.50–18.80 µs) | 33.10 µs (31.40–36.70 µs) | 75.50 µs (47.30–111.20 µs) | C: 4.31 MiB (4.21–4.34 MiB) S: 4.10 MiB (3.98–4.21 MiB) |
rust-raknet (send + send-policy) |
17.40 µs (17.10–17.60 µs) | 31.40 µs (30.10–34.70 µs) | 48.60 µs (43.60–110.00 µs) | C: 4.32 MiB (4.09–4.39 MiB) S: 4.03 MiB (3.96–4.05 MiB) |
rust-raknet(批量接口 + send-policy) |
17.50 µs (17.20–18.30 µs) | 32.40 µs (21.80–35.50 µs) | 50.10 µs (46.30–205.50 µs) | C: 4.27 MiB (4.24–4.33 MiB) S: 4.03 MiB (3.93–4.14 MiB) |
| C KCP | 10.20 µs (10.10–10.30 µs) | 24.00 µs (18.10–24.40 µs) | 36.20 µs (33.40–66.60 µs) | C: 1.87 MiB (1.87–1.88 MiB) S: 1.87 MiB (1.75–1.99 MiB) |
| quic-go | 62.50 µs (62.30–63.90 µs) | 108.30 µs (97.30–141.70 µs) | 211.40 µs (126.90–449.30 µs) | C: 13.45 MiB (13.20–13.45 MiB) S: 10.94 MiB (10.88–11.13 MiB) |
这些是稀疏接口路径延迟,不是突发交付延迟。并发吞吐输出的预热 RTT 也不作为下方持续负载延迟。
每轮验证 1048576 条有序突发回显,每连接应用窗口 16 条。连接编号、消息编号、完整消息数据和顺序均校验。每连接先做 20 次顺序回显,再通过共同起跑屏障开始突发;建连和预热不计入吞吐时间。连接保留到全部突发完成。
七列均使用 4 个 worker,服务端使用 4 个监听/接收 socket 和 SO_REUSEPORT,服务端绑定 CPU 0–3,客户端绑定 CPU 4–7。CPU 绑定不代表独占 CPU。
| 消息大小 | 连接数 | 注入丢包 | TCP 吞吐量(范围) 峰值 RSS:C / S |
rust-raknet (send)吞吐量(范围) 峰值 RSS:C / S |
rust-raknet(批量接口) 吞吐量(范围) 峰值 RSS:C / S |
rust-raknet (send + send-policy)吞吐量(范围) 峰值 RSS:C / S |
rust-raknet(批量接口 + send-policy)吞吐量(范围) 峰值 RSS:C / S |
C KCP 吞吐量(范围) 峰值 RSS:C / S |
quic-go 吞吐量(范围) 峰值 RSS:C / S |
|---|---|---|---|---|---|---|---|---|---|
| 800 B | 64 条连接 | 0% | 556.05 MiB/s (410.64–642.81 MiB/s) C: 4.07 MiB (4.06–4.29 MiB) S: 3.42 MiB (3.23–3.54 MiB) |
432.99 MiB/s (385.15–515.15 MiB/s) C: 7.41 MiB (7.39–7.44 MiB) S: 7.78 MiB (7.75–8.02 MiB) |
533.52 MiB/s (405.64–566.27 MiB/s) C: 7.41 MiB (7.34–7.91 MiB) S: 7.91 MiB (7.72–8.25 MiB) |
548.45 MiB/s (464.52–549.28 MiB/s) C: 7.06 MiB (6.88–7.13 MiB) S: 7.81 MiB (7.43–7.86 MiB) |
511.69 MiB/s (347.19–540.66 MiB/s) C: 7.56 MiB (7.39–7.69 MiB) S: 8.07 MiB (7.77–8.41 MiB) |
369.80 MiB/s (363.04–387.54 MiB/s) C: 3.00 MiB (2.88–3.25 MiB) S: 3.25 MiB (3.13–3.25 MiB) |
213.74 MiB/s (180.33–215.28 MiB/s) C: 29.08 MiB (28.82–29.53 MiB) S: 39.49 MiB (34.58–42.39 MiB) |
| 800 B | 256 条连接 | 0% | 538.72 MiB/s (537.62–568.30 MiB/s) C: 5.82 MiB (4.90–5.95 MiB) S: 3.70 MiB (3.43–3.80 MiB) |
437.67 MiB/s (357.31–440.04 MiB/s) C: 15.65 MiB (15.27–15.83 MiB) S: 14.26 MiB (14.16–14.64 MiB) |
445.78 MiB/s (436.02–468.97 MiB/s) C: 16.65 MiB (16.59–16.74 MiB) S: 14.96 MiB (14.85–15.03 MiB) |
441.06 MiB/s (439.33–519.85 MiB/s) C: 15.70 MiB (15.68–15.97 MiB) S: 14.41 MiB (13.92–14.97 MiB) |
455.89 MiB/s (415.13–469.25 MiB/s) C: 16.51 MiB (16.14–17.27 MiB) S: 15.01 MiB (14.52–15.35 MiB) |
345.96 MiB/s (330.21–358.24 MiB/s) C: 6.38 MiB (6.38–6.50 MiB) S: 6.88 MiB (6.75–7.00 MiB) |
148.73 MiB/s (147.87–170.36 MiB/s) C: 77.93 MiB (75.91–82.06 MiB) S: 109.27 MiB (100.62–116.70 MiB) |
| 800 B | 1,024 条连接 | 0% | 467.22 MiB/s (455.60–525.70 MiB/s) C: 11.78 MiB (9.52–12.20 MiB) S: 4.89 MiB (4.58–4.89 MiB) |
372.54 MiB/s (347.08–487.01 MiB/s) C: 46.31 MiB (45.80–46.84 MiB) S: 41.92 MiB (40.86–41.95 MiB) |
413.36 MiB/s (394.91–441.03 MiB/s) C: 48.41 MiB (47.44–48.72 MiB) S: 42.28 MiB (41.79–42.38 MiB) |
395.28 MiB/s (333.46–423.21 MiB/s) C: 46.93 MiB (46.00–46.96 MiB) S: 40.87 MiB (39.96–42.48 MiB) |
381.62 MiB/s (362.67–429.23 MiB/s) C: 48.21 MiB (48.11–48.66 MiB) S: 42.17 MiB (41.21–44.30 MiB) |
286.75 MiB/s (268.24–327.30 MiB/s) C: 20.25 MiB (20.25–20.38 MiB) S: 21.00 MiB (20.88–21.00 MiB) |
141.31 MiB/s (136.13–152.38 MiB/s) C: 244.89 MiB (243.89–249.58 MiB) S: 254.45 MiB (250.95–266.39 MiB) |
| 800 B | 2,048 条连接 | 0% | 475.75 MiB/s (450.53–536.35 MiB/s) C: 21.03 MiB (15.96–21.16 MiB) S: 6.52 MiB (6.32–6.59 MiB) |
322.52 MiB/s (260.15–386.99 MiB/s) C: 85.75 MiB (85.56–86.81 MiB) S: 71.90 MiB (69.68–73.27 MiB) |
298.04 MiB/s (278.00–312.94 MiB/s) C: 89.44 MiB (87.82–90.04 MiB) S: 73.47 MiB (71.82–75.50 MiB) |
309.85 MiB/s (277.92–354.99 MiB/s) C: 87.36 MiB (86.17–89.85 MiB) S: 70.89 MiB (68.00–73.43 MiB) |
329.25 MiB/s (248.12–373.05 MiB/s) C: 89.25 MiB (88.55–89.43 MiB) S: 71.56 MiB (71.06–76.66 MiB) |
249.87 MiB/s (198.62–290.60 MiB/s) C: 38.88 MiB (38.75–38.88 MiB) S: 38.88 MiB (38.88–39.13 MiB) |
103.79 MiB/s (81.86–112.80 MiB/s) C: 473.59 MiB (472.48–589.80 MiB) S: 497.85 MiB (443.79–550.16 MiB) |
| 800 B | 64 条连接 | 1% | 413.68 MiB/s (352.94–457.15 MiB/s) C: 4.04 MiB (3.96–4.18 MiB) S: 3.27 MiB (3.22–3.46 MiB) |
457.08 MiB/s (388.06–521.29 MiB/s) C: 7.55 MiB (7.32–7.55 MiB) S: 8.13 MiB (7.62–8.40 MiB) |
506.71 MiB/s (433.95–523.45 MiB/s) C: 7.79 MiB (7.62–7.88 MiB) S: 8.28 MiB (7.96–8.47 MiB) |
500.69 MiB/s (385.72–525.45 MiB/s) C: 7.26 MiB (7.12–7.65 MiB) S: 7.98 MiB (7.58–9.02 MiB) |
522.91 MiB/s (503.63–558.91 MiB/s) C: 7.60 MiB (7.32–7.78 MiB) S: 7.93 MiB (7.64–8.17 MiB) |
329.76 MiB/s (291.94–376.96 MiB/s) C: 3.00 MiB (2.88–3.01 MiB) S: 3.25 MiB (3.12–3.25 MiB) |
176.69 MiB/s (147.34–208.96 MiB/s) C: 29.22 MiB (28.43–29.27 MiB) S: 34.60 MiB (31.64–43.68 MiB) |
| 800 B | 256 条连接 | 1% | 483.00 MiB/s (436.33–505.26 MiB/s) C: 5.80 MiB (5.31–5.81 MiB) S: 3.59 MiB (3.50–3.82 MiB) |
506.58 MiB/s (493.75–511.85 MiB/s) C: 15.97 MiB (15.94–16.43 MiB) S: 15.40 MiB (15.38–15.59 MiB) |
483.16 MiB/s (479.45–497.38 MiB/s) C: 17.00 MiB (16.40–17.00 MiB) S: 15.44 MiB (15.05–15.67 MiB) |
499.84 MiB/s (480.30–521.71 MiB/s) C: 16.50 MiB (15.82–16.70 MiB) S: 15.19 MiB (14.90–15.30 MiB) |
483.76 MiB/s (475.20–499.84 MiB/s) C: 16.84 MiB (16.39–17.03 MiB) S: 15.81 MiB (15.68–15.90 MiB) |
410.95 MiB/s (409.96–411.24 MiB/s) C: 6.38 MiB (6.38–6.38 MiB) S: 6.88 MiB (6.75–6.88 MiB) |
179.86 MiB/s (161.81–182.35 MiB/s) C: 76.25 MiB (74.11–77.55 MiB) S: 69.39 MiB (68.77–89.64 MiB) |
| 800 B | 1,024 条连接 | 1% | 497.67 MiB/s (463.11–503.74 MiB/s) C: 12.43 MiB (10.54–12.52 MiB) S: 4.92 MiB (4.81–4.95 MiB) |
454.63 MiB/s (425.51–459.25 MiB/s) C: 49.32 MiB (49.00–50.56 MiB) S: 42.74 MiB (41.58–43.43 MiB) |
453.92 MiB/s (445.74–456.33 MiB/s) C: 50.82 MiB (50.17–51.26 MiB) S: 43.96 MiB (42.48–43.99 MiB) |
424.62 MiB/s (420.96–460.39 MiB/s) C: 49.23 MiB (49.00–49.65 MiB) S: 42.14 MiB (41.87–44.68 MiB) |
402.12 MiB/s (384.49–461.58 MiB/s) C: 48.52 MiB (48.13–52.28 MiB) S: 43.18 MiB (42.58–43.42 MiB) |
346.53 MiB/s (316.37–367.14 MiB/s) C: 20.38 MiB (20.38–20.38 MiB) S: 19.63 MiB (19.38–20.13 MiB) |
77.76 MiB/s (76.97–83.36 MiB/s) C: 315.55 MiB (314.25–348.80 MiB) S: 235.21 MiB (208.95–239.70 MiB) |
| 800 B | 2,048 条连接 | 1% | 469.70 MiB/s (459.18–493.77 MiB/s) C: 19.86 MiB (17.70–21.01 MiB) S: 6.59 MiB (6.56–6.64 MiB) |
341.97 MiB/s (296.70–359.13 MiB/s) C: 88.65 MiB (88.50–90.46 MiB) S: 74.66 MiB (72.72–76.88 MiB) |
369.99 MiB/s (321.91–375.11 MiB/s) C: 92.95 MiB (92.93–92.96 MiB) S: 77.58 MiB (75.41–78.39 MiB) |
355.38 MiB/s (339.30–367.94 MiB/s) C: 89.71 MiB (89.45–89.98 MiB) S: 75.42 MiB (72.52–76.36 MiB) |
324.93 MiB/s (294.61–367.55 MiB/s) C: 93.81 MiB (93.31–94.14 MiB) S: 78.66 MiB (77.67–80.61 MiB) |
325.96 MiB/s (313.13–328.15 MiB/s) C: 38.75 MiB (38.75–38.88 MiB) S: 37.63 MiB (37.50–37.63 MiB) |
34.58 MiB/s (32.33–40.45 MiB/s) C: 748.54 MiB (737.20–782.60 MiB) S: 414.66 MiB (405.23–427.52 MiB) |
| 64 B | 64 条连接 | 0% | 72.39 MiB/s (67.29–73.56 MiB/s) C: 3.91 MiB (3.61–3.99 MiB) S: 3.27 MiB (3.20–3.35 MiB) |
51.88 MiB/s (50.32–51.93 MiB/s) C: 5.88 MiB (5.63–5.89 MiB) S: 6.00 MiB (5.84–6.02 MiB) |
117.59 MiB/s (104.72–118.28 MiB/s) C: 5.73 MiB (5.72–5.75 MiB) S: 6.25 MiB (6.04–6.44 MiB) |
47.80 MiB/s (41.30–48.46 MiB/s) C: 5.73 MiB (5.73–5.83 MiB) S: 5.97 MiB (5.85–6.14 MiB) |
115.16 MiB/s (110.04–118.86 MiB/s) C: 5.81 MiB (5.81–5.88 MiB) S: 6.05 MiB (6.05–6.20 MiB) |
32.89 MiB/s (30.82–34.91 MiB/s) C: 2.38 MiB (2.26–2.38 MiB) S: 2.50 MiB (2.25–2.50 MiB) |
138.29 MiB/s (130.37–139.94 MiB/s) C: 21.77 MiB (21.42–22.12 MiB) S: 19.87 MiB (19.07–20.01 MiB) |
| 64 B | 1,024 条连接 | 0% | 53.63 MiB/s (49.30–54.59 MiB/s) C: 9.65 MiB (9.07–9.67 MiB) S: 4.11 MiB (3.95–4.16 MiB) |
47.00 MiB/s (44.10–47.15 MiB/s) C: 32.38 MiB (32.21–32.65 MiB) S: 27.48 MiB (26.37–27.51 MiB) |
142.00 MiB/s (138.96–144.54 MiB/s) C: 31.88 MiB (31.82–32.49 MiB) S: 25.93 MiB (25.65–25.95 MiB) |
49.86 MiB/s (46.67–50.46 MiB/s) C: 32.77 MiB (32.59–32.99 MiB) S: 27.43 MiB (27.02–28.04 MiB) |
144.83 MiB/s (144.53–147.80 MiB/s) C: 32.33 MiB (32.11–32.51 MiB) S: 26.24 MiB (26.11–26.29 MiB) |
42.64 MiB/s (41.42–43.80 MiB/s) C: 8.88 MiB (8.75–8.88 MiB) S: 9.38 MiB (9.38–9.50 MiB) |
107.73 MiB/s (106.19–109.10 MiB/s) C: 145.95 MiB (139.64–148.52 MiB) S: 95.89 MiB (94.64–96.89 MiB) |
| 64 B | 64 条连接 | 1% | 41.23 MiB/s (40.04–49.52 MiB/s) C: 3.72 MiB (3.70–3.93 MiB) S: 3.30 MiB (3.27–3.32 MiB) |
46.41 MiB/s (43.05–47.78 MiB/s) C: 6.01 MiB (5.88–6.09 MiB) S: 6.12 MiB (6.00–6.23 MiB) |
48.29 MiB/s (42.92–48.35 MiB/s) C: 5.95 MiB (5.87–6.00 MiB) S: 6.45 MiB (6.21–6.51 MiB) |
45.16 MiB/s (44.55–47.56 MiB/s) C: 5.84 MiB (5.80–5.98 MiB) S: 6.12 MiB (6.00–6.14 MiB) |
48.95 MiB/s (45.18–49.53 MiB/s) C: 6.02 MiB (6.01–6.06 MiB) S: 6.36 MiB (6.24–6.38 MiB) |
33.13 MiB/s (31.62–34.48 MiB/s) C: 2.26 MiB (2.25–2.38 MiB) S: 2.38 MiB (2.25–2.50 MiB) |
64.24 MiB/s (48.30–66.69 MiB/s) C: 21.68 MiB (21.57–21.98 MiB) S: 19.05 MiB (18.89–19.82 MiB) |
| 64 B | 1,024 条连接 | 1% | 45.25 MiB/s (45.23–49.36 MiB/s) C: 9.55 MiB (9.08–9.56 MiB) S: 4.23 MiB (4.04–4.36 MiB) |
42.53 MiB/s (42.16–44.21 MiB/s) C: 34.18 MiB (33.88–35.03 MiB) S: 28.25 MiB (27.84–28.43 MiB) |
47.90 MiB/s (45.21–50.35 MiB/s) C: 35.03 MiB (34.45–36.13 MiB) S: 30.71 MiB (29.51–31.03 MiB) |
42.91 MiB/s (41.62–43.62 MiB/s) C: 34.96 MiB (33.21–35.27 MiB) S: 29.32 MiB (29.29–29.82 MiB) |
49.38 MiB/s (42.25–52.09 MiB/s) C: 36.15 MiB (35.83–36.56 MiB) S: 30.37 MiB (30.26–30.45 MiB) |
39.81 MiB/s (39.51–42.11 MiB/s) C: 8.75 MiB (8.75–8.88 MiB) S: 9.25 MiB (9.25–9.38 MiB) |
79.28 MiB/s (74.21–85.47 MiB/s) C: 143.39 MiB (135.39–154.89 MiB) S: 97.64 MiB (97.27–97.77 MiB) |
并发 rust-raknet 使用默认 1400 B 标称 MTU,quic-go 使用 1372 B UDP 数据报预算并关闭路径 MTU 探测。C KCP 使用 1400 B UDP MTU,物理预算多 28 B;本组 64 B/800 B 消息在三者中均不分片。
并发客户端使用 --loaded-rtt,发送前打时间戳,在消费已验证回显时计算 RTT,贯穿突发全过程,包含客户端和服务端排队。每轮验证 262144 条突发回显,保持相同的 16 条应用窗口、worker、CPU 绑定和服务端配置,各场景 3 轮。
延迟采样与吞吐表分开运行,不把该组带采样的吞吐混入上方吞吐表。RSS 包括客户端保存、汇总和排序的 RTT 样本。
| 消息大小 | 连接数 | 注入丢包 | TCP RTT 中位数 / 99%(范围) 峰值 RSS:C / S |
rust-raknet (send)RTT 中位数 / 99%(范围) 峰值 RSS:C / S |
rust-raknet(批量接口) RTT 中位数 / 99%(范围) 峰值 RSS:C / S |
rust-raknet (send + send-policy)RTT 中位数 / 99%(范围) 峰值 RSS:C / S |
rust-raknet(批量接口 + send-policy)RTT 中位数 / 99%(范围) 峰值 RSS:C / S |
C KCP RTT 中位数 / 99%(范围) 峰值 RSS:C / S |
quic-go RTT 中位数 / 99%(范围) 峰值 RSS:C / S |
|---|---|---|---|---|---|---|---|---|---|
| 64 B | 64 条连接 | 0% | 50%: 0.96 ms (0.92–0.97 ms) 99%: 4.59 ms (3.79–8.62 ms) C: 11.70 MiB (11.48–11.79 MiB) S: 3.16 MiB (3.10–3.18 MiB) |
50%: 1.11 ms (0.96–1.13 ms) 99%: 4.13 ms (3.35–7.12 ms) C: 13.30 MiB (13.23–13.52 MiB) S: 5.79 MiB (5.59–5.94 MiB) |
50%: 0.46 ms (0.41–0.49 ms) 99%: 4.29 ms (3.63–5.45 ms) C: 13.21 MiB (13.07–13.47 MiB) S: 5.93 MiB (5.88–6.04 MiB) |
50%: 1.08 ms (1.04–1.28 ms) 99%: 4.23 ms (3.86–8.13 ms) C: 13.50 MiB (13.45–13.59 MiB) S: 5.82 MiB (5.66–5.84 MiB) |
50%: 0.46 ms (0.45–0.48 ms) 99%: 4.18 ms (1.05–4.20 ms) C: 13.31 MiB (13.29–13.61 MiB) S: 5.85 MiB (5.80–6.04 MiB) |
50%: 1.31 ms (1.30–1.32 ms) 99%: 10.16 ms (6.87–11.64 ms) C: 6.26 MiB (6.12–6.36 MiB) S: 2.50 MiB (2.25–2.50 MiB) |
50%: 0.37 ms (0.34–0.41 ms) 99%: 1.89 ms (1.84–3.18 ms) C: 32.32 MiB (31.20–33.02 MiB) S: 17.45 MiB (17.25–17.52 MiB) |
| 64 B | 1,024 条连接 | 0% | 50%: 18.99 ms (17.77–19.36 ms) 99%: 35.03 ms (32.64–35.43 ms) C: 16.77 MiB (16.26–16.99 MiB) S: 4.04 MiB (3.90–4.18 MiB) |
50%: 16.90 ms (15.81–18.16 ms) 99%: 94.65 ms (40.14–95.26 ms) C: 36.48 MiB (36.36–36.76 MiB) S: 23.37 MiB (22.90–24.15 MiB) |
50%: 4.70 ms (4.46–4.85 ms) 99%: 19.61 ms (19.57–20.56 ms) C: 37.57 MiB (37.43–38.11 MiB) S: 24.38 MiB (24.24–24.44 MiB) |
50%: 15.81 ms (15.25–17.53 ms) 99%: 101.42 ms (35.93–104.92 ms) C: 36.51 MiB (36.48–36.63 MiB) S: 24.37 MiB (23.33–24.41 MiB) |
50%: 4.86 ms (4.83–5.30 ms) 99%: 19.19 ms (18.10–21.89 ms) C: 38.03 MiB (37.87–38.07 MiB) S: 24.65 MiB (24.57–24.85 MiB) |
50%: 7.37 ms (6.73–8.61 ms) 99%: 120.25 ms (112.92–160.63 ms) C: 10.69 MiB (10.69–10.94 MiB) S: 9.38 MiB (9.38–9.38 MiB) |
50%: 9.01 ms (8.97–9.71 ms) 99%: 13.32 ms (12.90–16.47 ms) C: 140.02 MiB (137.39–140.58 MiB) S: 88.89 MiB (87.69–90.89 MiB) |
| 64 B | 64 条连接 | 1% | 50%: 0.62 ms (0.61–0.72 ms) 99%: 5.88 ms (5.06–6.54 ms) C: 11.54 MiB (11.50–11.73 MiB) S: 3.28 MiB (3.22–3.29 MiB) |
50%: 0.92 ms (0.88–1.02 ms) 99%: 4.97 ms (4.60–6.16 ms) C: 13.48 MiB (13.46–13.79 MiB) S: 5.91 MiB (5.89–6.00 MiB) |
50%: 0.92 ms (0.87–0.97 ms) 99%: 4.54 ms (3.68–4.82 ms) C: 13.62 MiB (13.59–13.90 MiB) S: 6.17 MiB (6.09–6.35 MiB) |
50%: 0.95 ms (0.91–0.96 ms) 99%: 6.20 ms (3.96–6.51 ms) C: 13.74 MiB (13.62–13.77 MiB) S: 5.92 MiB (5.86–6.22 MiB) |
50%: 0.96 ms (0.91–1.00 ms) 99%: 4.82 ms (4.29–4.84 ms) C: 13.81 MiB (13.71–14.07 MiB) S: 6.24 MiB (6.21–6.24 MiB) |
50%: 1.25 ms (1.21–1.44 ms) 99%: 7.37 ms (7.33–8.08 ms) C: 6.34 MiB (6.15–6.36 MiB) S: 2.38 MiB (2.38–2.38 MiB) |
50%: 0.10 ms (0.10–0.12 ms) 99%: 27.24 ms (27.23–27.36 ms) C: 32.52 MiB (31.79–34.39 MiB) S: 17.32 MiB (16.83–17.37 MiB) |
| 64 B | 1,024 条连接 | 1% | 50%: 16.30 ms (16.20–17.18 ms) 99%: 40.97 ms (38.60–43.32 ms) C: 16.58 MiB (15.57–17.49 MiB) S: 3.91 MiB (3.89–3.95 MiB) |
50%: 18.21 ms (17.97–18.25 ms) 99%: 61.24 ms (57.43–66.63 ms) C: 37.43 MiB (37.01–37.52 MiB) S: 24.75 MiB (24.47–24.75 MiB) |
50%: 12.36 ms (12.18–15.99 ms) 99%: 39.28 ms (36.48–96.98 ms) C: 38.88 MiB (37.86–39.56 MiB) S: 25.61 MiB (25.61–26.52 MiB) |
50%: 16.61 ms (16.42–18.79 ms) 99%: 109.33 ms (65.97–109.70 ms) C: 36.77 MiB (35.29–39.10 MiB) S: 26.01 MiB (25.34–26.05 MiB) |
50%: 12.45 ms (11.62–15.14 ms) 99%: 43.40 ms (35.63–84.78 ms) C: 37.48 MiB (36.12–38.46 MiB) S: 26.17 MiB (25.97–26.54 MiB) |
50%: 5.90 ms (5.03–8.88 ms) 99%: 161.43 ms (111.57–165.05 ms) C: 10.94 MiB (10.82–10.94 MiB) S: 9.25 MiB (9.25–9.38 MiB) |
50%: 8.92 ms (8.38–10.94 ms) 99%: 59.60 ms (47.84–73.50 ms) C: 134.08 MiB (131.52–138.64 MiB) S: 89.07 MiB (86.48–90.95 MiB) |
| 800 B | 64 条连接 | 0% | 50%: 1.18 ms (1.16–1.22 ms) 99%: 8.77 ms (5.87–9.36 ms) C: 11.88 MiB (11.76–11.89 MiB) S: 3.37 MiB (3.14–3.42 MiB) |
50%: 1.15 ms (1.15–1.20 ms) 99%: 8.05 ms (3.26–8.41 ms) C: 14.66 MiB (14.49–14.85 MiB) S: 7.12 MiB (6.91–7.78 MiB) |
50%: 1.16 ms (1.14–1.22 ms) 99%: 8.84 ms (8.39–9.00 ms) C: 14.82 MiB (14.81–14.83 MiB) S: 7.30 MiB (7.29–7.34 MiB) |
50%: 1.13 ms (1.10–1.16 ms) 99%: 9.05 ms (9.02–9.21 ms) C: 14.71 MiB (14.60–14.85 MiB) S: 7.17 MiB (7.17–7.19 MiB) |
50%: 1.21 ms (1.18–1.27 ms) 99%: 5.42 ms (3.84–8.76 ms) C: 15.00 MiB (14.90–15.01 MiB) S: 7.07 MiB (7.04–7.62 MiB) |
50%: 1.17 ms (1.16–1.21 ms) 99%: 16.37 ms (15.58–17.62 ms) C: 6.96 MiB (6.93–6.97 MiB) S: 3.13 MiB (3.13–3.25 MiB) |
50%: 3.08 ms (3.03–3.12 ms) 99%: 11.50 ms (9.64–12.21 ms) C: 37.70 MiB (37.45–40.16 MiB) S: 30.24 MiB (29.33–31.19 MiB) |
| 800 B | 1,024 条连接 | 0% | 50%: 22.70 ms (21.95–24.31 ms) 99%: 42.70 ms (41.55–75.24 ms) C: 19.46 MiB (18.15–20.46 MiB) S: 5.02 MiB (4.86–5.08 MiB) |
50%: 21.35 ms (13.79–21.76 ms) 99%: 114.12 ms (58.20–120.21 ms) C: 50.53 MiB (50.32–51.90 MiB) S: 35.95 MiB (34.48–36.38 MiB) |
50%: 16.88 ms (10.23–18.16 ms) 99%: 117.16 ms (107.80–190.99 ms) C: 50.95 MiB (49.53–51.82 MiB) S: 35.30 MiB (34.23–35.42 MiB) |
50%: 20.42 ms (16.57–21.18 ms) 99%: 42.81 ms (40.26–117.52 ms) C: 50.59 MiB (50.52–50.68 MiB) S: 36.27 MiB (34.35–36.39 MiB) |
50%: 12.39 ms (10.59–18.19 ms) 99%: 169.10 ms (109.53–187.16 ms) C: 51.48 MiB (51.21–51.66 MiB) S: 35.09 MiB (34.91–36.32 MiB) |
50%: 18.82 ms (18.65–20.18 ms) 99%: 107.54 ms (102.72–118.36 ms) C: 22.19 MiB (22.07–22.32 MiB) S: 20.63 MiB (20.12–20.75 MiB) |
50%: 71.29 ms (69.26–71.72 ms) 99%: 140.18 ms (109.03–283.41 ms) C: 244.89 MiB (222.95–249.27 MiB) S: 150.57 MiB (149.33–175.30 MiB) |
| 800 B | 64 条连接 | 1% | 50%: 0.64 ms (0.63–0.66 ms) 99%: 7.02 ms (6.99–7.43 ms) C: 11.82 MiB (11.67–11.84 MiB) S: 3.30 MiB (3.23–3.39 MiB) |
50%: 1.03 ms (1.02–1.19 ms) 99%: 5.91 ms (5.70–6.11 ms) C: 15.04 MiB (14.72–15.32 MiB) S: 7.23 MiB (7.18–7.94 MiB) |
50%: 1.05 ms (1.03–1.10 ms) 99%: 6.06 ms (5.42–6.52 ms) C: 15.16 MiB (14.84–15.44 MiB) S: 7.55 MiB (7.46–7.62 MiB) |
50%: 1.08 ms (0.95–1.16 ms) 99%: 5.85 ms (5.10–6.30 ms) C: 14.98 MiB (14.89–15.22 MiB) S: 7.32 MiB (7.31–7.63 MiB) |
50%: 1.02 ms (1.02–1.04 ms) 99%: 5.90 ms (5.61–6.11 ms) C: 14.98 MiB (14.95–15.06 MiB) S: 7.50 MiB (7.50–7.53 MiB) |
50%: 1.24 ms (1.03–1.31 ms) 99%: 11.33 ms (6.75–11.36 ms) C: 6.79 MiB (6.73–6.89 MiB) S: 3.13 MiB (3.00–3.25 MiB) |
50%: 3.20 ms (3.15–3.29 ms) 99%: 13.52 ms (12.98–23.95 ms) C: 40.48 MiB (36.59–41.42 MiB) S: 29.52 MiB (28.62–33.45 MiB) |
| 800 B | 1,024 条连接 | 1% | 50%: 25.00 ms (19.25–26.59 ms) 99%: 82.13 ms (53.30–85.70 ms) C: 20.33 MiB (20.15–20.54 MiB) S: 4.97 MiB (4.71–5.04 MiB) |
50%: 21.11 ms (19.79–22.75 ms) 99%: 122.90 ms (90.12–136.39 ms) C: 51.90 MiB (50.38–52.18 MiB) S: 36.71 MiB (36.62–37.41 MiB) |
50%: 30.06 ms (22.12–30.13 ms) 99%: 340.38 ms (193.22–355.15 ms) C: 53.13 MiB (52.59–54.25 MiB) S: 38.64 MiB (37.71–39.57 MiB) |
50%: 19.21 ms (17.43–30.82 ms) 99%: 195.16 ms (105.69–200.33 ms) C: 51.19 MiB (49.07–53.82 MiB) S: 36.22 MiB (35.62–37.24 MiB) |
50%: 18.11 ms (13.85–21.74 ms) 99%: 212.59 ms (201.87–336.37 ms) C: 53.09 MiB (52.64–53.35 MiB) S: 37.80 MiB (37.38–37.97 MiB) |
50%: 23.50 ms (13.31–24.95 ms) 99%: 175.31 ms (136.41–264.19 ms) C: 22.32 MiB (22.07–22.32 MiB) S: 19.88 MiB (18.75–20.00 MiB) |
50%: 78.05 ms (75.61–81.64 ms) 99%: 365.24 ms (338.86–430.47 ms) C: 245.64 MiB (240.02–252.82 MiB) S: 191.64 MiB (190.14–205.88 MiB) |
- 64 B、1,024 条连接、无注入丢包时,默认普通发送为 47.00 MiB/s,批量接口为 142.00 MiB/s;TCP、C KCP、quic-go 分别为 53.63 MiB/s、42.64 MiB/s、107.73 MiB/s。
- 单连接、800 B、5% 丢包时,默认普通发送为 146.72 MiB/s;TCP、C KCP、quic-go 分别为 1.03 MiB/s、102.06 MiB/s、8.07 MiB/s。这些结果对应配置明确的可靠有序回显负载。
- 800 B、1,024 条连接、无注入丢包时,配置策略让普通吞吐从 372.54 MiB/s 变为 395.28 MiB/s,批量吞吐从 413.36 MiB/s 变为 381.62 MiB/s。
- 64 B、1,024 条连接、无注入丢包时,配置策略让普通持续负载 RTT 中位数从 16.90 ms 变为 15.81 ms,99% RTT 从 94.65 ms 变为 101.42 ms。吞吐、慢消息延迟和内存应一起比较。
本轮全部使用可靠有序流量,没有测试混合可靠/不可靠调度、带宽骤降或拥塞公平性。send-policy 保持可选启用;本组不能代替混合流量验证,也不是与旧版本严格控制变量的前后对比。
无注入丢包也可能发生 UDP 接收缓冲溢出。每轮记录私有网络的 UDP 错误计数与 qdisc;短负载、随机丢包和 CPU 调度会造成波动,小差距不能据此认定为统计显著或普适排名。
单次吞吐测试的最大命名空间 UDP 接收缓冲溢出计数:rust-raknet (send):175,509 个数据报;rust-raknet(批量接口):407,363 个数据报;rust-raknet (send + send-policy):287,825 个数据报;rust-raknet(批量接口 + send-policy):295,212 个数据报;C KCP:417,267 个数据报;quic-go:7,000 个数据报。
全部 623 次测量通过回显校验:单连接吞吐 168 次、稀疏延迟 35 次、并发吞吐 252 次、持续负载延迟 168 次。
默认驱动、接口选项与工作负载说明见 benchmark README、C KCP 驱动和 quic-go 驱动。策略列在独立验证副本中构建,新增的调用只用于在每个已连接或接受的 socket 上应用 SendOptions::default()。
README 只把原始 send 稀疏请求的 99% RTT 中位数替换为 73.10 µs。周围范围、其他百分位和 RSS 仍来自原五轮横向测量。新值来自额外十轮,每轮预热 1,000 次、测量 10,000 次 RTT;各轮 99% RTT 范围为 56.70–106.70 µs。原中位数为 174.10 µs(46.30–264.40 µs)。使用相同二进制,因此是测量更新,不是代码优化或新的横向排名。
专项复测另完成 56 次持续负载测量(八种条件各七轮),没有替换 README 的持续负载表。全部 66 次复测通过。
English · 简体中文 · GitHub · crates.io 1.4.0 · Reviewed / 核对:2026-10-12 / b909c93
- Overview
- Quick start
- Blocking calls and shared runtimes
- Public API index
- Five reliability modes
- RakNet wire format and recovery
- Message lifecycle and limits
- Bytes and explicit batching
- Send policy
- Recovery policy and tail probes
- Every configuration parameter
- Concurrency and socket tuning
- Errors, deadlines and cancellation
- Congestion and deployment boundaries
- Benchmark results
- Benchmark methodology
- Benchmark reproduction
- Minecraft Bedrock proxy
- Troubleshooting and development
- Release history and upgrading