熟悉bt原理及研究过BT原理的请进一下,有关bitfield的问题.
资料上说bitfield是分块的位表示结构,即表示每个用户正在下载的文件中那个块是下载了的.
假如说有1000个正在下载10个1G的文件,一个块的大小为1M,这样1G就分成1024个块.
那么Tracker服务器上保存的btfield结构为:1000人*1000块*10个文件/8(1个字节8位)=1250000字节
BTComet分块甚至可以是32K,那么这个bitfield结构就更大了,被分成32768个块,这样就要40960000字节的空间了,是不是这样理解呢?
问题点数:100、回复次数:17Top
1 楼prettywolf(多情自古空余恨,此恨绵绵无绝期)回复于 2006-03-04 21:27:20 得分 0
大家看看啊.Top
2 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-03-04 22:27:17 得分 0
只能帮你顶了,没研究过,关注Top
3 楼cyblueboy83(爱情白痴—电脑迷)回复于 2006-03-04 22:33:19 得分 0
关注
Top
4 楼Snow_Ice11111(雪上加冰)回复于 2006-03-04 23:24:45 得分 0
没真正做过,不过除了这种方法外,还有什么方法能详细记录哪个用户正在下的文件已经下完了哪些块呢?所以,我同意楼主的看法。Top
5 楼Snow_Ice11111(雪上加冰)回复于 2006-03-04 23:34:45 得分 0
记录的信息应该还包括每个用户的IP地址及文件名,这些内容按指定长度写入文件中,用内存映射读的话,几十到几百M的文件应该挺快的。服务器只要告诉每个用户把他硬盘中已经下完了的哪些块发到哪个用户的IP去,自己剩下的带宽再用来优先提供大家都没有下到的那些块就行了,负担不小,但也没大家想象那么大。Top
6 楼prettywolf(多情自古空余恨,此恨绵绵无绝期)回复于 2006-03-05 09:18:53 得分 0
我是在想这个数所是保存在Tracker服务器上还是每个用户各一份呢?Top
7 楼qiujun1(阿俊)回复于 2006-03-05 09:33:30 得分 0
密切关注中Top
8 楼XueBoy163(菜刀之恋)回复于 2006-03-05 12:27:55 得分 0
如查向服务器发个请求,服务器广播下的哪个客户端有所需数据,找到后负责链接.当然bitfield可以以缓冲的形式存在.Top
9 楼prettywolf(多情自古空余恨,此恨绵绵无绝期)回复于 2006-03-05 13:21:09 得分 0
不错.Top
10 楼Snow_Ice11111(雪上加冰)回复于 2006-03-05 13:58:03 得分 0
我是在想这个数所是保存在Tracker服务器上还是每个用户各一份呢?
-----------------------------------------------------------------------------
我想应该是服务器上保管所有用户和文件下载实时情况的全部信息,就象一个数据库的服务器端;用户手中也数据库的部分数据,里面应该只有自己正在下载的文件的详细情况和目前其他正在下载该文件的用户的IP等信息,就象数据库的一小部分。Top
11 楼Snow_Ice11111(雪上加冰)回复于 2006-03-05 14:08:44 得分 0
至于楼上XueBoy163(菜刀之恋)朋友说的“bitfield可以以缓冲的形式存在”这种看法,我觉得不大可能,否则我若下了几个小时之后电脑非法关机,那这几个小时的下载信息没有在本地硬盘中记录,不就等于白下了?!也许你会说,不是还有服务器端的数据记录嘛?!但我下次重新下的时候很可能IP就变了,服务器端怎么知道每个用户的“前世今生”是谁?
以上纯为个人猜测,不一定正确,欢迎大家交流!Top
12 楼prettywolf(多情自古空余恨,此恨绵绵无绝期)回复于 2006-03-05 20:56:15 得分 0
应该是有缓冲,不过是每2分钟服务器和客户端更新一次.Top
13 楼XueBoy163(菜刀之恋)回复于 2006-03-06 17:12:58 得分 0
不是这回事,bitfield是指哪个客户端有哪些数据,并不是指下载的数据.Top
14 楼Snow_Ice11111(雪上加冰)回复于 2006-03-06 20:10:12 得分 0
那这几个小时的下载信息没有在本地硬盘中记录,不就等于白下了?!
----------------------------------------------------------------------------------
我上面所说的这个”下载信息“也是指XueBoy163(菜刀之恋)朋友说的这些内容,而非“下载数据”,里面记录的是用户某个文件已下完了哪些块,以及还有哪些块还没下。Top
15 楼mosing(A Crimson Cosmos)回复于 2006-03-07 00:09:38 得分 0
服务器记录的是1000*1000*10/8
客户端只记录Tracker返回的peers的相关信息,BitComet一般会返回300个。
Tracker记录客户端的块信息的开销不算很大。不过BitTorrent系统的瓶颈本来就在Tracker服务器。Top
16 楼udnuisbmc(琏琏)回复于 2006-03-07 15:59:37 得分 0
至于服务器是怎么样记录实时情况的。我也在关注关注。。
prettywolf(多情自古空余恨,此恨绵绵无绝期) (
应该是有缓冲,不过是每2分钟服务器和客户端更新一次.
。。。。。。。。。。。。。。。。。。。。。。。。。
是不是更新了就保存?
Top
17 楼gohappy_1999(碧水蓝天)回复于 2006-03-07 16:02:38 得分 0
markTop
相关问题
- <讨论>BT软件开发的原理
- 有高人熟悉wap(wta,wtai)吗?求原理和例程!
- tiny C 语法(对编译原理bnf熟悉的进)
- 高手请进,请问读取bt的种子信息的原理是什么?
- 谁来告诉我一下 BT 下载的原理,越细越好。
- 有关JavaBean中的资源释放问题,(熟悉jsp+JavaBean原理的高手请进)
- 熟悉注册表和windows原理的来看一下,不求代码,只求思路
- 熟悉编译原理方面技术的朋友进来看看,俺的几个个小问题。。。
- 分享一个在线影视工具,bt原理,呵呵,再不用bt下载了..
- 软件原理???????????????????????????????????????????????????????????????????




