在中,我们介绍了新上线的网络测速网站。提供fast.com这个服务的目的在于为所有网民,无论是否Netflix会员,提供一种简单快速的网络测速方法。自从fast.com上线后,全球数百万网民已经用它测试过自己的网速。这个服务本身以及具体的工作原理吸引了很多人关注。本文将从较高层面介绍我们是如何解决,以及fast.com网站背后采用的技术。
但首先有个消息要公布:我们很荣幸向你推荐面向Android和Apple移动平台的FAST移动应用。这些应用可免费从或安装。
在为fast.com应用设计用户体验时,我们考虑了几个重要的目标:
我们希望确保fast.com能被大部分对计算机网络、命令行等技术没有任何经验的网民轻松使用和理解。
衡量互联网速的方法有很多,而很多因素会对衡量结果产生影响,其中一些因素甚至不在我们控制之下。例如用户本地或家庭网络的配置、设备或路由器性能、网络中的其他用户、设备的TCP或网络配置等。然而我们对能够被自己控制的变量进行了慎重考虑,希望借此能实现我们的最终目标:提供简单但实用的测试结果。
可由我们控制,并会对测试结果产生影响的变量包括:
CDN是我们最大的优势之一,这是一个遍布全球的服务网络(Open Connect Appliance,即OCA),其中存储并提供了全球会员欣赏的Netflix内容。在全球某些地区,这样的网络承载了高达35%的“最后一英里”互联网峰值流量。通过使用自己的生产服务器测试网速,可确保测试结果能够精确反映用户现实生活中所体验到的实际网络性能。
为了追求足够简洁的设计目标,我们刻意选择仅测试下载速度,这个速度反映了当用户执行网页浏览或在线流媒体播放等活动时,数据从服务器到达用户设备所能实现的速度。下载是互联网上大部分普通消费者最主要的行为。
同时我们还决定采用下列这些高层次的技术实现:
如上所述,fast.com会从我们的Open Connect Appliance(OCA)分布式网络下载测试文件。每台OCA服务器提供了一个包含一个25MB视频文件的端点。该端点可支持range参数,这样即可针对从1字节到25MB大小之间任何尺寸的内容块发出请求。
为了将用户定向至某台OCA服务器,fast.com提供了一个端点,该端点可返回最适合测试使用的多个不同OCA的URL所组成的清单。为了确定清单内容,端点使用了与netflix.com视频交付时为确定重定向位置所用的相同逻辑。具体返回哪些OCA主要取决于:
当fast.com客户端收到URL后,即可开始测试。
测试引擎会使用探索式方法:
虽然排除了初始状态下连接热身阶段的衡量值,但我们也考虑了测试过程中的性能突降等情况。网络性能的突降可能意味着网络损耗、链路拥堵,或路由器故障,但这些情况并不能正确反映用户通过互联网消耗内容时的实际体验问题,因此将其排除。
取决于网络吞吐率,fast.com客户端会通过可变数量的并发连接进行测试。对于低吞吐率网络,运行多个连接可能导致多个连接争用本就有限的带宽,进而导致出现更多超时问题,并导致测试过程延长,结果精确度降低。
然而带宽足够高时,运行多个并发连接有助于更快速让网络链路达到饱和并减少测试所需时间。对于非常高吞吐率的连接,尤其是延迟较高时,一个连接以及一个25MB的文件可能不足以测出最高速度,有必要使用多个连接。
对于每个连接,fast.com客户端会从25MB的文件中选择一块特定大小的文件块来下载。如果网络层支持Periodical progress事件,更合理的做法是请求整个文件并使用下载进度计数器估算网速。如果下载进度事件不可用,客户端会在测试过程中逐渐增大载荷大小,以便执行多个下载并获得足够数量的样本。
收集到下载速度衡量值后,客户端会将所有连接下载的内容结合在一起并记录快照速度。
随后会将“瞬时”网速结果传递到结果汇总模块。汇总模块会确保:
来源: http://www.infoq.com/cn/articles/construction-of-speed-test-service-fast-com