﻿Case Study: A Crash in a Skype-like Environment
-----------------------------------------------

As a second case study, it is interesting to consider the connections of
a Skype-like system, and how to model a crash in such a system. The
inspiration for this case study was the Skype crash of December 2010,
where most Skype functionality was lost for two days . A disruption took
25% of supernodes offline, causing a high load on other supernodes,
which then failed and brought the whole service down.  {Skype
articles: }

Modelling connectivity problem of a simplified Skype-like Network
-----------------------------------------------------------------

For our (rather simplified) model, we have two types of nodes,
supernodes and regular nodes. All the supernodes are connected to each
other and form a supernode cluster. Regular nodes initially only know of
the existence of some of those supernodes (as stored in their *host
cache*) and can thus only connect to a subset of all supernodes.

Supernodes have a *threshold*, which denotes the total number of regular
nodes that can be connected to a supernode before the supernode fails.




Model Setup and Result Discussion
---------------------------------

For the plots on the two previous pages, the total number of
supernodes is 10 and the total number of regular nodes is 60, with a
supernode *threshold* of 12, giving an initial ratio :math:`$r=2$`.)

For all the plots that follow, the network is initialised at time
:math:`$t=2$` with all nodes and all supernodes being online. At
:math:`$t=10$` a sudden problem happens which deactivates a proportion
of all available supernodes *permanently*. We can now see how the
network evolves differently as we use different parameters.

We can observe that a bigger host cache results in a much more unstable
network, since a larger host cache means supernodes are more likely to
get a disproportionate amount of nodes connecting to them (since nodes
choose their supernode to connect to randomly from the list their host
cache). With a large host cache we start to see cyclic behaviour from
the nodes, where too many nodes all connect at once as soon as
supernodes go online, which then fail again due to the increased load.

For the exponential distribution of restart times of supernodes, the
effect of larger host cache is alleviated, and the total number of
connected nodes remains more stable and has less of a cyclic behaviour.
So an exponential distribution of supernode restart times makes the
network more robust.