本页主题: 有關PT站的信息,唔知道會否有幫助 打印 | 加为IE收藏 | 复制链接 | 收藏主题 | 上一主题 | 下一主题

kgs9999
金錢萬歲
级别: 普通人

多谢发贴的人[56]

 有關PT站的信息,唔知道會否有幫助

0
tracker服务器是BT下载中必须的角色。一个BTclient在下载开始以及下载进行的过程中,要不停的与tracker服务器进行通信,以报告自己的信息,并获取其它下载client的信息。这种通信是通过HTTP协议进行的,又被称为tracker HTTP协议,它的过程是这样的:

     client向tracker发一个HTTP的GET请求,并把它自己的信息放在GET的参数中;这个请求的大致意思是:我是xxx(一个唯一的id),我想下载yyy文件,我的ip是aaa,我用的端口是bbb。。。

     tracker对所有下载者的信息进行维护,当它收到一个请求后,首先把对方的信息记录下来(如果已经记录在案,那么就检查是否需要更新),然后将一部分(并非全部,根据设置的参数已经下载者的请求)参与下载同一个文件(一个tracker服务器可能同时维护多个文件的下载)的下载者的信息返回给对方。

     Client在收到tracker的响应后,就能获取其它下载者的信息,那么它就可以根据这些信息,与其它下载者建立连接,从它们那里下载文件片断。



关于client和tracker之间通信协议的细节,在“BT协议规范”中已经给出,这里不再重复。下面我们具体分析tracker服务器的实现细节。



从哪里开始?

     要建立一个tracker服务器,只要运行bttrack.py程序就行了,它最少需要一个参数,就是–dfile,这个参数指定了保存下载信息的文件。Bttrack.py调用track.py中的track()函数。因此,我们跟踪到track.py中去看track()函数。



Track.py:track()

     这个函数首先对命令行的参数进行检查;然后将这些参数保存到config字典中。在BT中所有的工具程序,都有类似的处理方式。



接下来的代码:

     r=RawServer(Event(),config['timeout_check_interval'],config['socket_timeout'])

  t=Tracker(config,r)

  r.bind(config['port'],config['bind'],True)

  r.listen_forever(HTTPHandler(t.get,config['min_time_between_log_flushes']))

  t.save_dfile()



首先是创建一个RawServer对象,这是一个服务器对象,它将实现一个网络服务器的一些细节封装起来。不仅tracker服务器用到了RawServer,我们以后还可以看到,由于每个client端也需要给其它client提供下载服务,因此也同时是一个服务器,client的实现中,也用到了RawServer,这样,RawServer的代码得到了重用。关于RawServer的详细实现,在后面的小节中进行分析。

接着是创建一个Tracker对象。

然后让RawServer绑定在指定的端口上(通过命令行传递进来)。

最后,调用RawServer::listen_forever()函数,使得服务器投入运行。

最后,在服务器因某些原因结束运行以后,调用Tracker::save_dfile()保存下载信息。这样,一旦服务器再次投入运行,可以恢复当前的状态。





其它信息:

1、 BT源码的分布:

把BT的源码展开之后,可以看到有一些python程序,还有一些说明文件等等,此外还有一个BitTorrent目录。这些python程序,实际是一些小工具,比如制作metafile的btmakemetafile.py、运行tracker服务器的bttrack.py、运行BTclient端的btdownloadheadless.py等等。而这些程序中,用到的一些python类的实现,都放在子目录BitTorrent下面。我们的分析工作,通常是从工具程序入手,比如bttrack.py,而随着分析的展开,则重点是看BitTorrenet子目录下的代码。

BT作者BramCohen在谈到如何开发可维护的代码的一篇文章中(http://www.advogato.org/article/258.html),其中提到的一条就是开发一些小工具以简化工作,我想BT的这种源码结构,也正是作者思想的一种体现吧。



2、 我们看到,python和我们以前接触的c/c++不一样的第一个地方就是它的函数在定义的时候,不用指定参数类型。既然这样,那么,在调用函数的时候,你可以传递任意类型的参数进来。例如这样的函数:

deffoo(arg):

      printtype(arg)

     

     你可以这样来调用:

     a=100

     b=“helloworld”

     foo(a)

     foo(b)



     输出结果是:

     <type‘int’>

     <type‘str’>



     这是因为,第一次调用foo()的时候,传递的是一个整数类型,而第二次调用的时候,传递的是一个字符串类型。



这种参数具有动态类型的特性,是c/c++等传统的语言是所不具备的。这也是python被称为动态语言的一个原因吧。C++的高级特性模板,虽然也使得参数类型可以动态化,但使用起来,远没有python这么简单方便。





【唔知道會否有幫助,能做的只有儘量幫忙查找相關資料,預祝早日建立粵語PT站】
顶端 Posted: 2009-06-06 11:14 | [楼 主]
kgs9999
金錢萬歲
级别: 普通人

多谢发贴的人[56]

 

什么是PT下载?为何如此流行?让我们一起来认识一下。

现在我们下载时用得最多的方式可能就是BT下载。BT下载和传统的依靠网站服务器作为下载源的HTTP/FTP下载不同,采用的是P2P点对点下载方式。BT下载的理念是人人都是服务器,下载的同时也进行上传,这样参与进来的人越多,下载的速度也越快。如果下载的人数足够多,往往可以达到网络带宽的峰值。

遗憾的是,虽然BT的设计理念是好的,但实际执行过程中不能按照设想的那样完美。鉴于国内网络的现状,大多时候,BT下载并不能达到理想的带宽满速状态。BT下载的约束机制不够,部分用户高速下载的同时却不愿意上传。尤其是种子的内容超过了流行期,很容易出现断种,下载速度不够理想。而高清种子的流行时限一般更短,而文件容量却很大,若没赶上大部队,之后下载无疑是十分痛苦的事情。而PT下载实际上就是改良的BT下载,它的出现解决了BT下载中下载速度变慢和缺乏种子的问题。

一起来认识PT下载
PT(Private Tracker)下载其实也是BT下载的一种,和BT下载有两个最明显的不同,即私密的小范围下载和进行流量统计。BT下载时,BT客户端首先解析.torrent种子文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据.torrent文件,两者分别向对方告知自己已经有的块(数据),然后交换对方没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。Tracker是BT下载的一个重要组成部分,用于记录上下载用户的互连信息。而PT下载和BT下载的区别是PT下载的Tracker是私有的,BT下载的Tracker则是公开的。

PT下载是一种小范围的BT下载,通过禁用DHT,有要求地选择并控制用户数量。这样,在有限的范围内,下载的用户基本都可以达到自己带宽的上限。PT下载还通过论坛制度的约束机制将BT的设计理念现实化,真正让用户做到下载的过程中努力上传。因此,PT下载的速度很快,能够让用户带宽得到最大程度的使用,而且种子时效长。

PT下载的实现方法
有些人会说,PT既然是小范围内的活动,如何做到的呢?首先,划分范围最好的方式就是论坛。新会员必须通过前期的会员邀请才可以加入,邀请注册机制有效地控制了下载人数。

其次是通过passkey,登陆论坛后,系统会给该账号用户分配一个固定的passkey,用户下载的种子中,会包含passkey的信息。若没有passkey的认证通过,即便其他用户得到了种子,也不能进行下载。

第三,PT下载软件使用的是可以计算下载上传流量的BT下载软件,例如Azureus、BitTornado、ktorrent、rtorrent、Transmission、uTorrent等。这类软件下载前,首先要检测用户的passkey,通过后再和种子的passkey进行比对,然后才可进行下载。第四,通过流量统计控制。PT下载的约束机制就是流量统计,必须保证一定的上传量才能下载。

如果界定流量,会不会泄露个人信息呢?流量统计实际是通过软件访问Tracker服务器发送自己的passkey和上传下载信息,并通过PT网站的种子跟踪器,最后来判断用户的流量。界定用户流量仅仅是通过uTorrent等软件中的专用PHP程序,所以并不会泄露用户的其它隐私信息。完整的PT下载就是通过passkey+Tracker服务器两种手段实现,两者缺一不可!

PT下载网站
对高清等大数据量文件来说,PT是十分合适的,毕竟高清对带宽的要求较高,很少有用户能够短时间内下载完一部高清影片。PT起源于美国,国内多数高清影片的最初来源就是采用PT下载的HDBits网站。现在,国内也涌现出不少PT高清下载网站,比如HDChina和ccfbist,还有专门进行DVD下载的ourdvd。

利用BT免费发布版权内容肯定损害版权所有者的合法权益,到目前为止,我国内地和西欧国家对BT仍没有任何法律上的约束。而在香港,已经有人因为发布电影的种子而被海关拘捕。而PT相对BT来说比较低调和隐蔽,关注人群也更少。

PT下载的优点
拥有约束机制,下载速度有保证
用户在论坛上进行PT下载时,都有相应的约束机制。PT网站的约束机制是建立在分享率(radio)的基础上的。当上传量与下载量的比值达不到要求时,甚至会被封掉帐号。也就是说,上传越多才能下载越多。因此,不少用户登陆PT软件不是为了下载,而是为了上传。不仅仅是速度上,种子的时效性也非常好,很多用户会主动保种。和公开的BT站点相比,靠制度远比靠自觉好。

PT下载缺点
难度更大
除非你是大水管(高带宽用户),否则玩PT要生存就得多动脑。计算分享率、计算最佳做种策略获得积分,没有点头脑还真是不行,关键最直接面对的问题就是,浪费时间浪费电费。
顶端 Posted: 2009-06-06 11:21 | 1 楼
gy77gy77
親口講您累得很
灌水天才奖
级别: 强的不是人

多谢发贴的人[27339]

 

只Tiger嬲訓左教囉
「龍遊氹仔不須記,苦樂平常志高飛。」
顶端 Posted: 2009-06-06 11:23 | 2 楼
kgs9999
金錢萬歲
级别: 普通人

多谢发贴的人[56]

 

Quote:
引用第2楼gy77gy772009-06-06 03:23发表的:
只Tiger嬲訓左教囉


佢總會睇到得

仲有其他人睇的,關鍵系要先瞭解PT系乜嘢,有無價值參與做尼件事

講得有幾好,唔瞭解,點得啊!?

希望對唔瞭解PT的朋友,可以有所幫助
顶端 Posted: 2009-06-06 11:27 | 3 楼
kgs9999
金錢萬歲
级别: 普通人

多谢发贴的人[56]

 

http://ccfbits.org/index.php

最近開放註冊的PT站,唔知道甘會否違反藍調的規定

可以嘗試下

如果違反藍調的規定,請立刻刪除

【希望能幫大家進一步瞭解PT】
顶端 Posted: 2009-06-06 11:51 | 4 楼
gy77gy77
親口講您累得很
灌水天才奖
级别: 强的不是人

多谢发贴的人[27339]

 

早抖喇...壯士
「龍遊氹仔不須記,苦樂平常志高飛。」
顶端 Posted: 2009-06-06 11:52 | 5 楼
02127309
佢得你都得
级别: 普通人

多谢发贴的人[144]

 

加了passkey的BT,大大制约了资源的交流。同一BT种子passkey不同就不能相互传递。
最无用的男人,莫过于敢怒不敢言
顶端 Posted: 2009-06-06 13:32 | 6 楼
wildduck
级别: 论坛巡警

多谢发贴的人[11830]

 

学习啦,我觉得可以持观望态度先,并不一定着急去搞。
顶端 Posted: 2009-06-06 13:42 | 7 楼
帖子浏览记录 版块浏览记录
蓝调粤语 » 粤语吹吹吹水区