BT下载文件是把一个文件分成很多份下载的.
1.下载这些块时是一个一个块的下载,还是可以同时下载多个块.
2.下载块时选择块的原则是什么,也就是说怎么判断那个块该下载了.
3.下载某一块时,应该从什么地方或者说应该从那一个客户端下载.感谢回答!!!!

解决方案 »

  1.   

    oyljerry 请你详细说说好吗
      

  2.   

    每个peer客户端先和tracker服务器通信,tracker服务器会返回它所知道的在下载这个文件的其他peer的ip地址和端口号(有很多个,比如50);在获得其他peers的IP地址和端口号之后,就可以和它们建立连接了,连接是二次握手过程,握手完成以后,对方会发送bitfield消息给你,bitfield用位图的方式通知你对方拥有哪些块(不是BMP图像,是操作系统里面的位图,也可以叫位视图,它是一个2进制串,某一位为1的话表示拥有对应的块,为0则不拥有,这样可以节约空间,随便找一本操作系统的书一般都会介绍的),你知道对方拥有哪些块后,就可以用Practise_Think(时代“过客”) 所说的方法进行片断选择,不过他说得还不够完全,具体信息请参考:
    http://www.bittorrent.org/protocol.html
    以及
    http://wiki.theory.org/BitTorrentSpecification
    如果英文不行可以参考"BitTorrent 性能卓越的原因"网上小马哥翻译的,翻译的还行;还有一个人把协议也翻译了,不过翻译的很烂