建设网站的情况说明书,建设银行的投诉网站,静态网站开发外文文献,我要做网站先贴一篇我们经常能搜索到的解决方案#xff1a; Android 在 4G 下访问 IPV6 慢的解决方案 文章很有参考意义#xff0c;但也并不是所有请求慢的的原因#xff01; 本文是另一种原因,有兴趣就继续往下看一看. 使用的okhttp框架,模式支持ipv6和ipv4协议,但两种协议同时存在时…先贴一篇我们经常能搜索到的解决方案 Android 在 4G 下访问 IPV6 慢的解决方案 文章很有参考意义但也并不是所有请求慢的的原因 本文是另一种原因,有兴趣就继续往下看一看. 使用的okhttp框架,模式支持ipv6和ipv4协议,但两种协议同时存在时会优先ipv6,当ipv6超时时就会使用ipv4协议. 带着这个原理我们首先定位一下原因吧 首先dns解析域名,明确请求时ipv4还是ipv6,Android网络请求必须在子线程所以开了线程
new Thread(() - {try {InetAddress[] allByName InetAddress.getAllByName(www.baidu.com);for (InetAddress inetAddress : allByName) {System.out.println(ip inetAddress.getHostAddress());}} catch (UnknownHostException e) {throw new RuntimeException(e);}
}).start();首轮测试结果 公司wifi仅支持ipv4;移动4G流量支持ipv4及ipv6.这个跟网络供应商以及路由器支持有关. 题外话,如何区分ipv4还是ipv6呢? 简单点就是ipv4就是点分十进制32位组成,如192.168.1.123 ipv6就是冒分十六进制128位组成,如2418:400e:1511:b996:2c56:7996:c520:92a4
我们现在的问题是在解析到ipv6的ip时会出现请求巨慢.使用控制变量法,分别测试了仅ipv4协议及仅ipv6协议,怎么做? 华为手机,设置-移动网络-移动数据-接入点名称(APN)-新建一个APN,配置中的APN协议及APN漫游协议设置为仅ipv4或ipv6. 再次访问接口,仅ipv4的配置打印的只有ipv4的ip,访问速度正常! 仅ipv6的配置打印的只有ipv6的ip,SocketTimeoutException访问超时! 这就印证了上面的原因,由于ipv6超时,从而重新选择了ipv4,所以请求巨慢! 最后排查运维申请了ipv6的地址,但没有申请ipv6的网关,运维在测试的时候只验证了服务器的ipv6访问通畅,却没有测试外部网络访问是否通畅