36 对3网终:练构、应周5设计 ,torrent文件服务器(图2.2.3中.torrent Server)保存.torrent文件,它相当 于一个小型的种子数据库,通过BT网站来搜索。在BitTorrent网络中,一个文件 的共享开始于,torrent文件的产生,通常它由文件的拥有者提交给BT网站(这个 拥有者是该文件的第一个“种子”),经过检查确保内容无误后被存放到.torrent文 件服务器中。 Tracker(跟踪者、跟踪服务器)是BT网络和用户信息的维护者,其职责是帮 助用户相互发现对方,下载同一个文件的所有用户围绕Tracker形成一个独立的 子网,它对一个文件的下载起着关键性的作用。Tracker跟踪所有下载某个文件 的用户,并实时地将这些用户信息发给其中的每一个,它控制着BT网络上某个文 件(也可能是多个文件)的下载和用户之间的协同工作。Tracker和用户之间使用 一种很简单的基于HTTP的协议进行交互:用户告诉Tracker要下载的文件、自 己使用的端口以及其他信息,Tracker告诉用户下载同样文件的其他下载者的联 系信息,用户可以利用这些信息相互之间建立连接;此外,一些关于下载和上传速 率的信息被发送给Tracker,Tracker搜集这些信息用于统计。 在最近版本的BitTorrent软件中,即使没有Tracker也能定位到拥有文件的 用户,这是通过基于Kademlia的分布式散列表来完成的(Kademlia是一种实用、 容错的结构化P2P网络,将在第4章对其进行描述),在“用户列表”中以“DHT Network”的形式表示出来。但是,目前靠无Tracker的DHT方式定位文件的速 度要远远低于有Tracker的服务器方式,因此它只能作为BitTorrent的一个辅助 定位方法。 每个BT用户(图2.2.3中Peer)可以同时下载多个文件,对于每一个文件而 言,用户通常按照下述步骤来下载: (l)BT用户通过某个BT网站搜索文件(如BT@China联盟网站),BT网站 将该搜索请求重定向到它的网站镜像(比如BT@China联盟就有很多镜像站点), 检索它所知的所有.torrent文件服务器,返回给用户关于该文件的.torrent文件 列表。 (2)用户选择列表中的一项或者多项,被选的每个.torrent文件会启动一项 下载任务。通常,BT软件会根据.torrent文件信息连接到该文件所对应的 Tracker,从Tracker获得当前也在下载该文件的用户信息(Tracker一般只返回一 定数量的用户而不是全部)。 (3)用户根据上一步从Tracker获得的用户信息与他们建立直接的连接,从 他们下载文件的一部分分片,同时也向他们提供上传。 (4)为了保证BT用户的高速下载和整个网络的高效工作,一个用户并不总 是和最初建立连接的那些用户互相交换文件,而是每隔一段时间从Tracker获得 新的用户信息建立新的连接,同时采用“阻塞算法”主动地停止那些对自己来说没
"% !"#$)%&#’()*+ B($**)+(m|½¾¿%!B!BNB($**)+(:)*6)*&r>B($**)+(m|"1RV z0mÏô,q8¼Á"_‘ L<P¦:£¤$y L1(<$**)+(PQ"0mm| ,{yµzB($**)+(m|,©K"_º1ám|,ØYa7 L< P¦%¡m Ø$6m|,´0m+q8,&"ä‘_>Þrq~æS¨2>akB($**)+(m |½¾¿$ <*/#-)*%Ø#½¾¿&$ L< PQ}]É<=,³sØ"«þý$È É]ÉRS-3;D"0mc0mm|,â]Éq <*/#-)*×Ð0m7$, 8P"1;0mm|,0m’©zö,o]$<*/#-)*â0mÂmm| ,]É"^÷dH¥¡¹]É<=-7«,0m"1®’ L< PQÂmm |%FÊh$Vmm|&,0m}]É/,-cèo$<*/#-)*}]É/\] 0qû(¦,z ;<<=,-.ÜÌaS)]É4p <*/#-)*0m,m|#¨ Ú\],ÿõª¦«Æ<="<*/#-)*4p]É0mcóm|,«Æ0mØ,z ²<="]Éʪ]¡¹<=RS/ $TU(×"0¹©z0m}){ é,<=2-¤7 <*/#-)*"<*/#-)*£X¡¹<=]z³!$ y)§å, L1(<$**)+(É|" \Ó <*/#-)*FhXÅkm|, ]É"¡$_‘z I/3)%01/,°±EÏÆ@:-Ð,%I/3)%01/$0q÷]# ~R,´Ù =!= PQ"¥y´Oª;«ÜÌü&"y+]ÉÆ@,ª+M;< H)(,$*-,,×E@A2:$Ý$"_Ò;æ <*/#-)*, M;< DEXÅm|,{ |õõGz <*/#-)*,½¾¿DE"1hop L1(<$**)+(,0mÑÉ XÅDß$ m L< ]É%!B!BN =))*&ʪcd0mVmm|";z0mm|! 4"]É_ºó#0ü¿’:0m) %A&L< ]É_‘Âm L< P¦£¤m|%/ L<#981+/z#P¦&"L< P¦ ¥6£¤56X¼k1,P¦cñ%Õ/L<#981+/z#ûVcñ¦µ&" _¤1â,âB($**)+(m|½¾¿"897]É©z6m|,B($**)+(m| Æ@$ %!&]ÉÆ@,0ÐþØVÐ"2,mB($**)+(m|¸(30Ð 0m ¾$_ º"L< É | ¸ ¸ ÁB($**)+(m | < = T U k 6 m | â ; , , <*/#-)*" <*/#-)*Ñ=VÒFy0m6m|,]É<=%<*/#-)*0¯890 X¼,]É!w$.&$ %N&]ɸÁ0¿ <*/#-)*Ñ=,]É<=MÆ[ $&U,TU" Æ[0mm|,0°°l"cdF¼Æ[Yñ)$ %O&p6rG L< ]É,{0m}ÛmPQ,èo"0m]É^w· $}): $TU,ò¹]ÉSRaÎm|"!$)0<d <*/#-)*Ñ= r,]É<= $r,TU"cdü]+;<"ß,Ã3HkÛò¹;¨Ú:¤Ó