Ganhawk's Project Page (for other projects)

 Introduction             Technical Details          Protocol Overview          Status               Contribute - Need Coders!



Introduction:  what this project is about

It is a content distribution system that uses P2P technology to reduce the bandwidth requirements for the server. This project is about avoiding the 'Slashdot effect' (Internet flash crowds) by using the cache of the users who are visiting the web page to serve others. Although there are many P2P applications like Bittorrent, none can be used for web pages and also it has no mechanism to choose the nearest computer to download the files from.. They are  primarily used for transferring large files among several users. But using P2P Bridge, everyone who is currently visiting the web page and has special program running, will be a cache and they can serve the web page instead of the server. The main difference from other P2P applications is instead of receiving the file form number of users, each client receives the file only from one user and in turn serve only one or two users. This is similar to P2P radio in terms of how data is distributed. Also this is a generic Content Distribution System and can be used for reducing the bandwidth of servers on the interanet or even be used for reducing the load on a Web Server.       


How P2P Bridge works

 The server will serve Client 1 and Client 2. It will redirect the request from client 3 to client 1 and client 1 will serve client 3's request.



This project can be used in a variety of ways and here are some of the applications:

1) HTTP Bittorent - stop slashdot effect.

This is the primary intent of P2P Bridge. When used by the end users while browsing the web, it will stop the Slashdot effect. Whenever users are using Slashdot, they can just turn on P2P Bridge and surf normally using their usual browser. Since P2P Bridge is a proxy server it works with all browsers and being a java program works on all platforms.

2) Load Balancing (Corporate Web Server)
P2P Bridge can act as a huge distributed web server. A small corporation can deploy P2P Bridge on many desktop computers instead of investing in high end web server. The gird of proxy servers automatically balances the load and keeps the load on the web server at acceptable levels.

3) Interanet Content Distribution System
P2P Bridge can be used to save costs on Interanet. It can be used with any web based system or file distribution network to reduce the load on Interanet servers. Right now it supports only web pages. But future versions will support streaming and QoS using JXTA protocols.


Technical Details:

P2P Bridge is basically a peering proxy server system. The proxy servers create a overlay network using JXTA and use the overlay network to find the nearest source and retrieve data.

When deployed, P2PBridge first connects to the JXTA network. Now when a request comes in from one of the clients, it searches the JXTA network first and if that fails or timeouts, it retrieves the webpage from the original server. The important idea here is to let all the participating machines in the network converge into clusters. We aim to achive this by having clients connect to the nearest rendezvous server. The rendezvous servers do not exchange advertisments between themselves. It is like we have a tracker for each network.

The Operation of publishing and retrieving a resource can be defined as follows.                                                                                             

Publish Resource

Note: Web pages need not be published explicitly. P2P Bridge will start publishing resources once it receives request for a resources and serves it by download the webpage from the website.

 Step 1:   Inform rendezvous peer about the  resource with very short advertisement TTL

 Step 2:    If resource is still available in cache and TTL times out, renew the resource by publishing a
                 new advertisement again with short TTL
Request Resource
Step 1: Send out a search advertisement for the requested resource on the JXTA network.
Step 2:
                 If <Response available>
                        Retrieve the resource from peer
                        cache resource
                        Publish cached resource
                If <Timeout>
                     Retrieve the resource from original server through HTTP
                     cache resource
                     Publish cached resource
               end if


Cache Time

The cache itself on the clients is valid only for a very short time determined by the server. (it is usually around 5 minutes) The idea behind this strategy is that people who are currently visiting the web page only will serve as a cache.

Dynamic Web Pages

P2P Bridge even works with dynamic web pages. In the case of dynamic web pages, P2P Bridge does not cache only the dynaimc content and caches the rest of the graphics and static content which takes up the bulk of the size.




Status of the project

I have completed the publishing part, the caching system and the proxy server. Thanks to  smart cache  project as I am using some code from it for the caching system. (smart cache is under the GNU License.)          

I am currently working on searching using JXTA network and having a stable network even when the advertisement has low TTL.


If you are a Java coder or a P2P hacker and would like to help this project, please DO contact me at

GanHawK (ganesh)

This page also does not describe the protocol in detail and it is just an overview. If you have any questions, comments, abuses or suggestions do mail me ! Logo