译者 | 弯月
出品 | CSDN(ID:CSDNnews)
一句话概括本文:IPv6的速度比IPv4快约39%(仅限本地!)。
为了搞清楚如题所示的问题,我们决定分析30天内一系列监控代理收集的匿名数据。为了简单起见,我们只分析客户端到默认网关的往返时间(Round Trip Time,即RTT)。这段子路径并没有覆盖访问互联网资源的完整过程,只包括第一段旅程(通常通过Wi-Fi传输),其不确定性也最大。
有许多细微的差别都可能会影响我们的初步结果,包括但不限于数据集的大小、设备的差异、操作系统、介质、协议、CoS 类型等等。然而,由于困难重重,我们决定研究一个简单但便于比较的指标。如果你对我们的数据和分析结果有任何想法或建议,请在下方留言。
方法为了回答这个问题,我们使用了一种名叫PanSift的工具,希望借助这个工具保证Wi-Fi传输和远程故障排除。我们收集了 240 万个网络相关的网关数据点。为了收集这些数据,我们随机选择了16个macOS机器,然后每30秒收集一次数据(我们的数据保留期限最长为30天)。
这16台macOS机器全天在线,并支持双协议栈(即单个节点同时支持IPv4和IPv6两种协议栈),而不仅仅是只有本地连接。这样可以让比较更公平,因为发出的流量都要遍历连接中的全部节点和网关。另外,请注意PanSift不会对数据做规范处理,并保留完全保真的指标。这样,我们就可以进行细粒度分析,甚至追溯故障排除。在过滤出同时支持IPv4和IPv6的数据后,我们总共得到了 342,980 个有效数据点。
深层技术揭秘PanSift代理每30秒通过命令ping(IPv4)和ping6(IPv6)发送3个ICMP echo_requests,同时还将COS(服务等级)设置为“Best Effort”。ping和ping6使用的选项如下:
-c 3:发送3个请求,然后停止。
-i 1:两个请求之间等待1秒(默认)。
-k BE:Best Effort,普通类(默认)。
注意:虽然上述选项是默认值,但我们还是明确地给出了选项,这样可以提醒自己以后进行进一步的调整。我们还为网关的 ICMP 设置了5秒的父进程超时。先发送IPv4请求,然后是IPv6,我们求出3个请求的平均延迟,作为结果数据点(使用以毫秒为单位的浮点值)。
然后查询InFlux后端(时间序列数据库)。数据框中的数据跨越 macOS 版本 10.11.x、10.14.x、10.15.x、11.6.x 和 12.x,设备类型从 iMAC 到 Mini,但主要是 Macbook Airs和 MacBook Pro。
然后,使用Influx的脚本语言Flux,简单比较了IPv4和IPv6。
注意,为了简单起见,我们还将(浮点)值四舍五入为整数,以便快速、公平地比较IPv4和IPv6。