RaDP2P – Reflective and Dynamic Peer to Peer Networking
In typical peer-to-peer (P2P) environments,
nodes have diverse capabilities and requirements. Furthermore, the resources
made available to the network from each node will change over time. Adaptation
can maximize the contribution that peers make to the network by changing their
role. The benefit nodes accrue from the network can also be increased by
adapting network services to better suite their needs. The Reflective and
Dynamic P2P Framework (RaDP2P) provides support for resource awareness in both
a static and dynamic context. Static resource awareness represents the
capabilities of a node, while dynamic resource awareness represents the
resources this node is currently making available to the network.
RaDP2P is a combination of two
proven models. A structured decentralised network provides an efficient routing
substrate upon which an unstructured resource discovery layer is overlaid. The
base layer of our system is formed by a Key Based Routing (KBR) protocol such
as Pastry [1] or CAN [2]. These allow for efficient routing of
messages and look-up of nodes. Resource discovery services are provided using
unstructured decentralised networks such as Gnutella [3] or AGnuS [4]. These are overlaid on top of the base
routing layer. Research such as Structella [5]
has shown the potential of using such schemes; however, we suggest that the
inherent structure of the routing layer could be further exploited to support a
range of novel adaptation techniques.

By implementing
our resource discovery network over a structured overlay, rather than directly
over TCP/IP, it is possible to restructure the network according to a number of
optimization strategies, example optimization strategies can be found in this technical
paper.
Key allocation in
RaDP2P differs from most structured overlays, in that key value is used to
reflect information about each node. This information is used for adaptation.
As the state of
each node changes over time, the nodes’ key will be remanufactured and it will
reconnect to the most appropriate area of the network tagged for specific treatment.
In this way, the structure of the network and the routing behaviour
of nodes is dynamically maintained. A complete policy
component must defines; a network restructuring policy, a routing adaptation
policy and meta-data harvesting methods. Reflective keys are used to support
three discrete levels of adaptation: network restructuring adaptation, routing behaviour adaptation and service selection adaptation [6].
Applications interact with the
system through the API of the network services layer, which abstracts over the
specific complexities of the underlying peer-to-peer substrates and provides a
simple set of generic functions. We hope that this will allow the rapid
development of both novel applications and adaptation strategies.
The
RaDP2P system is still growing and changing. The API is still under heavy development,
however, it currently provides for the following common peer-to-peer services;
connection, point-to-point messaging, broadcast messaging and plain-text
search. We anticipate an initial release will be made available by the end of
2004.
Additional Information
1. http://research.microsoft.com/~antr/Pastry/
2. http://theory.lcs.mit.edu/classes/6.895/fall02/papers/Ratnasamy/p13-ratnasamy.pdf
3. http://www9.limewire.com/developer/gnutella_protocol_0.4.pdf
4. http://polo.lancs.ac.uk/p2p/Agnus/agnus.htm
5. http://research.microsoft.com/~antr/MS/Structella-HotNets.pdf
6. http://polo.lancs.ac.uk/p2p/Documents/adaptation.pdf