File-Sharing: Getting a File from One Person (Machine) to Another

Can use client/server:

More details about HTTP and FTP

Peer-To-Peer (P2P) Networks for File-Sharing

In this model, files are distributed among the peers themselves, without relying on a central sever. Each peer acts as both a consumer and a contributor. They can download and upload files to other peers within the network. E.g: Kazaa, Napster, Gnutella and Direct Connect

Compared to the more common server-client solution, a peer-to-peer approach has several advantages including increased robustness and resource providing, such as bandwidth, storage space and computing power, by peers.

Problem with Traditional P2P networks

Bit Torrent

Basics of original BitTorrent (BT) protocol:

In the actual download, peers request blocks: pieces of pieces.

What incentivizes users to upload (UL) rather than just download(DL)ing?

This method of incentivizing peers is part of what allowed P2P file-sharing to take off.

Lingering problem: tracker is central point of failure.

Most BT clients today are “trackerless”, and use Distributed Hash Tables (DHTs) instead.

Architecture

BitTorrent in its original form matches the hybrid peer-to-peer concept.

It’s all about the torrent file, the centralized tracker and the associated swarm of peers.

The BitTorrent architecture normally consists of the following entities:

image

Torrent file

Tracker

image

What’s “seeding”?

Seeding is the act of uploading to a torrent data stream. As a key part of the technology, seeding is what allows for data redundancy when other seeders go offline, as well as a boost to overall throughput/data speeds when other peers want to download a file.

What’s being a “peer”?

A peer is anyone connected to a torrent file, and downloading or uploading data to the collective network.

image

Ref