diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-08-10 00:29:58 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-08-10 00:29:58 +0200 |
| commit | d4d0119d8ee7e83769b92cc85225dbeb177d1d27 (patch) | |
| tree | cc923d65e01a9228b2d3681455be5fbd7fbe02b8 /devel-phases.md | |
| parent | 618d5b8515550a1b2d89e1cd045f7fba271f9374 (diff) | |
| download | meshbay-d4d0119d8ee7e83769b92cc85225dbeb177d1d27.tar.gz | |
feat(node): punch_nat() — NAT traversal from QUIC server socket
SFR residential NAT is Port-Restricted Cone: inbound is only allowed
from (peer_ip, peer_port) if the node previously sent a packet TO
(peer_ip, peer_port) from the SAME socket.
punch_nat(peer_ip, peer_port): sends a probe UDP packet from the
QUIC server's own transport (_transport.sendto), creating the correct
NAT entry. Used after server.start() to enable direct QUIC connections
through SFR NAT without UPnP or relay.
demo-v2 result: QUIC/UDP direct Fedora→SFR NAT→meshbay.org validated.
Connection time 12.7s (QUIC handshake through NAT). File transfer 700B.
QuicChunkClient local_port param: ensures client binds to same port
as punch_nat destination (Port-Restricted Cone requirement).
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'devel-phases.md')
0 files changed, 0 insertions, 0 deletions