Download CS 6543 Computer Networks - Homework 2: Implementing a Decentralized Peer-to-Peer Network and more Assignments Computer Science in PDF only on Docsity! CS 6543 Computer Networks Spring 2009 Instructor Dr. Turgay Korkmaz Homework 2 Due date is Feb 13, 2009 (5:00pm) In this assignment, you will use sockets in C or Java (or any other language) to implement a simplified fully decentralized peer-to-peer network to share some resources (e.g., files) in the Internet. You will implement a single peer program that will be run on several times on the same or different computers. Each peer will be identified by its host-name and port-number (you can give port-number as a parameter). host-name> peer port-number After executing a peer application, 1. it should print out its own host-name and port number 2. it should ask user to enter a list of resources/files that are stored on this peer (to simplify things, you can just store the names within the program, there is no need to create actual files) 3. it should ask user to enter neighbor peers (their host-names and port-numbers) so that this peer can connect to others to create a peer-to-peer network. 4. then in a infinite loop, it waits for other peers or user to make a request a. other peers may initiate a connection to be neighbor, or send a query for a resource b. a user usually asks for a resource. If the peer does not have it, it should flood a query through the peer-to-peer network and download the resource from the peer that has it. You are asked to design and implement the necessary peer.c application and protocols for peer-to-peer communications. If needed, you can make other assumptions; but, the core of this assignment is to show that your peers are able to establish a peer-to-peer network and are able to find a resource in this network using flooding. When implementing your program, please include extra printf statements so that I can follow your protocol and how it works. GRADING (Total grade will be 100 points.) 1. (20 points) Documentation (e.g., protocol design (msg formats, order, actions)) 2. (50 points) Implementation (your source code and makefiles) 3. (30 points) Execution (give the output of your program for a few cases) Please put all your documentation, source, output files under a directory called LASTNAME-hw2, then ZIP this directory as a single file and submit it using WebCT. Please after submission, DO NOT change or delete your soft copies, we might execute them later together for grading. Page 1 of 1CS 6543 Computer Networks 1/30/2009http://www.cs.utsa.edu/~korkmaz/teaching/cs6543/assign/hw-02.htm