Saturday, September 17, 2005

P2P file sharing

P2P stands for peer to peer and is an amamzing concept that is brillian because of its simplicity. Its yet another technology thats modelled on human behaviour of one on one talk and thats what p2p systems exploit, they build on one on one interaction between computers to deliver value to users.
The most popular category of p2p systems is file sharing systems such as napster, gnutella , KaZaa etc. These systems have exploited peer to peer to different extent. Napster had central-distributed architecture whereby the information about all files shared on the network as stored at certain central servers where the users could search for files. After obtaining info about where the file is located the users directly obtained the file from the concerned user. Thus the file retrieval was peer to peer. Napster was revolutionary it lamost became synonymous with rebellious technological endeavours. But it was a rebellion which was dependent on its leaders i.e. the central servers. These were pivotal in its functioning because without them you couldnt know who had which file. And this pivot was what enabled the anti-music piracy camapigners(read RIAA) to cripple it. AFter the court ruled against napster these servers were shutdown and there ended the first generation of p2p file sharing systems.
But the community leraned a lot. Centralization in any aspect was a strict no-no and anonymity of sharers was also important. Gnutella protocol fulfilled the first objective, it did away with centraliztaion. Initally released by nullsoft (which after making the source code available for sometime on the net withdrew from the project) the protocl was reverse engineered from the source code. The protocol specification allowed numerous clients to be written.
The protocol basically worked in simple terms by friend asking friend model, whereby you ask your friends if they know anyone who has that file. And if they knew anyone who had it they just sent you his/her number so that you could obtain the file directly from them. Thus there was no central repository and the network would continue to exist as long as even two nodes were present.
There have been other attempts - Pastry, CAN, CHord but none have proved to be as popular as Gnutella or napster.