Happy Eyeballs(快乐眼球),亦被称作 Fast Fallback(快速回退),是一个由 IETF 发布的算法。支持该算法的程序会尝试同时使用 IPv4IPv6 协议进行连接,若两者皆可连通则首选 IPv6,使得同时支持 IPv4 和 IPv6 的双栈应用程序对用户的响应更加灵敏,从而最大限度地减少 IPv6 连接或设置不完善的用户遇到的常见问题。 “快乐眼球”一词源自行内术语“眼球”,用于描述互联网上那些面向人类用户(而不是服务器)的端点,因此“快乐眼球”此处用于形容快乐的用户。[1]

由于许多互联网用户尚无法访问 IPv6 互联网,当这些用户的应用程序尝试访问 IPv6 网络时,这些应用程序会进入无响应状态,从而影响用户体验。Happy Eyeballs 以并行的方式尝试使用两种协议发起连接,来判断使用哪种协议更为合适,而并行的运用意味着该判断过程的延迟和普通连接几乎一致,因而解决了这个问题。使用的地址通常是通过循环算法从 DNS 中选择的。

谷歌的Chrome游览器、Opera游览器、FirefoxcURL[2]OSX[3]OpenBSD[4] 等软件皆实现了 Happy Eyeballs 算法。

Happy Eyeballs 曾于2011年世界IPv6日进行了一次测试。[5]

Happy Eyeballs 算法也可以扩展到用于判断最佳的传输协议类型,如 TCP 和 SCTP,但其开发仍处于实验阶段。[6]

另见

编辑

参考文献

编辑
  1. ^ Definition of eyeballs. Cambridge Business English Dictionary. Cambridge University Press. [2014-12-05]. (原始内容存档于2014-12-24). 
  2. ^ Stenberg, Daniel. curl vs Wget. daniel.haxx.se. [2016-03-06]. (原始内容存档于2023-10-12). 
  3. ^ 据 David Schinazi 称,OS X El Capitan 实现会倾向于使用 IPv6,因为系统会为其提供 25 毫秒的领先时间,而在此之前从 OS X Lion 到 OS X Yosemite,该算法只会使用最快的连接,不会偏好任何协议。Schinazi, David. [v6ops] Apple and IPv6 - Happy Eyeballs. www.ietf.org. [2016-02-02]. (原始内容存档于2018-08-17). 
  4. ^ unwind(8); 'happy eyeballs'. [2023-06-23]. (原始内容存档于2023-03-17). 
  5. ^ Townsley, Mark. Happy Eyeballs for World IPv6 Day. blogs.cisco.com. 2011-06-07 [2012-01-15]. (原始内容存档于2019-09-03). 
  6. ^ Naeem, Khademi; Anna, Brunstrom; Per, Hurtig; Karl-Johan, Grinnemo. Happy Eyeballs for Transport Selection. Ietf Datatracker. July 21, 2016 [2017-01-09].