v1.2.0
新增
- 0-RTT 会话恢复:首次握手后缓存 session(24h TTL),后续连接通过
Config.ResumeID 跳过完整握手
- 防重放:HMAC(key, timestamp) + 5 分钟滑动窗口
- 自动降级:ticket 过期自动走完整握手
v1.1.0 → v1.2.0 完整变更
- v1.1.0: serverHandshake 迁移到 net.PacketConn(demux 兼容)、ServerHello 冗余双发、Ed25519 认证修复、CI + 文档
- v1.1.1: 握手重试 3→5 次(指数退避 500ms)、动态冗余(>35% 丢包发 3 份)
- v1.2.0: 0-RTT 会话恢复
弱网实测
| 场景 |
送达率 |
| 正常网络 |
100% |
| 1-10% 丢包 |
100% |
| 20% 丢包 + 200ms |
90% |
| 30% 丢包 + 200ms |
93% |
极端丢包(v1.1.1+)
| 场景 |
握手 |
送达 |
| 40% + 200ms |
100% |
87% |
| 50% + 300ms |
100% |
77% |
| 70% + 500ms |
100% |
63% |
0-RTT 使用
conn, _ := nrup.Dial(addr, nrup.DefaultConfig())
sessionID := conn.SessionID()
conn.Close()
cfg := nrup.DefaultConfig()
cfg.ResumeID = sessionID
conn, _ = nrup.Dial(addr, cfg) // 0-RTT
go get github.com/nyarime/nrup@v1.2.0