2023年度Rubyアソシエーション開発助成対象プロジェクト「socketライブラリへのHappy Eyeballs Version 2 (RFC8305)の導入」
◼︎ プロジェクト概要 https://www.ruby.or.jp/ja/news/20231031 Rubyのsocketライブラリにおいて、リモートサーバと接続したクライアントソケットを返すメソッドが用意されている。これらには、以下の二つの課題がある。 (1) アドレス解決の段階において: DNSサーバに対してアドレスファミリごとに同期的に問い合わせを行い、すべてのアドレスが解決できるまで動作を停止する (2) 接続試行の段階において: IPアドレスが宛先ホストに接続しようとして時間がかかっている間、プログラムが停止し、他の解決済みIPアドレスで接続試行できない RFC8305ではこうした課題について、(1)に対してはアドレスファミリごとのDNSクエリ送信を非同期的に行うこと、 (2)に対しては解決済みのIPアドレスを利用して順次接続試行を行うことによって解消し、より良い接続性を担保するHappy Eyeballs Version2アルゴリズムを規定している。 このプロジェクトでは、RubyのsocketライブラリにHappy Eyeballs Version 2を導入することにより、上記の課題の解決を目指す。