电驴(eMule)和BT都是P2P技术的下载产品。BT的优点是下载比较快,但资源流失也比较快。因为很多人在下电影的时候把上传的资源调整的很低以提高下载速度,当自己下载完就掐断了种子。这导致BT的资源流失的很快!

电驴的优点是速度快,而且可以限制上传速度,防止上传带宽被占用太多。同时,电驴还可以搜索每个人硬盘上已经存在的文件并识别它的Hash值,当有下载请求时只能通过已经存在于硬盘上并被识别的有限个数的用户来进行,可以说是硬盘共享工具。

电骡网络中的有效文件资源数量已经大大超过了BT资源数量,因此很多在BT网站上找不到或已绝种的文件可以通过电骡下载下来。西东网版电骡是为中国网络定制的,占用系统资源少,下载速度快的电骡版本。西东网版电骡的特点如下:更稳定,经过修正和调整,西东网版电骡大大降低了出错可能性;更快速,西东版的电骡更适应中国网络,对网络速度进行优化,提高电骡下载速度;占用资源少,西东版电骡没有增加任何美化功能,相反,它去除了原版大量华而不实的功能,从根本上降低了电骡的CPU的占用量;使用智能磁盘缓存(Intelligent Disk Cache)技术,以牺牲部分内存为代价,有效减小高速下载上传对硬盘的损伤;完全免费软件,自由使用全部功能,同时不带有任何广告代码;带有智能上传速度侦测(USS)技术,在保证上传的同时避免影响其他网络程序;支持多媒体文件在下载过程中进行预览播放;强大的搜索功能,允许你使用强大的布林(Boolean)表达式进行灵活的组合关键字在本地或全局或通过Kad网络搜索你想要的文件;同时使用多种网络(eD2K、S2S、Kad),加强网络可靠性和稳定性;带有信用制度以实际行动回报上传数据多的用户调动用户上传积极性保证更多的用户下载到文件;自动防火墙配置能自动打开XP网络连接防火墙(ICF)端口;带有以非特权用户身份运行电骡(Run eMule as unpriviledged User)功能和IP地址过滤功能大大加强系统安全性;带有好友和通信功能可以添加好友并随时和他们保持勾通同时电骡内建IRC聊天模块方便地同全世界的其他下载者聊天;智能坏文件块处理(ICH)功能即便发现坏文件块也能以最快的速度智能修复;可以通过互联网或手机网络远程完全管理另一台电脑上的电骡;下载分类功能让你自由组织下载文件;电骡会检查每个下载完成的文件保证无误传输。

电骡具有自动文件优先级和来源管理功能,可以让你同时下载大量文件而无需费心监视下载过程。安装完成后即可轻松使用。传输界面、服务器界面、搜索界面和共享文件界面都非常方便实用。下载地址:

全名为BitTorrent的BT是一种p2p软件,你在下载download的同时也在为其他用户提供上传upload。因为大家是“互相帮助”,所以不会随着用户数的增加而降低下载速度。下面是一般用ftp、http等分享流程:

下面是用BitTorrent分享的流程:其实跟ED也十分相似,ED跟BT不同的地方有:

1. ED需要连上一个固定server,而BT没有固定server,只要分享者制作出该分享档案的torrent档公布出来便可。

2. ED中分享的人越多速度越快?而BT中种子seed越多速度越快。

3. ED中是世界性的分享,而BT中是团体性的分享(可做到速度保证)。

4. ED知道在分享者的user name &速度,而BT没有显示使用者/分享者名字。

5. 比起其它的P2P软件,BT有个独特的地方,它存在一个中间的WEB服务器,就是我们在发布的时所填写的announce。该服务器提供了发布的统一管理,不像其它P2P软件那样到处去找哪些非常不稳定的个人服务器,相对起来让人安心的多。该WEB服务器更大的作用是内网用户可以做 Send(下面会说明原理),这是其它软件无法做到的。但不好的地方是announce当机的时候就无法下载了。要知道P2P下载关键是要人气要高,announce停一下就搞到人气全没有了。

torrent文件的作用:我们要用BT下载,就要先下载一个torrent文件。这个文件到底有什么呢?首先是announce记录了发布服务器的位置,让BT知道是那个WEB服务器发布的。然后是一些文件信息,比如文件名、目录名、长度等等。最后是片段长度和片段的Sha1校验码(BT为了事现续传和文件校验,就把文件分成若干个片段)。大家可以用写字板打开torrent文件看看,就知道个大概了,后面的乱码是片段Sha1校验码。

开始:BT 打开一个 torrent 文件后,需要先选择文件保存的位置。如果文件不存在,则会创建一个新文件;如果文件已存在,则会使用 Sha1 校验码对文件进行校验。通过这种方式,可以实现续传功能。然而,由于 SHA1 的位数为 128 位,因此速度相对较慢。

在确定要下载的内容后,需要找到提供上传的服务器。BT 通过 WEB 服务器来实现这一功能。首先,BT 会分析 torrent 文件,从而得到一系列发布服务器的地址、info_hash(torrent 文件中 info 部分的 Sha1 校验码)、peer_id(由当前时间和全球唯一标识码(GUID)的前八位组成的 20 位 Sha1 校验码)以及 port(提供的上传端口)、IP 地址等信息。此外,还包括 uploadED(已上传的字节数)、downloadED(已下载的字节数)和 left(剩余需要下载的字节数),以及 event(表示当前状态,如准备开始下载、停止或下载完成)。这些信息会每隔 5 分钟或由服务器设定的时间进行一次更新。

服务器会通过一个 track 程序来管理这些请求。当收到这些代码后,服务器会根据 info_hash 在列表中查找相应的记录。如果找到了,就可以开始下载;如果没有找到,则无法进行下载。

接下来,服务器会反向连接客户端的 IP 和端口,以判断客户端是内网用户还是公网用户。如果客户端是内网用户,服务器将无法建立连接,因为它需要连接到客户端的服务器上,而客户端的服务器上可能没有这个端口。然后,服务器会返回当前正在下载该文件的所有公网用户的 IP 和端口信息。这些信息类似于以下格式:

```

d8:intervali1800e5eersld2:ip4:7eerid20:00180531904b7e3abdd74orti6881eeee

interval 1800

```

其中,interval 为每隔多少秒进行一次查询,这里是 30 分钟。最后,如果客户端是公网用户,服务器会将提交的 IP 和端口信息添加到与 info_hash 对应的列表中,以便其他用户可以找到客户端并与其进行通信。

一旦获取了所有 peer 的 IP 地址,BT 就可以根据这些地址找到要下载的内容。此时,BT 并不一定需要从 seed(种子)节点下载,还可以从其他 peer 节点获取数据。

BT下载的原理和流程:

1. BT每找到一个peer就建立一个Socket来下载,所以下载的人越多,速度就越快。

2. 内网用户可以作为seed(提供种子文件)给其他人下载。这是因为BT是一个主动连接的软件,即使你已经下载完了,它也会主动连接其他用户。

3. 当服务器收到一个内网用户的请求时,由于没有其他peer返回,所以也没有公网用户可以与之连接。服务器会将该内网用户的IP放入列表中等待下载。

4. 经过一段时间(interval)后,内网用户再次向服务器发送请求,这次得到了公网用户的IP。

5. 得到公网IP后,内网用户立即进行连接。此时,公网用户成为服务器,内网用户成为客户端,数据开始传输。

6. 其他内网用户可以从这个公网用户下载数据。因此,内网用户作为seed一定要有公网用户的参与,否则其他内网用户无法下载。

如果全部是内网用户,那么所有的连接都不会成立。当然,这是比较极端的情况。由此可见,内网用户不能与内网用户连接,其他用户也无法从服务器查到你,所以无法主动连接你。你只能每隔一定时间(如30分钟)从服务器找到公网用户一个个进行连接。

由于中国很多用户都是内网用户(根据我从服务器上查回的数据,还没有尝试过超过10个的公网用户),所以内网用户使用BT的速度确实要比公网用户慢很多。