BIT
文章平均质量分 78
Pregunta
1
展开
-
BitTorrent 协议规范(BT协议集合)六
BT是如何采用激励机制来达到健壮性的 Bram Cohen bram@bitconjurer.org 2003年5月22日 翻译:小马哥 日期:2004-6-1 修改:扬帆 日期:2005-5-9 概要 BitTorrent 文件发布系统采用针锋相对(tit_for_tat)的方法来达到帕累托有效,与当前已知的协作技术相比,它具有更高的活力。本文将解释BitTorrent 的用途,以及是怎样用经济转载 2006-11-14 16:38:00 · 951 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)十九
客户端源码分析之七:客户端与tracker通信过程4VM 作者:小马哥 l概要 上一节我们分析了BT客户端主程序的框架:一个循环的服务器程序。在这个循环过程中,客户端要完成如下任务:l Ø与 tracker 服务器通信;汇报自己的状态,同时获取其它 peers 的信息;. Ø接受其它 peers 的连接请求;a%dv Ø主动向某些 peers 发起连接请求;8 Ø对BT对等协议的分析处理;kn Ø转载 2006-11-14 17:13:00 · 1105 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)二一
BT客户端开始一个下载首先要处理的就是torrent文件. 而torrent文件使用bencoding编码. 所以实现bencoding编码的解析器,就是第一步工作. Bencoding is done as follows: Strings are length-prefixed base ten followed by a colon and the string. For e xample转载 2006-11-14 17:19:00 · 901 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)十三
作者:小马哥 由于 Storage 类比较简单,我直接在源码基础上进行注释。掌握Storage,为进一步分析 StorageWrapper 类打下基础。 几点说明: 1、 Storage 类封装了对磁盘文件的读和写的操作。 2、 BT既支持单个文件的下载,也支持多个文件,包括可以有子目录。但是它并不是以文件为单位进行下载和上传的,而是以“文件片断”为单位。这可以在BT协议规范以及另一篇讲BT技术的转载 2006-11-14 16:48:00 · 752 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)十八
客户端源码分析之六:客户端的主程序 作者:小马哥 前言: 自从7月份写完“客户端源码分析之五:Encoder 与 Connection 类”后,我就停止了继续对BT源码的分析。原因很多,最主要的还是懒惰吧。临到岁末,终于下定决心,无论如何,要完成这一系列的文章,对自己也算有个交待。 前面的几篇文章,都是深入到源码的某一部分细节之中,虽然很清晰,但无助于读者对整体构架的把握(其实我自己当时也比较糊涂转载 2006-11-14 17:07:00 · 801 阅读 · 0 评论 -
ADSL的优化及帮助(转自维基)
修改ADSL设置解决P2P断流问题 端口映射,UPnP和功能 关于宽带ADSL用户是内网还是外网之完全解析(2005版) BitComet参数设置详解(2005版) ADSL MODEM路由设置方法详解(2005版) UPnP功能使用详解(2005版) 不会搞UPnP的人,进来! 高手支招:BT下载怎转载 2006-11-15 16:40:00 · 669 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)八
IdentificationBitTorrent is a peer-to-peer file sharing protocol designed by Bram Cohen. Visit his pages at http://www.bitconjurer.org. BitTorrent is designed to facilitate file transfers among multip转载 2006-11-14 16:41:00 · 871 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)九
Tracker服务器源码分析之一:总述 作者:小马哥 日期:2004-5-29 tracker服务器是BT下载中必须的角色。一个BT client 在下载开始以及下载进行的过程中,要不停的与 tracker 服务器进行通信,以报告自己的信息,并获取其它下载client的信息。这种通信是通过 HTTP 协议进行的,又被称为 tracker HTTP 协议,它的过程是这样的: client 向转载 2006-11-14 16:43:00 · 1219 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)十
Tracker服务器源码分析之二:RawServer类 作者:小马哥 这篇文章,我们来分析 RawServer 以及一些相关的类。RawServer 类的实现代码,在 BitTorrent 子目录的RawServer.py 中 RawServer 这个类的作用是实现一个网络服务器。关于网络编程的知识,《unix网络编程:卷1》是最经典的书籍,你如果对这块不了解,建议抽时间看看这本书。RawServ转载 2006-11-14 16:43:00 · 1117 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)十一
Tracker服务器源码分析之三:HTTPHandler 类 作者:小马哥 本篇文章分析 HTTPHandler类,它在 HTTPHandler.py 文件中。 上一篇我们讲到, RawServer 只负责网络 I/O,也就是从网络上读取和发送数据,至于读到的数据如何分析,以及应该发送什么样的数据,则交给 Handler 类来处理。如果是用 c++ 来实现的话,那么 Handler 应该是一个接口转载 2006-11-14 16:44:00 · 623 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)十六
PiecePicker 用于实现“片断选择算法”,片断选择算法在《Incentives Build Robustness in BitTorrent》一文中有介绍,我把相关内容列出来。 BT的片断选择算法,综合下面几种策略。 l 严格的优先级 片断选择的第一个策略是:一旦请求了某个片断的子片断,那么该片断剩下的子片断优先被请求。这样,可以尽可能快的获得一个完整的片断 l转载 2006-11-14 16:59:00 · 747 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)二二
昨天重新读了BT协议和客户端代码,发现对协议本身部分比较熟悉了,但是对BT在实际运行期间各种行为的发生情景还非常模糊,有些步骤还想清楚,大家一起来讨论一下. 我们来一起描述一下BT各种消息的发送情景. 有些不是特别肯定的我没有加上,大家在这个基础上进行增加或者修改. 其中client指本机上运行的BT客户端.peer指tracker返回的远程客户端. piece指torrent文件中的20byte转载 2006-11-14 17:24:00 · 1183 阅读 · 1 评论 -
BitTorrent 协议规范(BT协议集合)二四
BitTorrent是一个优秀的P2P下载软件,国内又叫它BT(变态)。 BT的主页:http://bitconjurer.org/BitTorrent/index.html BT的作者:Bram Cohen,《程序员》杂志2004第3期有对他的介绍文章 BT所用的语言:python python:一种优秀的动态语言(关于动态语言的介绍,看《程序员》杂志2004年第5期)。 python的官方网站转载 2006-11-14 17:30:00 · 1382 阅读 · 1 评论 -
BitTorrent 协议规范(BT协议集合)十五
(上接十四) 然后,更新 sh 这个 sha 对象,注意,是根据片断 i 剩下的数据来更新的。关于 sha::update() 的功能,请看 python的帮助。如果有两段数据 a 和 b,那么 sh = sha(a) sh.update(b),等效于 sh = sha(a+b) 所以,下面这个表达式等于 sh.update(self.storage.read(piece_size*i, self转载 2006-11-14 16:53:00 · 800 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)十四
作者:小马哥 StorageWrapper 的作用:把文件片断进一步切割为子片断,并且为这些子片断发送 request消息。在获得子片断后,将数据写入磁盘。 请结合 Storage 类的分析来看。 几点说明: 1、 为了获取传输性能,BT把文件片断切割为多个子片断。 2、 BT为获取一个子片断,需要向拥有该子片断的peer发送request消息(关于 request消息,参见《BT协议规范》)。转载 2006-11-14 16:49:00 · 710 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)十二
作者:小马哥 概述: 相对于 tracker 服务器来说,BT客户端要复杂的多,Bram Cohen 花了一年 full time 的时间来完成 BT,我估计其中大部分时间是用在 BT 客户端的实现和调试上了。 由于 BT 客户端涉及的代码比较多,我不能再象分析 tracker 服务器那样,走上来就深入到细节之中去,那样的话,我写的晕晕糊糊,大家看起来也不知所云。所以第一篇文章先来谈谈客户端的功能转载 2006-11-14 16:45:00 · 950 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)七
BT种子文件使用了一种叫bencoding的编码方法来保存数据。 bencoding现有四种类型的数据:srings(字符串),integers(整数),lists(列表),dictionaries(字典) 编码规则如下: strings(字符串)编码为:: 例如: 4:test 表示为字符串"test" 4:例子 表示为字符串“例子” 字符串长度单位为字节 没开始或结束标记 integers(整转载 2006-11-14 16:40:00 · 755 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)十七
Encoder 是一种 Handler 类(关于 Handler类,请参看前面的分析文章)。它在 download.py 中被初始化。它与 Connection类一起,完成“BT对等连接”的建立,以及“BT对等协议”的分析。 为了有助于理解,我添加了一些用圆圈括起来的序号,建议你按照这个顺序去阅读。 class Connection: ②def __init__(self, Encoder,转载 2006-11-14 17:06:00 · 837 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)二十
作者:小马哥 本篇文章分析 Tracker 类,它在 track.py 文件中。 在分析之前,我们把前几篇文章的内容再回顾一下,以理清思路。 BT的源码,主要可以分为两个部分,一部分用来实现 tracker 服务器,另一部分用来实现BT的客户端。我们这个系列的文章围绕 tracker 服务器的实现来展开。 BT 客户端与 tracker 服务器之间,通过 track HTTP协议进行通信,而BT客转载 2006-11-14 17:17:00 · 945 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)二三
概要 上一节我们分析了BT客户端与tracker之间的通信过程。通过与 tracker 的通信,客户端获得了参与下载的其它peers 的列表。有了这些 peers 的信息,客户端就可以主动向它们发起连接,为进一步从它们那里获取所需要的文件片断做好准备。这些连接称为“主动连接”。因为连接的发起方是客户端自己。 同时,每个客户端在启动以后,都会监听某个端口,用于接受其它 peers转载 2006-11-14 17:28:00 · 1089 阅读 · 0 评论 -
BitTorrent 性能卓越的原因
BitTorrent 性能卓越的原因(原文是Incentives Build Robustness in BitTorrent,不知道怎么翻译比较好?)Bram Cohenbram@bitconjurer.org2003年5月22日翻译:小马哥日期:2004-6-1概要BitTorrent 文件发布系统采用针锋相对(tit_for_tat)的方法来达到帕累托有效,与当前已知的协作技术相比,它具有更转载 2006-11-15 11:22:00 · 765 阅读 · 0 评论 -
BitTorrent概述(选自维基)
BitTorrent維基百科,自由的百科全書跳转到: 导航, 搜尋 網路協議 編輯 應用層 DNS, FTP, ENRP,HTTP, IMAP, IRC, NNTP, POP3, RTP, SIP, SMTP, SNMP, SSH, Telnet, BitTorren转载 2006-11-15 15:17:00 · 1133 阅读 · 0 评论 -
ADSL路由猫端口映射集结
共享的要在主机上做端口映射,开放端口是你的BT客户端监听的端口 阿尔卡特 SpeedTouch HomePlus511 中设置端口映射 进入ADSL的Web设置页面, 在左边的菜单中点“Advanced”/"NAT" 进入NAT的设置界面后,点右边的New创建新的端口映射 Protocol选Tcp,Inside IP填192.168.1.2,Outside IP填0.0.0.0原创 2006-11-15 16:39:00 · 1961 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)一
BitTorrent 是一种分发文件的协议。它通过URL来识别内容,并且可以无缝的和web进行交互。它基于HTTP协议,它的优势是:如果有多个下载者并发的下载同一个文件,那么,每个下载者也同时为其它下载者上传文件,这样,文件源可以支持大量的用户进行下载,而只带来适当的负载的增长。(译注:因为大量的负载被均衡到整个系统中,所以提供源文件的机器的负载只有少量增长) 一个BT文件分布系统由下列实体组成:转载 2006-11-14 16:31:00 · 891 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)二
这个翻译版本由孤波独立完成 原文见http://bitconjurer.org/BitTorrent/protocol.html 作者Bram Cohen 孤波享有对该翻译版本解释权修改权 非商业引用请注明译者 BitTorrent协议详解 BitTrrent(简称BT,比特洪流)是一个文件分发协议,它通过URL识别内容并且和网络无缝结合。它在HTTP平台上的优势在于,同时下在一个文件的下载者在下转载 2006-11-14 16:32:00 · 923 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)三
Bittorrent udp-tracker protocol extension Contents introduction connecting Client sends packet: Server replies with packet: announcing Client sends packet: Server replies with packet: scraping Client转载 2006-11-14 16:33:00 · 909 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)四
通常BT客户端每几分钟就要向tracker发送一次请求.对于一些比较大的BT站点,其tracker的压力是可想而知的.降低tracker的压力首先考虑到的当然是采用更低网络开销的udp协议.于是Bittorrent udp-tracker protocol应运而生. 这个协议很简单. 下面是实现它的封装类: // UDPTrackerClient.h: interface f转载 2006-11-14 16:35:00 · 715 阅读 · 0 评论 -
BitTorrent 协议规范(BT协议集合)五
BitTorrent is a protocol for distributing files. It identifies content by URL and is designed to integrate seamlessly with the web. Its advantage over plain HTTP is that when multiple downloads of the转载 2006-11-14 16:37:00 · 714 阅读 · 0 评论 -
BitTorrent協議規範(转自維基百科)
BitTorrent協議規範 目錄 [隱藏] 1 目的 2 應用範圍 3 約定转载 2006-11-15 11:31:00 · 1278 阅读 · 0 评论