ED2k URI scheme

from Wikipedia, the free encyclopedia

The eD2k URI scheme is a hyperlink type that is used, similar to magnet links , to refer to files within the eDonkey2000 - or Kademlia - file sharing network.

General

Many programs, such as eMule , MLDonkey, and MetaMachine's original eDonkey2000 client , can be used to find, upload, and download files on the eDonkey network. The files are available on the computers of other network participants, which then upload them to interested parties. Files are uniquely identified via their eD2k hash . Since the hash sum remains the same even if a file is renamed, this identification is much more reliable than, for example, identification by name.

eD2k links were among the earliest content links for files on P2P networks. Nowadays, however, mostly the more modern magnet links are used because they are not limited to one hash type and therefore universally applicable . For example, they can also contain SHA-1 and MD5 hashes, which makes it possible to locate the same file in other networks, such as Gnutella2 .

Like other URIs, programs can register in the operating system and / or web browser in order to be automatically called up when clicking on such a link and to download the linked file.

Link format

There are two main types of eD2k links. If the first keyword fileis a reference to a file, if it is against it server, the link contains the reference to the IP of an eDonkey2000 server. Newer eMule versions also support other keywords, such as searchfor automated search queries.

File

A typical eD2k link contains the required eD2k MD4 hash as well as a file name and the file size. The installer of Shareaza v2.5.3.0 (6.35 MiB) can serve as an example :

ed2k://|file|Shareaza_2.5.3.0_Win32.exe|6653348|7fb2bc10e0422a0e4f7e8613bd522c89|/

In addition, fixed sources can be specified for the file by appending the Sources tag:

ed2k://|file|Shareaza_2.5.3.0_Win32.exe|6653348|7fb2bc10e0422a0e4f7e8613bd522c89|/|sources,252.191.193.62:6443|/

It is also possible to specify the AICH hash by appending a token in the form |h=H52BHJ5K2L90WXDPQQDH2RJDDAKRUWST|(where in this example H52BHJ5K2L90WXDPQQDH2RJDDAKRUWSTthe AICH hash corresponds), as eMule does when generating ed2k URIs, for example.

server

A server link contains the IP address of an eDonkey2000 server, which is added to the server cache of the eDonkey client used when the link is used, if this supports this.

A typical server eD2k link follows the following scheme:

ed2k://|server|IP|PORT|/

  • IP → eD2k server IP
  • PORT → the port of the eD2k server on which it accepts eD2k connections

Example:

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

Search

The search URI type was introduced in eMule 0.50a. It consists of the keyword search and a search term:

ed2k://|search|Suchbegriff|/

The first implementation of a browser extension that makes use of this link scheme was for Mozilla Firefox .

eD2k hash algorithm

The eD2k hash, which is used in the eDonkey network and therefore also in ed2k links for file identification and verification, is the MD4 hash of an MD4 hash list. It is generated as follows:

In the first step, the file is divided into parts (so-called chunks ) of 9,500 KiB (9728000 bytes, i.e. approximately 9.28 MiB), with the last part comprising the rest and therefore smaller than 9,500 KiB. In the case that the file size is exactly a multiple of 9,500 KiB, the remaining piece has a size of 0 bytes . In the second step, a 128-bit MD4 checksum is calculated for each piece . If there is more than one chunk, all these hash sums are then appended to one another and the final hash is calculated from the resulting string with the help of the MD4 hash function. However, if the file is smaller than 9,500 KiB, the hash of the single chunk of the file is used as the file hash without further modifications.

It is therefore important to emphasize that the eD2k hash sum is in most cases not identical to the simple MD4 hash. This also means that it is easy to verify whether a chunk hash list belongs to a file, because the file hash can be calculated from the individual chunk hashes. The biggest disadvantage of this hash system is that individual chunks are 9,500 KiB in size, i.e. only relatively large parts of the file can be verified after downloading, which in the event of an error makes it necessary to download 9.28 MiB of data again. This made the development of sub-chunk verification systems like ICH and AICH necessary.

See also

Individual evidence

  1. a b AICH = Advanced Intelligent Corruption Handling, an improved protection against defective files
  2. eMule changelog. Retrieved July 31, 2010 .
  3. eMuleSearch extension for Firefox. Retrieved July 31, 2010 .
  4. eMule Source Code: Method CKnownFile::CreateFromFile.
  5. ICH = Intelligent Corruption Handling, the forerunner of AICH

Web links