Switching
The switching server, with which
both ends of a call are in constant
contact, plays an important
role when establishing a connection
using Skype. This occurs via
a TCP connection, which the
clients themselves establish.
The Skype server therefore always
knows under what address a Skype
user is currently available
on the internet. Where possible
the actual telephone connections
do not run via the Skype server;
rather, the clients exchange
data directly.
Let's assume that Alice wants
to call her friend Bob. Her
Skype client tells the Skype
server that she wants to do
so. The Skype server already
knows a bit about Alice. From
the incoming query it sees
that Alice is currently registered
at the IP address 1.1.1.1
and a quick test reveals that
her audio data always comes
from UDP port 1414. The Skype
server passes this information
on to Bob's Skype client,
which, according to its database,
is currently registered at
the IP address 2.2.2.2 and
which, by preference uses
UDP port 2828.
Bob's Skype program then
punches a hole in its own
network firewall: It sends
a UDP packet to 1.1.1.1 port
1414. This is discarded by
Alice's firewall, but Bob's
firewall doesn't know that.
It now thinks that anything
which comes from 1.1.1.1 port
1414 and is addressed to Bob's
IP address 2.2.2.2 and port
2828 is legitimate - it must
be the response to the query
which has just been sent.
Now the Skype server passes
Bob's coordinates on to Alice,
whose Skype application attempts
to contact Bob at 2.2.2.2:2828.
Bob's firewall sees the recognised
sender address and passes
the apparent response on to
Bob's PC - and his Skype phone
rings.
Pretty cool don't you think?
Now you can tell all your
mates how smart you are!! |