You are on page 1of 22

An analysis of Skype protocol

Presented by:
Abdul Haleem
Agenda
 Introduction
 Entities of Skype Network
 Key Components of Skype Software
 The communication process
 Skype Network Traffic
Introduction
 Peer to peer application
 Chat
 Call
 Skype to Skype
 Skype to telephone/mobile network

 Telephone/mobile network to Skype

 User search (Find people)


Key Entities
 Skype Client (ordinary host)
 Login Server
 Super Node
Key Entities
Skype Client (ordinary host)

 An ordinary host is a Skype application that can


be used to place voice calls and send text
messages
Login Server

 Itis the only centralized server


 User names and passwords are stored at the
login server. User authentication at login is also
done at this server.
 This server also ensures that login names are
unique across the Skype name space
 An ordinary host must register itself with the
Skype login server
Super Node

 Super nodes are the end points where Skype


clients connect to.
 Any node with a public IP address having
sufficient CPU, memory, and network
bandwidth is a candidate to become a super
node.
Key Components
 Host Cache
 Obfuscation Layer
Host Cache

 Every Skype client maintains a local list of


super node IP address and port pairs. It is
called Host Cache
 Refreshed regularly

 Upon startup the client reads an entry from the


host cache, and tries to connect to this SN.
 If connection fails (the SN is offline; it is no
longer part of the network, etc) it reads next
entry and tries to connect to it.
Obfuscation Layer

 Everything that is being transferred across the


network is being encrypted to ensure privacy.
 Uses AES algorithm for encryption.
communication process
 Logging in
 Skype to Skype call – Both public IPs
 Skype to Skype call - behind NAT
 Call Between Skype and PSTN
Logging in

 Clientauthenticates its user name and


password with the login server
 advertises its presence to other peers

 determines the type of NAT it is behind

 discovers online Skype nodes with public IP


addresses
Logging in

 Get an IP and port of a super node from HC


 Send UDP packets to check availability

 TCP connection on provided IP and port.

 TCP connection on provided IP and port 80


(HTTP port).
 TCP connection on provided IP and port 443
(HTTPS port)
 Try next super node (total 5 attempts)
Logging in
Skype to Skype call – Both public IPs

 Ifboth caller and receiver are on public IPs then


they establish a call through a direct TCP
connection with each other.
 Media is transferred using UDP.
Skype to Skype call - behind NAT

 NAT prevents an outside peer from initiating a


call to insider peer

rest of local network


Internet (e.g., home network)
10.0.0/24 10.0.0.1

10.0.0.4
10.0.0.2
138.76.29.7

10.0.0.3
Skype to Skype call - behind NAT

 Solution to NAT problem


 Every client is connected to its super node
which is non-NATed.
 Client A asks its super node that she wants to
call B.
 Super node of A informs super node of B who in
turn informs B.
 If B accepts the call then a third non-NATed
peer is chosen which relays data between A
and B.
Skype to Skype call - behind NAT

 Solution to NAT problem


Call Between Skype and PSTN

 For Skype out (Skype to PSTN), the application


initially contacts the super node and then the
PSTN gateway at port 12340.
 The gateway servers are a separate part of the
architecture and not a part of the overlay
network.
 For Skype in (PSTN to Skype) the opposite is
used.
Skype Network Traffic
 UDP Packets
 For keep alive messages
 To discover available super nodes

 TCP Packets
 For establishing connection with super node
 For user authentication with login server
References
 An Analysis of the Skype Peer-to-Peer Internet Telephony Protocol – By
Salman A. Baset and Henning Schulzrinne Department of Computer Science
Columbia University, New York NY 10027 {salman,hgs}@cs.columbia.edu
September 15, 2004
 http://www.mjalali.com/blog/Skype101– Skype Architecture–Work in Progre
ss.htm
 http://www.skype.com/Skype P2P telephony explained.htm
 http://en.wikipedia.org/wiki/Talk:Skype_protocol
 http://technologyevangelist.com/2008/05/A bit about how Skype works.htm

You might also like