eD2k链接是一种
超链接,用于指示在eDonkey
网络上存储的文件。
简介
包括
eDonkey2000、
eMule、
MLDonkey、
aMule等在内的许多使用了eDonkey文件共享协议的客户端软件,都可以用eD2k链接来管理网络上的文件。
浏览器可以识别eD2k链接,并递交到eMule、eDonkey2000或其他的eD2k软件中进行传输。eD2k链接是最早被引入P2P文件网络的链接之一。Magnet链接现在也与eD2k链接类似,但Magnet链接不仅限于eD2k Hash,而是可以使用其他的
Hash,诸如
SHA或
MD5等。
这些Hash码,主要用于确保相同的文件在网络上具有的相同的唯一标识,即使这些文件储存在不同的地方或拥有不同的名字。它通过使用该文件的Hash函数(
散列函数)来计算其
校验和。
eD2k链接和很多
URI协议一样,可以被网络浏览器配置为自动关联处理。安装某些eD2k软件时,“ed2k://”协议可能被自动注册。于是在浏览器中点击文件的eD2k链接时,就能自动打开eD2k软件并进行此文件的下载。
链接格式
D2k链接的大致格式形如:
使用“|”分隔开各个区域。
注释:
文件链接
典型的、基础的eD2k文件链接只包含必要的三样信息:文件名、文件大小、文件的eD2k Hash。形如:
以下是大小为2868871字节(约2.7MB)的官方eMule v0.49c zip压缩包的eD2k链接的例子:
eD2k链接也可以包含一个或多个来源的IP地址与端口,形如:
例如:
在eMule中,eD2k链接也可以包含根Hash(Root Hash)值。根Hash提供了一个可靠的值用于AICH(高级智能损坏处理),在传输的文件有损坏或错误时进行纠正恢复。包含根Hash的eD2k链接形如:
例如:
完整的Hashset可以确保文件的正确,也可帮助发布新的与罕见的文件。包含Hashset的eD2k链接形如:
带主机的eD2k链接形如:
eMule也可兼容带HTTP来源的eD2k链接,形如:
服务器链接
eDonkey服务器的eD2k链接和文件的eD2k链接类似,它可以指示一个eDonkey服务器地址,格式形如:
例如:
服务器列表链接
服务器列表链接,用于从一个固定的HTTP地址添加server.met服务器列表文件。格式形如:
:server.met文件的HTTP地址。
Kad节点列表链接
Kad节点列表链接,用于从一个固定的HTTP地址添加nodes.dat Kad节点文件。格式形如:
:nodes.dat文件的HTTP地址。
好友链接
好友链接,根据用户Hash来添加好友。格式形如:
官方eMule不支持eD2k好友链接添加好友功能,仅
Xtreme及Xtreme的Mods(如
ScarAngel、Mephisto等)、CN Mod等部分eMule Mods支持此功能。
eD2k Hash
eD2k Hash 算法是一种MD4算法的变体。其函数是一个MD4 Hash列表(MD4 Hash List)的
MD4根Hash,但与MD4 Hash的结果不同:
文件数据被分区成多个9500KB的chunks块(9728000字节或大约9.28MB)和剩余的一个chunk。每个chunk都要计算128-bit MD4
校验和。如果文件长度正好是9500KB的整倍数,剩余的大小为0的chunk依然存在于Hash列表的末尾。将这些chunk的MD4校验和按顺序联合起来,并使用MD4计算Hash,可得到eD2k Hash。对于仅由一个chunk组成的文件(即文件大小小于9500KB),MD4和eD2k Hash是完全相同的。
这种方法可以直接将Hash列表与原eD2k Hash进行验证,而无需使用文件块来验证。