Download Evolution of P2P file sharing

Document related concepts

Wireless security wikipedia , lookup

Airborne Networking wikipedia , lookup

Net bias wikipedia , lookup

AppleTalk wikipedia , lookup

Internet protocol suite wikipedia , lookup

Server Message Block wikipedia , lookup

Dynamic Host Configuration Protocol wikipedia , lookup

Piggybacking (Internet access) wikipedia , lookup

Deep packet inspection wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

Remote Desktop Services wikipedia , lookup

Zero-configuration networking wikipedia , lookup

Distributed firewall wikipedia , lookup

Lag wikipedia , lookup

Usenet wikipedia , lookup

Peer-to-peer wikipedia , lookup

Transcript
Evolution of P2P file sharing
Dmitri Moltchanov
Department of Communications Engineering
Tampere University of Technology
[email protected]
September 10, 2014
Based on slides provided by R. Dunaytsev http://utopia.duth.gr/rdunayts/
Outline
1
ARPANET
2
Usenet
3
World Wide Web
4
Napster
5
Gnutella
Gnutella version 0.4
Gnutella version 0.6
Gnutella2
6
FastTrack
7
eDonkey2000
8
BitTorrent
9
Learning outcomes
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
2 / 59
Outline
1
ARPANET
2
Usenet
3
World Wide Web
4
Napster
5
Gnutella
Gnutella version 0.4
Gnutella version 0.6
Gnutella2
6
FastTrack
7
eDonkey2000
8
BitTorrent
9
Learning outcomes
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
3 / 59
ARPANET
The goal of the original ARPANET :
share computing resources around the USA
Initially, the ARPANET: 4 independent hosts with equal status:
Stanford Research Institute (SRI)
University of Utah
University of California, Los Angeles (UCLA)
University of California, Santa Barbara (UCSB)
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
4 / 59
ARPANET: some observations
Observations from the early years:
The early Internet client/server applications
telnet: log-in and use resources of a remote compute server
FTP: send and receive files from a file server
However, notice the following
the whole usage pattern is symmetric
every host could connect to any other host
servers acted as clients as well
What’s important to remember:
the Internet started as a P2P system
later on, it has become more restricted to client/server
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
5 / 59
Outline
1
ARPANET
2
Usenet
3
World Wide Web
4
Napster
5
Gnutella
Gnutella version 0.4
Gnutella version 0.6
Gnutella2
6
FastTrack
7
eDonkey2000
8
BitTorrent
9
Learning outcomes
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
6 / 59
Usenet: basic info
What is that?
Usenet (USEr + NETwork): a system for distributing messages
messages are posted to newsgroups
any user can access the messages, read, and respond to them
Developing and goals:
T. Truscott and J. Ellis, U. of North Carolina, Duke University, 1979
goal: use Unix to write and read networked messages
Notice the key differences:
vs. Web forums: no central server, nor central system owner
vs. e-mail: Usenet is for public distribution
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
7 / 59
Usenet: basic operations
Usenet communication consists of 4 basic steps :
1
2
3
4
Article composition: a user creates a Usenet article
Posting: the user submits the article to a local Usenet server
Propagation: transferring to remote Usenet servers
Article access: reading the article
Poster
Client
Reader
Local
server
Usenet backbone peers
client / server client / server
interaction
interaction
Dmitri Moltchanov (TUT)
P2P
Local
server
Client
client / server client / server
interaction
interaction
ELT-53206, Lecture 3
September 10, 2014
8 / 59
Usenet: networking
Originally: messages over P2P network known as UUCPnet
Later on: some nodes are better connected – the Usenet backbone
How it works nowadays:
backbone servers collect articles from local ones
transfer to other backbone servers in P2P fashion
distribute among other local servers
However, Usenet itself:
typical client/server APP
simple clients
more powerful servers
Usenet: client/server and P2P are not mutually exclusive
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
9 / 59
Outline
1
ARPANET
2
Usenet
3
World Wide Web
4
Napster
5
Gnutella
Gnutella version 0.4
Gnutella version 0.6
Gnutella2
6
FastTrack
7
eDonkey2000
8
BitTorrent
9
Learning outcomes
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
10 / 59
WWW: basic facts
Historic notes:
06.08.91, summary of the WWW project was posted on Usenet
considered as the debut of the WWW
groups.google.com/group/alt.hypertext/msg/395f282a67a1916c
How it happened?
The driving force: disseminate information easily for everyone
Result: a wave of ordinary people began to use the Internet
Note: WWW is based on the client/server model using HTTP
Important consequences of WWW:
Internet became a mass media!!!
up to WWW: equal sharing of information over the Internet
after WWW: the downstream paradigm, like TV and newspapers
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
11 / 59
WWW: implications
WWW drastically affected the Internet
the way we think about it
more importantly, technologies
WWW technological implications
asymmetric access
firewalls
network address translators (partially)
dynamic IP (partially).
Result: the network is well-suited for WWW or similar service.
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
12 / 59
WWW: bandwidth asymmetry
Bandwidth asymmetry
more downlink (server to client) than uplink (client to server)
affected access technologies...
Example: ADSL2+ (ITU G.992.5, 2003):
downstream rate = 24 Mbit/s
upstream rate = 1 Mbit/s
Asymmetric access: places severe limitations
symmetric service became almost ”prohibited”
bidirectional traffic: TCP performance degradation
for more information, see RFC 3449
Downlink
Client
Dmitri Moltchanov (TUT)
Uplink
ELT-53206, Lecture 3
Server
September 10, 2014
13 / 59
WWW: the need for firewalls
The early days of the Internet:
any host can access any other host
no harm done: pro were using them
WWW made the Internet a public place:
the need to secure the network protecting hosts from unlimited access
firewalls is a tool to control access to subnetworks networks and hosts
What Firewalls do:
stand in-between the internal network and the Internet outside
choose which traffic to let through and which to deny
Early Internet
Dmitri Moltchanov (TUT)
These days
ELT-53206, Lecture 3
September 10, 2014
14 / 59
WWW: features of firewalls
A typical firewall do the following:
allows outgoing connections to any external host
prevents incoming connections from some/all external hosts
A host protected in this way cannot easily function as server
Outgoing connections may be restricted to certain applications
we block traffic to certain ports at the firewall
e.g., only HTTP (ports 80 and 8080) and FTP (ports 20 and 21)
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
15 / 59
WWW: additional implications
IP address assignment:
the early days: static assignment
after WWW ( DHCP ): dynamic due to too many users
result: many hosts on the Internet are not easily reachable
Usage of Network Address Translation (NAT)
allows the use private IP addresses within a local network
result: not only the host address is dynamic, it is not even visible!
Consequence: huge problems for something different than WWW
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
16 / 59
Outline
1
ARPANET
2
Usenet
3
World Wide Web
4
Napster
5
Gnutella
Gnutella version 0.4
Gnutella version 0.6
Gnutella2
6
FastTrack
7
eDonkey2000
8
BitTorrent
9
Learning outcomes
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
17 / 59
Napster: shifting back to P2P
Some important notes:
the driving force: frustration...
digital music files were not easy to find back then
no intentions to make history
creative way of thinking in WWW era
Developer: Shawn Fanning, 18-year-old student, 1999
Functionality: share mp3 files
A year later, in 2000, Napster had 20 million users
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
18 / 59
Napster: basic functionality
Napster is a hybrid P2P system:
peers (Napster clients) and a central server
searching via central index containing location of all shared files
the actual file transfer occurs between peers
Server
y
/r
er
ep
ly
qu
ly
qu
ep
er
y
/r
client / server
interaction
mp3 download
Peer
Peer
P2P
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
19 / 59
Napster: logic
Napster worked as follows:
1
2
3
4
after log-in: list of shared files sent to Napster server
server maintains an index of files of users who are currently on-line
index is automatically updated when users log-on and log-off
searching for content
a client sends the query to the server
query: pattern for search in filenames
reply: names of files, IP addresses and port numbers
5
6
a user decides from which peer to download the files
file download is performed directly between the peers
Napster ran on top of TCP for client/server and P2P communications
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
20 / 59
Napster: parsed server response
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
21 / 59
Napster: solving firewalls
Normal operation:
downloader: sends a DOWNLOAD REQUEST to the server
server: answers with a DOWNLOAD ACK: IP address+port:
downloader establish TCP connection with uploader
may fail due to uploader behind firewall
If the uploader is behind firewall:
can be explicitly indicated by a user
can be understood by a server
port 0 is indicated in DOWNLOAD ACK
When the uploader is behind firewall
downloader: sends a DOWNLOAD REQUEST to the server
server: answers with a DOWNLOAD ACK: IP address+port 0:
downloader: ALTERNATE DOWNLOAD REQUEST to the server
server: ALTERNATE DOWNLOAD ACK to the uploader
uploader establish TCP connection to the downloader.
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
22 / 59
Napster: some facts
Napster focused exclusively on mp3-encoded music files
Only one client implementation, called Napster in 1999
Windows only for one year
in 2000 Black Hole Media: Macintosh client called Macster
Macster was later used by Napster as the Napster client for Mac
The Napster protocol is a closed-source protocol
i.e., no one knows for sure how searching and transfer is done
How do we know details?
Reverse engineering
Project OpenNap: opennap.sourceforge.net
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
23 / 59
Napster: shutting it down
The reason for Napster’s failure was not technical, but legal:
20 millions of user in 2000
Recording Industry Association of America (RIAA)
ban the exchange of copyrighted material and/or
shut down the network
Napster deployed various filters in 2000
Napster was forced to shut down in 2001
A bit more
2002: Napster’s brand and logos were purchased by Roxio
online music service as Napster 2.0
2008: Napster, Inc. was purchased by Best Buy
music.napster.com/napsterhomemain.htm
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
24 / 59
Napster: shortcomings
The most important are:
Scalability: reason - central index
one server was still sufficient for 20M
what’s about 960M ‘(like Facebook now)?
Reliability: reason - central index
vulnerable to DoS attacks
vulnerable to legal prosecution
Security: encryption/description
authenticity of mp3 files was based on file names only
not fully encrypted (like Skype now)
all these are easy to solve though...
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
25 / 59
Napster: summary
Developer(s) – Shawn Fanning
Launched – 1999
Protocol – proprietary
Clients – proprietary (Napster)
Architecture – hybrid P2P
Search facility – central server/central index
Shared content – mp3 only
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
26 / 59
Outline
1
ARPANET
2
Usenet
3
World Wide Web
4
Napster
5
Gnutella
Gnutella version 0.4
Gnutella version 0.6
Gnutella2
6
FastTrack
7
eDonkey2000
8
BitTorrent
9
Learning outcomes
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
27 / 59
Gnutella v0.4
Aims of Gnutella
sharing all types of files
P2P system without any central point of control
decentralized and autonomous, robust and hard to shut down
the latter one was extremely important
Important facts:
developed by J. Frankel and T. Pepper, employees of Nullsoft, in 2000
source code and protocol specification are both open
more than 20 clients from different vendors
Decentralized systems: search strategy is a critical part!
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
28 / 59
Gnutella v0.4: search strategy
Simple and similar to the strategy used by humans
if you want a particular thing, you ask one of your friends nearby
if he/she does not have it, he can ask his friends
this request is conveyed further
a person having this thing is found
the information about that person is routed to you
In this query flooding we have to ensure that:
everyone is eager to help
the thing you’re looking for actually exists
source routing is possible
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
29 / 59
Gnutella v0.4: Query propagation
Query?
TTL = 7
TTL = 6
TTL = 5
TTL = 4
TTL = 3
TTL = 2
TTL = 1
QueryHit!
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
30 / 59
Gnutella v0.4: controlled flooding
What we need to ensure
flooding zone is somehow limited (TTL)
nodes do not sent the same Query multiple times (???)
Rules to avoid redundant replications:
facility: 128-bit ID associated with each Query, Ping, QueryHit message
all relaying nodes must remember it
if exactly this is received again, it is not forwarded
Additional rules/needs
forwarding messages to all neighbors except for the sender
source routing: Pong, QueryHit, Push take reverse paths
decrementing TTL to avoid overflooding
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
31 / 59
Gnutella v0.4: messages
Gnutella v0.4 uses the following messages:
Ping: used to discover peers on the network
a peer receiving Ping is expected to respond with a Pong
includes: IP address and port number
Pong: the response to a Ping message
includes: IP address and port number
includes: number of files and Kb of data that it shares
Query: used to search files on the network
contains the search query
responded with QueryHit if a match is found locally
QueryHit: the response to a Query descriptor
contains data to establish a connection
routed back to the searching node.
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
32 / 59
Gnutella v0.4: solving the firewalls
Recall: a node behind a firewall
may not be able to receive incoming connections
may still be able to establish outgoing ones
Push message: the response to a QueryHit
response to QueryHit message
when the originator of QueryHit does not support connections
Peers proceed as follows:
Query (P1) - QueryHit (P2) exchange
normal operation: TCP Syn (P1) to P2
avoiding firewall at P2: Push (P1) to P2
TCP Syn (P2) to P1
TCP Data (P2) to P1
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
33 / 59
Gnutella v0.4: download via HTTP
The Gnutella protocol just facilitates the search and find capabilities
The file download protocol is based on HTTP (on top of TCP)
Ping
Query
Push
Push
Query
Hit
Hit
Hit
Ping
Query
Ping
Push
Ping
Pong
Ping / Pong routing
Dmitri Moltchanov (TUT)
Download
(HTTP)
Query / QueryHit routing
ELT-53206, Lecture 3
Download
(HTTP)
Push routing
September 10, 2014
34 / 59
Gnutella v0.4: performance issues
Performance and scalability concerns of Gnutella v0.4:
Peers with low-speed connections
these peers are usually scattered all over the network
get overloaded with queries until they become unavailable
result: the network is highly fragmented
Signaling traffic
ping/pong takes too much
prevents delivery of the other important messages
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
35 / 59
Gnutella v0.4: performance issues
TR-2001-26: ”Peer-to-peer architecture case study: Gnutella
network”
Gnutella traffic (in bytes) by message types, November 2000:
Query messages (i.e., user-generated traffic) ≈ 35%
Ping/Pong messages (i.e., overhead traffic) ≈ 55%
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
36 / 59
Gnutella v0.4: summary
Developer(s) – Justin Frankel and Tom Pepper
Launched – 2000
Protocol – open source
Clients – freeware and proprietary (Gnotella, Mactella, XoloX, . . . )
Architecture – pure P2P
Search facility – query flooding
Shared content – any
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
37 / 59
Gnutella v0.6
The biggest concern in v0.4 is the overhead
Gnutella v0.6 in 2001 addressed some of them
What was the idea?
ultrapeers and normal peers
in fact, a hierarchial topology
ultrapeers store info about connected leafs
info: files they share + IP addresses + ports
TR-2001-26 ”Peer-to-peer architecture case study: Gnutella network”
Gnutella traffic (in bytes) by descriptor types, June 2001:
query messages (i.e., user-generated traffic) ≈ 92%
ping/pong messages (i.e., overhead traffic) ≈ 8%
compare with the previous slide
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
38 / 59
Gnutella v0.6: leafs and ultrapeer functionalities
2 modes of Gnutella v0.6 peers :
Leaf
Ultrapeer
Functionalities:
a peer can switch to/from ultrapeer mode
a peer cannot be in both modes at the same time
leafs maintain only a single connection to a ultrapeer
an ultrapeer maintain 10-100 connections with leafs
an ultrapeer maintain ∼10 connections with leafs
How leafs info is used at ultrapeers
recall: file names + IP + port
forwarding Query messages
i.e., if a leaf shares nothing no Query is sent
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
39 / 59
Gnutella v0.6: ultrapeer network
an ultrapeer network
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
40 / 59
Gnutella v0.6: summary
Developer(s) – Justin Frankel and Tom Pepper
Launched – 2001
Protocol – open source
Clients – freeware and proprietary (LimeWire, gtk-gnutella, . . . )
Architecture – hybrid P2P
Search facility – ultrapeers / query flooding
Shared content – any
Notice performance gains of v0.6 vs v0.4
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
41 / 59
Gnutella 2: overview
Gnutella2 :
AKA G2 or Mike’s Protocol, MP
P2P protocol developed by Michael Stokes
offshoot of the Gnutella protocol
released in 2002
G2 divides nodes into 2 groups: leafs and hubs
leafs maintain 1 or 2 connections to hubs
hubs accept 100s of leaves and many connections to other hubs
hubs index what files a leaf has using a Query Routing Table
Gnutella v0.6 and G2 are fairly similar
Compatibility notice:
G2 is not supported by many Gnutella clients
many G2 clients can connect to the Gnutella network
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
42 / 59
Gnutella 2: summary
Developer(s) – Michael Stokes
Launched – 2002
Protocol – open source
Clients – freeware and proprietary (Shareaza, Morpheus, . . . )
Architecture – hybrid P2P
Search facility – hubs / query flooding
Shared content – music and video
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
43 / 59
Outline
1
ARPANET
2
Usenet
3
World Wide Web
4
Napster
5
Gnutella
Gnutella version 0.4
Gnutella version 0.6
Gnutella2
6
FastTrack
7
eDonkey2000
8
BitTorrent
9
Learning outcomes
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
44 / 59
FastTrack: basic info
Very quickly it turned out that hierarchical P2P topologies scale
remarkably well and have been, therefore, adopted by a number of
popular P2P file sharing systems
FastTrack is a P2P protocol developed by Niklas Zennström and
Janus Friis in 2001
In 2003, FastTrack became very popular, having at one point more
users than that Napster on its peak
Similar to Gnutella v0.6, highly connected peers with sufficient
resources, called supernodes, perform the search on behalf of more
resource constraint regular peers
But in contrast to Gnutella, FastTrack is proprietary software
In 2003, an open-source alternative, called OpenFT, was developed
by the giFT project through reverse engineering
The giFT project: gift.sourceforge.net
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
45 / 59
FastTrack: supernode network
Supernode network
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
46 / 59
FastTrack: bootstrapping
In order to ensure the constant availability of the network, there exists
a need for dedicated peers that will monitor and keep track of the
network
Such peers are called bootstrapping nodes
When a peer joins the network, it will first contact the bootstrapping
node
The bootstrapping node will then determine if that particular peer
qualifies to be a supernode
If it does, then it will be provided with some IP addresses of other
supernodes
Otherwise, the bootstrapping node will respond by providing the IP
address of one of the supernodes
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
47 / 59
FastTrack: cooperation mechanism
The P2P model heavily depends on the concept of cooperation
See ”Free Riding on Gnutella” by E. Adar and B. Huberman:
∼ 50% of all files for sharing are stored on only 1% of peers
∼ 70% of Gnutella users share no files (they are referred to as
freeloaders or free riders)
Some FastTrack clients, such as Kazaa, used a method known as
the reputation system , where the reputation of a certain user is
reflected by their participation level
E.g., in Kazaa if you have a high participation level, you will get
priority over people with a lower participation level when you
download files
You can increase your participation level by uploading files
When you download files, your participation level will go down
When your participation level is low, downloading will be slower
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
48 / 59
FastTrack: shutting down
Sharing copyrighted content using the original FastTrack protocol:
Kazaa
Owned: Consumer Empowerment BV, Sharman Networks, Ltd.
Lifetime: 2001 - 2005 (reason - lawsuits from copyright owners)
Today: legal music download service, www.kazaa.com
Grokster
Owned: Grokster, Ltd.
Lifetime: 2001 - 2005 (reason - lawsuits from copyright owners)
Today: closed, www.grokster.com
iMesh
Owned: iMesh, Inc.
Lifetime: 2001 - 2005 (reason - lawsuits from copyright owners)
Today: legal music download service, www.imesh.com
Morpheus
Owned: StreamCast Networks, Inc.
Lifetime: 2001 - 2002 (reason - failed to pay FastTrack license fees)
Today: closed, www.morpheus.com
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
49 / 59
FastTrack: summary
Developer(s) – Niklas Zennström and Janus Friis
Launched – 2001
Protocol – proprietary (FastTrack)
Clients – proprietary (Kazaa, Grokster, iMesh, Morpheus)
Architecture – hybrid P2P
Search facility – supernodes / query flooding
Shared content – any
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
50 / 59
Outline
1
ARPANET
2
Usenet
3
World Wide Web
4
Napster
5
Gnutella
Gnutella version 0.4
Gnutella version 0.6
Gnutella2
6
FastTrack
7
eDonkey2000
8
BitTorrent
9
Learning outcomes
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
51 / 59
eDonkey2000: performance improvement
The next problem to solve is how to increase the throughput of P2P
networks
With the size of the files being transferred, it might take a long time
before a new peer would be able to share a new file it is acquiring
A new approach, called swarming , cleverly sidestepped this issue:
If a file can be downloaded in small pieces (aka chunks) and then
immediately be shared by new peers, this bidirectional transfer reduces
the load on peers that have the complete file, thereby distributing not
only the file but its access as well
iMesh was the first company to introduce swarming
Nowadays, swarming is a must for P2P file sharing
E.g., eDonkey2000, BitTorrent
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
52 / 59
eDonkey2000: swarming
While every peer has both upload and download capabilities, without
swarming the upload bandwidth goes wasted until that peer has 100%
of the file
With swarming, all peers work bidirectionally with each other
But if the originator leaves the swarm too early, no one will be able to
use the file
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
53 / 59
eDonkey2000: summary
Developer(s) – Jed McCaleb
Launched – 2000
Protocol – server part is proprietary (the original eD2k by
MetaMachine and the alternative Lugdunum eserver)
Clients – freeware (eMule, Shareaza, . . . )
Architecture – hybrid P2P
Search facility – servers / index
Shared content – any
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
54 / 59
Outline
1
ARPANET
2
Usenet
3
World Wide Web
4
Napster
5
Gnutella
Gnutella version 0.4
Gnutella version 0.6
Gnutella2
6
FastTrack
7
eDonkey2000
8
BitTorrent
9
Learning outcomes
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
55 / 59
BitTorrent: basic info
BitTorrent was developed by Bram Cohen in 2001
Nowadays, it is maintained by Cohen’s company – BitTorrent, Inc.
The BitTorrent network is huge
E.g., according to isohunt.com (September 15, 2010):
Peers: 23.53M (+3.1M over the last 5 months)
Shared files: 134.05M (+15.68M)
The total amount of shared content: 11,322.96 TB (+715.70 TB)
Search is up to users
Efficient cooperation mechanisms
Swarming functionality
Extensions for trackerless operations
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
56 / 59
BitTorrent: summary
Developer(s) – Bram Cohen
Launched – 2001
Protocol – open source (BitTorrent)
Clients – freeware (µTorrent, BitComet, . . . )
Architecture – hybrid P2P
Search facility – trackers / torrents
Shared content – any
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
57 / 59
Outline
1
ARPANET
2
Usenet
3
World Wide Web
4
Napster
5
Gnutella
Gnutella version 0.4
Gnutella version 0.6
Gnutella2
6
FastTrack
7
eDonkey2000
8
BitTorrent
9
Learning outcomes
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
58 / 59
Learning Outcomes
Things to know:
Basics about USENET
Restrictions WWW imposed
How Napster works
How Gnutella works
New features introduced in FadtTrack/eDonkey/BitTorrent
Be ready to outline the evolution of P2P file sharing
Dmitri Moltchanov (TUT)
ELT-53206, Lecture 3
September 10, 2014
59 / 59