Stowe and I were having a quick catchup chat a few weeks back… starting with a bit of impromptu IM, but then wanting to branch off into a voice or voice/video session, or simply agree to do one ‘later’ given that we both had other pending gigs…. so Stowe asked for my Skype ID, and I mentioned that I had removed it from my machine, which prompted me to think that I’d better explain why!
I had found my machine encumbered by an alarmingly large number of attempted simultaneous TCP connections (enough to crash my browser at one point, and generally to slow down my machine, even though an ‘open port’ is not in-and-of itself alarming: it depends what happens on that port!), but looking around the web I found very few details to help me. Most items that I found expressing some modest concerns about Skype ‘bandwidth’ or ‘CPU’ usage were erroneously directed at the voice codec (‘can it cope?’, ‘how much bandwidth does it use’) and the encryption (‘how much horsepower does it need’?). Those are the wrong worries: Skype is generally an awesome performer on both fronts, requiring pretty modest resources by today’s standards (5Kbps for voice traffic, for example!). It’s your machine’s role in the big-picture P2P communications flow that you need to be worried about: think of your machine as a key hub for the world’s voice traffic and you’ll see what I’m talking about — now that’s something of an over-statement, but is closer to what you need to concentrate on, rather than the CPU-demands of the voice codec and encryption algorithm for your own personal calls!
Skype is the darling of industry, geeks, academics, and consumers, (hey, I’m a huge fan myself, sometimes wearing each of those four hats — the dang thing is one of the greatest creations since sliced bread). But I couldn’t believe that anything that was killing my machine could be so universally loved. Had I missed something? Lo and behold, a little more digging around brought a few more things to my attention.
Here are three sources of interest:
a) This highly technical article by Salman A. Baset and Henning Schulzrinne: “Analysis of the Skype Peer-to-Peer Internet Telephony Protocol”. Here’s a tiny excerpt to whet your appetite:
This report analyzes key Skype functions such as login, NAT and firewall traversal, call establishment, media transfer, codecs, and conferencing under three different network setups. Analysis is performed by careful study of Skype network traffic.
Like its file sharing predecessor KaZaa, Skype is an overlay peer-to-peer network. There are two types of nodes in this overlay network, ordinary hosts and super nodes (SN). An ordinary host is a Skype application that can be used to place voice calls and send text messages. A super node is an ordinary host’s end-point on the Skype network. Any node with a public IP address having sufficient CPU, memory, and network bandwidth is a candidate to become a super node. [emphasis mine]
b) A less technical article by Simson Garfinkel, “Can 9 Million Skype Users Be Wrong?”, which says things like this:
“the Skype client running on your computer can and will relay calls between other network users without your knowledge. … It makes sense that Skype would detect how much bandwidth you have… but… the algorithm that Skype uses to determine how much of this relaying it is allowed to engage in is proprietary, so we can’t know for sure…. The software has the capability of automatically updating and upgrading itself, allowing it to acquire new features at any time—potentially without the permission of the user. The software uses a secret protocol; all communications are encrypted. And Skype Technologies does its engineering in Tallinn, Estonia, has some business operations in London and registers its website in Amsterdam.
If I were going to write an information warfare thriller with a theme based on Invasion of the Body Snatchers, this is certainly where I would start. ”
c) In-depth discussion of the Baset and Shulzrinne technical article in these Slashdot threads, including comments such as this one:
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 and the university internet connection.
There’s a lot of argument about how much of a resource hog Skype really is (and various commenters dispute Garfinkel’s auto-update/bodysnatcher worry). I have in fact re-installed Skype on my machine recently in order to run some of my own empirical tests, and will report back with the results in due course. It certainly opens a lot of TCP ports, but that’s not necessarily a bad thing depending on what exactly happens on those ports, as I mentioned above. Right now, I have yet to get a definitive result, but I’ll keep poking around. Intuitively, I can assert (un-scientifically) that Skype is so much of a killer on my machine that even though I love it madly, I have to
un-install disable it on occasion (after which my machine behaves wonderfully all over again). That’s not good. I’ll try to come back with a more scientific analysis in the next couple of weeks, but in the meantime would love to hear from others who have done the controlled experiments!