Skype Client Application and Network


Skype has two major pieces of anatomy: the application and the network. The Skype application is primarily a communications application, but it also has other key capabilities that integrate voice calling, instant messaging, person-to-person videoconferencing, and file transfers into one seamless program. And there are more capabilities to come. Skype is working on new features, and third-party developers are using Skype's application programming interface to create auxiliary services such as Pamela, which is a programmable answering machine.

On computers, the Skype application works on most popular operating systems. On mobile devices, Skype currently supports devices running Pocket PC. Skype also supports an application for embedded Linux, and Skype Technologies is working on applications for a host of other operating systems, including Symbian.

The Skype application is tightly coupled to the underlying network and relies on an authentication server to ensure that Skype Technologies can retain control of the network. Unlike previous FastTrack applications, the Skype application does not contain any adware, malware, or spyware.

The Skype application looks and behaves slightly differently depending on the device it is on. This is because each device places constraints on the application as a result of its design. On a residential dual-mode phone, for example, screen real estate and file storage are limited, so the application presents a Skype Contacts List but not the ability to transfer files.

The reason why Skype voice quality is so high and speech sounds more natural is that Skype does not have to compress its signal as much as the traditional telephone network does. Connections are also set up directly between peers and don't have to go through a central server, allowing Skype to take advantage of the full available bandwidth of a broadband connection.

Skype uses several voice codecs (compression/decompression algorithms) that have a broader frequency range than the 2.4kHz range provided by the traditional telephone network. To compress and decompress speech depending on the available bandwidth, Skype uses enhanced versions of the G.729, G.711, and iSAC codecs, as well as iLBC, which was designed specifically for Internet telephony applications so that sound quality can degrade gracefully when individual data packets get lost.

Skype Technologies is continuing to focus on ease of use, and with each subsequent release, the Skype application is becoming a more fullfeatured user interface for the underlying network.

Intelligent Routing with Supernodes

When you download and install the Skype application, your computer becomes part of the Skype P2P network, which is composed of ordinary nodes, supernodes, and relay hosts. Although supernode and relay-host capabilities are built into every Skype application, only a relatively small percentage of nodes ever become supernodes or relay hosts.

When you install the application, Skype installs software and user interfaces that are visible to the end user. Skype also installs software you cannot see that evaluates the capabilities of your computer and network connection to determine how much assistance your computer can provide to the Skype network if required to do so.

Skype's ability to act as a self-forming distributed network is the result of the interaction among ordinary nodes, supernodes, and relay hosts throughout the network.

Under normal circumstances, the Skype application acts like an ordinary node. When running on a fast computer with a broadband connection, however, it may under certain conditions "wake up" as a supernode or relay host to give the Skype network minor but essential additional capabilitiesin other words, capabilities beyond those that end users are aware they need.

Supernodes and Relay Hosts

When a supernode wakes up, it dynamically forms a starlike pattern or local cluster of up to several hundred peer nodes to help leverage all the available resources on the P2P network. A relay host is similar to a supernode but is used for a different purpose:

  • Supernodes act as temporary directory index servers for nearby nodes in the cluster. They are also responsible for detecting which applications are online, establishing connections between them, and passing signaling messages to guide encrypted traffic efficiently.

  • Relay hosts act as data-transfer stations to connect Skype applications that for some reason (such as a firewall) cannot connect directly.

A Skype user cannot tell whether his computer is being used as a regular node, a supernode, or a relay host because these additional supernode capabilities are transparent and do not have a noticeable impact on a computer's performance.

Supernodes simply hold the directory entries of up to several hundred Skype users. And although supernodes need to accept a relatively small number of directory queries, they do not carry voice, text, or file-transfer data. Supernodes are restricted from using more than 5 kilobits per second of bandwidth. Relay hosts, however, can carry Skype network traffic, but Skype also has strict bandwidth limits for relay hosts. The computing resources required to support the activities of a supernode or relay host are always small compared with relative processing power, memory, storage space, and available bandwidth on a given computer.

Every Skype application stores a list of supernode network addresses that permit a given node to connect with the network. When a Skype application successfully contacts a working supernode, it gets an updated list of network addresses of currently active supernodes for future use. The Skype application selects an active supernode as its "upstream" link and then uploads search requests and other relevant data to this supernode, which in turn communicates with other supernodes to satisfy any search request. A search request might be an authorization, a voice call, an instant message, or a file-transfer request.

In all cases, the Skype application first attempts to communicate with another Skype application directly. When this is not possible, the active supernode routes the connection and the call traffic through relay hosts. Skype opens multiple standby connection paths and then dynamically selects the one with the optimal bandwidth or lowest latency. Then the application connects to a peer node and transfers data, using Hypertext Transfer Protocol (HTTP). This approach increases call-completion rates and improves overall service quality throughout the entire Skype network.

The way that Skype routes traffic means that it can route encrypted calls intelligently through the most efficient and effective path in the network. Instead of routing calls through a centralized system of switches made of hardware circuits, Skype takes advantage of the way that the Internet segments messages into packets, each of which gets transmitted individually and may follow a unique path to its final destination.

As a simple example of how this works, let's say that you and a friend are on Skype, and your friend wants to talk to you. When your friend initiates a call, the Skype application on your friend's computer broadcasts a request to the networkspecifically, to a supernode running on a computer somewhere else. In response to this request, the supernode tells the Skype application on your friend's computer where to reach you, and the call gets connected.

Each time a new user joins the Skype network, another supernode potentially becomes available. And as more Skype users come online, the more supernodes become available to expand the capacity of the network.

Centralized Global Index User Directory

The earliest version of Skype did not use what is now called the global index. It relied on a completely decentralized directory search index in which the supernodes maintained a distributed search index and each user's Contacts List was stored locally in the Skype application on the user's computer.

Starting with version 1.2 of the application, Skype added a limited centralized directory for managing account names, passwords, and e-mail addresses. Skype also added the decentralized directory service or global index to improve the overall quality of the user experience. The global index is not hosted on central servers; instead, it is managed by a hierarchical arrangement of all available supernodes. As a result, your Contacts List is now stored as part of the global index and is available at any computer when you log in to Skype. This allows you to buy a new computer or move from one computer to another and have access to your Contacts List when you log in.

Firewall and NAT Traversal

Under most conditions, Skype automatically traverses the vast majority of firewall and NAT boundaries, which are associated with roughly 50 percent of the broadband Internet connections in homes and small businesses. Therefore, the problems that people encounter trying to use SIP (Session Initiation Protocol)-based Internet voice solutions are largely averted by Skype's third-generation P2P network architecture.

Skype applications on publicly routable Internet addresses and applications that are not behind firewalls can provide assistance to nodes that are affected by network address translation. This capability to assist applications behind firewalls and NATs permits applications that otherwise would not be able to communicate to connect, as long as they both can make an outgoing connection to the Internet. The result is that when a Skype user initiates a call, the connection is made, regardless of whether the caller or the person being called is behind a firewall or a NAT boundary.

Some software firewalls will interfere with Skype, however. In such cases, the software firewall must be reconfigured to allow Skype to work. Skype cannot traverse proxy servers or authenticated firewalls.




Skype. The Definitive Guide
Skype: The Definitive Guide
ISBN: 032140940X
EAN: 2147483647
Year: 2004
Pages: 130

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net