2. 1 Introduction
Skype is peer-to-peer VoIP application . It is used for voice calls and text
messages. Now file transfer and video conferencing is also alloweed.
It was launched in 2003 by Niklas Zennstrom and JanusFriis. Now
Microsoft owns it.The first generation of VoIP is MSN and IM It is the sec-
ond generation of VoIP technology and its successsor i.e. the third generation
of voIP is represented by Google Talk
The term VoIP stands for Voice over Internet Protocol. and it refers to the
protocol and the technologies employed for voice communication and multi-
media session over the IP. The other commonly used for the same purpose
are Interent Telephony or IP telephony. Using these technologies a user can
make telephone calls via internet rather than the traditional public switched
telephone networks. IT is a complete process that involve various steps. these
ssteps are listed below:
• Signaaling and media channel setup
• Digitization of analog voice signals
• encoding of signals
• Packetization
• Transmission of packets over IP network
2 Services provided by Skype
Skype provides following services:
• Messaging
For text messaging the additional features provided are group chat,
emoticons record of messaging history and even editing of previous mes-
sages.
• Voice chat
It allows telephone calls between a pair of skype users, conferencing
and use of a proprietary audio codec. The telephone call between a
pair of skype user for a group of country charges are same as charges
for calls within the country.
1
3. • Video conferencing
Now it supports video conferencing for all major software platform like
windows, Mac OS X, Linux. It can support video call upto 5 people.
The latest version of skype supports high quality video for windows.
• Audio conferencing
Like video conferencing audio conferencing is also supported by all
major platforms. However the number of user participate in audio
conferencing is much more than that in video conferencing . It can
support upto 25 participants.
3 Technical details
Skype is hybrid peer-to-peer and client-server system. The most interesting
feature of skype is that it is able to work efficiently even in the presence
of firewalls and NAT i.e. it is able to penetrate the NAT and firewall in
peer-to-peer approach.
It uses decentralized approach. It has no central server other than the
logon server. The whole network is maintained in the decentralized manner
using overlay peer-to-peer technology. Since it is usin g peer-to-peer technol-
ogy . Hence each node that is part of the network has to contribute to the
network, its bandwidth and the some percent of CPU cycles. In this way the
whole network load gets distributed among all the participating nodes.
Some important terms used in the Skype technology are described in follow-
ing section:
Skype Client
Each Skype user is termed Skype client. All the skype users are similar
i.e. peers and all are termed Skype client. There is ony one server that
maintains the login details of the user.
Ports
Skype client opens the TCP or UDP connection on the specified port
number. The Port number is given at the time of installation.
Host Cache
Host cache is a table that contain the list of super nodes. Each entry of
super noder has its IP address and port number. Each SC refresh this
2
4. cache at regular interval. Refreshing the table is the most important
part of entire Skype operation. This cache helps client to find the list
of all reachable nodes.
Codecs
The codec is used to convert the analog voice signals to digital signals.
Skype codecs allow frequencies between 50-8000 Hz to pass through.
This range is the characteristic of wideband codec.
Buddy list
Buddy list i.e. the list of all the Skype clients to which a user wants
to communicate to. The information about the buddies is stored in
the Windows registry. The buddy list is digitally signed and encrypted.
The list is local to the SC’s machine and is not stored on the central
server. Hence when a client uses a different machine it need to log on
to Skype network and reconstruct its buddy list.
Encryption
Skype uses 256-bit encryption algrithm AES i.e. Advanced Encryp-
tion Standard to encrypt the digital data before transmitting it on the
internet.
NAT and firerwall
SC uses STUN and TURN to determine the type of NAT and firewall
behind which the SC is working. Like the buddy list it is also stored
locally on the windows registry. Hence it needs to refreshed periodically.
4 Skype Functions
The step by step description of the Skype Functions is as following:
Startup When the Skype Client run the software for the first time,
this step is required.Once it get installed further this step is not needed.
Login Each time the SC wants to use Skype it needs to login. It
requries to enter its login details i.e. username and password. Then
the central server autenticates it with the stored details. The login step
also notifies the other SC about the presence of the currently logined
SC. In this step the NAT and Firewall are also determined.
User search Skype uses the Global Index Technology to search
foe the other users.This search is distributed. It is claimed by the Skype
3
5. and observed during various researches that it is guranteed to find a user
if it exists and has logged in during the llast 72 hours. Skype provides
a search dialog box where user can enter the SC it is searching for and
press the find button. The search process proceed s in differntly on the
different type of networks. The search process is explained briefly :
When the SC is on public IP address The SC sends a TCP
packet to its Super Node(SN).
SN in turn provide SC list of four nodes with their IP address and
port number to contact.
Now SC sends UDP packet to these 4 nodes asking wheter they
are the node SC is looking for. If it find the nodde SC stops the
search. In case it fails to find the node, it informs the SN using
TCP packet.
Now SN provide it list of 8 different nodes to contact to. Again
SC asks these nodes using UDP, if it is successful this time it stops
otherwise it proceed in the same manner until it finds the user or
it is determined that user doesn’t exists.
However the researches shows thst the Skype able to find the user
if it exists within few seconds.
When Sc is behind port-restricted NAT A SC behind a port re-
stricted NAT exchanges data between SN, and some of the nodes
which responds to its UDP request during login process.
SC behind port-restricted NAT, UDP-restricted firewall
SC sends its search request over TCP to its SN.
The SN then performs the search on the behalf of the SC. Then SN
informs SC of the search results. Thus in this case the SC itself
does not contact any of the nodes.
It is worth noting that the search results are cached at the
intermediate nodes.
Call establishment and Tear Down
Call can be made to a user in the Buddy list or to the user not in
the buddy list. The process for call establishment is explained in the
following :
When the callee is in the buddy list When the callee is already
there in the SC’s buddy list the SC just need to call the buddy.
However the call establishment mechanism is different for differ-
ent network setup. The following points desccribe the call setup
process in detail.
4
6. Caller and the callee both are on the public IP
As the caller clicks on the call button, the caller sends a
TCP : SYN message to establish the connection. The callee
acknowledges the caller’s request by sending a TCP : ACK
packet.
In this way TCP connection between the caller and the callee
establishes. After wards the caller and the callee communi-
cates using TCP connection.
Caller behind port-restricted NAT, callee on public IP
In this case the signaling and messages don’t flow directly
between the caller and the callee. The caller sends signaling
informationover TCP to a super node.
Now the super node forwardds the signal to callee over TCP.
In this way the call gets established.
Both are behind the port-restricted NAT, UDP-restricted firewall
The call is established via supernode over TCP connection.
and then they communicate.
When the callee is not in the buddy list
When the callee is not in the buddy list of the caller, the caller first
need search the callee over the networ, using the above mentioned
approaches. When it finds the callee , add it to its buddy list and
then call establisment is done in the same way when the callee is
in the buddy list of the caller.
TEARDOWN : The process of tear down is same as the process
of call establishment.
Media Transfer and Codecs:
The process is explained in the following points:
When both the caller and the callee are on the public IP
The media flows over the UDP betweent he caller and the callee.
Either of the caller or the callee is behind the port-restricted NAT
In this case the audio data is transmitted via a supernode over
UDP.
Both are behind port-restricted NAT and UDP-restricted firewall
5
7. The communication is done via supernode over TCP.
Some important feature supported by the Skype during audio/video
transfer:
• Silence Suppression : Slice suppression means that when nei-
ther the caller nor the callee is sending any data i.e. not speaking,
then the voice packets should not flow between them. However
the Skype does not support silence suppression.
• Skype supports puttingcallonhold.
• The experiements shows that the Codec frequency range is 50 Hz
to 8000 Hz.
Conferencing
5 Security in Skype
Skype uses 256 − bit encryption algorithm AES i.e. Advanced Encryption
Standard. This algorithm is considered to be the strongest encryption algo-
rithm, which is also used by the U.S. govt. organizations.
6 Relaying in Skype
6.1 Relaying
When the two peers in any peer-to-peer network could not communicatte
directly due to any reason, they communicate via another peer or node in
p2p network. Such communication techniques is termed as relaying.
Relaying plays a very important role in Skype p2p networking.
6.2 Relaying is needed in the following cases:
• When callee is behind NAT ,in this case if the caller attempts to
establish the connection in usual way or directly, then the caller initi-
ated communication will be considered as outside to inside connection
attempt by the NAT aat callee’s end. So the NAT will simply refuse
the connection attempt.
6
8. Hence the caller need the assistance from relay server to establish the
connection. The caller is connected to a superpeer, When it wants
to call the callee, it first informs the superpeer that it wants to have
connection with the specified callee.
The superpeer then communicate this request to the non-NATed su-
perpeer to which the callee is connected. The callee’s superpeer then
informs this to the callee.
The callee then sends a fake message addressed to the caller, this will
make a hole in the NAT.
Now the caller’s message can enter the callee’s network. Because these
messages will be considered as response to the callee’s fake message.
• Boththecaller and the callee isbehind NAT, in this case neither
the caller nor the callee can accept a call initiated by the other, making
the call seemingly impossible.
Now the super peers are used for relaying.The caller should have con-
nection with a non-NATed superpeer to be able to call a callee behind
the NAT. On the callee’s end it is required that the callee should also
have a connection with a non-NATed super peer to recieve the calls
from a caller behind NAT.
When the caller wants to call callee behindNAT, it first informs to the
non-NATed superpeer to which it already has the connection cconnec-
tion that it wants to make call to the specific callee by mentioning its
IP and port.
The superpeer inturn will inform to the superpeer to which the callee is
connected that the caller with given IP and port wants to have commu-
nicaation wih the callee. Now the callee’s superpeer informs the callee
that the caller wants to communicate with you.
Now its upto callee, whether it accepts the call or not. If callee accepts
the caller’s request the involved super eers select a third party non-
NATed superpeer , this superpeer is termed the relay node and its role
is to relay the messages between the caller and the callee through the
communication.
The superpeer connected to the caller and callee then instructs the
caller and the callee respectively to establish a connection with the cho-
sen superpeer.
Now the caller and the callee both get connected to a common superpeer-
the relay node.
7
9. When caller wants to send message to the calle, it first transmits the
message to the relay node, which forward the packet to the callee.
When the callee wants to response to the caller, the callee simply sends
this response to the relay node, which forward it to the caller.
In this way the whole communication between the caller and callee
behind NAt communicates.
8