BT:BT是一种共享软件,全名叫"BitTorrent"。
一般来讲,下载是把文件由服务器端传送到客户端,例如FTP,HTTP,PUB等等。
但是这样就出现了一个问题,随着用户的增多,对带宽的要求也随之增多,用户过多就会造成瓶颈,而且搞不好还会把服务器挂掉,所以很多的服务器会都有用户人数的限制,下载速度的限制,这样就给用户造成了诸多的不便。
但BT就不同,用BT下载反而是用户越多,下载越快,这是为什么呢?因为BT用的是一种传销的方式来达到共享的
BT首先在上传者端把一个文件分成了Z个部分,甲在服务器随机下载了第N各部分,乙在服务器随机下载了第M个部分,这样甲的BT就会根据情况到乙的电脑上去拿乙已经下载好的M部分,乙的BT就会根据情况去到甲的电脑上去拿甲已经下载好的N部分,这样就不但减轻了服务器端得负荷,也加快了用户方(甲乙)的下载速度,效率也提高了,更同样减少了地域之间的限制。比如说丙要连到服务器去下载的话可能才几K,但是要是到甲和乙的电脑上去拿就快得多了。所以说用的人越多,下载的人越多,大家也就越快,BT的优越性就在这里。而且,在你下载的同时,你也在上传(别人从你的电脑上拿那个文件的某个部分),所以说在享受别人提供的下载的同时,你也在贡献。
开放防火墙BT端口一步一步学
ICF是"InternetConnectionFirewall"的简称,也就是因特网连接防火墙。ICF建立在你的电脑与因特网之间,它可以让你请求的数据通过、而阻碍你没有请求的数据包,是一个基于包的防火墙。在使用BT有时会因为ICF的阻拦,引起连接不到SEED或者数据包延滞降低下载速度。所以我们有必要在ICF中设置对BT使用的端口不进行阻拦。
1。在你的桌面上右键点击“网上邻居”,弹出的菜单中选择“属性”。
2。弹出“网络连接”窗口。在里面找到你上网用的连接,右键点击它,在弹出的菜单中选择“属性”。
3。弹出“本地连接属性”窗口。选择其中的“高级”选项卡。
4。看看鼠标所指的项目有没有选中(如果没有选就不用往下看了),选中了就点击窗口下方的“设置”按钮。
5。弹出“高级设置”窗口。图中被选中的是一些常见的网络服务,现在我们要添加新的BT服务,点击“添加”按钮。
6。弹出“服务设置”窗口。依次填写“服务描述”(随便你罗),“本机IP地址”(也可以写你的机器名),“端口号”(BT端口是6881~6890,每个BT线程占用一个端口,据说只能开9个),然后确定即可。(别忘了选中TCP协议)
7。这样“服务”栏中就增加了一个“BT1”服务,这个服务开放的是6881端口,同样你可以再新建开放6882~6890端口的服务,都搞定以后就点“确定”按钮。
8。现在我们的BT就可以在ICF中通行无阻了。
9。很多电脑中都没有开启ICF,但装有其他的专业防火墙。以最常用的天网防火墙个人版为例,同样可以设置开放BT端口,点击天网的“自定义IP规则”按钮。
10。点击“增加规则”按钮。
11。弹出“IP规则修改”窗口。如图依次填写“名称”(随便写),“数据包方向”选中“接收或发送”,对方IP地址选中“任何地址”,选中TPC协议,“本地端口”填“从6881到6890”,“TCP标志位”选中“SYN”项目,最后选择当满足上面条件时“通行”,其他的填不填无所谓,然后点确定。
12。现在“自定义IP规则”栏中就增加了一个“BT”规则,打上前面的钩钩。
13。点“保存”按钮,搞定收工。呼~
使用BT过程中出现10060/10061错误后不必退出,这只是tracker服务器太忙,BT会自动重试(无论这种情况是出现在开始还是下载过程中)
另外注意错误的时间,如果距现在已经超过2分钟,恰恰说明现在是正常的。(BT不会自动清除过期的错误)
BTExperimental的Advanced介绍
BitTorrentEXPERIMENTAL是BT的一个非官方版本,主要是添加了限制上传速度、最大上传人数及其他一些功能,在最新版的BTExperimentalv3.2.1b-2中,又添加了一个新的功能[Advanced],通过这个功能,你能够察看:和你相联接的有哪些人,你和它们之间的数据传输速度怎么样(包括上传和下载)等等。
BTExperimental的界面与BT很像,使用方法也一模一样,只是多了一些设置:
左下角的Settingsfor预设的多种上网方式,选择与你的上网方式相同的选项,BTExperimental就会自动为你设置比较理想的最大上传速度和人数,当然你也可以自己设置,不过记住:yourdownloadrateisproportionaltoyouruploadrate(你的下载速度与你的上传速度相关)
右下角的Uploadrate和Maxuploads就是你的最大上传速度和人数。
接下来,就是主要介绍的Advanced功能了。
在左下角的Settingsfor下面,有个蓝色的Advanced单词,点击它,就会弹出Advanced窗口,如下:
解释一下每列的意义:
optimisticunchoke:意义不明
IP:对方的IP
local/remote:也不太清楚
Up:当前你为对方上传数据的速度,也就是对方在你这里下载的当前速度。
Interested:你是否有对方需要的数据,"*"表示是。
Choking:对方是否暂时被你拒绝从你这里下载数据,"*"表示是。
这个需要解释一下:在BTExperimental里,你是可以限制同时从你这里下载的人数的,比如你限制为6,但并不是说只能有6个人连到你这里,可能有几十个人连到你的电脑,这时,BTExperimental就会自动选择6个人,允许他们下载数据,其他的人就被暂时拒绝了,当过了一段时间后,BTExperimental又会自动选择另外的6个人,保证每个想从你这里下载的人都能够下载到数据。
Down:当前你从对方那里下载的速度。
Interesting:对方是否有你需要的数据,"*"表示是。
Choked:你是否暂时被对方拒绝从他那里下载数据,"*"表示是。
Snubbed:暂时意义不明。
Downloaded:你从对方那里下载的数据总量。
Completed:对方的文件数据的完整度。100%的那些人就是SeeD。大家都来拜一拜呀~~~~~
PeerDownloadSpeed:对方下载的总速度。嗯嗯,看到那些上百KB速度的人了吧,羡慕啊~~~~~
好了,介绍完毕,这下大家都明白了吧?这个Advanced功能很不错吧,如果喜欢就去下载一个吧,和BT一样方便,但是功能更强,稳定性也很好。
BT运行原理分析及内网提速方法
由于内网用户无法提供一个对外的端口,所以无法做服务器.但用BT的时候,发现它可以让内网用户做Send,作为程序员就忍不住下载了它的源代码分析了一把(为了看它,还专门去写了一下Python:})
比起其它的P2P软件,BT有个独特的地方,它存在一个中间的WEB服务器,就是我们在发布的时所填写的announce.该服务器提供了发布的统一管理,不像其它P2P软件那样到处去找哪些非常不稳定的个人服务器,相对起来让人安心的多.
该WEB服务器更大的作用是内网用户可以做Send(下面会说明原理),这是其它软件无法做到的,但不好的地方是announce当机的时候就无法下载了,要知道P2P下载关键是要人气要高,announce停一下就搞到人气全没有了
.torrent的作用
大家都知道我们要用BT下载,就要先下载一个.torrent文件,这个文件到底有甚么呢:
首先是announce纪录了发布服务器的位置,让BT知道是那个WEB服务器发布的
然后是一些文件信息,文件名,目录名,长度等等
最后是片段长度,和片段的Sha1校验码
(BT为了事现续传和文件校验,就把文件分成若干个片段)
大家可以用写字板打看torrent文件看看,就是知道个大概,后面的乱码是片段Sha1校验码开始-续传的实现sha校验BT打开一个torrent文件后,先要你选择文件保存那里.然后判断文件不存在的话就建立新文件,存在的话就用Sha1校验码去校验文件---错误的就是还没下载的,这样就可以实现续传了,但128位校验,想不慢都不行得到peer现在知道要下载甚么了,到那里下载呢?这就要寻找有谁提供上传了,这里BT是通过WEB服务器来实现的,首先BT会通过分析torrent来得到一面一串网址6969/announce是发布服务器的地址info_hash是torrent文件中的info部分的Sha校验码,WEB通过它在发布列表找到对应的纪录,
peer_id是自身的标识,它是12个0和当前时间+全球的唯一标识码(GUID)的Sha校验的前八位,共20位port你提供上传的portIP你的ip地址,没有的话服务器会自己找到uploadeddownloaded你上传和下载了多少,服务器可以用它来做流量分析left你还要下载多少个字节event状态,告诉服务器你是准备开始下载,还是停止,还是下载完成了以上这个操作默认5分钟做一次,或由服务器设定
服务器会做甚么
服务器中有个一个track程序来管理这些请求
得到这一串代码后就会用info_hash来查找列表,找到你就可以下载,找不到就对不起啦接着它会反连(NatCheck)你的IP和Port这样就可以知道你是内网用户还是共网用户(如果你是内网用户,它是连不通的,因为它会连到你的服务器上,你的服务器当然没有这个端口啦)
然后服务器返回现在正在下载这个文件的所有公网用户的IP和port,就像是这样
d8:intervali1800e5eersld2:ip14:xxx.xxx.xx.xxx7eerid20:00180531904b7e3abdd74orti6881eeee
interval1800是告诉BT隔多少秒来查询一次这里是30分钟(有点过分了)
最后如果你是公网用户它会把你提交的IP和Port放到info_hash对应的列表中,这样其它人就可以找到你下载
得到这些peerIP后,BT就可以找到对应的IP下载了Bt会到所有的peer去寻找自己要下载的东西,不是一定要到seed下载.
Bt每找到一个peer就和建立一个Socket来下载,所以下载的人越多,速度就越快.
内网用户可以做Send的原理
上面说到服务器只会返回公网的ip的,那内网用户怎么可以做Send呢,这是因为BT是一个主动连接的软件(即使你已经下载完了,也不也会主动连接他人)
下面是一个仿真流程:
1内网用户开始做seed,
2服务器收到请求,由于是第一个所以也没有peer返回
3公网用户提交请求,由于seed是内网用户所以也没有peer返回,等待下载,但服务器会把它的IP放到列表中
4内网经过interval时间间隔后,再向服务器放出请求,得到上面得公网IP
5得到公网IP后,内网马上进行连接
6公网用户建立连接,数据开始传输(注意现在是公网用户做服务器,内网用户做客户端,是不是有点怪)
7其它内网用户去上面公网用户下载数据
所以,内网用户做seed一定要有公网用户得参与,否则其它内网用户无法下载.如果全部是内网用户,那个所有连接都不会成立,当然这是比较极端的情况.
以上可见,内网用户不能和内网用户连接,其它用户无法从服务器查到你,所以无法主动连接你,你只能每隔30分钟从服务器找到公网用户一个个进行连接.
由于中国很多用户的是内网用户(我从服务器上查回来的peer还没试过超过10个的),所以内网用户用BT的确要比公网用户要慢很多.于是有了下面的一直是0%:
可能SEED是内网,连接不上。有时用PTC和shareaza无法下的东东,用BT就可以下。
下不了的话具体原因跟具体情况有关,如你的网络是否局域网,你是否能访问到tracker,你使用的是那种客户端,你下载的具体是哪一个BT文件,你是从头开始下还是续传,续传的话之前是否死机过等这些都有关系。
BT下载慢的一些原因:
1、不是公网用户。内网用户不能提供主动连接,所以较慢
2、各个运营商网络接口速率不高
3、下载者上传速率不高。因为BT优先处理上传较快的人
4、发布时seed的多少,还与发布者的速率相关,还有下载的人数越多相应的下载速度就越快(这就是BT的最大优点)
5、用户的防火墙阻碍作用
BT是P2P下载软件,也就是“点对点”下载方式。BT下载同其他下载不同的是它不是从单一的服务器上获得资源,而是从拥有该数据的网络用户主机上下载。因此拥有你所需载数据的用户越多,你的下载速度越快,因为可以有多个用户向你传输你需要的数据。相反,拥有你所需数据的用户越少(也就是网络资源越少),向你传输数据的人也就越少,速度也就越慢。
当你用BT下载一个电影时,只要你BT开着,别人也就能从你的计算机上下载到你的共享文件,当然,你所下载的文件也是别人计算机上的公享文件。使用BT这样的点对点软件真正实现了资源共享。
像BT类型的现在软件还有 eMule等
呵呵,我就知道这么多,再多也不清楚了,希望你满意... ...
BT是P2P下载软件,也就是“点对点”下载方式。BT下载同其他下载不同的是它不是从单一的服务器上获得资源,而是从拥有该数据的网络用户主机上下载。因此拥有你所需载数据的用户越多,你的下载速度越快,因为可以有多个用户向你传输你需要的数据。相反,拥有你所需数据的用户越少(也就是网络资源越少),向你传输数据的人也就越少,速度也就越慢。
1。系统问题,98系统对BT下载的支持不够,建议用最新的windows sp2。
2。有人说防火墙对BT有影响,我没有发现过,一般是验证审核一次通过就没事了,我用的是微软sp2自带的防火墙。
3。一些垃圾插件的影响,例如3721,有时候不知不觉中招儿就完蛋了,要是BT先装好再装3721影响还不算太大,要是已有3721再装BT就完蛋了。一些所谓的“网上助手”最好别用。
4。有时候连接会出问题,重起机器或重新启动BT会有效果,具体原因说不清楚,我出现过几次这样的状况,有可能是adsl分配的IP地址不好。
5。其他原因:例如BT至少要adsl这样的带宽才能用;下载人数太少;没有设置上传上限;………………
6。不是公网用户。内网用户不能提供主动连接,所以较慢,也就是说,内网的用户只能由外部用户去主动连接你,而你无法主动去连接外部的用户,所以如果公网比较少用户主动连接上你,你的下载就会慢。
7。各个运营商网络接口速率不高,例如电信和网通之间,速度会有比较大的差别。
关掉 防火墙试试!
Ys