70. BitTorrent SourceCode Study
文章平均质量分 79
rstevens
Linux,Network,Linux Kernel,football,soccer,snooker,pool,billiards,足球,台球
展开
-
Tracker 服务器源码分析之一:总述
Tracker 服务器源码分析之一:总述 作者:小马哥 日期:2004-5-29 tracker服务器是BT下载中必须的角色。一个BT client 在下载开始以及下载进行的过程中,要不停的与 tracker 服务器进行通信,以报告自己的信息,并获取其它下载client的信息。这种通信是通过 HTTP 协议进行的,又被称为 tracker HTTP 协议,它的过程是这样的:原创 2004-06-22 19:41:00 · 5373 阅读 · 4 评论 -
客户端源码分析之五:Encoder 类和 Connection 类
客户端源码分析之五:Encoder 类和 Connection 类作者:小马哥日期:2004-7-14版权所有,未经允许,不得随意转载email: rstevens2004 At yahoo.comEncoder 是一种 Handler 类(关于 Handler类,请参看前面的分析文章)。它在 download.py 中被初始化。它与 Connection类一起,完成“BT对等连接”的建立原创 2006-05-04 17:38:00 · 1987 阅读 · 0 评论 -
客户端源码分析之六:客户端的主程序
客户端源码分析之六:客户端的主程序作者:小马哥日期:2004-12-23rstevens2008 At hotmail.com版权所有,未经允许,不得转载前言: 自从7月份写完“客户端源码分析之五:Encoder 与 Connection 类”后,我就停止了继续对BT源码的分析。原因很多,最主要的还是懒惰吧。临到岁末,终于下定决心,无论如何,要完成这一系列的文章,对自己也算有个交待。 前面的几原创 2006-05-04 17:39:00 · 2351 阅读 · 0 评论 -
客户端源码分析之八:BT对等连接的建立过程
客户端源码分析之八:BT对等连接的建立过程作者:小马哥日期:2005-01-09rstevens2008 At hotmail.com版权所有,未经允许,不得转载转载请注明出处: http://www.wlm.com.cn/openidea/leobbs.cgi概要 上一节我们分析了BT客户端与tracker之间的通信过程。通过与 tracker 的通信,客户端获得了参与下载的其它peers原创 2006-05-04 17:41:00 · 5076 阅读 · 1 评论 -
客户端源码分析之四:PiecePicker 类
客户端源码分析之四:PiecePicker 类 作者:小马哥 日期:2004-7-2 rstevens At hotmail.com 版权所有,未经允许,不得转载 PiecePicker 用于实现“片断选择算法”,片断选择算法在《Incentives Build Robustness in BitTorrent》一文中有介绍,我把相关内容列出来。 BT的片断选择算法,综合下面几种策略。原创 2004-07-03 13:27:00 · 2618 阅读 · 4 评论 -
客户端源码分析之二: Storage 类
客户端源码分析之二: Storage 类 作者:小马哥 日期:2004-6-28 由于 Storage 类比较简单,我直接在源码基础上进行注释。掌握Storage,为进一步分析 StorageWrapper 类打下基础。 几点说明: 1、 Storage 类封装了对磁盘文件的读和写的操作。 2、 BT既支持单个文件的下载,也支持多个文件,包括可以有子目录。但是它并不是以文件为单位进行下原创 2004-07-02 11:50:00 · 2955 阅读 · 2 评论 -
Tracker 服务器源码分析之四:Tracker 类
Tracker 服务器源码分析之四:Tracker 类 作者:小马哥 日期:2004-6-10 本篇文章分析 Tracker 类,它在 track.py 文件中。 在分析之前,我们把前几篇文章的内容再回顾一下,以理清思路。 BT的源码,主要可以分为两个部分,一部分用来实现 tracker 服务器,另一部分用来实现BT的客户端。我们这个系列的文章围绕 tracker 服务器的实现来展开。原创 2004-06-22 19:46:00 · 5720 阅读 · 3 评论 -
Tracker 服务器源码分析之三:HTTPHandler 类
Tracker 服务器源码分析之三:HTTPHandler 类 作者:小马哥 日期:2004-6-7 本篇文章分析 HTTPHandler类,它在 HTTPHandler.py 文件中。 上一篇我们讲到, RawServer 只负责网络 I/O,也就是从网络上读取和发送数据,至于读到的数据如何分析,以及应该发送什么样的数据,则交给 Handler 类来处理。如果是用 c++ 来实现的话,那么原创 2004-06-22 19:45:00 · 3247 阅读 · 1 评论 -
欢迎访问我的源码分析论坛
http://mail.dprk-stamp.com/openidea/leobbs.cgi原创 2004-07-02 11:55:00 · 2587 阅读 · 1 评论 -
BT客户端源码分析之一:总述
BT客户端源码分析之一:总述作者:小马哥日期:2004-6-24 概述:相对于 tracker 服务器来说,BT客户端要复杂的多,Bram Cohen 花了一年 full time 的时间来完成 BT,我估计其中大部分时间是用在 BT 客户端的实现和调试上了。由于 BT 客户端涉及的代码比较多,我不能再象分析 tracker 服务器那样,走上来就深入到细节之中去,那样的话,我写的晕晕糊糊,大家看起原创 2004-07-02 11:49:00 · 5609 阅读 · 4 评论 -
客户端源码分析之三: StorageWrapper 类
客户端源码分析之三: StorageWrapper 类 作者:小马哥 日期:2004-6-30 StorageWrapper 的作用:把文件片断进一步切割为子片断,并且为这些子片断发送 request消息。在获得子片断后,将数据写入磁盘。 请结合 Storage 类的分析来看。 几点说明: 1、 为了获取传输性能,BT把文件片断切割为多个子片断。 2、 BT为获取一个子片断,需要向原创 2004-07-02 11:52:00 · 2456 阅读 · 0 评论 -
Tracker 服务器源码分析之二:RawServer类
Tracker 服务器源码分析之二:RawServer类 作者:小马哥 日期:2004-5-30 这篇文章,我们来分析 RawServer 以及一些相关的类。RawServer 类的实现代码,在 BitTorrent 子目录的RawServer.py 中 RawServer 这个类的作用是实现一个网络服务器。关于网络编程的知识,《unix网络编程:卷1》是最经典的书籍,你如果对这块不了解,原创 2004-06-22 19:43:00 · 3526 阅读 · 0 评论 -
客户端源码分析之七:客户端与tracker通信过程
客户端源码分析之七:客户端与tracker通信过程作者:小马哥日期:2004-12-24rstevens2008 At hotmail.com版权所有,未经允许,不得转载概要 上一节我们分析了BT客户端主程序的框架:一个循环的服务器程序。在这个循环过程中,客户端要完成如下任务:Ø 与 tracker 服Ø 务器通信;汇报自己的状态,同Ø 时获取其它 peers 的信息;Ø 接受其它 peers原创 2006-05-04 17:40:00 · 3410 阅读 · 1 评论