The current state of anonymous file-sharing - Marc's Blog
The current state of anonymous file-sharing - Marc's Blog
The current state of anonymous file-sharing - Marc's Blog
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
4.3.4 Downloading<br />
<strong>The</strong> downloading process itself is based on the Multisource File Transfer Protocol (MFTP)<br />
and has slight differences between the different clients on the network. I will not discuss<br />
the handshake procedure and other protocol specific details, but rather the things that<br />
make the protocol interesting when compared to its competitors.<br />
<strong>The</strong> protocol has the concept <strong>of</strong> an upload queue which clients have to wait in when<br />
requesting a chunk <strong>of</strong> data and other transfers are already in progress.<br />
Something else noteworthy is the possibility to share metadata about a given <strong>file</strong> within<br />
the network (such as: this <strong>file</strong> is good, this <strong>file</strong> is corrupted, this <strong>file</strong> isn’t what the name<br />
may indicate); in this case, the <strong>file</strong>s are identified with their ed2k hash numbers rather<br />
than their <strong>file</strong>names (which might vary between nodes).<br />
<strong>The</strong>re are several unique forks <strong>of</strong> the protocol:<br />
eDonkey2000 implemented a feature called "hording" <strong>of</strong> sources. This allows the user<br />
to define one download which has top priority. Several nodes which have set the<br />
same <strong>file</strong> as a top priority one will try to maximize the upload between each other<br />
and e.g. skip waiting queues.<br />
eMule uses a credit system to reward users that maintained a positive upload/download<br />
ratio towards the client in question. This will shorten the time a client has to wait<br />
in the upload queue.<br />
xMule has extended the credit system to help in the transfer <strong>of</strong> rare <strong>file</strong>s<br />
4.4 Gnutella<br />
<strong>The</strong> Gnutella Protocol is one <strong>of</strong> the most widespread Peer to Peer <strong>file</strong>-<strong>sharing</strong> protocols.<br />
It is implemented in many clients such as Frostwire/Limewire, Bearshare, Shareaza,<br />
Phex, MLDonkey and others. <strong>The</strong> development history is kind <strong>of</strong> special. It was devel-<br />
oped by Nulls<strong>of</strong>t (the makers <strong>of</strong> the popular MP3 Player Winamp) and acquisitioned<br />
by AOL. After the binary version <strong>of</strong> the application was available for only one day,<br />
AOL stopped the distribution due to legal concerns. <strong>The</strong>se concerns also prohibited the<br />
planned release <strong>of</strong> the source code. Luckily for the open-source community, the binary<br />
version <strong>of</strong> the application had been downloaded thousands <strong>of</strong> times and allowed the pro-<br />
tocol to be reverse engineered.<br />
Gnutella is part <strong>of</strong> the second big generation <strong>of</strong> decentralized peer to peer applications.<br />
<strong>The</strong> gnutella network is based on a "Friend <strong>of</strong> a Friend" principle. This principle is<br />
17