Peer to Peer File Sharing Flashcards
Before the web, how did people share files? How did these deal with scalability issues and bandwidth demands?
FTP, Gopher servers and Bulletin board systems.
These run mirrors of their content, where material uploaded to the main archive was copied periodically to other servers.
What was Napster used for? How did it cause problems?
sharing music files. Caused networks to be overloaded in college dorms for example
How did Napster work?
Used the idea of an overlay network- a virtual network that hides the topology of the actual network. Instead represents the connections between nodes at an application level.
Central server acted as search engine but songs came from users machines.
What can be partially blamed for Napster’s downfall?
Its partially centralised architecture. The central server was an easy target for lawyers.
How was Gnutella different from Napster?
A public protocol
Describe the Gnutella network
Consists only of peers called servents. All nodes considered equal.
To join, a peer must have the address of a peer currently in the network.
Queries are flooded around the network, which is highly inefficient.
How did KaZaa address problems in Gnutella?
Targeted inefficiency. Introduced two types of nodes run by the same user on the one machine.
Two tier hierarchy: top level has only super nodes. Lower level ordinary nodes
Describe ordinary and super nodes in KaZaa
Ordinary nodes promoted to super nodes if they demonstrated enough bandwidth and uptime and can be downgraded.
Each ordinary node is associated with a super node that acts like its server. Now a peer requesting a file only has to contact its super node and if it is not available, it forwards the request only to super nodes.
Which of Gnutella or KaZaa was proprietary
KaZaa
Second Generation takes away the centralised server. What 2 difficulties does this cause?
Finding the thing in the first place- a launch point
Searching- no one bit knows all the answers
Bit Torrent is a mechanism for? How did it evolve?
Sharing large files efficiently by distributing it across a system
Idea -> protocol -> reference implementation -> open source software and protocol
How does bitTorrent work?
Files are shared from an initial seed, uploading the file to an initial down loader. From there any down loaders also turn into seeds. This reduces the chance of network congestion by spreading the load
Negative aspects of bit Torrent?
Slower for small files. Less convenient for inexperienced users.
File creator doesn’t have control over the file.
Download speeds depend on number of peers downloading, peers uploading and speeds of seeds.
What is a leecher (bit torrent)? How can this be avoided?
Intentionally throttle upload speeds to fully download a file then close of their torrent so they don’t help others.
Avoid: offer money for seeds
What is in a torrent descriptor? How does it make BitTorrent different?
A cryptographic hash that uniquely identifies the file being shared. Allows a client to ask the network whether any peers are hosting all or part of the file without caring about its content.