A lightweight framework for peer-to-peer programming | Journal of Computing Sciences in Colleges

Peer-to-peer systems (P2P) have become one of the most popular Internet applications in use today. Implementing a P2P protocol requires the developer to manage a number of issues related to socket handling (both from a server and client perspective), threads, and message passing (or alternate means of communication between nodes). These infrastructure-related issues are often independent of the algorithmic details of the protocol itself. While there are frameworks available that encapsulate these low-level details for developers, they may not be suitable for students in an introductory networking course because of the overhead of having to learn the interface of a full-featured library. This paper presents the development of a lightweight, pedagogical framework for implementing and experimenting with P2P protocols and applications, aimed especially at students in introductory networking courses.