Johnathan Corgan 6a10e9228b Link-layer handshake message retry with exponential backoff
Add message-level retry for Noise IK handshake within the 30s timeout
window. Previously, a lost msg1 or msg2 required the full timeout to
expire before cleanup and retry. Under 10% bidirectional loss (~19%
per attempt), this made connection establishment unreliable.

Initiator resends stored msg1 bytes with exponential backoff (1s, 2s,
4s, 8s, 16s — 5 resends). Responder stores msg2 and resends on
duplicate msg1 receipt. Duplicate msg2 at initiator drops silently
via existing pending_outbound cleanup.

Config: handshake_resend_interval_ms (1000), handshake_resend_backoff
(2.0), handshake_max_resends (5) on node.rate_limit.

P(all 6 attempts fail) under 19% loss = 0.19^6 ≈ 0.005%.
2026-02-19 16:11:06 +00:00

FIPS Documentation

Directory Description
design/ Protocol design specifications and analysis
S
Description
The Free Internetworking Peering System
Readme MIT
13 MiB
Languages
Rust 83.6%
Shell 11.8%
Python 4.1%
PowerShell 0.2%
Makefile 0.1%