原创:蔡锐 百度APP技术团队资深网络专家 文章来源:百度APP技术微信公众号
前言
IPv6是当下如火如荼的话题,由于IPv4地址的耗尽,所以IPv6的切换已经势在必行。但在IPv6的初期,由于基础建设还不完善,IPv6可能会出现连通性或可靠性的问题,那我们该如何从IPv4平稳过渡到IPv6呢?
目前业内标准的做法叫Happy Eyeballs,什么叫Happy Eyeballs呢?就是不会因为IPv4或IPv6的故障问题,导致用户的眼球一直在等待加载或者出错,这就是Happy Eyeballs名字的由来。
背景
Happy Eyeballs解决的核心问题是,复杂环境下v4和v6 IP选取的问题,它是一套整体解决方案,对于域名查询的处理,地址的排序,连接的尝试等方面均做出了规定。
Happy Eyeballs有v1版本RFC6555(Cisco提出来的)和v2版本RFC8305(Apple提出来的)。具体的协议规范可参考资料【1】和【2】。我们从百度App对于Happy Eyeballs的实践出发,剖析下百度App是如何实现Happy Eyeballs的。
最佳实践
百度App的Happy Eyeballs最佳实践,如下图所示。