Skype, the voice over Internet Protocol (VoIP) and video program, is very popular. It's also pretty bad software. Really, what were you thinking Ballmer when you wrote a check for $8.5-billion for Skype? You do know that not even two years ago Skype was valued at $2.75-billion right?
Here's the simple truth. Skype has historically had many software problems and late last year the entire Skype network crashed for several days, we can pretty count on these kind of problems showing up on a regular basis.
You see, Skype is a modified peer-to-peer (P2P) network application. Skype started as a variation of the now outdated Kazaa P2P file-sharing program. When you make a Skype call your voice and video is encoded with a 256-bit Advanced Encryption Standard (AES) encryption key and then passed from one Skype PC to another between you and whomever you're calling.
Yes, that's right. When you call someone on Skype or show your, ahem, naughty bits, to your boy-friend or girl-friend while sexting, they're passing through any number of PCs from you call him or her. Doesn't that make you feel good and secure?
If you're a Skype user your PC may not just be an ordinary peer though, but it may also be working as a Super Node (SN) as well. When you login to Skype, you're probably not logging directly into the Skype login-servers but into a SN instead. The SN in turn, stores your Skype name, your e-mail address, and an encrypted version of your password. If you have a PC with a high-bandwidth connection and you're not using a firewall or network address translation (NAT), odds are good your PC will be picked to be used as a SN. Don't want any part of that? Check out the Skype IT Administrator Guide (PDF Link) on how to avoid being a SN.
Did you notice something else though? For Skype to work, it needs access to insecure PCs. Seriously, who runs a PC on the Internet without a firewall in 2011? Only idiots. With no idiots, there are not enough SNs, and Skype falls apart.
Now, Skype automatically and constantly "self-heals" its network as users go off and on the service and smart users secure their PCs properly. Why do it this way? The idea behind all this is to make Skype extremely scalable without requiring the company to maintain a large, read expensive, server infrastructure. Technically, this worked well for Skype until December 22, 2010.
Why Skype crashes & its voice quality isn't great
That was when the 50% of all Skype users who were running the 184.108.40.206 version of Skype for Windows started having crashes. Those crashes caused about 40% of those clients to fail... included 25-30% of the publicly available SNs. The still-standing SNs quickly fell under the burden of trying to maintain Skye communications and that was the end of Skype for about two days.
To fix this, Skype added its own "dedicated supernodes," aka "mega-supernodes" or what I'd just call servers, to provide enough temporary supernode capacity to accelerate the recovery of the peer-to-peer cloud. It worked that time, but, really, do you really want to rely on a network that depends on insecure PC staying insecure? I don't!
So why didn't Skype have mega-supernodes in the first place? Because Skype is cheap. By relying on idiots, Skype has never had to spend money for real VoIP servers. For example, Microsoft's own Microsoft Lync, formerly Office Communications Server, provides VoIP using traditional client-server architecture (PDF Link). Don't ask me how Microsoft proposes to marry Skype's lame modified P2P network with Lync and the rest of its Business Productivity Online Standard Suite (BPOS). I really doubt that Microsoft's poor engineers know either.
But, wait, there are more problems!
As Tom Henderson, Managing Director of ExtremeLabs and someone who actually liked the Microsoft/Skype deal, explained to me, "When you compare the reliability of Skype to tip-and-ring, Skype is better and worse. But we don't tolerate 'worse' in telephony--especially in the US and Canada."
Henderson went on, "Peer-to-peer is inherently non-determinant, and is subject to the random availability of peers, CPU, and must live in the isochronous time domain of delay acceptance on the part of the user. The algorithms used by Skype and ooVoo take this into consideration."
So, "Today, CPUs, even crummy ones, can do the work with chipsets that are far and above original motherboard-based VoIP. It's a no-brainer, although some of the one-size-fits-all, operating system drivers that Skype uses can sometimes produce barely or intolerable conversations. Audio to video synchronization is pretty good, and the codecs used by Skype, while somewhat proprietary, Fraunhofer-based, are pretty efficient. They're lossy, but only a Bell Labs engineer turns their nose up at lossy CODECs. The old Gold Standard was actually iron pyrites, anyway."
"So it's not 'really pretty lousy' it's just that it's not retail Ma Bell. We get pretty snooty when a call gets dropped, or echos, or goes weird. But for two cents/min, the world obviously buys a lot of perceived problems, to the tune of 100M users. Admittedly, a lot Skype problems occur at gateways, where telcos are happy to cause problems with Skype because Skype is a competitor. I can tell you stories about telco co-location rivalries that involve sharp side-cuts, and cross-connection to new and empty panels. Telcos HATE Skype. Big Gun VoIP vendors hate Skype. Skype doesn't care," Henderson concluded.
My question though is do you care? Skype's technology is, well, flimsy is a good word for it. The quality is questionable-especially if you're not running on Windows. And, this I might add is before Microsoft gets it hands on the program. Sure, Ballmer says he'll do well by Mac and Linux PCs. Yeah, and if I were Little Red Robin I'd believe the wolf was still grandma too after I noticed her big, sharp teeth.
Free is good. Cheap is good. But, will Microsoft keep it that way? I doubt it. I don't know about you, but I'm going to be looking for Skype alternatives. I'll talk more about that in another column soon.