Ed2k URI scheme
Encyclopedia
In computing, eD2k links (ed2k://) are hyperlink
Hyperlink
In computing, a hyperlink is a reference to data that the reader can directly follow, or that is followed automatically. A hyperlink points to a whole document or to a specific element within a document. Hypertext is text with hyperlinks...

s used to denote files stored on computers connected to the eDonkey
EDonkey network
The eDonkey network is a decentralized, mostly server-based, peer-to-peer file sharing network best suited to share big files among users, and to provide long term availability of files...

 filesharing P2P network.

General

Many programs, such as eMule
EMule
eMule is a free peer-to-peer file sharing application for Microsoft Windows. Started in May 2002 as an alternative to eDonkey2000, eMule now connects to both the eDonkey network and the Kad network...

, MLDonkey
MLDonkey
MLDonkey is an open source, multi-protocol, peer-to-peer file sharing application that runs as a back-end server application on many platforms. It can be controlled through a user interface provided by one of many separate front-ends, including a Web interface, telnet interface and over a dozen...

 and the original eDonkey2000
EDonkey2000
eDonkey2000 was a peer-to-peer file sharing application developed by US company MetaMachine, using the Multisource File Transfer Protocol...

 client by MetaMachine, which introduced the link type, as well as others using the eDonkey file sharing protocol, can be used to manage files stored in the filesharing network.

eD2k links allow a file to be identified from a link in a web browser and to be downloaded thereafter by a client like eMule, Shareaza
Shareaza
Shareaza is a peer-to-peer file sharing client running under Microsoft Windows which supports the gnutella, Gnutella2 , eDonkey, BitTorrent, FTP, HTTP and HTTPS network protocols and handles magnet links, ed2k links, and the now deprecated gnutella and Piolet links...

 or any other compatible software. This linking feature was one of the first URI
Uniform Resource Identifier
In computing, a uniform resource identifier is a string of characters used to identify a name or a resource on the Internet. Such identification enables interaction with representations of the resource over a network using specific protocols...

s to be introduced in peer-to-peer
Peer-to-peer
Peer-to-peer computing or networking is a distributed application architecture that partitions tasks or workloads among peers. Peers are equally privileged, equipotent participants in the application...

 file sharing, and had a vast effect on the development of the eDonkey network, as it allowed external link sites to provide verified content within the network. Nowadays, so-called Magnet links have replaced eD2k:// links in practice. They serve a similar role, but are not limited to the eD2k hash and can contain other hashes such as SHA-1 or MD5
MD5
The MD5 Message-Digest Algorithm is a widely used cryptographic hash function that produces a 128-bit hash value. Specified in RFC 1321, MD5 has been employed in a wide variety of security applications, and is also commonly used to check data integrity...

 for example, which makes it possible to use these links to point to files in several networks (as well as in BitTorrent) at once.

eD2k links include file hashes, as these hashes can be used as a unique identifier
Unique identifier
With reference to a given set of objects, a unique identifier is any identifier which is guaranteed to be unique among all identifiers used for those objects and for a specific purpose...

 for files within the network, so even if the linked-to file has a different name on two computers within the network, the file can be found on both of them, and file chunks can be obtained from both sources. This is done by using a hash function
Hash function
A hash function is any algorithm or subroutine that maps large data sets to smaller data sets, called keys. For example, a single integer can serve as an index to an array...

 on the file to calculate its checksum, depending only from the file content, not from its name.

Like other URI protocols, web browsers can be configured to automatically handle ed2k URIs. After installing an eD2k client
Comparison of eDonkey software
The following tables compare general and technical information for a number of available applications supporting the eDonkey network.- General :- Features :...

, the ed2k:// protocol is optionally registered so that clicking on it in the browser automatically starts the download or asks whether the user wants to start downloading respectively.

File link format

File links are preceded with the "file" token, which indicates that this is a file link, as opposed to a server, serverlist, nodelist or firend link. The typical eD2k file link also includes the filename
Filename
The filename is metadata about a file; a string used to uniquely identify a file stored on the file system. Different file systems impose different restrictions on length and allowed characters on filenames.A filename includes one or more of these components:...

 and the filesize. An example (a link to the 15Mb Purist Edit trailer) is provided below:

ed2k://|file|The_Two_Towers-The_Purist_Edit-Trailer.avi|14997504|965c013e991ee246d63d45ea71954c4d|/

eD2k links can also include a reference to the IP address and port of specific clients that are known to share the linked-to file. This is done by adding a list of sources after the main part of the link, like shown in the following example:

ed2k://|file|The_Two_Towers-The_Purist_Edit-Trailer.avi|14997504|965c013e991ee246d63d45ea71954c4d|/|sources,202.89.123.6:4662|/

On eMule, the link often contains also an AICH top hash
Hash tree
In cryptography and computer science Hash trees or Merkle trees are a type of data structure which contains a tree of summary information about a larger piece of data – for instance a file – used to verify its contents. Hash trees are a combination of hash lists and hash chaining, which in turn are...

 |h=H52BRVWPBBTAED5NXQDH2RJDDAKRUWST| to help recover the file in case of corruption during file transfer.

eD2k hash algorithm

The eD2k hash function is a root hash
Hash list
In computer science, a hash list is typically a list of hashes of the data blocks in a file or set of files. Lists of hashes are used for many different purposes, such as fast table lookup and distributed databases...

 of a list of MD4
MD4
The MD4 Message-Digest Algorithm is a cryptographic hash function developed by Ronald Rivest in 1990. The digest length is 128 bits. The algorithm has influenced later designs, such as the MD5, SHA-1 and RIPEMD algorithms....

 hashes
Hash function
A hash function is any algorithm or subroutine that maps large data sets to smaller data sets, called keys. For example, a single integer can serve as an index to an array...

, and gives a different result than simply MD4:

The file data is divided into full chunks of 9728000 bytes plus a remainder chunk, and a separate 128-bit MD4 checksum is computed for each. If the file length is an exact multiple of 9500 KiB, the remainder zero size chunk is still used at the end of the hash list.
The eD2k hash is computed by concatenating the chunks' MD4 checksums in order and hashing the result using MD4. Although, if the file is composed of a single non-full chunk, its MD4 hash is used with no further modifications.

This method of hashing allows the recipient to verify that a hash list corresponds to the original eD2k file hash, without the need to have the data blocks.

http://mldonkey.sourceforge.net/Ed2k-hash 1 January 2006, at 01:01
There's some ambiguity for files whose size is a multiple of chunk size; Old versions of the ed2k_hash tool computed file hashes with an additionnal 0-byte chunk at the end. That was fixed in recent versions of the tool.

Server links

A server link is a reference to an eDonkey2000 server; clicking on such a link typically adds it to the server list. Server links are indicated by the server token at the beginning of the link and have the following format:

ed2k://|server|IP|PORT|/
  • IP —> IP of the server to connect to.
  • PORT —> Port where the server is listening for incoming eD2k connections


Example:

ed2k://|server|207.44.222.51|4242|/

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK