Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I was surfing a random blog today (Enterprise video conferencing solutions vs Sk

ID: 659483 • Letter: I

Question

I was surfing a random blog today (Enterprise video conferencing solutions vs Skype), and I came across a claim. I do know that the Skype protocol is a proprietary one, but the author of this blog claims that:

Skype makes use of peer to peer technology in which Skype users become supernodes. This allows Skype to tap on your bandwidth to route other calls, often slowing down your computer.

What I would like to know, from a networking standpoint, is how is this implemented or even possible? First of all, why is there a need to route calls between user nodes? If person X is calling Y, then isn't it a straightforward TCP connection from X to Y nodes? Why does a Z node have to come in between?

Moreover, if this is true, why do most users stick with Skype? Aren't there better opensource technologies available in this arena?

Explanation / Answer

Today, Skype do not route communication through other users machines. This is done by Microsoft servers in datacenters.

But back in the days, in the early versions of the Skype protocol, every user with strong-enough bandwidth and not behind a NAT (with routable IP address), can become a supernode and route the traffic of other users that are behind NAT.

That's the reason why this is necessary. If your ISP is doing NAT on the gateway level for example, you can open TCP connection to any host you want, but some other unknown host can't reach you, because the incoming connection is not requested by you. That's how the NAT works, and direct TCP/UDP connection can't be established.

If two Skype users that are behind a NAT wants to talk each other, in normal conditions, they can't, because they only can request-and-receive packets, but can't receive something that is not requested early.

Example: Host A wants to talk through Skype with Host B. Host A tries to open TCP/UDP connection to Host B, but the Host B didn't request anything from Host A early, and the NAT of the Host B's gateway just drop the connection. In the reverse direction is the same.

So, in order to communicate, they both connect to some supernode that becomes a bridge between them. This works because each client transmit the data to the supernode, and the supernode route them to the other side (which is also connected to the supernode, as i mentioned before).

Becoming a supernode can be disabled in early Skype versions with change in the Windows Registry.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote