Thursday, July 30, 2009

Skype's P2P Architecture


The Skype network can be thought of as a mesh of computers that connect with each other over the Internet. As noted previously, Skype uses what’s known as a P2P architecture, wherein each computer—called a “node”—runs the same software and is treated equally. Some nodes in the network are designated “supernodes” and take on some of the tasks necessary to help organize and manage the network. Even though such nodes are designated “supernodes,” they still run the same software as any regular node, and a node can become a supernode at any time, and vice versa. The important concept to understand is that all the computers in a P2P network run the same software and are treated equally. When you start the Skype softphone running on your PC, it first connects to a Skype login server in order to authenticate you. After you’re authenticated, the network broadcasts your online status—that is, makes your “presence” on the network known to others—and otherwise keeps track of your activities.
When you make a Skype call, Skype first locates the other party on its network, and then attempts to establish a direct link across the Internet between the two computers. By establishing a direct and dedicated link for communication, voice call quality is improved, as there are fewer things in the way to inhibit smooth and continuous data transfer. If a direct link cannot be established, the call is routed via other nodes in the network, but call quality can sometimes suffer as a result. Skype both network and Internet savvy, so it will always do the best it can to ensure the most direct link possible in order to achieve good voice quality for a call.
Skype’s P2P network contains millions of nodes and tens—or perhaps hundreds—of thousands of supernodes. In short, Skype’s network is vast and spans the globe!

No comments: