谷歌市场下载安装怎么没有Spotify

本文来自数字音乐服务商Spotify的科技博客文章阐述了通过BBR为用户提供了更大的下载带宽,BBR是由Google开发的TCP拥塞控制算法它旨在加快互联网数据传输速度。LiveVideoStack对原文进行了摘译

Spotify嘚数据流的基本原理很简单。我们将每个编码的音乐曲目存储为文件复制到世界各地的HTTP服务器上。当用户播放歌曲时Spotify应用程序将从附菦具有HTTP GET范围请求的服务器以块的形式获取文件。其中典型的块大小为512kB。

我们希望我们的音频播放能够达到即时且顺滑流畅。为了保持這种效果我们跟踪两个主要指标:

1,播放延迟从点击到音乐响起的时间。

2Stutter,播放期间跳过/暂停的次数

Stutter的发生主要是由于下载带宽較低时音频缓冲区欠载。因此我们的指标与连接时间和传输带宽密切相关。这些都是一些经典的参数

那么,BBR是如何改善我们的流媒体嘚

我们细看一下从服务器到客户端的文件传输过程。服务器以TCP数据包发送数据客户通过返回ACK确认交付。根据硬件和网络条件连接的嫆量就有限。如果服务器过快地发送太多数据包它们就会被丢弃。服务器将其记录为丢失的ACK拥塞控制算法的作用是审视发送+ ACK的流程并確定发送速率。

许多热门的改进方法如CUBIC,都专注于数据包丢失只要没有数据包丢失,它们就会增加发送速率;当数据包开始消失时咜们会减小速率大小。这种方法的一个问题是对少量随机分组丢失会出现反应过度的倾向并将其解释为拥塞。

另一方面BBR查看数据包的往返时间和到达率,以建立连接容量的内部模型一旦它测量了当前带宽,它就会使得发送的速率保持在该对应水平即使存在一些丢包形式的噪声。

BBR远不止这些但我们对吞吐量的提高非常感兴趣。

许多网络协议更改是需要对客户端和服务器进行协调更新的(注意你的电腦IPv6!)。而BBR是不同的它仅需要在发送方一侧启用。它甚至可以在套接字(socket)打开后启用!

在本次实验中我们设置了一个随机的用户孓集,在音频请求主机名中包含“bbr”作为标志并在服务器配置中添加几行:

其他请求使用默认的CUBIC服务。

我们现在有A / B测试的处理组和对照組对于每组我们测量:

1、播放延迟(中位数,p90p99)

2、Stutter(每首歌的平均数)

3、带宽,歌曲下载的平均值(中位数p10,p01)

按日平均值计算BBR組stutter指标减少6-10%。较慢的下载队列的带宽增加了10-15%中位数的带宽增加了5-7%。两组之间的延迟没有差异

我们看到了亚太地区和拉丁美洲情況的大部分改善,stutter次数分别减少了17%和12%较慢的下载队列的带宽增加15-25%,中位数增加约10%

相比之下,欧洲和北美的stutter次数改善了3-5%带寬提高了约5%。

意外收获:上游拥堵事件

在我们的实验中我们遇到了与南美上游提供商的网络拥堵事件。这是BBR真正发光的地方!

在这种凊况下BBR组有4倍的带宽用于较慢的下载(第10个百分点),2倍的中值带宽以及5倍少的stutter次数!

这情况就是我们的用户几乎没有注意到和让播放问题严重到要联系客户支持的区别。

我们得到的结果与GCPYouTube和Dropbox流量的报告一致。数据包丢失增加后的性能也与早期Google实验的结果一致

已经囿实验证明BBR可能会挤出CUBIC流量,以及引出其他问题到目前为止,在我们自己的流量范围内我们还没有看到有任何问题的迹象。例如我們使用几个不同的CDN合作伙伴进行音频传输,但我们只在其中一个上运行了BBR实验与其他CDN相比,非BBR组并没有显示出任何明显的性能下降当嘫,我们将持续密切关注这一点

到目前为止,我们对BBR的表现非常满意往正确的方向上移动我们的播放质量指标是非常困难的,并且通瑺涉及到权衡例如,stutter次数与音频比特率 但是自有了BBR,我们已经看到了指标的显着改善且没有伴随明显的成本。

}

我要回帖

更多关于 谷歌市场 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信