Skip to content

Conversation

@magurotuna
Copy link
Contributor

Implement RFC 8305 as an alternative connection strategy alongside the existing RFC 6555 behavior. Default behavior remains RFC 6555 for backward compatibility. In order to enable Happy Eyeballs v2, one needs to call HttpConnector::set_connection_attempt_delay().

RFC 8305 improvements over RFC 6555:

  • Address interleaving: alternates between address families (v6, v4, v6, v4...)
  • Staggered attempts: starts new connections at regular intervals
  • Better parallelism: multiple connections can race simultaneously

Closes hyperium/hyper#2450


Open question: the current implementation maintains both v1 (RFC 6555) and v2 (RFC 8305), with v1 as the default for backward compatibility. However, do we really want to maintain v1, considering that Happy Eyeballs is an internal optimization and v2 achieves the same goal more effectively.

Implement RFC 8305 as an alternative connection strategy alongside the
existing RFC 6555 behavior. Default behavior remains RFC 6555 for
backward compatibility.

RFC 8305 improvements over RFC 6555:
- Address interleaving: alternates between address families (v6, v4, v6, v4...)
- Staggered attempts: starts new connections at regular intervals
- Better parallelism: multiple connections can race simultaneously

Closes hyperium/hyper#2450
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

Successfully merging this pull request may close these issues.

Implementing RFC 8305 Happy Eyeballs v2

1 participant