libp2p / specs

Technical specifications for the libp2p networking stack
https://libp2p.io
1.56k stars 273 forks source link

assign roles after TCP simultaneous connect, describe how hole punching works on QUIC #361

Closed marten-seemann closed 3 years ago

marten-seemann commented 3 years ago

Thinking about it some more, I am in favor of your suggestion, assigning the role out-of-band through the DCUtR protocol, thus simplifying the process.

This is essential if we don't want to couple Flare with Protocol Select (as Protocol Select doesn't come with a low-latency option to assign roles in the case of TCP Sim Open).

Just to make sure I am not missing something, we would thus only need the Multistream Select Simultaneous Open extension for uncoordinated simultaneous TCP connections, correct?

That is correct.

Stebalien commented 3 years ago

Thinking about it some more, I am in favor of your suggestion, assigning the role out-of-band through the DCUtR protocol, thus simplifying the process.

What if I perform a simultaneous open without coordination? As I've pointed out before, this is a very common case and it needs to be supported before we start making changes.

marten-seemann commented 3 years ago

@Stebalien There’s a section “Uncoordinated TCP Simultaneous Open” in the Protocol Select spec (https://github.com/libp2p/specs/pull/349).

Stebalien commented 3 years ago

Thanks. I'm mixing issues.