Speaker
Ms
Sofia Nygård
(Åbo Akademi University)
Description
The paper describes a lightweight implementation of a peer-to-peer protocol. The
implementation is intended as a testbed for ideas concerning the utilization of the
peer-to-peer paradigm. The protocol takes the Gnutella protocol as a starting
point, although the present implementation differs from the Gnutella protocol
regarding intent as well as routing solutions.
The protocol is implemented in Python since various data types and modules offered
by Python make it possible to limit the code to a manageable size. The GUI is
implemented with Tkinter.
The design has two substantial features. Firstly, the protocol is transaction-
based. As a consequence, the pong messages are no longer required since every
successfully transferred message, independent of type, is a sign that a node is
active. An adaptive ping algorithm further reduces the load on bandwidth. Secondly,
there is only one entry point to the router. The way in which the router
communicates with the GUI is symmetrical to the way in which it communicates with
the network. This means that the connections between the router and the GUI are
characterized by socket communication and protocol messages. This results in a
fairly independent user interface, which creates a basis for further utilization of
peer-to-peer systems.
Primary author
Ms
Sofia Nygård
(Åbo Akademi University)
Co-author
Mr
Nils Kullberg
(Åbo Akademi University)