1
bing1178 358 天前
这个貌似是 操作系统处理的。
系统会同时查询 A 记录 和 AAAA 记录 哪个先返回 就用哪个 |
2
peasant 358 天前
根据我经常使用 curl -v 命令的请求结果来看是优先 IPv6 的,如果 IPv6 响应慢了就马上发起 IPv4 的连接,然后哪个先响应成功就走哪个。
|
3
Xymmh 358 天前 via Android
ipv6-test.com 这个网站可以看到浏览器的行为
|
4
abcbuzhiming OP @Xymmh 我也经常看这个网站来检测自己的 ipv6 ,但是怎么看 [浏览器的行为] 这一点?
|
5
Zhuzhuchenyan 358 天前
完全取决于浏览器或者发起链接工具的行为,根据我的经验,至少遇到过以下几种不同的处理方式,
1. 同时使用 ipv6 和 ipv4 发起请求,哪个优先回应使用哪个 2. 先使用 ipv6 ,等待一段时间之后,若无法链接,再使用 ipv4 发起连接 2.1 同上,只不过 ipv4 被优先使用 3. 先使用 ipv6 ,如果不通则直接不通 3.1 同上,只不过 ipv4 被优先使用 需要注意的是哪怕是相同的工具,跨版本之后行为也有可能改变。之前遇到过不少坑。 |
6
Xymmh 357 天前 via Android
@abcbuzhiming 网站里有个浏览器的板块,里面的 default 就是浏览器默认通过 ipv4 还是 ipv6 连接,fallback 就是浏览器默认连接协议不通时会不会采用另一种协议以及延迟时间
|
7
Xymmh 357 天前 via Android
不过说实话,在实践中,在 IPv6 无法正常打开一个网页时,很多时候浏览器并不会那么智能地尝试通过 IPv4 连接。这可能和无法打开网页的原因多样性有关
|
8
shepherdcode 357 天前
会的,比如 V2EX 就有 v6 的解析,双网卡情况下会优先走 v6 解析导致打不开。
|
9
0o0O0o0O0o 357 天前 via iPhone
客户端决定,这点在一些特别的场景也让我很烦
|
10
dude4 357 天前
@abcbuzhiming 就这个网站就看得到,如果你有 V6 ,但你的浏览器默认 IPV4 优先,测试结果会显示类似于“你有 V6 ,但你的浏览器不太愿意用,令人担心”的结果……
V4 V6 在都存在且路由可达的前提下,选哪一个是客户端请求的,上面这只是浏览器的结果,至于视频 app 之类就看开发程序猿自己的逻辑了。 |
11
LnTrx 356 天前
你想问的是不是 Happy Eyeballs 机制
|