我国管辖的海域面积约:我装的2M宽带,但下BT却很慢

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 18:36:52
不管种子有多少,(一次有60多种子)我的下载速度都不会超过220K(一个任务这样,我开3个任务,总数绝对不会过220K),是哪里有什么瓶颈嘛?
应该怎么调整一下啊?
详细点,谢谢,我是菜鸟。。。

上面的废话!你2M的带宽,最大下载速度理论值是250K,你现在能220K算不错了

带宽的算法要除八的,2M/8=250K

也不能那么说啊
我的带宽是1.5M
我用讯雷可以达到400
但是BT却经常几十K

1M宽带下载速度是100左右
2M就是200左右 这是很正常的
是服务商 把你的带宽限制了

如果你是电信2m的adsl 宽带的话,可能是你的bt设置的问题,如果你是如广电宽带,长城宽带,网通等这样的宽带的话那么抱歉,他们是封锁了服务端的bt上行数据的端口,所以你只能找他们协商,而很可能是没结果的.没办法,现在国内服务商都基本上因为 bt太占用宽带资源而封锁p2p类软件的 电驴,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错误信息的一些解释
最近发现有很多人问有关BT的出错信息,下面给出完整的解释:
事实上,当你看到这些错误提示时,其实并不要紧张,这是你所要做的便是----等待.注意:使用BT过程中出现红字错误后不必退出,BT会自动重试(无论这种情况是出现在开始还是下载过程中)另外注意错误的时间,如果距现在已经超过5分钟,恰恰说明现在是正常的。(BT不会自动清除过期的错误)
I.Apiecefailedhashchech,re-downloadingit
这并不是什么坏消息,你不用理会它.意思是告诉你,你下载的文件有一部分是坏的,bt会自动帮你重新下载错误的部分.导致这个错误的大多数原因在于某些人错误的使用了"跳过hash检查"这个选项
II.baddatafromtracker-
通常你不必理会它,通常是tracker服务器过载或者down了.也有可能是你的网掉线了(如部分长宽,访问任何网站会返回登陆界面,就是错误的data啦)
III.Problemconnectingtotracker-timeoutexceeded
Problemconnectingtotracker-HTTPError503:Connectfailed
Problemconnectingtotracker-[Errnosocketerror](10061,"Connectionrefused"
Problemconnectingtotracker-(111,'Connectionrefused')
说明在连接tracker服务器过程中出现错误,有可能trakker服务器过载或者down了,这时并不要心急,等待BT自动重试.如果很长时间都没有反映的话,你可以加上"--http_timeout120"的参数来加大连接重试时间.具体做法另文说明.
IV.Problemconnectingtotracker-HTTPError400:NotAuthorized
说明这个tracker服务器不允许你使用这个torrent文件(国内好像比较少见),有些tracker服务器只允许在他们自己网站上发布的torrent才允许下载.解决只有换一个torrent文件了,
V.Problemconnectingtotracker-HTTPError404:NotFound
很简单,torrent文件在tracker服务器上已经找不到了,找个新的吧.
VI.Problemconnectingtotracker-HTTPError407:ProxyAuthenticationRequired
假如你用的是代理下载BT,说明这个代理需要验证,需要你输入用户名和密码.
VII.Problemgettingresponseinfo-[Errno2]Nosuchfileordirectory:"C:\\DocumentsandSett..."
在某些情况下,IE有可能没把torrent文件存在临时文件夹内.解决方法是在torrent文件下载地址上按右键,然后另存到硬盘的某处(这可是个好习惯,以后你求种子或者reseed的时候特别有用,建议大家都这么干,利己利人),然后双击这个torrent文件开始下载.如果出现这个问题,建议清楚你的IE缓存,在文件中如果出现"["或者"]"也会出现这个问题.