ABSTRACT

It is not a severe exaggeration to say that a P2P application is all about communications at the application level, which brings about the high degree of decentralization and autonomy. Indeed, by its nature, a P2P application is about voluntary high-level sharing of resources, in terms of data possessed, storage space, and bandwidth. Yet, on the flip side, such sharing can be realized only by efficiently communicating among the peers, with a lack of infrastructure support. Communications, in turn, can be effective only if we can somehow realize a well-designed network architecture at the application level [Schollmeier, 2002].