EN
Back to the archive

The encyclopedia · Software & IT · Technical decision · 2003–2011

Skype ran voice calls on users' PCs, scaling to 663M users without phone networks

Skype's peer-to-peer design made every capable PC a supernode, so calls routed around the network instead of through central servers.

Skype

the move

Skype launched in 2003 from the team behind Kazaa, applying file-sharing's peer-to-peer architecture to voice. The Columbia paper by Baset and Schulzrinne analyzed its traffic and found two node classes: ordinary clients and supernodes, with any client that had a public IP address and spare CPU, memory and bandwidth eligible to become a supernode.

Apart from a login server that authenticates users and keeps names unique, there is no central server. User directories, presence and search queries propagate across the overlay, and clients use a STUN-like technique to work through NATs and firewalls, with wideband codecs keeping calls clear at 32 kb/s.

The architecture turned every user's computer into part of the network, so adding users added capacity instead of load. By May 2011 the Luxembourg-based company had 663 million users and Microsoft agreed to buy it for $8.5 billion, its largest acquisition.

why it works

  • User machines supplied the routing and search capacity
  • NAT traversal let calls reach users behind firewalls
  • No per-call server cost meant free calling at scale
  • End-to-end encryption was built in from the start
the payoffTurn every user's PC into the phone networkinspired

what transfers

Infrastructure can be designed as a by-product of use: if every customer contributes capacity, the network scales without the provider buying hardware.

what came after

Microsoft paid $8.5bn for Skype in 2011, with 663 million users at the time; the acquisition was Microsoft's largest ever. Skype's peer-to-peer lineage gradually faded as Microsoft moved it onto cloud infrastructure, but the lesson—users as infrastructure—survived in later peer-to-peer products.

references

spotted an error? The archive wants to know.

same kind of clever