skype problem
Download
Report
Transcript skype problem
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
It is 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
Client authenticates 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
If both 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
Internet
local network
(e.g., home network)
10.0.0/24
10.0.0.4
10.0.0.1
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
Progress.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