Nov 222011
 

The Hebrew version of this article was published in the digital version of Haaretz newspaper.

 

You have a fast 100 MB Internet connection and a brand new laptop but still, from time to time, your Internet experience is lousy – the Internet crawls like an old 9,600 kbps modem from the 90’s.
Well, the reason for that behavior might be very surprising – Skype…

How does Skype work?
In some scenarios, Skype is using a special mechanism to enable calls between users that are, for example, behind a proxy or a firewall. Let’s say that we have two Skype users: Alice and Bob.
Both of them are behind firewalls that block incoming connections. Hence, Alice can make outgoing connections to the Internet, but nobody can connect to Alice from the Internet. The same goes for Bob.
Now, Alice wants to make a Skype call to Bob. Alice is trying to setup a network connection to Bob – she can make the outgoing connection but since Bob’s firewall blocks all incoming connections, the connection will fail. The same goes for Bob.
This scenario is very common since most of the machines today are behind firewalls.

So how can Alice and Bob make a Skype call between each other?
One of the solutions of Skype for this problem is to use a middleman (super node). A middleman is another Skype user, Charlie, that can make outgoing network connections but can also accept incoming connections. The middleman also has a public IP address, which makes him accessible by any other Skype user.
Now, when Alice wants to call Bob, she will connect Charlie (she can do that because she can make outgoing connections and he can accept incoming connections) and tell him that she wants to call Bob.
Since Bob can also make outgoing connections, he can also connect to Charlie. And now Charlie is used as a relay station between Alice and Bob – both of them established outgoing connections to Charlie and he can relay the Skype call between them although they are behind firewalls.
In reality, the architecture is a bit more complicated and middlemen also talk to each other but for the sake of this discussion let’s stay with this simplified version.

Who are these middlemen?
Basically, if you have Skype installed on your machine, a fast Internet connection and a public IP, you are probably going to be a middleman.
Middlemen usually accept, maintain and relay couple of network connections to/from Skype users.
Since there is some overhead for every relayed connection, Skype keeps the number of relays per middleman quite low – around 30, give or take.

When Skype is getting out of control…
Sometimes Skype is getting out of control and  instead of relaying 30 Skype connections per middleman, it is relaying much more. An by much more we mean much much more…
Here is an example of this behavior.
We set up a Windows machine with a public IP and we installed Skype.
After one day, our Internet connection became a bit slower.
After two days, it became much slower and all websites were uploaded very slowly.
After four days, we couldn’t surf to any website or use our e-mail client – the machine was hogged to death!
The following graph of the number of Internet connections that Skype used in our machine during a period of nine days illustrates the problem:

 

Imagine that your beloved machine is relaying 300, 400 and even 700 Skype connections simultaneously – well, ain’t it  a good reason for the slowness of your Internet connection?

How to solve this problem?

On Windows machines, you can disable Skype super node mode by adding a value to the Registry. This will prevent your machine from being a middleman.

1. Copy the following text and save it as “DisableSkypeSupernode.reg” :

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Skype]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Skype\Phone]
“DisableSupernode”=dword:00000001

2. Double-click on the saved file. You should get a message box that is similar to this one:

Choose “Yes”

3. You are done. You should get a message box that is similar to this one:

4. Reboot your machine

 

On MAC OSX machines, you can usually disable Skype supernode mode by blocking incoming connections to Skype.

1. Open your “System Preferences”.

2. Under Personal, click on “Security & Privacy”.

3. Click on the “Firewall” tab and then on the “Advanced” button. You might need to click on the lock icon to enable the “Advanced” button.

4. On the next screen, click on “Skype”, then choose “Block incoming connections” and click on “OK”.

5. From now on, your firewall will block incoming connections to Skype. Hence, Skype will not be able to move into supernode mode.

 Posted by at 3:54 pm