Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Two frames #40

Open
martinthomson opened this issue Feb 12, 2025 · 2 comments
Open

Two frames #40

martinthomson opened this issue Feb 12, 2025 · 2 comments

Comments

@martinthomson
Copy link
Member

It might be easier to present this as follows:

OBSERVED_ADDRESS_V4 Frame {
    Type (i) = 0x9f81a6,
    Sequence Number (i),
    IPv4 (32),
    Port (16),
}
OBSERVED_ADDRESS_V6 Frame {
    Type (i) = 0x9f81a7,
    Sequence Number (i),
    IPv6 (128),
    Port (16),
}

Yes, this raises the question about whether the sequence numbers are taken from the same space or not (can you send a v4 frame with the same sequence number as a v6 frame), but I think that's already an open question. I just find this less ambiguous, because you don't have to think about whether you might have none (or both) of the IP addresses.

@huitema
Copy link
Collaborator

huitema commented Feb 12, 2025

An endpoint using multiple paths could well use a different source IP address for each path. The observed address can be associated with a path, see the discussion in 5, address discovery, "endpoints SHOULD bundle the OBSERVED_ADDRESS frame with probing packets". This get a bit more complex with NAT, because we can have several successive mappings for the same path. The sequence number allows endpoint distinguish the latest reflexive address for a given path. With potential 6to4 NAT, it might be better to keep a single sequence for both V4 and V6.

@martinthomson
Copy link
Member Author

That's what I figured as well. The issue exists so that you can write that into the spec :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants