Subject: [P2Prg] Re: [p2p-hackers] Models for distributed systems

From: Thorsten Strufe <[email-masked]>
Date: Mon, 26 Apr 2004 11:05:38 +0200

Thanks for the hints!

|>Correct me if I'm wrong, but I think the main
|>difference is that, in c/s, any given node is either
|>client or server, but in p2p a node can be both client
|>and server at the same time...
Well, if you consider the dynamic client/server model (client server
with delegation) you get the same behaviour. Servers delegate subtasks
to other servers, and hence become clients for a certain amount of time,
in many c/s-systems.
I suppose the difference is, that in P2P every node can be the
originating source of a request, while in dynamic c/s the source is
always a /client/.

| But Thorsten asked more specific differences, and imho,
| routing is one specific feature of P2P (file-sharing -- Gnutella/Kazza,
| DHT, ad-hoc wireless network, etc.).
I thought about this fact as well, but if that is the defining
characteristic of P2P we had to call any routing system P2P, hadn't we?
The problems solved in the system domain seem to be the same then.

I've got as far as defining P2P as a system architecture (here comes the
first question: does anybody know a good and formal definition of system
architectures?).
The system architecture can be best described with three different models.
~ * In the role model (formal definitions?): P2P knows of only one role,
the servent. Every servent performs, or at least is able to perform the
same tasks (symmetric roles), which usually consist of searching its
local or locally registered ressources, forwarding search requests and
serving an offered ressource.
* In the interaction model (formal definitions?): Similar to the
client/server model interaction in P2P architectures is done
asynchronous via request-response message pairs. Any node can be the
originating source for a request.
* In the organisational model (fd?): No context knowledge other than a
bootstrapping point to one occurence of a specific P2P system is needed
to take part in it. There is no central naming system (anyway, it is
possible to introduce an distributedly implemented algorithmic naming
system as is done with Hashvalues in DHT-Systems). 'Pure' P2P systems
are not structured at all (anyway, it again is possible to introduce a
distributedly implemented structure as the supernodes in gnutella v0.6).

Following this definition, a better word for P2P would probably be
decentral distributed systems or collaborative systems (if this term
wasn't already occupied by the cscw-world).

I'm perfectly aware of the fact that this definition does not cover
seti@home, napster and a fair share of other (file-sharing) systems, but
it's still the best definition that I can come up with at the moment.
And I would be highly interested in other views! :-)

Thanks for comments in advance!

thorsten

_______________________________________________
P2prg mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/p2prg

---

From: Michael Rogers <[email-masked]>
Date: Mon, 26 Apr 2004 16:34:05 +0100 (BST)

Hi Thorsten,

In my opinion P2P is a social rather than a technical category; the
characteristic that distinguishes P2P systems from traditional
distributed systems is autonomy. For example:

Peer-to-peer system                Traditional distributed system
--------------------------------------------------------------------
Nodes may join and leave freely    Participation is managed
                                   (although failures are expected)

Each node has a different owner    Number of owners is smaller
                                   than number of nodes (often
                                   there is only one owner)

Any node may perform any role      Roles are assigned
(often there is only one role)

Selfish behaviour should be        Selfish behaviour is a bug or an
expected                           attack
--------------------------------------------------------------------

Autonomy may not be explicit in DHT designs - "nodes may join and
leave freely" might be expressed as "the system must tolerate regular
node joins and failures" - but in my opinion DHTs still fall into the
P2P category because they can tolerate autonomy.

The social characteristics of P2P lead to certain technical
characteristics - for example, P2P works best with data that can be
replicated (read-only files) or regenerated (SETI@home), because no
single node can be relied on as an "authoritative source".
Internet-based P2P works best when it doesn't rely on the DNS,
because most potential participants have dynamic or NATed IP
addresses (the largest pool of owners, if not the largest pool of
machines). But these technical characteristics do not define P2P,
they are just consequences of coping with autonomy. In a different
environment (eg ad hoc wireless networks), the technical implications
of autonomy may be different.

Cheers,
Michael

____________________________________________________________
Yahoo! Messenger - Communicate instantly..."Ping" 
your friends today! Download Messenger Now 
http://uk.messenger.yahoo.com/download/index.html