tomato.pgn -6 Posting Whiz in Training

I m developing an application on peer to peer network....
This is my requirement...
Over the course of four milestones, you will create from scratch a P2P system, that
• creates a network of many peers
• self-organises the network into an overlay structure reflecting the strengths of the individual peers
• shares information about items held by the peers across the network through gossipping
• searches the network using k-walkers

Milestone 1 – Peer Discovery

Each peer is characterised by
• a short, unique name, eg. 'P1'
• an address, ie. IP address and port number
• a capacity denoting the maximum number of neighbours, suggested range 1-10

Milestone 2 – Building the Overlay Network
Extend your system, so that an overlay network is constructed. Each peer must choose a number of neighbours from its pool of peers. Do not exceed the maximum number of neighbours. Keep in mind that
• neighbourhood is a matter of negotiation – peers must agree to become neighbours
• peers may disappear without warning – your peers should have a mechanism for discovering missing or unresponsive peers, and adjusting their neighbourhood accordingly.

Milestone 3 – Adding Content

The purpose of this assignment is to add content to your overlay network, and to enable the peers to share information about the content that they hold.
The content: Choose a directory with many files. Assign a (random) number of files to each peer at runtime. Each peer should keep an index consisting of file names and sizes.
Peers should periodically update their 1-hop neighbours with their own indicies. Care take that this traffic does not overload the network nor any of the peers.

Milestone 4 – Searching the Network

The purpose of this assignment is to implement k-walker searching, thus enabling peers to locate (and download) resources across the network.
k and TTL should be configurable. You may implement your walker algorithm as you see fit, though it of course should use the distributed indicies. Implement a find command to search for files across the network, and a get command to retrieve a found file.

So anyone having idea how to do this...i don't need entire code ...i just want to know how to begin with......

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.19 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.