Could Skype realistically replace its P2P algorithm with P2PSIP?
October 19th, 2009 by Dan York
Could Skype realistically replace its proprietary peer-to-peer (P2P) algorithm with P2PSIP?
Over on his Skype Journal site, Phil Wolff shows another example of why I’ve always followed the mantra “Never put online, in any form, anything you don’t want to appear on the front page of a news site” when Phil shows what was obviously intended to be a private email about ideas of what to do with Skype. (This has all surfaced as part of Skype’s ongoing legal battles on a number of different fronts, which I’m not going to dive into here.)
Per Phil’s article, the idea was this:
- buy skype, replace p2p with SIP (standard-based, open, can interwork with other VoIP systems – like the Cisco phones)
What’s perhaps most interesting about Phil’s post, though, were the comments that started with Lee Dryburgh of eComm fame weighing in saying that it makes ZERO sense (technically) and then went on from there. Lee and Shidan Gouran then got into a bit of a discussion in the comments.
Leaving the personal jabs aside, it’s actually an interesting discussion to consider. (And knowing both Lee and Shidan, I’m sure that they actually agree on way more than they disagree on.)
WHAT IS P2PSIP?
Lee’s right that there’s a difference between “SIP” as a protocol and all the overlays, DHTs and everything else that goes with “P2P” protocols. To Lee’s points about the difference, though, that is precisely what the “P2PSIP” work happening within the P2PSIP Working Group of the IETF is addressing. For those who want to read the proposed P2PSIP protocol itself, the latest draft is here in two parts:
http://tools.ietf.org/html/draft-ietf-p2psip-base
http://tools.ietf.org/html/draft-ietf-p2psip-sip
The first draft defines a P2P protocol called “REsource LOcation And Discovery (RELOAD)”. The second draft explains how RELOAD can be used with SIP.
To Lee’s points, RELOAD is a separate protocol from “SIP”. Now, RELOAD does indeed use a Chord-based DHT… though, the best place to start is probably the Architecture section at the beginning to understand how the pieces fit together.
So what is being called “P2PSIP” within the IETF is more this:
P2PSIP = SIP + P2P-protocol
More info about all things related to P2PSIP can be found at a great site maintained by David Bryan, co-chair of the IETF P2PSIP Working Group:
http://www.p2psip.org/
I’ve also written more about “P2PSIP” here on this blog, including this piece back in May 2008 about why I believe P2PSIP is important.
BUT COULD SKYPE REALLY USE P2PSIP?
Probably.
The question is really –
Could Skype swap out it’s proprietary P2P protocol for the P2P protocol proposed as part of P2PSIP?
That’s the larger issue. As Lee points out, SIP is “just” a signaling protocol for setting up communication sessions. The decentralized P2P nature of Skype is due to its proprietary P2P algorithm, not its session signaling.
That’s the key point, really – there are two different layers of communication going on here:
- networking between the endpoints (the P2P layer)
- call and chat signaling setup, modification, tear-down, etc.
The P2P layer is probably the hardest one to replace. The signaling layer is probably easier as there are any number of choices out there today, including SIP, XMPP and others.
Plus, as Shidan Gouran accurately points out, Skype’s current system is NOT entirely decentralized/P2P. It is much more of a hybrid system. There are centralized enrollment/authentication servers (as we learned in the multi-day outage a few years back), a centralized directory (although pieces of that could potentially be spread across the P2P overlay) and of course centralized PSTN interconnectivity.
Could all that be replaced with a different P2P protocol? Probably… although certainly not without a lot of work – and also the severe headaches of dealing with backward compatibility and getting the huge installed base of Skype users to upgrade to a new client.
Could that protocol be P2PSIP? Again, probably. The advantage would be that the SIP layer would give Skype interoperability with other systems, networks, devices, etc.
THE OTHER OPTION
I’d note, too, that the email Phil quotes says “replace p2p with SIP”. It does not say “replace p2p with p2psip”. There very well could be folks thinking of dumping the whole proprietary P2P protocol and dumping P2P in general and migrating to be a “standard” kind of SIP system like Gizmo (yes, which Skype has been rumored to be buying) or any of the other SIP-based consumer softphone services out there.
Sure, I’m sure they could technically do it. As an open standards guy, it would be great on one level in that it would help move us along toward the great big “interconnect” many of us so want to see. It would, though, require a much different architecture than what Skype has used so successfully today.
SO….
Will Skype replace their proprietary protocol with P2PSIP?
Ha… I haven’t a clue… nor does anyone else outside those walls. All we can do is have moments of technical amusement like this speculating on the possibility.
As I’ve noted before, Skype has been hiring in this year some great folks with lots of SIP experience… but… Skype is also a HUGE user of SIP on its backend for PSTN interconnectivity… plus they rolled out their Skype for SIP program this year…. so they have lots going on related to SIP.
We’ll see… all we can really say is that the time ahead will continue to be an interesting one for all things related to Skype…
Related posts:
- Guest post: David Bryan responds on P2P, P2PSIP and Skype
- P2P SIP – an effort to make a open standards/SIP version of Skype?
- Updated P2PSIP Security Overview Internet-Draft posted
- Skype announces “Skype For SIP” to provide SIP connectivity to premise systems
- Skype imports some SIP DNA by hiring CounterPath CTO Jason Fischl
If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.
RSS Feed





October 19th, 2009 at 12:26 pm
Could Skype realistically replace its P2P algorithm with P2PSIP? http://bit.ly/3Qs3Ps
This comment was originally posted on Twitter
October 19th, 2009 at 12:27 pm
A piece I wrote re @leedryburgh & @evanwolf RT @voxeo: Could Skype realistically replace its P2P algorithm with P2PSIP? http://bit.ly/3Qs3Ps
This comment was originally posted on Twitter
October 19th, 2009 at 12:50 pm
How Skype could swap out the P2P IP of its founders & avoid the legal hassles – benefiting $EBAY & new owners RT @voxeo http://bit.ly/3Qs3Ps
This comment was originally posted on Twitter
October 19th, 2009 at 1:23 pm
Dan York explains how current SIP efforts fit (or don’t) with Skype’s architecture. http://bit.ly/3Qs3Ps
This comment was originally posted on Twitter
October 19th, 2009 at 1:23 pm
Dan York explains how current SIP efforts fit (or don’t) with Skype’s architecture. http://bit.ly/3Qs3Ps
This comment was originally posted on Twitter
October 19th, 2009 at 1:25 pm
Good analysis Dan.
I’ve been thinking about this stuff for a while, and it seems to me that there are advantages in centralising some parts of Skype – storage of IM messages for example. At the moment, no European company can use Skype IM for anything that includes any customer data as you can’t be sure that it will not be exported from the EU. EU data protection rules say that you have to have the customer’s permission before exporting it.
Other parts work best de-centralized – like registry – No amount of trickery is going to let you create a single SIP registrar that copes with 19M (and counting) dynamic registrations. Skype would have to distribute this pretty widely (as they do now with super-nodes)
What is really lacking is a protocol to discover where users are and allow them to connect. Digium has made a stab at this with their Dundi prortocol, but I don’t know of one in the SIP camp.
You could use some sort of dynamic DNS, a la .TEL , but that probably wouldn’t propagate fast enough.
There are other possible ways, my favourite being to use IPv6 tunnelled over IPv4.
As for the voice bit – that’s pretty easy – heck we already have a lightweight Java based web phone at phonefromhere.com, if we can do it I’m pretty sure Skype can.
October 19th, 2009 at 1:34 pm
I have way too much of a learning curve with all these terms to follow. But I will keep at it until I do. May I ask a questions? Are the changes to Skype in vs 4x related to any of this? say this SIP ?
I want to compare Skype vs 3.8 to 4x … and have a ways to go. Would this explain any of the changes?
October 19th, 2009 at 1:48 pm
@Tim – Thanks, and yes, you are right that there are certainly some advantages that centralization could potentially bring. It is one of those strange things that in a world where on a technical level “geography doesn’t matter on the Internet”, the reality is that geography DOES matter when it comes to legal/compliance issues.
And yes, the issue of “directory” and the companion issue of “discovery” are the two hardest pieces to solve in any kind of distributed, decentralized service.
@Julie – You are always welcome to ask questions! But no, this has no relation to Skype 3.8 versus 4.x. This is all speculation about what Skype could potentially do in the future with some future version.
October 19th, 2009 at 3:34 pm
A follow-up to Tim Panton’s comments: DUNDi can be used to relay any type of pointer, including SIP URIs. However, I would suspect that currently the method for distribution of large numbers of pointers is untested, and route insertion/deletion at high volumes is similarly unknown. This shouldn’t be a reason not to consider it, though – modern machines are quite fast, and pointer storage is fairly lightweight. What is required is a method to distribute intermediate lists of registrars (”supernodes”) that can be cached and cascaded. It may even be the case that it is possible to relay these supernode data via DUNDi without changing the protocol (though obviously if a proof-of-concept were to be done with Asterisk, it would require code modification.)
In any P2P network pointer distribution, the biggest problem (in my view) is one of trust, not scale. Being able to rely upon the distributed pointer caches becomes critically important. It may not be easily done, or it may not be possible at all without “owning” the binaries that are running the caches. Skype solves this problem by both owning the binaries that run the caches at the edge, as well as completely owning the systems/binaries that operate at the top of the tree. This may be sub-optimal for legal, business, or privacy reasons, but it solves the issue of distributed trust.
October 20th, 2009 at 3:06 am
Great post by @danyork about Skype and SIP http://bit.ly/2MZt9d – I guess this task for Skype will be more difficult than expected
This comment was originally posted on Twitter
October 20th, 2009 at 3:19 am
RT @filos Great post by @danyork about Skype and SIP http://bit.ly/2MZt9d – I guess this task for Skype will be more difficult than expected
This comment was originally posted on Twitter
October 20th, 2009 at 3:28 am
Could Skype realistically replace its P2P algorithm with P2PSIP? http://bit.ly/1rYt9s
This comment was originally posted on Twitter
October 20th, 2009 at 5:17 am
Here is a little nugget for you – if Skype swaps out (not getting into the argument that it is or isn’t possible, for the record I think it is but they can’t) its p2p layer with a p2psip, all embedded Skype devices shipped in the last 4 years stop working..
October 20th, 2009 at 5:25 pm
RT @ericjackson Skype could swap out the P2P IP of its founders & avoid the legal hassles – benefiting $EBAY RT @voxeo http://bit.ly/3Qs3Ps
This comment was originally posted on Twitter
October 21st, 2009 at 3:52 am
The other contender is XMPP + Jingle: Nice mix of the benefits of P2P and centralization. Without the burden of SIP. Google’s 1000 pounds gorilla behind it. IETF proposed. Why not?
October 21st, 2009 at 3:54 pm
Cross posting here and Phil Wolff’s Skype Journal blog, since they refer to each other…
So a few points, in no particular order:
Lee mentioned (as have others before) that P2PSIP is “copy-cat Skype”. This always bothers me, not because we came first (we certainly didn’t) but because it wasn’t my vision for P2PSIP (although others certainly had that view) . When I came up with P2PSIP and brought it to the IETF, I wanted to do things SIP couldn’t do at all. SIP can theoretically build a system that looks like Skype. To me, the interesting areas for P2PSIP were distributed softswitches/corporate IM (config-free small office, etc.), rapid response (quickly set up a communications system after a natural disaster), ad-hoc clusters for IM/app sharing (think Google wave away from the Internet), and vendors adding voice to apps without becoming an ISP. You could do a Skype-like service with P2PSIP (sort of: see below) but that wasn’t really the idea that got me started creating P2PSIP.
To me, Skype’s success was solving the NAT issue and getting the user experience right. P2P was a means to an end/efficiency multiplier, but not the reason for the success. Skype just worked. SIP’s major flaw is embedded IP addresses. Skype avoids this, uses media relays (P2P, but could have been centralized) and “falls back” (in the worst case) to tunneling over port 80. Users love this. Administrators and protocol purists hate it as it breaks traffic characterization, shaping, etc. Skype’s closed garden (one protocol stack) also ensured things just worked. Closed gardens and HTTP tunnels are at odds with the SIP goal of vendor/carrier interoperability. The two achieve different goals. (Today, many folks believe ICE with ISP-provided relays has addressed the SIP NAT problem. It looks promising, but until we have a Skype-sized Internet deployment, some say the jury is out. Time will tell.)
You could theoretically deliver a Skype-like experience with either a SIP or P2PSIP solution. Pure P2PSIP is very decentralized (every node is a peer and central servers are only used for obtaining a certificate), so you would need a hybrid approach if you want to maintain customer control. You could also use regular SIP with ICE, and many, many servers if you could solve the scalability problems. The best approach might be conventional SIP between the endpoints and a cloud of servers, with the servers sharing information using P2P. This ends up looking much like a SIP version of Skype’s super-peer model, executed in the cloud.
All this still begs the question of what happens to the Skype ecosystem of hardware, etc. If you go SIP, what do you break in the process? As Dan York and Shidan Gouran point out, Skype has many options, lots of great engineers, and lots of cash, but nobody outside of Skype knows what they will do.
As an aside to Lee’s comment on P2PSIP as a standard (it is fair to say adoption in product has been very slow, I’m sorry to say): The standard is moving, just at the (glacial) pace of standards, which can be frustrating for idea guys like Lee or I. In the early days, P2PSIP had lots of ideas, chatter, and excited non-standards folks, so work moved quickly. Today, with an accepted draft in progress and a more mainstream standards audience, iterations have slowed. That said, things are moving, there is strong interest, and a lot of hard work by the editors and participants.
My biggest worry is the protocol becoming too cumbersome. We are building a very flexible, universal DHT protocol with mandatory ICE and TLS/DTLS security. This is great for some scenarios, but overkill for others (ad-hoc, for example), and I worry the bulk may make it unsuitable for some of the scenarios I first imagined. I think many of these may migrate to the cloud. DHTs will be used, but as a means to distribute data among servers, not all the way to the edge as I first anticipated. Things change. Progress is good. I’m very excited to see how DHT principals in the cloud might solve many of the problems posed of a pure P2P approach. (eComm talk for SF, Lee?)
David
October 26th, 2009 at 2:36 pm
[...] David Bryan, co-chair of the IETF’s P2PSIP Working Group, left this text as a comment to my earlier post about P2PSIP and Skype. Given it’s length and great content, I thought it [...]
October 29th, 2009 at 12:15 pm
COULD SKYPE REALLY USE P2PSIP? http://ow.ly/wLZb Nice post Dan.
This comment was originally posted on Twitter