一汁三菜

自分が楽しいと思うこと、マラソン、旅行、その他日々の記録をしたい。

IPv4/IPv6デュアルスタック環境下のフォールバックコスト削減アルゴリズム

IPv4/IPv6デュアルスタック環境のクライアントが、IPv4のみのホストに接続する際のフォールバックコストを削減するアルゴリズムが提案されていたので、紹介します。Last Callがかかっているので、じきにRFCになる物と思われます。

IPv6IPv4の両方を利用できるクライアントが、あるホストに接続する時には、IPv6でまず接続してみて、ダメだったらIPv4で接続してみるという順番で接続をします。ここでIPv4しか利用できないホストに接続しようとすると、IPv6で接続してみる為の時間が無駄にかかる事になります。これを解決する為のアルゴリズムを提案しているのが、このInternet-Draftです。アルゴリズムの名前を "Happy Eyeballs" と言います。

やっている事は簡単で、IPv6の接続試行に失敗した後でIPv4の接続を試みるのではなく、IPv6IPv4の接続を同時に試みて、IPv6で繋がらないけどIPv4でも繋がる時にはIPv4を使うという物です。IPv6IPv4の両方が繋がる時は、IPv4の接続を切断します。

この同時接続は接続の度に行う必要は無くて、一度試してみてIPv6が使えるかどうか分かれば、次回の接続からはIPv6のみ、あるいはIPv4のみの接続を行うようにします。

他にも細かい所では色々と考える事があるのですが、ほとんどの場合は上記の考え方だけ分かっていれば簡単に実装できます。詳しく知りたい方は、Internet-Draftの原文を読みましょう。