想做个分布式下载软件

时间:2023-02-09 13:02:53

现在的BT都是从多个服务器上下载软件以提高速度,这样解决了服务器的速度限制问题,可是如果客户端也被限速度怎么办呢?所以想做一个客户端的BT下载软件,以解决服务器IP限速和客户端所在网络限速度的问题。该想法主要是从校园网来说,在企业局域网中应该也适用。在网上搜了一下,还没有找到同类软件,在CSDN上有个贴子提到此事,但没有详细内容。

工作方式

系统实现可以有两种模式,一种是无服务器模式,另一种是有服务器的模式。

模式(一)

该模式的软件只需要一种,每一台客户机上的软件都是相同的,都包括以下几部分功能:
(1)下载(包括HTTP,FTP等协议)
(2)发现。发现在本局域网内其它同类软件,用于互相帮助。
(3)帮助。即,如果A主机要从服务器下载一个文件F,则可以请求B进行帮助,如果B同意帮助A下载软件,则A、B两台主机同时从服务器上下载文件F,B下载完成所分配的F文件的那部分再通过局域网发送给A,然后A将文件合并。这样,从理论上讲,只要客户端足够多,就可以使下载速度达到服务器的最大速度WS和局域网最大速度WL的最小值,即使下载速度达到最大。

模式(二)
该模式的软件除了需要模式(一)中的客户机软件,还需要一个服务器软件用于保存在线的客户机IP地址列表,便于请求帮助。有了服务器的好处是,使得发现朋友的问题变得很简单,只需要从服务器上读取列表即可;更重要的是可以解决未知网络拓扑时发现朋友的难度,而且节省了发现对友时不断地发送测试数据包所造成的网络负担。

在这种工作模式下,不需要模式(一)中的发现功能,因为朋友列表可以从服务器获得。