logo Hurry, Grab up to 30% discount on the entire course
Order Now logo

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Eugene BaranowskiMathematics
(5/5)

900 Answers

Hire Me
expert
Robert NjueSocial sciences
(/5)

800 Answers

Hire Me
expert
Ray BadranEducation
(5/5)

888 Answers

Hire Me
expert
Max ManuelaMarketing
(5/5)

561 Answers

Hire Me
Computer Network
(5/5)

you and your friends are writing an essay together, but different parts of it, which you will later put together.

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

NB: Read the whole assignment first. Use your three weeks wisely.

 

1 Pitch

Picture this: you and your friends are writing an essay together, but different parts of it, which you will later put together. But how are you going to do this? You could help us to implement and later use a prototype of our app: TextTorrent. Its core functionality is simple: peer-to-peer exchange of text files, which allows collaboration seamlessly and efficiently without any of the usual headaches of file-sharing. Overall, TextTorrent has the potential to streamline teamwork in countless scenarios, from group projects to remote work to personal hobbies. So, are you up for the challenge?

 

2 Technical details

TextTorrent must rely on a tracker to register peers as well as their files. For instance, Figure 1 illustrates five peers and one tracker. Recall that the tracker does not store files but a table with the peers that do so. In Figure 1, the tracker knows that Peer A stores the file A1.txt, Peer B stores the file B3.txt, etc. Two or more peers can store the same file. A peer interacts with the tracker during three phases. Note that the second one may occur many times.

 

Phase 1: peer registration

1. A new peer connects to the tracker and starts accepting connections from other peers.

2. The peer sends the tracker the list of its files.

3. The tracker modifies the entries in the table corresponding to these files accord- ingly: if the file exists in the table, it adds the IP address of the peer to that entry; otherwise, it creates a new entry with the file’s name and the IP address of the peer.

 

Phase 2: file download

1. The peer asks the tracker for the list of available files.

2. Once the peer decides which file to download, it asks the tracker for a second peer that stores the file.

3. The first peer connects to the second and asks for the file.

4. If the download is successful, the first peer tells the tracker to update the corre- sponding entry with its IP address.

 

Phase 3: peer unregistration

1. The peer tells the tracker to remove its IP address from every entry in the table.

2. The peer disconnects from the tracker and stops accepting connections from other peers.

(5/5)
Attachments:

Related Questions

. The fundamental operations of create, read, update, and delete (CRUD) in either Python or Java

CS 340 Milestone One Guidelines and Rubric  Overview: For this assignment, you will implement the fundamental operations of create, read, update,

. Develop a program to emulate a purchase transaction at a retail store. This  program will have two classes, a LineItem class and a Transaction class

Retail Transaction Programming Project  Project Requirements:  Develop a program to emulate a purchase transaction at a retail store. This

. The following program contains five errors. Identify the errors and fix them

7COM1028   Secure Systems Programming   Referral Coursework: Secure

. Accepts the following from a user: Item Name Item Quantity Item Price Allows the user to create a file to store the sales receipt contents

Create a GUI program that:Accepts the following from a user:Item NameItem QuantityItem PriceAllows the user to create a file to store the sales receip

. The final project will encompass developing a web service using a software stack and implementing an industry-standard interface. Regardless of whether you choose to pursue application development goals as a pure developer or as a software engineer

CS 340 Final Project Guidelines and Rubric  Overview The final project will encompass developing a web service using a software stack and impleme