p2p即pear to pear ,就是点对点体系结构。它实际了主机间的直接通信,减轻了服务器的负担。我对利用p2p实现像电驴、bt下载、百度下吧这样的软件的一些问题跟大家交流一下。
1. 有没有服务器,服务器到底做些什么工作。
目前来讲很多p2p软件是有中心服务器的,其主要工作是记录每个节点(边缘主机)共享的文件列表及相关信息,或者换句话说,它记录的是共享了某个文件的主机列表(ip及相应的端口号)。客户端(相对于中心服务器)要请求某个文件时,只需先向中心服务器请求到该文件的主机列表,再向每台主机发送传送请求。当然,在客户端请求的文件的同时,它的信息也被记录到中心服务器中了。相比传统的c/s模式,中心服务器的负担轻很多了。
是不是说一定需要中心服务器呢?答案是否定的。假定这样一种情况:某台主机a共享了一些文件,想让互联网上的朋友得到他。主机a要怎么做呢?其中一种方法就是:将自己机子的信息做成一个文件(命名为file_a),该文件包括:主机a的ip,以及为传送数据而用的端口号,文件名。然后将该文件发布到网上,主机a的朋友就可以通过该文件的内容联上主机a与其通信完成文件的传输。主机a的朋友(假设是b、c、d)联接是a时,在传输数据的同时,更新file_a(此时a、b、c