0% found this document useful (0 votes)
109 views11 pages

SpotifyCombiningCachePeer To PeerandServer ClientArchitecturesforUsersSatisfaction

Spotify combines caching, peer-to-peer networking, and client-server architectures to provide a low-latency music streaming experience for users. The document describes Spotify's client interface and discusses how it uses these three approaches, along with encoding music at different bitrates, to stream over 20 million songs worldwide while maintaining a playback latency of around 265 milliseconds.

Uploaded by

gauss_s1x0
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
109 views11 pages

SpotifyCombiningCachePeer To PeerandServer ClientArchitecturesforUsersSatisfaction

Spotify combines caching, peer-to-peer networking, and client-server architectures to provide a low-latency music streaming experience for users. The document describes Spotify's client interface and discusses how it uses these three approaches, along with encoding music at different bitrates, to stream over 20 million songs worldwide while maintaining a playback latency of around 265 milliseconds.

Uploaded by

gauss_s1x0
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Spotify – Combining Cache, Peer-To-Peer and

Server-Client Architectures for Users’ Satisfaction

Gordan Pejchinovski, K1346473, November 2013, Kingston University


Email: [email protected]

Abstract – Spotify is a music-on-demand countries around the world, have created


streaming system that has gained a lot of more than 1 billion playlists. The client
popularity worldwide since it launched in can be downloaded for free on the Spotify
October 2008. Now it is streaming music website and it comes in three versions:
in 32 countries, on all continents. The Free, Unlimited and Premium. The Free
service has more than 24 million registered Version has some limitations and
users, listening to more than 20 million advertisements. When you register your
songs which are provided in their music free account you will have a six-month no-
library. Streaming is enabled by combining limit streaming of music, with some radio-
caching; server-client and peer-to-peer like advertisement between songs and
(P2P) network architectures. Thanks to banners that are displayed on the client.
this combination, it provides a very low- After this period, of six months, you will
latency service for all of its customers. be entitled to only 10 hours of music per
Spotify features a client version that has to month (2.5 hours weekly). With the
be downloaded prior to starting the Unlimited account (£4.99) you will have
playback. There is also a web version, no streaming limitations and no
which will not be covered in this paper. advertisements. In the Premium version
The Ogg Vorbis codec is used for the (£9.99) you will get all of the bonuses
tracks that are stored in the database. This provided in the Unlimited Version, plus
paper will be on the all-round information you will get a mobile version, which you
about this streaming system, from the can install on your mobile device. Also
client overview to the technical you can download music which you can
background and solutions behind this store in your clients’ cache memory, and
product. Also some measurements on the you can listen to it offline. The most
clients’ performance will be provided in interesting thing about this client is the fact
the end. that, for achieving low playback latency
(265 ms) [2], it combines three
I. INTRODUCTION architectures, usage of cached tracks, P2P
Spotify bases its huge success on the fact and server-client networks, which will be
that it is very fast (low-latency), very easy described, in-detail, later in this paper.
to use (user-friendly) and can be installed The Client overview, caching techniques,
on most of the popular computer peer discovery, neighbourhood selection
platforms. It has huge database that (as a part of P2P network), the protocol
features more than 20 million songs, with that Spotify uses to communicate with the
more than 20,000 new items added every server, streaming technologies and other
day [1]. The users, which come from 32 aspects of the functionality will be also
addressed. Quality of Service and
1
Experience, which Spotify provides for its The main display is in the middle of
users, will be measured, and the data the client. It covers ¾ of the client’s
collected will be plotted in graphs, for appearance. That window contains all the
better graphical interpretation. displayed information, from your menu
choices, relevant information like artists’
II. THE SPOTIFY CLIENT biography, you can even browse the music
Graphically the client is not that much catalogue, playlists from other users and
different from other music streaming much more.
applications. It is divided into three parts. The main feature, in terms of
In the left column, there are several quick- functionality, is the key-word search box,
access menus. The first one is the Main located in the upper left corner of the
Menu, in which you can see your client. It has the auto-complete function,
followers, messages and the play queue. similar to that found in Google search.
The second menu is about the applications When you start typing, suggestions are
that have been installed on your client. shown below the search box. The
There are many applications that can suggestions are divided into five sections
improve the users experience and they are which are:
all free and can be downloaded by users. 1) Top Hit - suggests the most
All applications are developed by third- popular result from the search
party software developers in the so-called 2) Tracks – Suggests the name of the
“Spotify Apps API” and are written in tracks that are associated with the
HTML5, CSS and JavaScript [3]. The key-word that we typed
most popular applications are: “Top Lists” 3) Playlists – Shows the playlists in
and “Radio”, which are included in the which name, our key-word is
base version of the client. The third and featured
last part is the “Collection” menu. In this 4) Artists – In this section you can see
menu you can find your library (the music the most popular artists whose
that you have bought, liked or imported), name contains our search word
local files (files that are stored on your 5) Albums – This last part displays
computer) and the most important – The results featuring the names of the
Playlist Creator. With this tool you can albums that are closest to the input
easily make your own playlist with all the of the search-box.
songs you like, and share it with your
followers or on the most popular social
networks. III. THE QUALITY OF MUSIC
On the right hand side you can see the
activity from your friends or the people The one of the first several questions
you follow. You can see which songs they that one developer of music streaming
played recently, which playlist or people software asks himself is, in which audio
they started to follow. You can also format the tracks should be encoded, and
observe the changes in the playlists you at what bitrate they should be played. All
follow. of the tracks in the Spotify catalogue are
encoded using the “Ogg Vorbis” Codec

2
(Compression/Decompression Technique).
The Ogg Vorbis is open-source software
developed by the Xiph.Org Company. This Quality Bitrate
codec uses Modified Discrete Cosine
q0 64 kbps
Transform (MDCT) to convert the data
from time to frequency domain. The q1 80 kbps
processed data is then divided into two q2 96 kbps
parts: Noise Floor and Residue
Components, which are quantized and q3 112 kbps

coded using codebook-based vector q4 128 kbps


algorithm. This codec or this approach of
q5 160 kbps
compression can be distinguished by other
codec by its characteristic sound/noise that q6 192 kbps
feels like reverberations that occur in q7 224 kbps
closed areas (ex. concert halls), when the
bitrate to encode the data, without major q8 256 kbps

losses, is too low [4]. The “Ogg Vorbis” q9 320 kbps


codec has 11 levels of quality that are
q10 500 kbps
displayed in table 1. The lowest, q0,
quality featured in “Ogg Vorbis” is 64 Table 1 – Levels of quality in the “Ogg Vorbis” codec[4]
kbps, and the highest, q10, streams with
500 kbps. The standard bitrate in which the IV. THE TECHNICAL SOLUTIONS
tracks are encoded in Spotify is IV.1 Protocol – When online streaming
approximately 160 kbps or q5 quality. The applications are considered, UDP is the
Premium users can also choose higher most used protocol for transport. This
quality which is q9 or 320 kbps. The q2 protocol is unreliable; it compromises
quality level (96 kbps) is only used for quality to speed of transfer and low
mobile users [5]. If the bandwidth that latency. But this protocol has no control
mobile device uses can support higher mechanism, so it is a packet-loss tolerant.
bitrates, they can easily choose q5 or the Spotify uses the TCP protocol in the
q9 quality, which is reserved, as mentioned transport layer. TCP is more reliable
above, only for the premium users. No re- protocol than the UDP, and it uses error
encoding is done by the clients (peers), so detection and congestion control. With the
if the q9 version of a track is stored in the error detection TCP controls the sent
cache memory, it cannot be transferred to a packets, and if a packet is lost it
peer that requests the q5 version of the retransmits. This is useful for the
same song. It is also important to mention application, because Spotify uses “pre-
that the Spotify inserts Custom Header to fetching” data (data needed for the next
all Ogg Vorbis files, to improve the song to be played) from the P2P network,
seeking in the streaming track. [2] The and this error checking does not affect the
caching and peer-to-peer network will be latency. The other useful TCP tool is the
addressed in the sections IV.2 and V congestion control. The ECN (Explicit
accordingly. Congestion Notification) used by the TCP

3
allows end-to-end notification for least chance to be used in the future. This
imminent network congestion without algorithm is also known as a Bélády’s
dropping (losing) packets.[6] The TCP Optimal Algorithm. [7] This algorithm
multiplexing is also used by the cannot be practically implemented without
application to avoid handshaking process substantial experimentation of the
every time that user requests song that is collected user data, because there is no
not pre-fetched (Random selected track) another way to predict for how long in the
thus lowering the latency. A TCP future that particular data (song) would be
connection is kept the whole time while needed. Spotify instead uses LRU (Least
the client is running on a user’s computer Recently Used) algorithm. [8] This policy
or mobile phone. This will be addressed in keeps track on particular song and when it
detail in IV.3.2 section of this paper. is used from the client or the P2P network,
IV.2 Caching – Caching the data is with the help of so-called age-bits, are
very important in Spotify. It is known that inserted in the headings of every cache
every person that listens to music has entry. Every time that one cache entry is
favourite bands and songs which he is used the age-bits of every other entry is
keen to play multiple times. So instead of changed. So when there is no space left for
downloading the same song every time, new entries, the “eldest” is discarded.
Spotify plays the cached version of the IV.3 Streaming Habits – Every
song. This is very useful, because it saves Spotify user has his own listening habits.
bandwidth and the latency is kept to the Clear daily patterns are also observed in
minimum, the cache is encrypted and it some research. [9] Those patterns prove
cannot be played in offline mode or be that although we are unique individuals,
used by another player. The cached tracks we still have a lot in common. There are
are also used in the Peer-To-Peer Network two daily peaks when users start to listen
and can be sent to another user, if there is a music, i.e. session arrivals. The first peak
demand for that particular song. is in the mornings (9-10 am) and the
The size of the cache stored on the hard second is in the evenings (6-7 pm). The
disk can vary. The users can amendment other interesting fact that was observed,
this setting, in the “Preferences” tab in the which will be exploited for explaining
main menu, and they can explicitly set the some of the technical solutions adopted, is
size of the cache, which can be between 1 the length of the sessions. The session
and 100 GB or change the setting to length in the mornings is bigger compared
default. The default setting of the client is to the evening ones. It is also observed that
set to be no more than 10% of the free disc the playback, which is less interrupted by
space available on the computer, but also random song selection, is in the mornings,
limited in the range between 50 MB and when the session length is bigger. This
10 GB. With this policy, 56% of the means that a new song starts playing when
Spotify users have 5 GB or more in cached the previous one stops. So there is strong
tracks stored on the disc. [2] inertia by the users in the morning
The cache eviction also plays a compared to the evening peaks.[9]
paramount role in how efficiently the IV.3.1 Uninterrupted Streaming
cache is used. The best caching algorithm – A research [2] showed that 61% of the
would be to discard the data which have streaming (playbacks) from the users on

4
Spotify occur in uninterrupted fashion network. If there were some considerable
(New song start because the previous packet loss in the previous transmissions,
ended). The clients are programmed to the congestion window (CWD) will be
start pre-fetching the next track from the small, so the data needed for starting the
P2P network just before the track ends. playback might be delayed. In other
This actually happens when the playing scenario, if the line is in good condition
song reaches the last 30 seconds or less. In and the CWD is big enough, the server can
that point of time the client firstly tries to send the data in one burst, thus lowering
fetch the beginning next track from the latency to a minimum.
connected peers. But if this fails it requests IV.4 Streaming Solutions – For
the data directly from the server. This efficient use of the Spotify servers, clients
server requests will be explained in the are programmed to always prioritise the
IV.3.2. Some research shows [2] that more P2P network for downloading a track.
than 92% of the users that are listening to There are cases in which, due to
the last 30 seconds, of the playing song, insufficient data in the play-out buffer, and
continue with the next i.e. scheduled one. there is no peer that can serve the demand
So with this technique, not only the latency in time, it requests data from the server, as
is dramatically lowered, but also the load explained in IV.3.2. A track can be
on the servers is not as high as it is in some downloaded simultaneously from different
other streaming systems. The P2P network peers. When the client receives ACK from
will be explained, in-depth, in chapter V. different peers (confirmation that they can
IV. 3. 2 Random Song Selection – serve the request from the client), they are
The rest of the playbacks (39%), showed sorted by the expected download time. So
in the same research [2], occur by random if the estimated download time passes the
selection of the songs. The pre-fetching of point when actually that part is needed,
the data will not be possible here, because that peer is not considered to be a potential
there is no way of knowing what the user source.
will play next. But there is a mechanism While playback, if the data contained in
that allows Spotify to keep the latency to a the play-out buffer is low, an “Emergency
minimum and also not to, as much as Mode”[2] algorithm can be triggered. If
possible, load the servers. First the client there are only 3 seconds or less audio in
looks up in the cached data for that track the play-out buffer, this algorithm pauses
that is randomly selected. If there is no all outstanding uploads to other peers, so it
“hit” in the cache, it requests the first 15 can boost the download speed.
seconds of the song from the servers. As IV.4.1 Markov Chain – Spotify
mentioned in IV.1, there is an open TCP clients use Markov’s chain to determine if
connection to the server, so this request the play-back latency should be increased.
can be served quickly (no handshake [11][2] This technique is mainly used to
needed for establishing connection). A prevent unwanted stutters in the middle of
problem for quickly sending the requested a song. With this model, clients monitor
data, from the server, might be the the throughput, which can be affected by
congestion control. Spotify uses “New line health (packet loss or delay), or
Reno” congestion algorithm [10], which congestion control. The data which are
can limit the data that is sent over the included in the Markov’s model

5
simulations are the data collected in the and if the server fails, the entire P2P
last 15 minutes of streaming. Clients network will be inoperable.
periodically use this model for simulating Instead, Spotify uses the
the beginning of the track, considering the “Decentralized Unstructured” Topology,
amount of data in the buffer and the which is assisted by a tracker. All the peers
throughput. The client makes 100 are equal, and there is no server or “super-
simulations before the beginning of the node” in the network. Locating peers will
track, and if more than one fails (more be described in detail in the next chapter.
than 1% chance a stutter could occur in The cache, which was presented in IV.2, is
playback), it increases the latency, so it stored in every user’s computer, and that is
can provide more time for the needed data the content which is served on the P2P
to be downloaded from the server or the network. Only a completely cached track
peers. can be offered to be shared, with another
peer, by the client. There is no routing in
V. PEER-TO-PEER NETWORK (P2P) the P2P network, so there must be a direct
link between the peers, to enable the track
Spotify combines local cache, servers to be sent. London and Stockholm are the
and the P2P network for streaming. This two data centres that are serving the
streaming system revolutionised the usage overlay network. These data-centres are
of P2P network for legal use. It is not connected so if a user is connected to
described in chapter IV, how the client the London data-centre, he cannot search
decides when and what resources for peers that are connected to the
(networks) to use, with a main goal of Stockholm one. [2]
lowering latency and unloading the V.2 Finding Peers – As it was
servers. In this chapter, the structure of the described in V.1, Spotify uses the
P2P network and peer-finding mechanisms Decentralized Unstructured P2P Topology
will be presented. (Also known as Gnutella, because it was
V.1 P2P structure – There are firstly implemented in this file sharing
four P2P topologies – Centralized, system) [12]. This topology uses
Decentralized Unstructured, Decentralized “Flooding Mechanism” for discovering
Structured and Partially Decentralized data. Spotify combined this mechanism
Topologies. The Centralized Topology, with a tracker, for more efficient search of
also known as Napster Topology[12] (It peers. These mechanisms will be discussed
was firstly implemented in the famous in detail in the next points
mp3 sharing system “Napster”), uses one V.2.1 Gnutella-like “Flooding
central server which keeps the information Mechanism” - In this topology, every
about the peers but the resources are stored node (user) has its neighbour list. The
in each network node (peers). The queries neighbour list represents a list with all the
are sent to the server, which responds to connected nodes’ IP addresses and other
the node where that resource (song) can be information. Each client can connect to a
found. After that the peers are selected and maximum of 60 peers, but there is a soft
direct connections are established. This limit of 50 peers. When a client wants to
kind of topology is similar to client-server, disconnect from a peer it evaluates the
overall usefulness of that peer, but also has

6
information on how much that peer was The tracker also monitors all of the
used in the whole overlay network. users’ TCP connection to the server. When
A point-base system is used by the a query from a peer gets to the tracker
client for deciding what peers should be asking for a particular source for a track,
disconnected. There are several criteria the tracker responds with sending reply
that include: containing 10 online peers that have the
- Amount of data sent and track.
received in past 10 minutes
- Amount of data sent and VI. MEASUREMENTS AND
received in the past 60 minutes OBSERVATIONS
- How many tracks are served
from that peer in the past 10 In this section a detailed observations of
minutes Spotify Client behaviour will be presented,
- How many peers are found by accompanied with Play-Out Latency tests
queries sent over the and Server load during playback. The
connection with this peer
Points are given to every criterion, and Software that was used for measurements
then are summed for every peer. Peers are NetLimiter 3 Pro, Matlab and Spotify
with the lowest score are disconnected Console. After a sent query to the Spotify
from the client. Team for assistance, they pointed out the
When a client searches a song from hidden console that can be opened with the
the neighbours, it sends a query to all of command "address_of_installation\
them, asking if they have the track, and Spotify\spotify.exe" –console, typed in
after that, they also forward the query to RUN application in Windows 7.
their neighbours. So the TTL (Time-to- Note: All of the measurements and
Live) of the query is limited by Spotify on observations are not done in controlled
2, which means the query can be sent only laboratory environment, but instead are
twice (the number of hops). Every user made in real-life, home circumstances.
within the TTL≤2 sees the query, and All of the results should be taken with
responds affirmatively if he has the track reserve.
stored in the cache. VI.1 Neighbouring Peers – During the
V.2.2 Tracker – The tracker was measurements, IP addresses of the peers
firstly used in BitTorrent protocol. There connected were noted with NetLimiter,
are two differences between the BitTorrent and with a help of an IP Locator, the
tracker and the Spotify Tracker. The country of their origin was pinpointed. As
Spotify tracker keeps track of only 20 most seen in Figure 1, the most common
recent “Swarm” members (peers that country of origin was The United
participate in serving the same track). Kingdom with 306 (43%) of the connected
Peers are added in this swarm if they peers during the observed period. The
successfully play the song. The other other notable countries were Spain with
difference is that a peer address is added to 171 peers (24%), Sweden – 68 (10%) and
the list, as a potential source, if and only if others. This was not an unexpected result,
they have the whole track cached in their
memory.

7
Figure 1: Location of peers connected to the
Figure 3: The Effects on Latency by limiting
client during Play-back (Neighbours)
download speed

Figure 2: Play-Out Latency in a three-hour Figure 4: The Effects on Latency by limiting


interval download speed

because it is known that the Spotify client In the second scenario, the Play-Out
favours peers that can deliver data faster Latency will be tested in different
and on time. Other aspects of peers bandwidth situations. The bandwidth will
selection was discussed in V.1 and V.2. be limited with NetLimiter, simulating bad
VI.2 Play-Out Latency – In this network health.
section will be presented two VI.2.1 Latency in
measurements (simulations). The first “Uninterrupted Streaming” versus
measurement, with the help of Spotify “Random Song Selection” - As we can
Console, will be the median latency for 10 observe from Figure 2, there are
songs, played in “Uninterrupted substantial differences between latencies
Streaming” and “Random Song Selection” measured during Random Song Selection
(see IV.3.1 and IV.3.2) in a three-hour and Uninterrupted Streaming. Median
interval. latency, for 10 songs played every three
hours, in “Random Song Selection” (see
IV.3.2) is 317.6 ms, with the lowest value
in 6 a.m. (251 ms) and the highest in 9
p.m. (430 ms). On the other hand, the
latency measured in “Uninterrupted
Streaming” (see IV.3.1) showed lower
values. The median value for this kind of

8
Figure 5: Data Source for Continuous Stream Figure 6: Data Source for “Random Selection”

streaming of music was 77.1 ms which is 200 Kbytes/s. Measurements were taken
approximately three times lower than the every 50 Kbytes/s’ intervals, and every 10
previous one. The lowest latency observed Kbytes/s’ below 50 Kbytes/s download
here was 28 ms (3 a.m.), and the peak speed. This chart also will show the
value (159 ms) reached in 3 p.m. These differences between Uninterrupted
results were also expected due to the Streaming and Random Song Selection.
Clients’ in-built algorithm, which enables From the Figure 3, it can be seen
pre-fetching data for the next song, thus that the latency is unaffected if the
lowering latency to a minimum. The other download speed is limited to 550 Kbytes/s.
interesting fact that is observed here is, After that the latency for Random Selected
that in both cases, the latency is highest in, Songs sharply raised. Latency was
or around, the evening peak (see IV.3). approximately 800ms at 400Kbytes/s,
VI.2.2 “Bad Network” 1300ms at 300Kbytes/s and peaking, in the
Simulation – In these measurements first part of the simulation, at 1920ms at
(simulations), the effects on the Play-Out 200Kbytes/s. Contrarily to the previous
latency will be demonstrated by restricting one, the latency for Uninterrupted Playing
bandwidth to the Spotify Client. The seems unaffected by these limitations. So
bandwidth will be limited with the help of if the user is not tempted to change the
NetLimiter 3 Pro, and the latency will be song, Spotify will provide low-latency, no-
measured with the Spotify Console. The stutter-interrupted playback, even when
result chart in this simulation will be the network health is very low.
divided into two parts – The first part will In the second part of the simulation
show the latency when the download speed chart, (see Figure 4) latency for the
was limited in the region between 700 uninterrupted streaming is unchanged until
Kbytes/s and 200 Kbytes/s. 700 Kbytes/s 100 Kbytes/s. After that, an interesting
was chosen for the starting point because it phenomenon was observed for both
was the highest download speed achieved streams. The play-out latency sharply rose
in previous measurements. The second part for “Random Selection” and
will be on the latency effects when the “Uninterrupted” streams at 100 and 50
download speed is below Kbytes/s download speed accordingly. In
this moment of time, the Spotify client
disconnected from the London overlay

9
centre and connected to Stockholm one.
Every single one of the London’s peers VII. Conclusion
were removed and the client connected to
new ones from the Stockholm Overlay The main technical solutions behind this
Centre. After probably running the popular, on-demand, music streaming
Markov’s Chain Simulation (see IV.4.1) system were covered in this paper,
and failing again, it disconnected from the accompanying with some measurements,
server and connected again to the server in observations and simulations. All of the
London. This time it disconnected all the measurements, as noted above, were made
peers and used only the open connection to in home environment, not in a laboratory
the server for downloading the songs. This controlled one. It was shown that, Spotify
technique considerably lowered the latency places the users’ satisfaction in the first
as it can be seen in the Figure 4. Also a place, with every solution it had
noticeable drop in music quality was incorporated within their client.
observed in the next song, most likely the
client asked for the lower quality version VII. References
of the song, i.e. q2 (see III), which was
thought to be reserved only for mobile [1]Spotify Information for the Press
users. In the last simulation that was [Online] Available at:
performed (download speed limited to 10 http://press.spotify.com/uk/information/
Kbytes/s), the song that was playing in the [2]Gunnar Kreitz and Frederic Niemela,
“uninterrupted” fashion started with “Spotify – Large Scale, Low Latency, P2P
20,000ms latency with 4 stutters, and the Music-On-Demand Streaming”. KTH –
Random selected song started with Royal Institute of Technology, and Spotify
110.000ms (110s) delay, but still resulting Stockholm, Sweden
in 9 stutters. [3]Patrick Wikstrom, “The Dynamics of
Digital Multisided Media Markets” pp.
VI.3 Data Origins – In the 231-238, 2013 Blackwell Publishing
previous measurements, simulations and Limited, Chichester UK.
observations, the IP addresses of the [4]Xiph.Org Foundation “Vorbis I
London’s and Stockholm’s Overlay Specification” February 3 2012 [Online]
Servers were isolated among the connected Available at:
http://www.xiph.org/vorbis/doc/Vorbis_I_
peers. With these addresses and the log
spec.html#x1-50001.1.2
files from NetLimiter for all the days spent [5]Spotify Customer Support [Online],
in simulations, the precise amount of data, Available at:
which was transmitted through these https://support.spotify.com/uk/learn-
connections, was calculated. In Figures 5 more/faq/#!/article/What-bitrate-does-
and 6, a clear difference in server load can Spotify-use-for-streaming
be seen. In Figure 6, the load is twice as [6]Kunniyur, S and Srikant, R. “End-to-
end congestion control schemes: utility
high (26%) compared to the Continuous
functions, random losses and ECN marks”
Play (16%). That 16% that was calculated Published in: Networking, IEEE/ACM
in the Figure 5, was mainly traffic Transactions on  (Volume: 11,  Issue: 5 )
generated by the audio advertisements that Date of Publication: Oct. 2003, pp. 681-
periodically play between songs. 702

10
[7] L. A. Belady. A study of replacement
algorithms for a virtual storage computer.
IBM Systems Journal, 5(2):78–101, 1967
[8]Glenn Hofford, “High Performance
Cache with LRU Replacement Policy”
2010 [Online] Available at:
http://www.cachemethods.com/LRU
%20Cache%20Overview%20(As
%20published%20on%206-12-2010).htm
[9] B. Zhang, G. Krietz, M.Isaksson,
J,Ubillos, G. Urdaneta, J. Pouwelse and D.
Epema”Understanding user behaviour in
Spotify” IEEE INFOCOM, 2013
[10]S.Floyd, T. Henderson and A.Gurtov
“The NewReno Modification to TCP’s
Fast Recovery Algorithm” 2004
[11] Sophie Fortin-Parisi and Bruno
Sericola “A Markov model of TCP
throughput, goodput and slow start”
Rennes Cedex, France 2004 [Online]
Available at:
http://www.irisa.fr/dionysos/pages_perso/s
ericola/PAPIERS/J28.pdf
[12] Xu Yong, Deng Chi and Gao Min
“The Topology of P2P Network” School
of Information Engineering, Southwest
University of Science and Technology
Mianyang, SiChuan, China, VOL. 3, NO.
8 Aug, 2012
[13] Mikael Goldmann and Gunnar Kreitz
“Measurements on the Spotify Peer-
Assisted Music-on-Demand Streaming
System”

11

You might also like