An Analysis of the Skype Protocol 161
zib writes "Ever felt a need to peek under the hood of your Skype client? This paper (PDF) explains all the details. Among other issues, it focuses on the NAT capabilities of Skype and audio compression."
Supernodes? (Score:3, Interesting)
What is the deal with supernodes, isn't there a peer to peer protocol that doesn't revolve around supernodes? I don't like the idea of somebody setting up a high-bandwidth machine and routing enough packets to get the entire phone call I'm making and then in their spare time decrypting my phone call.
We need a a VoIP method that uses bit torrent and duplicates what you are saying many times, which wastes bandwidth but makes up for the slowness factor. And even still, we need a bit torrent less reliant on supernodes... could a VoIP network function on a P2P network meant to work without supernodes?
Somebody know more details about what the difficulties are in making a P2P network without supernodes? (Assuming there are lots of people on the network).
Privacy issues?
Re:Supernodes? (Score:2, Insightful)
Well, I can't read the paper, because I don't have a pdf reader available, but I think they've done the crypto-stuff good enough, so that it's almost impossible to decrypt.
What is the point of decrypting something if it takes >100.000 years?
The problem with decrypting... (Score:1)
So basically, public key encryption should still only be used for things that are time sensitive that no one will care about in 5 years. If that's not the case, then you should think about using extremely large key
Re:The problem with decrypting... (Score:1)
Re:The problem with decrypting... (Score:2)
A good perspective a lecturer of mine offered was that the number of known atoms in the Universe is somewhere in the vicinity of 2^200. Now while that is not really a number you can grasp, it still demonstrates the futility of trying to brute force the encryption.
Even if you factor in Mores law then anything above 56-bit
Re:The problem with decrypting... (Score:2)
Let's say we a list of all of our favourite "almost zero probablilities that would kill you". Stuff like getting hit by a meteor, getting struck by lightning, getting killed by debris from a crashing airplane etc. Lets take the top 1000 of those extraordinarily unlikely events and furthermore let's say that they all happen at the same time.
Now that probability isn't zero, there is a chance that it will happen to you as you go home from work today. It's not particularly likely
Re:Supernodes? (Score:2, Funny)
Re:Supernodes? (Score:2)
Several. Freenet [freenetproject.org] doesn't require supernodes, it is entirely decentralised, the same is true of Dijjer [dijjer.org]. Generally, a P2P application can use a Distributed Hashtable [wikipedia.org] to find information without relying on a centralised server (neither Freenet nor Dijjer use a DHT, although their approach is vaguely similar).
Re:Supernodes? (Score:3, Informative)
Re:Supernodes? (Score:1, Informative)
Lets say I'm firewalled and you're firewalled. Neither of us can open any ports. I want to call you. As a result, we both connect to a supernode, and send and receive data through the supernode. The supernode sees it all.
Re:Supernodes? (Score:3, Informative)
Re:Supernodes? (Score:2)
"For the third setup, in which both users were behind port-restricted NAT and UDP-restricted firewall, both caller and callee SC exchanged signalling information over TCP with another online Skype node. Caller SC send media over TCP to an online node, which forwarded it to callee SC over TCP and vice versa. The message flow is shown in Figure 11.
There are many advantages of having a node r
Re:Supernodes? (Score:2)
Re:Supernodes? (Score:2)
At the very least; In the connection setup the third-party (ie supernode) has to open a server socket that both clients connect to using client sockets. The supernode then forwards information between the two.
Now what type of magic is used to hook up a direct connection between the two clients ? TCP connecti
Re:Supernodes? (Score:3, Informative)
basically each computer attempts to initiate a connection to the other computer on a port that has been agreed to in advance. the first computer to attempt will fail, due to the fi
Re:Supernodes? (Score:2, Interesting)
Interesting, but I wouldn't expect this technique to defeat anything else than trivial "personal firewalls". Any NAT between the two computers would alter the calling ports and break your assumptions.
Has anyone actually tried this ?
Re:Supernodes? (Score:2)
Re:Supernodes? (Score:2)
Re:Supernodes? (Score:2)
Re:Supernodes? (Score:2)
Simultaneous SYN.
Skype does not use it.
Re:Supernodes? (Score:5, Informative)
Because this type of tiered network is what works and scales well to thousands and millions of clients. The original Gnutella protocol was designed not to use "supernodes" or a tiered network structure and it was a miserable failure. The bandwidth and large latency required for all of the clients to communicate with each other (especially ones using 56K modems) easily overcame the usefulness of the network. The current Gnutella protocol now uses a tiered (layered) network where clients can become supernodes and this version actually works with tens to hundreds of thousands of people connected.
When creating a large, scalable network this type of protocol is what has been proven to work.
--
Join the Pyramid - Free Mini Mac [freeminimacs.com]
Re:Supernodes? (Score:2)
Re:Supernodes? (Score:2)
I've proposed a modification of the basic concept to the kenosis group; we'll have to see
Re:Supernodes? (Score:2)
About the dancing hash table - implementation issues aside, isn't that a rather significant risk for malicious clients? I mean, restricting people to the same class A or B subnet is one thing, but if low latency is your
Re:Supernodes? (Score:5, Informative)
There are other solutions which'll do essentially what you want. One option is to have connections rotate round-robin style, rather than by bandwidth. That way, if you can go by 5 paths, each path gets 1/5th of the traffic, making it much harder for evesdroppers.
A second option is to use kernel or userland IPSec, so that all connections are secure. IPSec is pretty solid and it is doubtful anyone would be able to break into such traffic.
Supernodes are just a load-balancing mechanism. Not a very good one, because it's a two-state system, but it works. Networks have developed routing and QoS protocols to handle exactly the kind of information P2P is approximating with the supernode scheme. It would seem to make much more sense to use mechanisms people have worked on for much longer to get right.
Re:Supernodes? (Score:3, Insightful)
Re:Supernodes? (Score:1)
Without supernodes and their ability to push data quickly you get stuff like freenet or MUTE. While these are much more privacy oriented, there's a reason they're not mainstream: They dont rely on high speed connects, and thus cant provide high speed service.
As Skype is a legally oriented servic
Re:Supernodes? (Score:2)
Re:Supernodes? (Score:3, Interesting)
It's not difficult, but the issue is scalability. To have a P2P network scale, you have to have some efficient network structure for shunting data around. Efficient is a relative term; robustness might be the goal here with supernodes.
For implementations of distributed hash tables, bandwidth certainly isn't the main concern, so those are logically constructed generally without any concept of a supernode
Re:Supernodes? (Score:2)
Is Jerry Seinfeld posting on slashdot now?
Skype uses 256-bit AES... (Score:2)
Skype uses end-to-end cryptography on all calls, up to 2048-bit RSA for the public key exchange and 256-bit AES thereafter.
Skype offers probably the highest strength seamless encryption around.
How future proof is this? (Score:3, Insightful)
Re:How future proof is this? (Score:2)
Re: How future proof is this? (Score:1)
You mean because IPv6 increases the IP address space enough so that every single refrigerator, phone and toaster can have its own (public) IP# ?
Bullshit. There are many reasons to use NAT, saving IP addresses is only 1 of these. And AFAIK, there isn't a real shortage of IP addresses yet. If there is, it's because they're not distributed/used well, not because there aren't enough of them.
Re:How future proof is this? (Score:1)
Re: How future proof is this? (Score:1)
It looks like (I'm not sure) the Skype protocol routes voice data through non-firewalled nodes when at least one of the endpoints is firewalled. In theory, you don't need to do this. To establish a call, you may need a non-firewalled node if the node being called is behind NAT or firewall. Once contac
Bad start (Score:5, Informative)
Re:Bad start (Score:3, Insightful)
Skype Banned (Score:5, Interesting)
Skype Peer to Peer Telephony software is now also prohibited. Skype is a
free application that facilitates free telephone calls through the use of
an internet connection.
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. This is in breach of the
Acceptable Use Policy and could potentially put the university's network
and core business at risk.
Finally, the Skype End User License Agreement (EULA) grants Skype permission
to install and use 3rd party software on computers running Skype. This could
include an array of spyware and adware that is likely to threaten the
privacy of anyone installing this software.
Re:Skype Banned (Score:5, Informative)
The only thing relating to third party software that I found was this:
2.4 Third Parties. You acknowledge and agree that the Skype Software may be incorporated into, and may incorporate itself, software and other technology owned and controlled by third parties. Skype emphasizes that it will only incorporate such third party software or technology for the purpose of (a) adding new or additional functionality or (b) improving the technical performance of the Skype Software. Any such third party software or technology that is incorporated in the Skype Software falls under the scope of this Agreement. Any and all other third party software or technology that may be distributed together with the Skype Software will be subject to you explicitly accepting a license agreement with that third party. You acknowledge and agree that you will not enter into a contractual relationship with Skype or its Affiliates regarding such third party software or technology and you will look solely to the applicable third party and not to Skype or its Affiliates to enforce any of your rights.
Basically, you have to explicitly accept a license agreement with the third party. They say nothing in here about installing and using 3rd party software on your computer without your consent.
Re:Skype Banned (Score:1)
Re: Skype Banned (Score:1)
Well, that would cover addware or spyware; like it or not, one could just call it 'added functionality'.
Any and all other third party software or technology that may be distributed together with the Skype Software will be subject to you explicitly accepting a license agreement with that third party.
Sounds decent enough, but makes many -weak- assumptio
Reading is Fundamental - WAS:Skype Banned (Score:1)
Um... did you actually read the excerpt that you posted?
[OT]: Re:Skype Banned (Score:2)
Okay, I understand the whole AUP piece. I understand that it could be a problem for the network.
What I'm not sure I understand, is how a simple program could "put the University's core business at risk". If that is a publically funded University, I really object to that statement (it's not a business, a public service. It's nice if it's self funding, but the objective it not
Re:[OT]: Re:Skype Banned (Score:2)
Skype could concievably interfere with the relability and speed of these connections
Re:[OT]: Re:Skype Banned (Score:2)
Why would it route through machines? (Score:1)
Re:Why would it route through machines? (Score:2)
When multicasting data, you reduce the number of packets sent by building a distribution tree between nodes, which either all users share, or have one rooted at each source in the conference. There are many, many ways of doing this, but the end-result is the same. This tree is on the overlay level -- the routers have no knowledge of it. To forward packets across the overlay, they have to be pulled up to the appli
Re:Skype Banned (Score:3, Informative)
Generally speaking, end users are at the very bottom of a long hierarchy of ISPs and pipes. For example: UUNET -> AT&T -> Your local ISP -> You. As such, generally speaking, you are a leaf on a very large tree that may span several classes of IP networks. If a peer were to be used as a super node, it would mean that the data send from A to C would travel like this: A -> ISP -
Re:Skype Banned (Score:4, Informative)
Um, actually RTFA.
In most cases the voice packets go direct leaf node to leaf node.
However if both are behind NAT firewalls then they can't directly talk to each other, and the Skype protocol seems to pick another Skype users machine (picked by some scheme that probably isn't publically described anywhere) and route the packets through them.
There's no security problem with doing this (the packets are end-end encrypted), it just takes longer and is more likely to congest, and it takes up bandwidth at the extra users network.
Really, IMNHO, NAT is a real menace. I'm really looking forward to IPv6 which doesn't have all this garbage; should be here by 2100 I reckon.
Re:Skype Banned (Score:2)
So what if a box behind a nat is forwarding even two conversations on LAN. It's probably going to use up .5% CPU, and the LAN traffic won't increase or decrease since it's arleady on a LAN.
Your point?
Re:Skype Banned (Score:2)
My point- dumbass- is that if they are behind *different* NAT firewalls (actually routers). Then they specifically *do* send messages from A to B to C; something that you said "makes no sense".
And the protocol has to do that because NATd boxes can't ordinarily accept incoming connections (atleast not without the administrator doing lots of prior manual set-up on the NAT router). So point B has to be chosen from the set of non NAT'd IP addresses.
Re:Skype Banned (Score:2)
The whole point of "through me" connections is that the NATed box and the recipient box are on the same internal network.
How old are you? Your tone of voice and lack of understanding of networks is highly indicative that you are a freshman that thinks they got the whole world figured out.
Re:Skype Banned (Score:2)
Wrong. LOL. I'm saying it gets routed through a third party.
The whole point of "through me" connections is that the NATed box and the recipient box are on the same internal network.
Wrong.
Your tone of voice and lack of understanding of networks is highly indicative that you are a freshman that thinks they got the whole world figured out.
Wrong, wrong, w
Shameless plug (Score:2)
Yes, but true peer to peer is still possible in many
cases with a little help from a routable 3rd party -
Meet the mediated peer-to-peer a.k.a. hamachi [hamachi.cc]
Re:Skype Banned (Score:2)
This is horribly inefficient, however it is only used if you are behind a firewall or NAT and don't have have the necissary ports open. If you (or the person you are talking to) is on a publically routable IP address then Skype will just make a direct P2P connecti
Re:Skype Banned (Score:2)
Re:Skype Banned (Score:3, Insightful)
Re:Skype Banned (Score:1)
Latency dude.
p2p and torrent technology is the worst network framework for something like streaming audio (lets not fuck ourselves with words like voice-over-ip... it is audio, and a network, and it streams...)
p2p could just mean point 2 point for all you care. It makes a direct connection to the dudes place machiney thingy, else it wouldn't work.
Re:Skype Banned (Score:2)
Windows registry? what's that? (Score:5, Funny)
Strange, I have it installed on my linux machine... and it doesn't have a windows registry... guess I dont have the capability of storing a buddy list.
Re:Windows registry? what's that? (Score:1)
/looks around scared
I better run home and delete my windows registry... I dont want them spying on me
bye bye (Score:1)
One Cell Phone to Rule Them All (Score:1)
Worst thing about Skype. . . (Score:4, Interesting)
Re:Worst thing about Skype. . . (Score:4, Informative)
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
(Caveat: Check your local servers, use passive FTP, modify this if you actually want to use P2P, etc.)Re:Worst thing about Skype. . . (Score:2)
Any suggestions for one that is as easy to set up as Skype, has clients for Windows, Linux and MacOS and is open source?
I like gnomemeeting on Linux, but it isn't ported to Windows or MacOS, AFAIK.
Rik
Re:Worst thing about Skype. . . (Score:2)
Non-Windows stuff (Score:5, Informative)
... and on OS X it's in your Library: (Score:2, Informative)
Re:Non-Windows stuff (Score:2)
See! I knew it! Linux DOES have a registry!
It sure does! And the Elektra Project [sourceforge.net] even admits it [sourceforge.net]!
Don't knock it. (Score:4, Interesting)
It uses very little bandwidth and those Universities who are banning the software are just kneejerking to a new technology, just showing how far from the academic mission of research and experimentation most colleges have gone. Even more telling is how most Colleges charge exorbitant fees for local and long distance phone calls from student dorm phones. Why would they want to allow a technology onto their network that will mean less money going into their pockets.
As to the bandwidth issues, I think they greatly exaggerate the bandwidth use of a Skype supernode in order to justify their kneejerk reaction to any new technology on their network that does not come with a 3 year agreement with Dell and Microsoft.
Re:Don't knock it. (Score:1)
I can knock it if I want to... (Score:1)
Any organization that want to "manage" their network infrastructure will make policy decisions about what is and isn't an acceptable use.
Bandwidth costs money, period, and you have to prioritize if you have a fixed budget. For Universities, the goals are research and education. That's what the network is there for. Are you learning anything by using Skype? No. Is it advancing research? No.
It's not YOUR network, get over it.
Re:I can knock it if I want to... (Score:2)
Re:I can knock it if I want to... (Score:2)
Re:I can knock it if I want to... (Score:2)
Re:I can knock it if I want to... (Score:3, Interesting)
Re: (Score:3, Insightful)
Re:Don't knock it. (Score:2, Informative)
Re:Don't knock it. (Score:2)
Don't all Colleges have free long-distance as a cost-saving measure: Dartmouth Ends Billing for Phone Calls [dartmouth.edu]
Any more docs like this? (Score:3, Funny)
200 Mhz (Score:2, Insightful)
I bet they couldn't only see 5kbytes of traffic because that's all those poor machines could pump out!
Beware of Skype's third party apps (Score:2)
These are the same guys who wrote Kazaa which installed 3rd party software which basically stole money from mom & pop websites in affiliate networks.
Re:Beware of Skype's third party apps (Score:2)
Skype is not a trojan horse. There's plenty of money to be made on the for-fee POTS dialout, thank you.
How often does skype refresh NAT binding (Score:2, Informative)
The PDF doesn't explain how it's done, but it's rather simple, and is explained in the STUN RFC:
1. Open a socket, and tell the server, hi, i'm here, reply to the same address you received this message from, and tell me what that address is (let's call this address REF_ADDRESS_A).
2. Sleep for some time...
3. Open a second socket, and say, hi, i'm here, reply to the same address you received this message from AND to the old address(REF_A
Skype + Asterisk will be the ideal couple (Score:2, Interesting)
http://voip-info.org/tiki-index.php?page=bounty%2
That would be the real killer POTs killer app.
Can any reverse engineering pro give a hand ?
sip? iax? (Score:2)
Re:sip? iax? (Score:2)
And offers an API.
Skype Tunneling (Score:2)
SIP on Linux (Score:2)
Re:other VOIP providers? (Score:1, Informative)
Even the routing can be done with open projects such as Asterisk [asterisk.org]. Skype is worthless proprietary tripe compared to these solutions.
Re:other VOIP providers? (Score:3, Insightful)
Simply because it is so damn easy to use, It has clients for Windows, Mac OS X and Linux, and all you need is the ID of anyone you want to call. No screwing around.
I ain't no fan boy, but after using SIP and Skype, I know which the majority of users are going to find easier to use.
Also check out http://www.ilbcfreeware.org/ [ilbcfreeware.org] for the codec.
Re:other VOIP providers? (Score:2)
Re:other VOIP providers? (Score:2, Interesting)
Skype vs a SIP solution (Score:3, Interesting)
He muttered that he'd get around to it sometime, so next time I was in the office I installed it myself, and using the USB VOIP
Re:other VOIP providers? (Score:3, Interesting)
But, even with that, there is a feature in SIP called "REINVITE" in which two SIP endpoints can renegotiate their media stream paths to send their audio directly to each other and only send call progress messages to the original server (for billing purposes, mainly). Reinvite really only works well if both
Re:How to Get a Free Mac Mini! (Score:1)
Re:Congratulations, Mr President (Score:2)
Child appears unhappy [boingboing.net]
Re:Day Pass (Score:2)
It's probably illegal, or something, but it's still funny.