From Surf Wiki (app.surf) — the open knowledge base
Happy Eyeballs
Algorithm for applications supporting both Internet protocol versions 4 and 6
Algorithm for applications supporting both Internet protocol versions 4 and 6
Happy Eyeballs (also called Fast Fallback) is an algorithm published by the IETF that makes dual-stack applications (those that understand both IPv4 and IPv6) more responsive to users by attempting to connect using both IPv4 and IPv6 at the same time (preferring IPv6), thus minimizing IPv6 brokenness and DNS whitelisting experienced by users that have imperfect IPv6 connections or setups. The name "happy eyeballs" derives from the term "eyeball" to describe endpoints which represent human Internet end-users, as opposed to servers.
Happy Eyeballs is designed to address the problem that many IPv6 networks are unreachable from parts of the Internet, and applications that try to reach those networks appear unresponsive, which frustrates users. Happy Eyeballs solves this problem by determining which transport would be better used for a particular connection by trying them both in parallel. An application that uses a Happy Eyeballs algorithm checks both IPv4 and IPv6 connectivity (with a preference for IPv6) and uses the first connection that connects successfully.
Implementations of Happy Eyeballs stacks exist in Google Chrome 11, Opera 12.10, Firefox 7 (which falls back to IPv4 for dual-stack hosts), OS X Lion, iOS 5, cURL 7.34.0 and OpenBSD.
Happy Eyeballs (pre-version 1) testing was part of World IPv6 Day in 2011. Version 1 was formally published in April 2012 as . Version 2 was published as in December 2017, replacing version 1.
The Happy Eyeballs algorithm may be extended for choosing between types of transport protocols as well, such as TCP and SCTP, but development is still in an experimental phase. A 2016–2017 proposal for this feature was abandoned. However, Happy Eyeballs version 3 (still an actively-updated draft document in December 2025) includes the use of SVCB and HTTPS records from DNS, which entails a form of transport protocol selection in the form of different versions of HTTP (TCP vs QUIC).
Notes
References
References
- {{cite encyclopedia. [[Cambridge University Press]]. link. (2014-12-13)
- (September 2010). "Happy Eyeballs: Improving User Experiences with IPv6 and SCTP". Internet Protocol Journal.
- Aben, Emile. (2011-11-12). "Hampering Eyeballs - Observations on Two "Happy Eyeballs" Implementations".
- "Opera 12.10 Changelog". Opera.
- "Necko Lingo — Firefox Source Docs documentation".
- "DnsAndConnectSocket.cpp - mozsearch".
- "Firefox 7 for developers".
- Quinn “The Eskimo!”. (2016-08-16). "NSURLConnection/Session with DNS round robin".
- Schinazi, David. (2015-07-09). "[v6ops] Apple and IPv6 - Happy Eyeballs". IETF Mail Archive.
- "curl - Changes in 7.34.0".
- rueda. (2019-11-28). "unwind(8) gains "Happy Eyeballs"-like flexibility".
- Townsley, Mark. (2011-06-07). "Happy Eyeballs for World IPv6 Day".
- (July 21, 2016). "Happy Eyeballs for Transport Selection". IETF Datatracker.
- (20 October 2025). "Happy Eyeballs Version 3: Better Connectivity Using Concurrency". Internet Engineering Task Force.
This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.
Ask Mako anything about Happy Eyeballs — get instant answers, deeper analysis, and related topics.
Research with MakoFree with your Surf account
Create a free account to save articles, ask Mako questions, and organize your research.
Sign up freeThis content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.
Report