speedtest的原理
小白智:
Speedtest.net完全通过HTTP运行,以实现最大的兼容性。它测试ping(延迟)、下载速度和上传速度。
(速度测试)是承载在超文本传输协议协议之上的,包括发出砰的声响测试,下载测试和上传测试)
发出砰的声响
此测试向所选服务器发送HTTP请求,并测量获取响应所需的时间(选择好服务器后,发送超文本传输协议请求服务器根据返回响应的时间来计算发出砰的声响时间)
下载速度
您的计算机将小型二进制文件从web服务器下载到客户端,我们测量下载量以估计连接速度。
根据这一结果,我们选择下载多少数据用于实际测试。我们的目标是选择在10秒内可以下载的正确数据量,确保我们获得足够的数据以获得准确的结果,但不会花费太长时间(下载测试只持续10秒钟)
我们通过向每次下载添加随机字符串来防止缓存抛出结果(每次测试前都会清楚一下隐藏物避免假测)
一旦开始下载,我们将使用多达四个HTTP线程来饱和您的连接并获得准确的测量结果(启动4.个超文本传输协议线程来进行测试)
吞吐量样本每秒最多接收30次(每秒采样30次)
然后将这些样本聚合为20个切片(每个切片占样本的5%)(每个采样分成20片)
最快的10%和最慢的30%的切片将被丢弃。我们将在下面详细解释(最快的10%和最慢的30%分片去掉)
剩余的切片一起求平均值以确定最终结果(结果是剩余分片的平均)
因为我们正在测量通过HTTP(通过闪存)传输的数据,有以下因素会影响速度:潜在的协议开销、由于应用程序和原始数据传输之间的多层而产生的缓冲,以及主要由于CPU使用而导致的吞吐量激增。这些因素导致我们将前10%和后10%的切片作为异常值(考虑到一些外在的因素影响,因此把最快的和最慢的部分去掉)
此外,为了用户体验,我们保持默认测试长度较短。因为测试较短,所以在测试开始时,爬升周期可能占很大一部分,导致我们又减少了20%的底部结果切片。
上传测试
客户端生成少量随机数据并发送到web服务器以估计连接速度(上次随机生成的数据到服务器)
基于此结果,选择大小合适的随机生成数据进行上传(选择合适的生成数据进行上传)
然后,以统一大小的块执行上载测试,并通过POST推送到服务器端脚本。
我们将在这里使用最多四个HTTP线程来饱和连接(使用4.个超文本传输协议线程进行上传测试)
块按速度排序,最快的一半取平均值以
用excel解析wireshark log中的RTT
Soonyang Zhang:
楼主,到底怎么导出rtt数据呢?
|