Saturday, April 15, 2006

Skype can cause Enormous Traffic

Everyone loves Skype, the software that enables phone calls for free or a very low cost--along with other services such as instant messaging--using voice over Internet protocol (VOIP) technology. The European company has been a wildly successful start-up and a darling of the media. eBay bought it in September for $2.6 billion, plus another billion dollars or so if they reach some future financial targets. The software has been downloaded some 250 million times.

The issues are a bit complex. Let’s try to break them down:-

First, the “supernode” question. “Skype can turn user computers into ‘supernodes’ which route traffic through CERN,” Fran├žois Grey of CERN’s IT communications team explained in an email exchange: “We have encountered some operational problems as a result.” That’s because Skype’s design is based on peer-to-peer, distributed networking principles. This means that the core functions of the system are decentralized, as is the database of Skype users (the tool that lets you look up other Sykpers and tells the system where to forward a call). The calls are set up and passed on among users, flowing through a chain of computers around the world without traversing any central infrastructure.

That’s good for robustness and scalability -- and for Skype, which can avoid massive investments and add new users at near-zero marginal cost. For the system to work, however, some users have to take over its vital functions: routing traffic and holding portions of the database. In Skypeville, these tasks are farmed out to those users with the most powerful computers and the biggest bandwidth, such as CERN. Skype turns them into supernodes.

You can find the article here

How Skype Works :

"Calls made using the system are directed through 'Supernodes', which can be
ordinary PC's with Skype installed. Machines on fast and well connected
Internet feeds like the $Network are likely to automatically become
'Supernodes' and forward a considerable amount of traffic.

This allows Skype to route other peoples Voice over IP calls using your
machine . This can at times put your Network at risk."

You can easily avoid becoming a Supernode by not permitting incoming connections to the port Skype has opened for itself. The downside to this is that your calls will now be routed to another supernode, but if you're paying for bandwidth, there may be no way around that. You can still place and receive calls, and the added latency is not worth mentioning in most cases.

If you run Skype on Linux or Mac OS X, it is reduced to using high ports anyway, so it's easy to block. An example iptables command line would be

#iptables -A INPUT -p tcp --dport 1024: --syn -j DROP

To Check which port Skype has openned, do

[root@localhost ~]# netstat -apln --inet |grep skype

Skype stores its buddy information in teh Windows Registry. Buddy list is
digitally singed and encrypted.....

FYI, if you want to look at the "registry" info for Skype on Linux, it's in $HOME/.Skype/shared.xml.