Misaki Shioi
Misaki Shioi
  • @coe401_

Web application programmer. Rubyist. Member of Asakusa.rb.

An adventure of Happy Eyeballs

The Ruby socket library, familiar to many, actually has an issue: it cannot quickly fallback to the other address family if it fails to resolve names or connect in either IPv6 or IPv4.
I am challenging this with Happy Eyeballs Version 2 (HEv2) algorithm specified in RFC8305. The algorithm performs name resolution for IPv6 and IPv4 almost simultaneously, prioritizing IPv6 but enabling fallback to IPv4. This sounds like a simple and nice idea!

However, as I started the implementation, I realized that understanding the complex properties of HEv2, devising strategies to solve issues, and programming it is a kind of adventure.
In this presentation, I will talk about how to get through them and how interesting it is to implement dual-stack support for socket libraries.