Skip to content

NRUP v1.2.0

Choose a tag to compare

@nyarime nyarime released this 12 Apr 18:55
· 40 commits to main since this release

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