P2P Telephony Explained - For Geeks Only
See also the Tech section in the FAQ for answer to specific questions
Peer-to-peer (“P2P”) technology was first widely deployed and popularized by file-sharing applications such as Napster and KaZaA. In this context, P2P technology allows users to share, search for and download files. The P2P moniker has been widely used and just as often abused. Companies both large and small, self-proclaimed “pundits” and others to trying to cash in on the “P2P buzz” use this term as long as it involves some direct communication between users or nodes. This description of P2P completely misses the point.
A true P2P system, in our opinion, is one where all nodes in a network join together dynamically to participate in traffic routing-, processing- and bandwidth intensive tasks that would otherwise be handled by central servers.
A true P2P application empowers small teams with good ideas to develop software and businesses that can successfully challenge those of large companies. True P2P, when applied to ripe markets, is disruptive technology.
FastTrack (the P2P technology behind KaZaA) was the first truly decentralized P2P application and pioneered the concept of SuperNodes. This approach has since been adopted by numerous file-sharing technologies including recent versions of Gnutella.
Decentralized P2P networks, such as FastTrack, have several advantages over traditional client-server networks. These networks scale indefinitely without decreasing search time and without the need for costly centralized resources. They utilize the processing and networking power of the end-users machines since these resources always grow in direct proportion to the network itself. Each new node added to the network adds potential processing power and bandwidth to the network. Thus, by decentralizing resources, second generation (2G) P2P networks have been able to virtually eliminate costs associated with a large centralized infrastructure.
For the Kazaa founders P2P telephony became a natural next step where P2P could have a significant disruptive impact and Skype was founded to develop the first P2P telephony network.
Internet-based telephony ? Voice-over-IP ? (VoIP) has been around for years but has not reached the mainstream market. The reasons for this are quite clear to those of us who have tried VoIP software:
Products which have a true cost-saving advantage over standard telephones do not have comparable quality.
Call-completion rates are very low due to firewalls and the use of Network Address Translation (which renders over 50% of residential computers unable to communicate with traditional VoIP software).
The User Interface is typically bloated and requires substantial configuration and technical skills.
Centralization can overcome some of these difficulties by routing calls through firewalls or NAT's. However, this brings the cost of running the network to levels approaching that of the existing telecom networks. In addition, these costs scale proportionally with the number of users. The result is that companies operating such services typically allocate very little resources on their servers per user which seriously degrades the call quality.
Utilizing our experience in creating the most popular decentralized P2P network in history (KaZaA) and the largest P2P-based content distribution network (Joltid PeerEnabler), the Skype team has succeeded in leveraging all of the available resources in a network. This has allowed us to raise the call completion rate and quality to levels approaching, and often exceeding, that of POTS (“Plain Old Telephony System). This is all achieved without the need for costly centralized resources. In addition, we also like to think that we have created the most user friendly interface around!
The following are some of the techniques that Skype employs to deliver state-of-the-art IP-based telephony:
Firewall and NAT (Network Address Translation) traversal:
Non-firewalled clients and clients on publicly routable IP addresses are able to help NAT’ed nodes to communicate by routing calls. This allows two clients who otherwise would not be able to communicate to speak with each other. Because the calls are encrypted end-to-end, proxies present no security or privacy risk.
Likewise, only proxies with available spare resources are chosen so that the performance for these users is not affected.
Several new techniques were also developed in order to avoid end-user configuration of gateways and firewalls, whose non-intuitive configuration settings typically prohibit the majority of users from communicating successfully. In short, Skype works behind the majority of firewalls and gateways with no special configuration.
Global decentralized user directory:
Most instant message or communication software requires some form of centralized directory for the purposes of establishing a connection between end users in order to associate a static username and identity with an IP number that is likely to change. This change can occur when a user relocates or reconnects to a network with a dynamic IP address. Most Internet-based communication tools track users with a central directory which logs each username and IP number and keeps track of whether users are online or not. Central directories are extremely costly when the user base scales into the millions. By decentralizing this resource-hungry infrastructure, Skype is able to focus all of our resources on developing cutting-edge functionality.
P2P network technologies such as FastTrack (used by KaZaA) would be suitable for decentralizing this, if not for the fact that these networks are fragmented in nature ? a search does not reach all nodes in the network. Clearly, in order to deliver high quality telephony with the lowest possible costs, a third generation of P2P technology (“3G P2P”), or Global Index (GI) was a necessary development and represents yet another paradigm shift in the notion of scaleable networks. The Global Index technology is a multi-tiered network where supernodes communicate in such a way that every node in the network has full knowledge of all available users and resources with minimal latency.
Intelligent routing:
By using every possible resource, Skype is able to intelligently route encrypted calls through the most effective path possible. Skype even keeps multiple connection paths open and dynamically chooses the one that is best suited at the time. This has the noticeable effect of reducing latency and increasing call quality throughout the network.
Security:
Skype encrypts all calls and instant messages end-to-end for unrivaled privacy. Encryption was necessary since all calls are routed through the public Internet.
Super-simple UI:
We believe that software should work for you and not against you and so we have designed Skype to be dead-simple to use ? people who can use Windows and telephones will feel at home with Skype immediately.