mirror of
https://github.com/kunkundi/crossdesk.git
synced 2026-10-19 18:33:00 +08:00
[fix] pin UDP punch timing and socket identity fixes
This commit is contained in:
@@ -175,6 +175,11 @@ SDP 的能力行不是命令;资源数量由本地配置和认证后的协商
|
||||
|
||||
控制状态消息按 200/400/800 毫秒退避,最多重发 3 次;使用本轮总截止时间约束。每种消息响应幂等,重复 READY/START 不重复分配 socket,也不重启轮次。乱序消息只能在对应状态允许的范围内缓存或拒绝,不能越级启动。
|
||||
|
||||
HELLO 的重发额度耗尽只停止主动发送,在原升级截止内继续接收认证控制消息,
|
||||
允许仍在正常 ICE 重查中的对端随后开始协商。此等待不分配端口池、不刷新快照
|
||||
或重放窗口、不延长任何截止;PREPARE/READY/START 的重发耗尽仍结束协商。
|
||||
取消、过期的同 generation 不能被迟到 HELLO 恢复。原因及复现见 16.4。
|
||||
|
||||
每方向、每密钥域保留 256 项序号重放窗口,允许正常乱序;已处理的控制请求可重新发送缓存响应,不能重新执行副作用。探测 ACK 必须匹配本轮尚有效的 nonce 和本地 socket_id。未认证包不回复。
|
||||
|
||||
上述直接 socket_id 是本地注册表的不透明标识,不是 OS 文件描述符;不得由远端指定本地 FD。
|
||||
@@ -747,3 +752,28 @@ socket。命中、ACK、发送失败、同进程会话争用、原窗口剩余
|
||||
各 36 个传输层 SDP 组合通过;128 端点 runtime 8/8、DRAINING 2/2 通过。
|
||||
这些是本机回环受控网络结果,Windows 新配置及真实异网尚未运行;详情见
|
||||
[本次回归记录](../deps/submodules/minirtc/tests/ice/lab/punch-runtime-validation-2026-09-14.md#离散递增及扩大默认数量2026-09-14u01x01-之后)。
|
||||
|
||||
|
||||
### 16.4 HELLO 启动错位与映射地址碰撞修复(2026-09-14)
|
||||
|
||||
15:50 批次日志暴露两个边界:一端的合法 ICE 重查使 HELLO 晚于另一端约 2.2 秒
|
||||
的重发结束时间;另一个会话已提升 pool socket,却在 Windows 被归为 ordinary-ice
|
||||
并关闭全部额外 socket。不能把这些现象直接算成探测端口不足或纯日志误判。
|
||||
|
||||
源码与本机最小网络实验确认:旧协商器把 HELLO 重发耗尽当作整体超时;libnice
|
||||
在处理真实 STUN 响应的 XOR-MAPPED-ADDRESS 时,只比较 UDP 传输类型和映射地址,
|
||||
可能复用另一 socket 的候选,从而将命中检查关联到旧 socket。受控复现中两种
|
||||
角色都选错并失去直连传输,和历史日志中的不一致有相同机制;未对历史进程的
|
||||
内存状态作追溯证明。
|
||||
|
||||
修复保留原 HELLO 发送次数,耗尽后被动接收至原截止,由迟到对端的认证 HELLO
|
||||
推进原协议;实际采样新鲜度和剩余时间仍在准备阶段重新检查。libnice 新补丁
|
||||
`punch_socket_identity_0.1.24.patch` 要求普通 UDP 的反射候选同时匹配实际 socket,
|
||||
并让提升候选的反射别名保留内部候选标记。TCP/TURN 的原兼容性判定不变。
|
||||
依赖配方校验补丁 SHA,`punch_v1_revision` 从 2 升至 3,使旧缓存失效;ABI 仍为 2。
|
||||
选路日志增加实际 GSocket 的 bound 和对应 handle,不能以公网四元组代替 socket。
|
||||
|
||||
新增 late-hello 与 mapped-collision 回归,先在旧实现上验证失败,再检验真实
|
||||
TURN → 标准 ICE → 同一命中 socket 上持续 SRTP。默认开关、128/1024/128 PPS
|
||||
实验参数、30 秒升级截止及 DTLS 生命周期不变。结果和 Windows 操作见
|
||||
[修复验证记录](../deps/submodules/minirtc/tests/ice/lab/punch-runtime-validation-2026-09-14.md#hello-启动错位与映射地址碰撞修复2026-09-14)。
|
||||
|
||||
Reference in New Issue
Block a user