Skip to content

fix(qnt): Do not discard successful probes for unknown remotes#672

Merged
matheus23 merged 1 commit into
mainfrom
flub/probe-peer-hard-nat
May 22, 2026
Merged

fix(qnt): Do not discard successful probes for unknown remotes#672
matheus23 merged 1 commit into
mainfrom
flub/probe-peer-hard-nat

Conversation

@flub
Copy link
Copy Markdown
Collaborator

@flub flub commented May 22, 2026

Description

When we receive a successful probe response from an unknown remote
that only means the remote managed to challenge us from that
remote. It is not because this remote was not advertised in an
ADD_ADDRESS frame that it should be ignored.

This now successfully opens paths if the server is behind a
Desitnation Endpoint Dependent NAT.

Replaces #647

Breaking Changes

n/a

Notes & open questions

I really wanted to have tests for this in proto, but they will come
later. In the meantime I'll point the patchbay tests from
n0-computer/iroh#4254 to this PR which will
test this.

Change checklist

  • Self-review.
  • Documentation updates following the style guide, if relevant.
  • Tests if relevant.

When we receive a successful probe response from an unknown remote
that only means the remote managed to challenge us from that
remote. It is not because this remote was not advertised in an
ADD_ADDRESS frame that it should be ignored.

This now successfully opens paths if the server is behind a
Desitnation Endpoint Dependent NAT.
@github-actions
Copy link
Copy Markdown

Documentation for this PR has been generated and is available at: https://n0-computer.github.io/noq/pr/672/docs/noq/

Last updated: 2026-05-22T12:58:11Z

@flub flub requested review from Frando and matheus23 May 22, 2026 13:03
@n0bot n0bot Bot added this to iroh May 22, 2026
@github-project-automation github-project-automation Bot moved this to 🚑 Needs Triage in iroh May 22, 2026
@github-actions
Copy link
Copy Markdown

Performance Comparison Report

ee5fb97954e68dd23a7f588a628b58af2bd1cb3f - artifacts

Raw Benchmarks (localhost)

Scenario noq upstream Delta CPU (avg/max)
large-single 5621.9 Mbps 7901.8 Mbps -28.9% 97.8% / 149.0%
medium-concurrent 5508.2 Mbps 7887.5 Mbps -30.2% 98.0% / 150.0%
medium-single 3926.3 Mbps 4630.4 Mbps -15.2% 90.6% / 99.0%
small-concurrent 3856.7 Mbps 5213.2 Mbps -26.0% 95.4% / 102.0%
small-single 3553.2 Mbps 4634.8 Mbps -23.3% 95.0% / 102.0%

Netsim Benchmarks (network simulation)

Condition noq upstream Delta
ideal 3142.4 Mbps 4042.0 Mbps -22.3%
lan 782.4 Mbps 797.9 Mbps -1.9%
lossy 69.8 Mbps 56.0 Mbps +24.7%
wan 83.8 Mbps 83.8 Mbps ~0%

Summary

noq is 24.7% slower on average

@flub flub moved this from 🚑 Needs Triage to 👀 In review in iroh May 22, 2026
@flub flub added the QNT QUIC NAT Traversal extension and all holepunching issues label May 22, 2026
@flub flub added this to the noq: iroh v1.0.0-rc.1 milestone May 22, 2026
@matheus23 matheus23 added this pull request to the merge queue May 22, 2026
Merged via the queue into main with commit c20a684 May 22, 2026
67 checks passed
@matheus23 matheus23 deleted the flub/probe-peer-hard-nat branch May 22, 2026 13:58
@github-project-automation github-project-automation Bot moved this from 👀 In review to ✅ Done in iroh May 22, 2026
flub added a commit to n0-computer/iroh that referenced this pull request May 22, 2026
… hard NAT (#4254)

## Description

Patches noq to n0-computer/noq#672
Makes iroh successfully holepunch when the server is behind a hard NAT
and the client is behind an easy NAT. The reverse aready worked before.

## Breaking Changes

n/a

## Notes & open questions

(@flub hijacked this PR)

Once n0-computer/noq#672 is merged I'll update
this PR to point to noq main again before merging.

## Change checklist

- [x] Self-review.
- [x] Tests if relevant.

---------

Co-authored-by: Floris Bruynooghe <flub@n0.computer>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

QNT QUIC NAT Traversal extension and all holepunching issues

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

2 participants