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.


System Architecture

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.

 


Implementation Status

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