移动端 IP 优选方案
移动端 IP 优选方案
1. IP 优选目的
无论是从 Local DNS 解析域名,获取到 IP 列表,还是从第三方的 DNS 解析服务中,获取到域名对应的 IP 列表。我们获得多个 IP 后,总是想选取一个最优的 IP 使用,本文主要探讨如何在客户端探测 IP 的连接性以及连接速度,保证返回可用性最好的IP,以达到“IP优选”的目的。
2. 新浪开源的 httpdns 的 sdk 里的测速逻辑
新浪开源一个 HTTPDNSLib ,里面包含了测速逻辑,GitHub地址如下:
我们以该 sdk 里的测速逻辑为例进行原理解析。
3. IP 测试实现原理
使用 linux socket connect 和 select 函数实现的。 基于以下原理:
- 即使套接口是非阻塞的。如果连接的服务