Subject: Re: [IAB] Call for Comments: "Peer-to-peer (P2P) Architectures"

From: Stanislav Shalunov <[email-masked]>
Date: Tue, 20 Oct 2009 03:58:26 -0700

Gonzalo,

I now see how my initial reading of the document was informed mainly  
by expectations set by the title and the abstract.  I suspect that I  
might be alone in this.  If the title and the abstract were to better  
reflect the content and to avoid what I read as overpromise, the  
document would be much improved.

I see you've already changed the abstract to refer to multiple  
taxonomies.  This is helpful, thank you.

I was actually initially confused by the title, "Peer-to-peer (P2P)  
Architectures".  The sort of thing that came to my mind reading that  
title was a discussion of several architectures that would include  
design philosophy considerations, main architectural ideas from the  
P2P world, toolbox, tradeoffs, applicability of techniques,  
architectural design choices made by particular P2P apps, the  
motivation of the choices, consequences of the choices, and such.  The  
document does have architectural guidance on when to use P2P as  
opposed to a server-based arch, but the plural of "architectures" in  
the title primed me for a discussion of peer protocol choice and  
design, organization mechanisms to use in the system, and generally  
something that'd get a server-based protocol jock sufficiently  
informed about P2P to design working P2P systems rather than to  
conclude that a given application looks like a potential match for a  
P2P approach.

If the document were to have a different title, my mindset diving in  
would be different.  If the title more precisely reflected the content  
I would take the document for what it is instead of expecting  
something that wasn't intended to be there.

How about "Peer-to-peer (P2P) architecture: definition, examples, and  
applicability" for a title?  Something along those lines would  
definitely help me get the right idea of the document.

I've taken the liberty to massage the abstract:

		We define P2P, explain how a P2P architecture differs from a client/ 
server architecture, and provide a non-exhaustive survey of P2P  
systems and of their taxonomies.  We discuss the applicability of P2P  
and tradeoffs between client/server and P2P and how the best choice  
depends on the properties and the requirements of the application.

Also, I'd consider pulling out the definition, which currently starts  
with "We consider" into a paragraph marked with something like  
"Definition:" at the beginning -- or just the first paragraph of the  
corresponding section.

And still, I'd suggest making it more clear that, say, BitTorrent,  
which has trackers, or Skype, which has a website where you can manage  
your account, are, indeed, P2P systems, despite the fact that they  
have elements that only provide and don't consume a service.

Let me know what you think,
-- Stas

-- 
Stanislav Shalunov
BitTorrent Inc
[email-masked]

personal: http://shlang.com

On Sep 11, 2009, at 3:08 AM, Gonzalo Camarillo wrote:

> Hi Stanislav,
>
> thanks for your comments. With respect to including more examples of  
> P2P systems, we received similar comments in the past. Some people  
> thought (like you) that a document having a high number of examples  
> (maybe even an almost-exhaustive list) would be useful for the  
> community. At that point, we decided not to include all those  
> examples in this document and focus instead on general properties  
> and guidelines. However, you are right that such a document could be  
> helpful. During our past discussions, we identified the P2P RG,  
> which was being rechartered at the time of writing the document, as  
> a potential venue to write such a document (we were in touch with  
> the chairs of the RG while writing this document). We realize that  
> there are many potentially-useful documents that can be written in  
> the area of P2P systems and that this document only covers a tiny  
> part of the area.
>
> Regarding a "correct" definition of a P2P system, one of the points  
> the document stresses is the fact that there are multiple  
> definitions in the literature. The document discusses them and  
> describes what they have in common in order to find a common  
> denominator. We believe this approach is more useful than providing  
> our own definition without referencing existing ones.
>
> With respect to the taxonomy, you are right that the document  
> provides several taxonomies and not a single one. Section 4 states  
> that but both the Abstract and the title of Section 4 talk about a  
> taxonomy in singular. We will clarify this point so that it does not  
> confuse readers.
>
> With those explanations for why the document is the way it is, and  
> with the commitment to clean up the single vs multiple taxonomy,  
> would you like to suggest any specific textual edits to this  
> document with these goals? If so, we would happily consider them to  
> the document's next revision.
>
> Thanks,
>
> Gonzalo
>
>
> Stanislav Shalunov wrote:
>> I fail to understand the purpose of this document or of publishing  
>> it.
>> The abstract promises three things:
>> * a survey of P2P systems
>> * a definition of a P2P system
>> * a taxonomy of P2P systems
>> I found no traces of a survey, no actual taxonomy, and only an
>> inadequate definition in the document.
>> A survey would enumerate P2P systems and describe them.  The document
>> only mentions two P2P systems of which, one is universally known and
>> the other is theoretical at present.  Kazaa, or current #2 behind
>> BitTorrent eDonkey, or the numerous academically interesting P2P
>> systems are not mentioned, let alone described or classified.
>> There's a section called "Taxonomy for P2P Systems", but it doesn't
>> contain any taxonomy, for P2P systems or otherwise.  Instead, it
>> contains an attempted literature survey of P2P taxonomies.
>> An actual taxonomy would list the types of P2P systems and their
>> differentiating principles.  It would be natural to combine it with a
>> survey, classifying known P2P systems according to the taxonomy you
>> choose.
>> An unmarked paragraph four of Section 2 does provide a definition  
>> of a
>> P2P system.  A discussion follows it, but it's not clear if it's part
>> of the definition proposed by the document.  The definition is weak
>> and generic, yet needs to be substantially stretched so that even
>> BitTorrent, the most common P2P system in use today, fits it.
>> The document is so bad that proposing specific textual changes is
>> besides the point.
>> Here's a sketch of an example of what a more useful document might  
>> look like:
>> Definition: A distributed system implemented on a computer network to
>> provide a service is called P2P if it involves a substantial number  
>> of
>> nodes that, in addition to consuming the service, also provide it.
>> These nodes are called peers.
>> Note: P2P systems are often contrasted with client/server systems.   
>> In
>> the latter, the functions of providing (servers) and consuming
>> (clients) the service are separated into different nodes; in the
>> former, the same nodes (peers) can do both.  The distinction  
>> sometimes
>> goes deeper and is reflected on the wire protocol level, where P2P
>> protocols are symmetrical in nature, with both sides being able to
>> issue the same set of messages.  This, however, is accidental and not
>> a defining part of P2P.
>> Taxonomy
>> 0. Type of service
>> P2P systems can provide various services, such as file distribution
>> and sharing; voice and video calling; audio and video streaming,
>> recorded or live; data backup, etc.
>> 1. Administrative control
>> P2P systems can be under single administrative control, provide
>> multiple realms each under its own administrative control, or be  
>> fully
>> administratively decentralized.
>> 2. Tracker
>> P2P systems can include the use of a central server that can provide
>> functions such as peer location and possibly extra services like
>> content indexing.  Other systems are trackerless and rely on DHTs and
>> other techniques.
>> 3. Peer equality
>> P2P systems can contain peers that are elected to perform specialized
>> functions, perhaps elevating these peers to near-server status, or  
>> all
>> peers can have the same functions.
>> Survey
>> [Skipping the academic systems and only giving a couple of examples.
>> An actual survey would need many more systems.]
>> The global constellation of NNTP servers was arguably the first  
>> widely
>> deployed P2P system.  NNTP provides message exchange and a simple  
>> form
>> of file sharing.  NNTP was developed before the term P2P became
>> common, and so the term is not normally applied to NNTP.  However, on
>> a technical level, if we exclude NNTP clients from consideration  
>> for a
>> moment, NNTP servers form a P2P system, fully administratively
>> decentralized, trackerless, and with equal peers.  This system lacks
>> self-organization and peer discovery, making it a very early  
>> precursor
>> to modern P2P architectures.  NNTP as a whole, with the clients, is
>> obviously not a P2P system.
>> Napster was one of the original P2P systems. It provided file sharing
>> under single administrative control and with the use of a central
>> tracker that also provided search.  Peers in Napster were equal.
>> Kazaa was also a file sharing service under single administrative
>> control.  It was trackerless and included a form of supernodes
>> instead.
>> Skype is one of the most popular P2P systems today and provides voice
>> and video calling.  It is under single administrative control,
>> trackerless, and with supernodes.
>> BitTorrent is one of the most popular P2P systems today and provides
>> file sharing.  It has multiple realms of administrative control,
>> usually uses a tracker (but can be trackerless), and has equal peers.
>> On Wed, Jul 22, 2009 at 12:26 PM, IAB Chair<[email-masked]>  
>> wrote:
>>> The IAB intends to publish the following document and invites any  
>>> comments
>>> you might have:
>>>
>>>
>>>                   Peer-to-peer (P2P) Architectures
>>>                      draft-iab-p2p-archs-02.txt
>>>
>>>  Abstract
>>>
>>>  In this document we provide a survey of P2P (Peer-to-Peer) systems.
>>>  The survey includes a definition and a taxonomy of P2P systems.   
>>> This
>>>  survey also includes a description of which types of applications  
>>> can
>>>  be built with P2P technologies and examples of P2P applications  
>>> that
>>>  are currently in use on the Internet.  Finally, we discuss
>>>  architectural tradeoffs and provide guidelines for deciding whether
>>>  or not a P2P architecture would be suitable to meet the  
>>> requirements
>>>  of a given application.
>>>
>>>
>>>
>>>
>>> Please provide your feedback before August 15, 2009.
>>>
>>> For the IAB,
>>>
>>> --Olaf Kolkman
>>>  IAB Chair
>>> _______________________________________________
>>> IETF-Announce mailing list
>>> [email-masked]
>>> https://www.ietf.org/mailman/listinfo/ietf-announce
>>>
>