Robert X. Cringely wrote a column this week about the fact that ISPs regularly overbook their networks. ISPs don't expect all their customers to be online at the same time, and they don't have the capacity to give each of their customes the promised DSL or cable speed 24/7. Which isn't all that bad, Cringely says, as long as it doesn't affect transmissions that need a certain Quality of Service. In other words: The world wouldn't end if we all decided to use the net at the same time - the whole thing would just be really, really slow.

So far so good. But Cringely starts to get into muddy waters when he elaborates more on that whole Quality of Service idea. He believes that Voice over IP services would suffer outages, and that you don't even need to have everyone online at the same time to bring a system to it's limits. He might be right with that assertion as well, but he definitely picked the wrong example:

"The same applies for VoIP vendors like Skype. If you are a Skype user then you are used to seeing on your Skype client interface a real-time read-out of how many people are using the system at that very moment. I just looked and as I write this that number is just over 6.1 million. But what does this number actually mean? It means 6.1 million clients were registered with the system just then, NOT that 6.1 million people were talking. If all 6.1 million Skype users tried to talk at the same time, it would probably bring down the system."

I honestly have no idea what would happen if 6.1 million Skype users started talking. Maybe the system would be able to cope with it, maybe not. But Cringely bases his doomsday scenario on a wrong assumption. He believes that Skype can only handle an active user rate of about 10-15 percent because many Skype users are behind firewalls. Firewalls that have to be circumvented by NAT travelsal.

"The way Skype handles this so-called "NAT traversal" problem is by inserting a server in the middle that can be seen by connections at both ends. This server for Skype is called a "super node" and may well be inside your computer without your knowledge, because Skype super nodes use borrowed bandwidth and processing power. Lucky us. (...) Each super node can handle about 10 simultaneous connections for a total of 200,000 connections or 400,000 users. If half of Skype calls have to go through super nodes, that means the actual maximum capacity of the system is less than one million callers."

What's wrong with this picture? It' simple: Supernodes never ever handle the transfer of actual media data. Not within the Fasttrack network, not within Gnutella, not within Skype. Unless, of course, someone calls them up directly. But using a supernode for proxy functions would be damaging to far smaller networks than Skype's - it's just unwise from a P2P architectural standpoint. Which is why no one does it.

Cringely should have read up on the Skype network architecture in the excellent "Analysis of the Skype Peer-to-Peer Internet Telephony
Protocol
" report that was published about two years ago by two Columbia University students. That report states:

"If either caller or callee or both were behind port-restricted NAT, they sent voice traffic to another online Skype node over UDP. That node acted as a media proxy and forwarded the voice traffic from caller to callee and vice versa. The voice packet size was 67 bytes, which is the size of UDP payload. The bandwidth used was 5 kilobytes/s. "

Notice how it says "online Skype node", not supernode. Spernodes only come into the picture to actually find that node.

As I said: I don't know how scalable Skype really is. But if it does break one day, it definitely won't be because of overwhelmed supernodes that can't handle all those chatty users.

Tags: , , , , , , , , , , ,