Sie sind auf Seite 1von 3

Computer Networks (CSE 5344/4344)

Programing Assignment 3, Project B


Peer-to-Peer File Sharing

Problem Statement: Develop a peer to peer (P2P) file sharing software program wh
ich is used
to search for other connected computers (peers) on the network to locate desired
content.
Project Objective/Overview:

P2P networks are overlay networks, where nodes are end systems in the Internet t
hat maintain information about a set of other nodes (called neighbors) in the P2
P layer. P2P participants join or leave the P2P system frequently, hence, P2P ne
tworks are dynamic in nature. Some people download files and immediately disconn
ect without allowing others to obtain files from their system, which is called l
eeching.
The following features are to be implemented:
Establish a peer to peer connection between several nodes and make selected file
s available for sharing amongst peers. Each P2P overlay network should consist o
f a minimum 4 nodes in the network and share files of any format.
To locate the file, the software queries other computers that are connected to t
he Internet and running your file-sharing software. The result should be the lis
t of nodes in the network and the files that are available for download from eac
h node.
When the software finds a computer that has the file you want on its hard drive,
the download begins.
Others using the file-sharing software can obtain files they want from your comp
uter's hard drive.
Challenges:
1) Search operation that allows a peer to find a file on the network can be chal
lenging because nodes can disconnect the network or the desired file may be remo
ved. Your program should be able to gracefully recover from such scenarios.

2) Display should be somewhere near to the real-time, as with the BitTorrent P2P
application. This will require analysis and tuning of your program to achieve e
fficient operation.
Nature of Project, Tips for Success and Team Composition:
This project will require significant time and effort to conceptualize, design,
code, test and iterate through prototypes. It expected that it will require sev
eral weeks of effort from a typical team of 4 students. The earlier you start th
e better the resulting program will be.
Start by analyzing and understanding another commercial P2P program, such as Bit
Torrent. This will be a great opportunity to understand and perhaps improve on t
he capabilities of a commercial software program while giving you a more complet
e exposure to the protocols that we have studied in class.
Taking into account the complexity of this assignment, you must select a team of
no less than three (3) and no more than four (4) students in your section to wo
rk with on this project. All students on a team will receive the same grade for
this assignment, so work should apportioned accordingly.
If you have any questions about this assignment, please contact Sharad Velmajala
, 5344/4344-003 GTA, for clarification.
Expected deliverables:
1. Develop a peer to peer network using the Python programming language, i.e. cr
eate a network in which each system acts as a client as well as server.
2. Develop a user-friendly GUI which is used to display P2P network participants
, the content they have available for sharing, and to search for the desired fil
e on the network and then download it file if available.
3. When a peer joins or leaves the network, your program should update all exist
ing peers in the network.
Submission Details:
1) Select your team and submit names of teammates to your GTA by email (copy to
Professor O Dell) no later than Thursday, March 19, 2015.
2) Submit your completed project source code to your GTA by email no later than
Tuesday, April 21, 2015.
3) Include a brief write-up with your submission that discusses the highlights o
f your project, execution details and sample results that you have obtained duri
ng final testing.
4) Be prepared to demonstrate the operation of your application if requested.
5) Maximum credit cannot be achieved on this assignment unless your program oper
ates as specified and handles typical error conditions properly.

Das könnte Ihnen auch gefallen