qBittorrent基于libtorrent构建,磁力链接粘贴即解析,种子文件拖入即开始。DHT网络自动发现更多peer,断点续传不怕断网。没有捆绑没有弹窗,装完打开就是一个干净的下载窗口。
不堆参数,只讲真功夫。每一处都解决实实在在的麻烦。
磁力链接粘贴到输入框直接解析元数据,不用等.torrent文件下载完。旧方案需要先下载种子文件再导入,多一步就多一个出错机会;qBittorrent的磁力解析走DHT和Tracker同时拉取,元数据到手立刻开始连接peer。
分布式哈希表让客户端不依赖Tracker也能找到peer,通过节点路由协议在网络中扩散查询。旧方案只靠Tracker服务器,服务器挂了就找不到人;DHT让下载网络去中心化,只要有一个节点在线就能继续传播。
下载进度按piece粒度记录到磁盘,重启后从上次中断的位置继续。旧方案断网重连后从头开始或者校验整文件浪费时间;qBittorrent的fast-resume机制只校验未完成的piece,重连后几秒就能恢复传输。
按时间段设置不同的上传下载速率上限,忙时让路闲时跑满。旧方案要么全速占满带宽要么限速一刀切;qBittorrent的调度器支持按小时粒度配置,白天上班限速晚上回家放开,不用每次手动调。
有些麻烦,换个工具就没了。
几GB的ISO镜像用HTTP下载断一次就得重来。BitTorrent协议天然支持断点续传和分块校验,哪块坏了补哪块,不用重下整个文件。
老游戏老纪录片只有一两个人做种。DHT网络帮你慢慢找到散落在各地的碎片,只要有peer在线就有机会下完。
几十集电视剧一集一集点太累。种子文件里包含整个文件列表,勾选想要的集数一次性加入队列,自动排队依次下载。
自己做的开源镜像想分享给别人。qBittorrent内置种子创建工具,选文件夹填Tracker地址就能生成.torrent文件,别人用你的种子下载的同时也在帮你做种。
都是真实体验,没有套话。
之前用的带广告的下载工具,每次打开弹三四次弹窗,关完才能用。换了qBittorrent之后世界清净了,界面干干净净就一个下载列表,再也不用跟弹窗斗智斗勇。
最意外的是RSS订阅功能。追番的时候把RSS链接粘进去,新话一出自动加入下载队列,回家打开文件夹已经躺好了,不用每天手动去搜种子。
帮开源社区分发系统镜像的时候发现qBittorrent的种子创建特别好用。填个Tracker地址、勾选"开始做种"就能一边生成种子一边上传,生成完别人就能下了,不用等整个文件扫完。
冷门细节:高级设置里有个"是否允许来自同一IP的连接数"的选项,默认是50。我把它调到200之后,某些冷门种子的连接数明显上来了,下载速度从几KB涨到了几MB。
不吹牛,只讲原理和体验。
技术动作:libtorrent维护一个peer连接池,每个peer分配独立的socket和消息队列,通过choke/unchoke算法决定给哪些peer上传数据。用户感知:下载时软件自动优先连接速度快的peer,慢的会被暂时屏蔽,整体吞吐量保持在较高水平。
技术动作:每个节点维护一个路由表存储附近节点的ID和地址,查询时向最近节点发送get_peers请求,被请求的节点返回更接近目标的节点或peer列表。用户感知:冷启动后几分钟就能在DHT网络中站稳脚跟,之后即使Tracker挂了也能通过节点互相发现。
技术动作:每个piece有对应的SHA-1哈希值写在种子文件里,下载完成后对piece数据做哈希比对,不匹配则丢弃重新下载该块。用户感知:不用担心下载的文件悄悄损坏,每个块都经过校验才标记为完成,大文件完整性有保障。
技术动作:uTP基于LED-BAT算法测量链路延迟,检测到延迟上升时主动降低发送速率,避免挤占其他应用的带宽。用户感知:开着qBittorrent浏览网页也不会卡,下载任务默默在后台跑,不会把整个网络堵死。
技术动作:种子文件采用Bencode编码,字典结构存储文件名、文件大小、piece哈希和Tracker地址,末尾可选添加DHT节点信息。用户感知:生成的.torrent文件体积很小,只包含元数据和哈希值不包含实际内容,方便通过网络快速分发。